【问题标题】:Gulp: error in console, assert.js:90 throw new assert.AssertionErrorGulp:控制台出错,assert.js:90 抛出新的 assert.AssertionError
【发布时间】:2016-07-04 10:25:36
【问题描述】:

我在控制台中收到这样的错误: $一口

assert.js:90
  throw new assert.AssertionError({
  ^
AssertionError: Task function must be specified

at Gulp.set [as _setTask] (C:\Users\user\Projects\New project\node_modules\undertaker\lib\set-task.js:10:3)

at Gulp.task (C:\Users\user\Projects\New project\node_modules\undertaker\lib\task.js:13:8)

at Object.<anonymous> (C:\Users\user\Projects\New project\gulpfile.js:44:6)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)

这是我的 gulpfile:

var gulp = require('gulp');
var build = require('gulp-build');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var browser_sync = require('browser-sync');
var gulps = require("gulp-series");


//gulp-build
gulp.task('build', function() {
    gulp.src('scripts/*.js')
        .pipe(build({
            GA_ID: '123456'
        }))
        .pipe(gulp.dest('dist'))
});

//gulp-sass
gulp.task('sass', function() {
    return gulp.src('scss/**/*.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({
            errLogToConsole: true,
            outputStyle: 'expanded'
        }).on('error', sass.logError))
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest('css'));
});

//gulp-browser-sync
gulp.task('browser_sync', function() {
    var files = [
        '*.html',
        'css/*.css'
    ];
    browser_sync.init(files, {
        server: {
            baseDir: './'
        }
    });
});

//gulp-watch
gulp.task('watch', ['sass'], function() {
    gulp.watch('scss/**/*.scss', ['sass']);
});

//gulp-series
gulps.registerTasks({
    "test1": (function(done) {
        setTimeout(function() {
            console.log("test1 is done");
            done();
        }, 1000);
    }),
    "test2": (function() {
        console.log("test2 is done");
    })
});

gulps.registerSeries("default", ["test1", "test2"]);

// gulp.task('default', ['watch', 'browser_sync'], function() {});

我只是一个初学者,你知道我做错了什么吗?

【问题讨论】:

标签: javascript gulp


【解决方案1】:

我认为您将 gulp 4 与 gulp 3 的“语法”一起使用。
所以要么安装 gulp 3 并且你的 gulpfile 应该是有效的并且可以使用或者将它迁移到 gulp 4。Here 是一篇很好的文章。

Changelog 一饮而尽

【讨论】:

  • 感谢您的回答。我在哪里可以找到 gulp 4 语法?有没有准备好的功能的网站、库?
  • 好吧,没关系,我找到了。很抱歉提出愚蠢的问题。 :)
  • 如果其他人会在 gulp@3.* 维护自己的项目,只需安装正确的版本:npm i -D gulp@3.*
【解决方案2】:

gulp 4 系列(...任务)

gulp.task('one', function(done) {
// do stuff
done();
});

gulp.task('two', function(done) {
// do stuff
done();
});

gulp.task('default', gulp.series('one', 'two', function(done) {
// do more stuff
done();
}));

https://github.com/gulpjs/gulp/blob/4.0/docs/API.md

【讨论】:

    【解决方案3】:

    gulp 自动安装 4.0.0 版

    通过运行以下命令更改 gulp 的版本

     npm install gulp@3.3.4 --save
    

    这将解决您的问题。

    【讨论】:

    • 我的回答帮助了某人。很高兴听到。 @AkshayVijayJain
    • 无需指定次要版本:npm i -D gulp@3.*
    • @giovannipds,您可以选择哪个版本。我只是举了一个例子。谢谢
    • @BasavarajHadimani 我知道你做到了,但我们打算在这里给出最好的完整答案。我会建议更新它。
    【解决方案4】:

    我使用以下命令解决了问题

    npm install --save-dev gulp@3.9.1
    

    这将解决您的问题(我解决了窗口 7 和窗口 10 中的问题)

    【讨论】:

    • 无需指定次要版本:npm i -D gulp@3.*
    【解决方案5】:

    现在刚刚通过了同样的错误,DAXaholic's answer 是对的,你的gulpfile.js 的 gulp@3.* 但是你已经安装了 gulp 4。只需安装正确的版本:

    npm i -D gulp@3.*
    

    【讨论】:

      【解决方案6】:

      更改 package.json 以安装旧版本或最新版本的 Gulp,如下所示:

      "gulp": "^3.9.1",
      

      使用 gulp -v 命令检查 Gulp 的 CLI 版本和本地版本。

      CLI 版本 3.9.1

      本地版本 3.9.1

      if it's not equal this error may occur.
      

      【讨论】:

        【解决方案7】:

        如果你得到了

        “AssertionError:任务从未定义:两个”

        可能是因为任务应该是按顺序的,所以先任务一任务二,然后任务有

        gulp.series('one', 'two')

        【讨论】:

          【解决方案8】:

          我解决了这个问题:

          npm install gulp-cli -g npm install gulp -D npx -p touch nodetouch gulpfile.js

          gulp.js 提供的默认安装命令 希望对你有帮助,

          【讨论】:

          • 现在这仍然会安装gulp@4.*,所以它不再是一个合适的答案。
          猜你喜欢
          • 1970-01-01
          • 2016-12-13
          • 2015-04-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多