Serverless Framworkのplugin内で発生したエラーの原因を調べるための手順をまとめます。
試したことはないですが、pluginを開発したい人向けにも使えると思います。
ググってもヒットしなかったので、参考になれば幸いです。
以下、serverless-laysers pluginを例に記載します。
環境
- VSCode
- TypeScript: 4.8.4
- Serverless Framework: 3.24.1
- nodejs: 16.17.0
手順
- 既存のpluginはインストールされていても良いとは思うが、デバッグ対象をはっきりさせるために削除。
npm uninstall serverless-layers -D
- serverless pluginのソースコードをプロジェクト内にgit clone。
mkdir test cd test git clone https://github.com/agutoli/serverless-layers.git
- pluginのソースコードをserverelss.yamlやserverelss.tsからの相対パスで指定。
serverelss.ts
plugins: [ ..., './test/serverless-layers', ... ]
- pluginsのソースコードのpackage.jsonを編集。(lib/index.js -> src/index.js)
test/serverless-layers/package.json
"main": "src/index.js",
- プロジェクトのDebug Configurationを追加。
.vscode/launch.json
{ "name": "debug serverless plugin", "type": "node", "request": "launch", "runtimeArgs": [ "--inspect" ], "program": "${workspaceFolder}/node_modules/serverless/bin/serverless", "args": [ "deploy" ], "console": "integratedTerminal" },
- ブレークポイントを設定し、デバッグ実行。
※結局、serverless-layersの不具合ではありませんでした!
以上です。