🤔

herokuにデプロイしたらCannot find module 'xxx' が出た話

2023/05/23に公開

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