SAM+Node.jsでLambdaをInvokeした際に「Error: Cannot find module 'luxon'」が出た時の対処法


問題点

以下でluxonをインストール

npm install luxon --save-dev

package.jsonに以下が追加される

package.json
  "dependencies": {
    "luxon": "^1.26.0"
  }

SAM+Node.jsでLambdaをInvokeした際に以下エラー発生

sam local invoke TranslationFunction --event request.json
Invoking index.handler (nodejs12.x)
Skip pulling image and use local one: amazon/aws-sam-cli-emulation-image-nodejs12.x:rapid-1.20.0.

(中略)

2021-03-12T22:47:33.403Z    undefined   ERROR   Uncaught Exception  {"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'luxon'\nRequire

(中略)

原因

以下の実行に問題あり

npm install luxon --save-dev

解決策

まずはアンインストール

npm uninstall luxon --save-dev

再度インストール(オプションを変更する)

npm uninstall luxon --save

package.jsonを確認

以下が追加されていればOK

package.json
  "dependencies": {
    "luxon": "^1.26.0"
  }

参考