AssertionError [ERR_ASSERTION] [ERR_ASSERTION]: Task function must be specified
が出ました。
Vue.jsを使う時に、gulpを走らせようとしました。
◆環境
npm 6.7.0
Node.js 12.13.0
CLI 2.2.0
gulp 4.0.3
◆対応
バージョン違いでしたのでこちらを参考にしました。
qiita.com
以下は私の詳細状況ですので、見ても見なくても大丈夫です←
◆状況
gulpやらnode.jsやらを詰め込んだpackge.jsonを npm install した後に、gulpと実行しました。(すでにタスク作成済み)
すると下記エラーが発生。※一部見やすいように改行
XXXXXXXXXXXX:vue_sample01 t.nishimura$ gulp
[21:57:54] Requiring external module babel-register
assert.js:373
throw err;
^
AssertionError [ERR_ASSERTION] [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (/Applications/MAMP/htdocs/vue_sample01/node_modules/
undertaker/lib/set-task.js:10:3)
at Gulp.task (/Applications/MAMP/htdocs/vue_sample01/node_modules/undertaker/
lib/task.js:13:8)
at Object.<anonymous> (/Applications/MAMP/htdocs/vue_sample01/
gulpfile.babel.js:59:6)
at Module._compile (internal/modules/cjs/loader.js:945:30)
at loader (/Applications/MAMP/htdocs/vue_sample01/node_modules/babel-register/
lib/node.js:144:5)
at Object.require.extensions.<computed> [as .js] (/Applications/MAMP/htdocs/
vue_sample01/node_modules/babel-register/lib/node.js:154:7)
at Module.load (internal/modules/cjs/loader.js:798:32)
at Function.Module._load (internal/modules/cjs/loader.js:711:12)
at Module.require (internal/modules/cjs/loader.js:838:19)
at require (internal/modules/cjs/helpers.js:74:18) {
generatedMessage: false,
code: 'ERR_ASSERTION',
actual: false,
expected: true,
operator: '=='
}
npm を再インストールしても無駄。
gulpとnodeのバージョンが一致しなかったことが原因でした。
そこで、
node.jsとgulpをダウングレード
"npm install -g n" → "sudo n 11.15.0"
XXXXXXXXXXXX:vue_sample01 XXXXXXXXXXXX$ npm install -g n
/usr/local/Cellar/node/12.11.1/bin/n -> /usr/local/Cellar/node/12.11.1/lib/node_modules/n/bin/n
+ n@6.1.0
added 1 package from 4 contributors in 1.114s
XXXXXXXXXXXX:vue_sample01 XXXXXXXXXXXX$ sudo n 11.15.0
Password:
installing : node-v11.15.0
mkdir : /usr/local/n/versions/node/11.15.0
じゃあこうなって、
インストール完了。
次にgulpの3をインストール
sudo npm install --save-dev gulp@3.9.1
XXXXXXXXXXXX:vue_sample01 XXXXXXXXXXXX$ sudo npm install --save-dev gulp@3.9.1
Password:
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated natives@1.1.6: This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.
npm WARN sample@1.0.0 No description
npm WARN sample@1.0.0 No repository field.
+ gulp@3.9.1
added 35 packages from 17 contributors, removed 133 packages, updated 13 packages and audited 14786 packages in 31.733s
found 8 vulnerabilities (2 low, 6 high)
run `npm audit fix` to fix them, or `npm audit` for details
ここでエラーを無視して、(ダウングレードしてますので。)
gulpを入力すると、
なんとか走らせることに成功。
こういうのってやりごたえありますね。
以上