命令gulp错误“ assert.js:42抛​​出新错误。AssertionError”

时间:2018-08-07 10:10:13

标签: node.js npm gulp

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

口香糖 assert.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)     在要求时(internal / module.js:11:18)

2 个答案:

答案 0 :(得分:3)

您遇到的问题是您正在使用gulp v4.0语法运行gulp 3AssertionError: 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降级到{{1} }:

3.9.1

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

答案 1 :(得分:0)

gulp 4使用旧的实现会产生很多问题,请修改您的任务声明:

  • 旧语法:

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

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

希望这对某人有帮助,我花了数小时进行故障排除后才发现它。