背景与目标
最近我加入了一个使用 VSCode 开发无服务器 Node.js webpack 应用程序的团队。我的目标是能够运行应用程序,以便在 Visual Studio Code 中命中断点。
语境
从下面列出的几篇文章/帖子来看,有两个配置文件需要调整才能实现这一点。launch.json
指定从编辑器开始调试时 VSCode 需要执行的操作的文件。以及package.json
文件,更具体地说是scripts
属性。不幸的是,我无法让它发挥作用。
从我收集的信息来看,用于 Linux 和 Windows 机器的配置存在差异。由于我在 Windows 10 机器上运行,我确实调整了几个设置。
问题
您将在下面找到我设置的设置。不幸的是,应用程序几乎立即在几个 NPM 模块中开始抛出异常。我收到的第一条错误消息来自loader.js
文件并且是No such module: constants
. 如果我继续,则会触发其他几个错误。目前我不知道为什么会导致这些错误,因为具有正常配置的应用程序可以正常工作。此外,我认为yarn debug
似乎运行良好,虽然我不是 100% 肯定。
问题
简而言之,我完全不知道出了什么问题。任何建议和指示将不胜感激。
设置和输出
在出现错误之前,调试控制台会报告已附加调试器并随后调用无服务器命令。
Debugger listening on ws://127.0.0.1:5858/00a881f0-be74-46dd-a316-6fa07e8b0db5
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
package.json 脚本属性
"scripts": {
"debug": "SET SLS_DEBUG=* && node --inspect-brk=5858 %USERPROFILE%\\AppData\\Roaming\\npm\\node_modules\\serverless\\bin\\serverless offline -s dev",
},
启动.json
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}\\frontend\\backend",
"runtimeExecutable": "npm.cmd",
"runtimeArgs": [
"run-script",
"debug"
],
"port": 5858
}
]
}
编辑 1
我认为问题在于调试脚本(见下文)没有调用无服务器(离线)。终端未显示正在运行的无服务器(离线),这可能解释了为什么节点无法成功构建解决方案。我将脚本调整为以下内容,但无济于事。作为参考,我已经包含了用于在本地运行它而无需调试的脚本。
"scripts": {
"serve": "cross-env SLS_DEBUG=* IS_LOCAL=true serverless offline --env local",
"debug": "cross-env SET SLS_DEBUG=* && node --inspect-brk=5858 .\\node_modules\\serverless\\bin\\serverless offline -s dev --env local ",
},