为什么我的gulp 4 gulp.js出现断言错误

时间:2018-11-18 01:29:09

标签: npm gulp gulp-sass

我正在尝试让gulp在Windows 7上运行。

我已经下载了npm (6.4.1)

已安装gulp(CLI version 3.9.1 , Local version 4.0.0)

我已经在主题文件中完成了npm init

但我知道

  

assert.js:351       犯错       ^ AssertionError [ERR_ASSERTION]:必须指定任务功能

看着类似的错误,我决定从以下位置更改gulp.js:

gulp.task('browser-sync', ['sass'], function() {
    browserSync.init({
        proxy: "local.mysite.co:8080",
        notify: true
    });
});

收件人:

gulp.task('browser-sync', gulp.series( 'sass', function() {
    browserSync.init({
        proxy: "local.mysite.co:8080",
        notify: true
    });
}));

但是我现在得到:

  

assert.js:351       犯错       ^ AssertionError [ERR_ASSERTION]:从未定义任务:sass

2 个答案:

答案 0 :(得分:0)

已删除项目文件夹中的node_modules文件夹。在终端(在项目文件夹中)中运行以下命令:

npm install gulp --save-dev .   

现在可以使用

答案 1 :(得分:0)

通常,从gulp3迁移到gulp4时出现错误Task never defined:意味着您正在注册一个任务。

对于您而言,我敢打赌,下面的'browser-sync'任务是在'sass'任务之前定义的。

gulp.task('browser-sync', gulp.series( 'sass', function() {

只需将您的gulp.task('sass', ………)移到“ browser-sync”任务之前即可。

或更改为新的功能符号,例如:

function sass() {
  return gulp.src(paths.sass.stylesFile)
    .pipe(sass().on("error", sass.logError))
    .pipe(gulp.dest(paths.css.temp))
    .pipe(reload({ stream: true }));
}

和顺序问题不大。但是,如果您走这条路线,还需要进行其他更改。不必这样做-您可以如上所述移动sass任务。