简体   繁体   中英

Getting: SyntaxError: missing ) after argument list but can't find out whats wrong with hulpfile.js

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.

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 {}.

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM