向 nodemon 注册时将 --project 传递给 ts-node
Posted
技术标签:
【中文标题】向 nodemon 注册时将 --project 传递给 ts-node【英文标题】:Passing --project to ts-node when it's registered with nodemon 【发布时间】:2019-06-08 14:36:23 【问题描述】:这个命令用来运行我的服务器: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
和服务器配置不是我想要用于查看和编辑代码的配置
-
该命令实际上是由 VS Code 根据我的
.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"
]
【问题讨论】:
您的问题解决了吗? @EhouarnPerret 不,我没有;我最终放弃了,并使用tsconfig.json
进行服务器配置,而不是我想要的客户端配置。
【参考方案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"
【讨论】:
也可以直接添加到package.json
:"nodemonConfig": "env": "TS_NODE_PROJECT": "server/tsconfig.json"
。在 nodemon 文档 (github.com/remy/nodemon#nodemon) 中提供了更多信息。以上是关于向 nodemon 注册时将 --project 传递给 ts-node的主要内容,如果未能解决你的问题,请参考以下文章
Nodemon安装问题。当我在我的节点 js 中安装 nodemon
nodemon : 无法加载文件 C:Program Files odejs odemon.ps1,因为在此系统上禁止运行脚本。
nodemon : 无法加载文件 C:Program Files odejs odemon.ps1,因为在此系统上禁止运行脚本。