0

嗨,我在使用以下 gulp 文件启动“gulp default”时遇到错误。我无法弄清楚文件有什么问题。

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']);

我已经重新安装了节点,但是所有的包都不能解决问题。

4

2 回答 2

0

试图改变这一点。它直接在另一行给出相同的错误:

/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)
于 2017-11-10T10:55:24.673 回答
0

请参阅Gulp Sass 和 errLogToConsole: true 仍然停止我的其他监视任务,并且Gulp 生成的源映射在 Chrome 中不起作用

不要使用errLogToConsole它似乎不再受支持。

.pipe(sass(errLogToConsole: true, outputStyle: 'compressed'))

将其更改为

.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))

就像gulp-sass 选项一样。 您之前的错误可能是由于没有在 {} 大括号中包含您的选项(它是一个对象)。

[编辑] :

你的另一个错误是一样的

.pipe(autoprefixer(browsers: ['last 2 versions', '> 5%', 'Firefox ESR']))

应该

.pipe(autoprefixer( { browsers: ['last 2 versions', '> 5%', 'Firefox ESR'] } ))

注意花括号。通常 gulp 插件的选项是对象,所以它们需要用大括号 {} 包裹起来。

于 2017-11-10T10:25:59.890 回答