此命令用于运行我的服务器: 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 does not support specifying an alternative tsconfig.json
和服务器配置不是我想用来查看和编辑代码的文件名
.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"
}
]
}
答案 0 :(得分:1)
您需要通过环境变量“ TS_NODE_PROJECT”传递--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"
}