使用 yarn 在 Visual Studio Code 中运行 NodeJS 项目

新手上路,请多包涵

我有一个 NodeJS 项目,我可以使用 yarn start 命令从命令行开始。我的 package.json 看起来与此类似:

 {
  "name": "projectname",
  "version": "0.0.1",
  "description": "",
  "author": "My Name",
  "license": "",
  "scripts": {
    "start": "yarn dev",
    "dev": "yarn stop && pm2 start pm2-dev.yaml && webpack-dev-server --progress",
    "prod": "yarn stop && yarn build && pm2 start pm2-prod.yaml",
    "build": "rimraf dist lib && babel src -d lib --ignore test.js && cross-env NODE_ENV=production webpack -p --progress",
    "stop": "rimraf logs/* && pm2 delete all || true"
  },
  "dependencies": {
    "body-parser": "~1.16.0",
    "ejs": "2.5.5",
    "express": "^4.14.1",
    "pg": "^6.1.2",
    "react": "^15.4.2",
    "redux": "^3.6.0",
  },
  "devDependencies": {
    "babel-cli": "^6.22.2",
    "cross-env": "^3.1.4",
    "eslint": "^3.13.0",
    "pm2": "^2.3.0",
    "redux-mock-store": "^1.2.2",
    "rimraf": "^2.5.4",
    "webpack": "^2.2.1",
    "webpack-dev-server": "^2.2.1"
  }
}

我正在尝试使用 Visual Studio Code 以调试模式启动该项目,但几乎没有运气。我在 VS Code launch.json 文件中定义了我的启动配置,如下所示:

 {
  // Use IntelliSense to learn about possible Node.js debug attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "yarn",
      "runtimeExecutable": "yarn",
      "runtimeArgs": [
        "start"
      ],
      "port": 5858,
      "cwd": "${workspaceRoot}",
      "timeout": 10000
    }
  ]
}

此配置的问题在于它通常会超时,因为 webpack-dev-server 构建时间超过 10 秒。我可以在我的配置中增加 timeout ,但我注意到 VS Code 最终会显示一条消息 Cannot connect to runtime process (timeout after 30000 ms). ,所以我认为这不是一个好的解决方案。此外,这种配置会忽略我的断点,这告诉我我肯定在这里做错了。

这是我第一次尝试 Visual Studio Code,我通常不使用 NodeJS,但我得到了这个项目,所有这些脚本都在 package.json 已经定义,所以我正在尝试采用它并且因此,关于如何正确运行它的所有困惑。

Visual Studio Code 可以运行这样一个具有完整调试功能的项目吗?如果可以,我应该如何配置我的启动脚本?

原文由 errata 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

我最终在 launch.json 中进行了以下配置:

 {
    "type": "node",
    "request": "launch",
    "name": "Launch via Yarn",
    "runtimeExecutable": "yarn",
    "cwd": "${workspaceFolder}",
    "runtimeArgs": ["start:debug"],
    "port": 5858
}

以及 scripts 属性中的以下条目 package.json

 "start:debug": "node --inspect-brk=5858 ./server/index.js",

您可以包含一个 timeout 键(默认为 10000)并增加其值(如果有的话) prestart:debug 脚本中的 package.json 可能导致启动延迟实际的节点应用程序。

原文由 Luke 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题