先日とある理由でgulpを使ったのですが、思ったように実行できなかった時のメモ。
エラー内容
npm install 実行時
npm ERR! cb() never called!
出力内容の最後のあたりにというエラーが。
gulp serve 実行時
そのまま無視してgulp実行。
Error: Cannot find module 'wrappy'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/maximum80/sample/node_modules/gulp/node_modules/orchestrator/node_modules/end-of-stream/node_modules/once/once.js:1:76)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
とか
Error: Cannot find module 'json3'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/maximum80/sample/node_modules/gulp/node_modules/orchestrator/node_modules/end-of-stream/node_modules/once/once.js:1:76)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
など、やり直すたびに何かしらのModuleがない、と怒られます。
ハマった原因
どうやらnpm installを実行した際に、対象のmoduleが正しくインストールされなかった模様。
また、正しくインストールされないのはキャッシュが悪さしてたりバージョンの問題が原因にあるとのことで、以下の内容を試しました。
確認したこと
1. npm cacheの確認
$ npm cache clean
で、キャッシュを削除。
2. npmのversionの確認
npmのGithub上で2014年に同様のエラーについてのissueが展開されていたので、**「もしかしてバージョンアップしたら解決するかも?」**と思ってバージョンアップしました。
$ npm update -g npm
を実行。上記が完了してしたら、改めてnpm installしてgulpを実行したら僕の場合は正常に動いてくれました。ただ、明確な原因はわかっていないため、常にキャッシュとバージョンを意識するという事を一旦肝に命じておきます。