🤔
herokuにデプロイしたらCannot find module 'xxx' が出た話
herokuにデプロイしたらCannot find module 'xxx'
@line/bot-sdk を使ったnodejsアプリケーションをherokuにデプロイしたら、以下のエラー
Error: Cannot find module '@line/bot-sdk'
「ファッ!?」
herokuのconsoleで見てみると、node_modulesから@line/bot-sdkが消え去っていた。。。
ls node_modules/@line # 反応なし = 配下が空
原因
herokuの公式を見ていると、以下の記述
インストールおよびビルドステップを実行した後、 Heroku はアプリケーションをデプロイする前に、
devDependencies
に宣言されているパッケージを取り除きます。
https://devcenter.heroku.com/ja/articles/nodejs-support#package-installation
「まさかな〜〜??」と思いつつ確認すると、、、
{
...
"devDependencies": {
"@line/bot-sdk": "^7.5.2",
},
...
}
しっかり、devDependenciesに書かれていました😓
対応
dependenciesに移動させて、deployするとエラーは消えました👍
念の為、node_modulesを確認してみましたが、ちゃんとありました。
ls node_modules/@line
# bot-sdk
まとめ
herokuではdevDependencies
にあるパッケージを取り除くらしい
Discussion