我正在尝试使用TypeScript和Angular应用程序运行开发服务器,而不必每次都转换ts文件。我发现我可以用它来运行,ts-node
但我也想像观察.ts
gulp watch一样观察文件并重新加载应用程序/服务器。
我正在尝试使用TypeScript和Angular应用程序运行开发服务器,而不必每次都转换ts文件。我发现我可以用它来运行,ts-node
但我也想像观察.ts
gulp watch一样观察文件并重新加载应用程序/服务器。
Answers:
在开发环境中,我一直在做同样的事情,直到我注意到nodemon
的API允许我们更改其默认行为以执行自定义命令。例如:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
甚至更好:将nodemon的配置外部化为nodemon.json
具有以下内容的文件,然后nodemon
按照Sandokan的建议运行:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
这样,您就可以实时重载ts-node
进程,而不必担心基础实现。
干杯!
已更新为最新版本的nodemon:
创建nodemon.json
具有以下内容的文件。
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node ./src/index.ts" // or "npx ts-node src/index.ts"
}
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./app-server.ts" }
只需键入nodemon
./
在文件夹名称之前添加的错误,并且该名称损坏了。这为我工作:{ "verbose": true, "watch": ["server/**/*.ts"], "ext": "ts js json", "ignore": ["server/**/*.spec.ts"], "exec": "ts-node index.ts" }
。和命令行:nodemon --watch server/**/*.ts --ignore server/**/*.spec.ts --verbose --exec ts-node index.ts
ext
在配置文件中设置,因此其外观会有所变化。我的配置文件如下所示:{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "ext": "ts js json", "_exec": "node dist/startup.js", "exec": "ts-node src/startup.ts" }
我已经放弃了nodemon
,ts-node
转而支持更好的替代方法,ts-node-dev
https://github.com/whitecolor/ts-node-dev
赶紧跑 ts-node-dev src/index.ts
tsc --watch
。
nodemon
使用快10倍ts-node
。谢谢!
"start": "ts-node-dev src"
。不需要babel,nodemon或它随附的任何配置。一切都为您处理。
这是使用npm脚本替代HeberLZ的答案的替代方法。
我的package.json
:
"scripts": {
"watch": "nodemon -e ts -w ./src -x npm run watch:serve",
"watch:serve": "ts-node --inspect src/index.ts"
},
-e
标志设置要寻找的扩展,-w
设置监视目录,-x
执行脚本。--inspect
该watch:serve
脚本中实际上是一个node.js标志,它仅启用调试协议。
ts-node --inspect -- src/index.ts
由于这个原因。
-e ts -w ./src
为我完成了技巧-这与Loopback4 CLI生成的项目一起工作
我专门针对此问题创建了tsc-watch
库。您可以在npm上找到它。
明显的用例是:
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"
"[...] similar to nodemon but for TypeCcript."
:)
你可以用 ts-node-dev
当任何必需的文件发生更改时(作为标准node-dev),它都会重新启动目标节点进程,但在两次重新启动之间共享Typescript编译过程。
安装
yarn add ts-node-dev --dev
和你的package.json可能是这样的
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"tsc": "tsc",
"dev": "ts-node-dev --respawn --transpileOnly ./src/index.ts",
"prod": "tsc && node ./build/index.js"
}
我做了
"start": "nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec ts-node src/index.ts"
和纱线开始.. ts节点不像'ts节点'
我宁愿不使用ts-node并且总是从dist文件夹运行。
为此,只需使用默认配置设置package.json即可:
....
"main": "dist/server.js",
"scripts": {
"build": "tsc",
"prestart": "npm run build",
"start": "node .",
"dev": "nodemon"
},
....
然后添加nodemon.json配置文件:
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "npm restart"
}
在这里,我使用“ exec”:“ npm restart”
因此所有ts文件都将重新编译为js文件,然后重新启动服务器。
要在开发环境中运行,
npm run dev
使用此设置,我将始终从分布式文件运行,而无需使用ts-node。
index.ts
是快速实例,我该如何杀死它并重新启动