1

此命令用于运行我的服务器:1

nodemon
  -r ts-node/register
  -r tsconfig-paths/register
  --watch server/
  --watch shared/
  --ext ts,tsx,json
  --inspect-brk=24170
  ./server/index.ts

问题是,我需要ts-node接收--project ./tsconfig-server.json而不是使用默认的tsconfig.json. 简单地在-r ts-node/register(或其他任何地方)之后包含它会导致bad option: --project错误。

使用--exec 'node ./node_modules/ts-node/dist/bin.js --project ./tsconfig-amd.json'而不是-r ts-node/register工作,但调试器无法附加到进程。我认为这是因为它试图附加到 nodemon 进程而不是 nodemon 启动的节点进程?

但我不能在tsconfig.json这里使用默认文件名,因为VS Code 不支持指定替代项tsconfig.json,并且服务器配置不是我想要用于查看和编辑代码的配置


  1. 该命令实际上是由 VS Code per my 生成的.vscode/launch.json,如下所示:
    {
        // Use IntelliSense to learn about possible 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": "nodemon",
                "runtimeExecutable": "node",
                "args": [
                    "${workspaceFolder}/server/index.ts"
                ],
                "runtimeArgs": [
                    "${workspaceFolder}/node_modules/nodemon/bin/nodemon.js",
                    "-r",
                    "ts-node/register",
                    "-r",
                    "tsconfig-paths/register",
                    "--watch",
                    "server/",
                    "--watch",
                    "shared/",
                    "--ext",
                    "ts,tsx,json"
                ],
                "restart": true,
                "console": "integratedTerminal",
                "internalConsoleOptions": "neverOpen",
                "protocol": "inspector"
            }
        ]
    }
    
4

1 回答 1

2

您需要通过--project“TS_NODE_PROJECT”环境变量传递值。我在我的nodemon.json文件里做

{
    "restartable": "rs",
    "ignore": [".git", "node_modules/**/node_modules", "src/client"],
    "verbose": true,
    "execMap": {
      "ts": "node --require ts-node/register/transpile-only --require tsconfig-paths/register"
    },
    "watch": ["src/server", "typing"],
    "env": {
      "NODE_ENV": "development",
      "TS_NODE_PROJECT": "src/server/tsconfig.json"
    },
    "ext": "js,json,ts"
}
于 2020-07-30T13:32:49.760 回答