问题
Hi I'm getting an error starting 'gulp default' with the following gulp file. I cannot figure out whats wrong with the file.
var gulp = require('gulp');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var autoprefixer = require('gulp-autoprefixer');
var browserSync = require('browser-sync').create();
var input = './scss/**/*.scss';
var output = './css';
gulp.task('sass', function() {
return gulp.src(input)
.pipe(sourcemaps.init())
.pipe(sass(errLogToConsole: true, outputStyle: 'compressed'))
.pipe(autoprefixer(browsers: ['last 2 versions', '> 5%', 'Firefox ESR']))
.pipe(sourcemaps.write())
.pipe(gulp.dest(output))
.pipe(browserSync.stream());
});
// Watch files for change and set Browser Sync
gulp.task('watch', function() {
// BrowserSync settings
browserSync.init({
proxy: "mydomain.loc",
files: "./css/styles.css"
});
// Scss file watcher
gulp.watch(input, ['sass'])
.on('change', function(event) {
console.log('File' + event.path + ' was ' + event.type + ', running tasks...')
});
});
// Default task
gulp.task('default', ['sass', 'watch']);
I've allready reinstalled node and all the package won't solve the problem though.
回答1:
Tried to change that. It directly gives the same error on an other line:
/Users/hmook/Documents/Development/lvdb/gulpfile.js:14
.pipe(autoprefixer(browsers: ['last 2 versions', '> 5%', 'Firefox ESR']))
^^^^^^^^
SyntaxError: missing ) after argument list
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:599:28)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Liftoff.handleArguments (/usr/local/lib/node_modules/gulp/bin/gulp.js:116:3)
回答2:
See Gulp Sass with errLogToConsole: true still stopping my other watch tasks and Gulp-generated source maps don't work in Chrome.
Don't use errLogToConsole it doesn't appear to be supported anymore.
.pipe(sass(errLogToConsole: true, outputStyle: 'compressed'))
Change that to
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
as in gulp-sass options. Your earlier error was probably due to not including your options in {} braces (it is an object).
[EDIT] :
And your other error is the same
.pipe(autoprefixer(browsers: ['last 2 versions', '> 5%', 'Firefox ESR']))
should be
.pipe(autoprefixer( { browsers: ['last 2 versions', '> 5%', 'Firefox ESR'] } ))
Note the curly braces. Usually the options to gulp plugins are objects so they need to be wrapped in braces {}.
来源:https://stackoverflow.com/questions/47219331/getting-syntaxerror-missing-after-argument-list-but-cant-find-out-whats-wro