npm7にバージョンアップした後にserverless frameworkでエラーが出るようになった
メモです。
概要
npmのバージョンを7にしました。
そのあとに以前から使っていたプロジェクトでserverless deployをしたところ以下のようなエラーが出ました
npm.cmd ls -prod -json -depth=1 failed with code 1
環境
- Operating System: win32
- Node Version: 14.17.0
- Framework Version: 2.55.0 (local)
- npm 7.20.6
エラー詳細と調査
Error: npm.cmd ls -prod -json -depth=1 failed with code 1 at ChildProcess.<anonymous> (C:\workspace\xxxx\node_modules\serverless-webpack\lib\utils.js:91:16) at ChildProcess.emit (events.js:376:20) at ChildProcess.emit (domain.js:470:12) at maybeClose (internal/child_process.js:1055:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
- エラーの文字文字列を調べてもなかなかわからず、node_modulesを削除してみたり、yarn.lockを削除したりしました。が全然解消しませんでした。
- serverless offlineは起動するのとエラーの発生した部分がwebpackだったのでその周辺を調査すると原因がわかりました。
解決
以下のリンクと同じ原因でした。なので、serverless webpackのバージョンを上げるか、serverless-webpackのpackeagerをyarnに変更してあげればOK github.com
serverless-webpackのプラグインは一部のエラーは無視するように作られているようです。
- npm7でエラーの出力形式が変わったために、従来は無視できていたエラーが引っかかるようになってしまったために発生するエラーのようです。
最後に
- うまく検索できれば一発で解決できたのに。。勘所が鈍っている気がします。