运行gulp项目报错:AssertionError [ERR_ASSERTION]: Task function must be specified

今天写了一篇文章正准备发布,生成静态资源文件后使用 gulp bulid 压缩代码,但是一运行:gulp 出现了这个错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ gulp build
assert.js:339
throw err;
^

AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (E:\Documents\GitHub\blog\node_modules\undertaker\lib\set-task.js:10:3)
at Gulp.task (E:\Documents\GitHub\blog\node_modules\undertaker\lib\task.js:13:8)
at Object.<anonymous> (E:\Documents\GitHub\blog\gulpfile.js:43:6)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:690:17)
at require (internal/modules/cjs/helpers.js:25:18)

gulp 项目需要全局安装 gulp 和项目内安装 gulp

通过 gulp -v 查看全局 gulp 和本地项目的 gulp 版本:

1
2
3
$ gulp -v
CLI version: 3.9.1
Local version: 4.0.2

查看 package.json 文件果然:"gulp": "^4.0.2",

因为本地的 gulp 更新到了版本 4,而 gulpfile.js 用的是 gulp3.9.1 的语法

解决方案一:

npm i gulp@3.9.1 重新安装 gulp 到 3.9.1 版

解决方案二:

按 gulp4 的语法重写 gulpfile.js 任务列表

0%