ここに一応書いてある:
このお勧め設定
{
"type": "node",
"request": "launch",
"name": "Debug Serverless Offline",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "debug"],
"sourceMaps": true
}
を使えば、実行ボタンを押した時に npm run debug
が実行されるので package.json に実行スクリプトを書けば良い。この際に
- 環境変数 SLS_DEBUG=* をセットする。
- node --inspect オプションをセットする。
必要があるので package.json
の scripts
セクションに次のような物を追加すれば良い。
"debug": "SLS_DEBUG=* node --inspect node_modules/serverless/bin/serverless.js offline start",
ここで、--inspect
というのは node がデバッグ情報を提供するオプションらしいのだが、なぜか無くても動く(あとで調べる)。なのですでに npm start
に起動スクリプトがあれば
"debug": "SLS_DEBUG=* npm start",
でも動く。あと、TypeScript を使っている場合は tsconfig.json に "sourceMap": true,
が必要。
{
"compilerOptions": {
...
"sourceMap": true,
},
...
}
ちなみに、Auto Attach が有効になっている場合(default)、何もしなくてもターミナル内で node を動かせば勝手にデバッガが動き出す。なので sourceMap: true
さえあれば npm start
だけでもデバッグ自体は可能。ただ微妙に表示が見にくい。
参考