【问题标题】:command gulp error "assert.js:42 throw new errors.AssertionError"命令 gulp 错误“assert.js:42 throw new errors.AssertionError”
【发布时间】:2019-01-14 09:22:52
【问题描述】:

我有一个简单的安装 gulp livereload:

一饮而尽 断言.js:42 抛出新的错误。AssertionError({ ^

AssertionError [ERR_ASSERTION]:必须指定任务函数 在 Gulp.set [as _setTask] (c:\testjses6\node_modules\undertaker\lib\set-task.js:10:3) 在 Gulp.task (c:\testjses6\node_modules\undertaker\lib\task.js:13:8) 在对象。 (c:\testjses6\gulpfile.js:21:6) 在 Module._compile (module.js:652:30) 在 Object.Module._extensions..js (module.js:663:10) 在 Module.load (module.js:565:32) 在 tryModuleLoad (module.js:505:12) 在 Function.Module._load (module.js:497:3) 在 Module.require (module.js:596:17) 在要求(内部/module.js:11:18)

【问题讨论】:

  • 你必须展示你的 gulpfile.js。

标签: node.js npm gulp


【解决方案1】:

您遇到的问题是您使用gulp 3 语法运行gulp v4.0。 AssertionError: Task function must be specified 错误来自 gulp.task 已更改并且删除了 3 个参数签名的事实。简而言之,需要更改如下所示的任务以删除[] 参数:

gulp.task('default', ['build'], function () {
  return runSequence(['watch', 'karma-watch']);
});

This article 将帮助您迁移到gulp 4 语法。

如果您想简单地解决您的问题,而无需更改您的 gulpfile.js,请运行以下命令将您的 gulp 版本从版本 4 降级到 3.9.1:

npm install gulp@3.9.1 --save

假设一切顺利,您应该不会再看到断言错误。

【讨论】:

  • 恢复到旧版本对我来说是一个解决方案。
【解决方案2】:

gulp 4 对旧的实现产生了许多问题,修改你的任务声明:

  • 旧语法:

    gulp.task('a', ['b', 'c'], function () { // do something })
    
  • 新语法:

    gulp.task('a', gulp.series(gulp.parallel('b', 'c'), function () {  // do something }))
    

希望这对某人有所帮助,我在花费数小时进行故障排除后发现了这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2016-03-05
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多