AssertionError [ERR_ASSERTION] [ERR_ASSERTION]: Task function must be specified が出た時。

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
       

 

じゃあこうなって、

f:id:TMLabo:20191106230845p:plain

f:id:TMLabo:20191106230958p:plain

インストール完了。

 

次に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を入力すると、

f:id:TMLabo:20191106231300p:plain

なんとか走らせることに成功。

 

こういうのってやりごたえありますね。

以上