2

背景与目标

最近我加入了一个使用 VSCode 开发无服务器 Node.js webpack 应用程序的团队。我的目标是能够运行应用程序,以便在 Visual Studio Code 中命中断点。

语境

从下面列出的几篇文章/帖子来看,有两个配置文件需要调整才能实现这一点。launch.json指定从编辑器开始调试时 VSCode 需要执行的操作的文件。以及package.json文件,更具体地说是scripts属性。不幸的是,我无法让它发挥作用。

从我收集的信息来看,用于 Linux 和 Windows 机器的配置存在差异。由于我在 Windows 10 机器上运行,我确实调整了几个设置。

使用的资源:文章帖子 1帖子 2帖子 3

问题

您将在下面找到我设置的设置。不幸的是,应用程序几乎立即在几个 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 ",
  },
4

0 回答 0