如何在TypeScript文件更改时观察并重新加载ts-node。
如何在TypeScript文件更改时观察并重新加载ts-node。
我正在尝试使用TypeScript和Angular应用程序运行开发服务器,而无需每次转换ts文件。
我发现我可以使用ts-node
运行.ts
文件,但我也想监视.ts
文件并重新加载我的应用程序/服务器。一个例子是命令gulp watch
。
admin 更改状态以发布 2023年5月22日
我已经放弃了nodemon
和ts-node
,转而选择了更好的替代方案,ts-node-dev
https://github.com/whitecolor/ts-node-dev
只需运行ts-node-dev src/index.ts
[编辑]
自从我写了这篇回答以来,nodemon已经有了很大的改进,所需的配置现在更轻量化,性能也更好。我目前在不同的项目中都使用它们,并对它们都很满意。
现在只需简单地执行npm install --save-dev ts-node nodemon
,然后用.ts
文件运行nodemon
,它就会正常运行:
nodemon app.ts
旧版本:
我在开发环境中也遇到了同样的问题,后来发现可以通过改变nodemon
的默认行为来执行自定义命令。
例如,对于最新版本的nodemon
:
nodemon --watch "src/**" --ext "ts,json" --ignore "src/**/*.spec.ts" --exec "ts-node src/index.ts"
或者创建一个nodemon.json
文件,其内容如下:
{ "watch": ["src"], "ext": "ts,json", "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./src/index.ts" // or "npx ts-node src/index.ts" }
然后不带参数运行nodemon
。
通过这样做,您就可以在不必担心底层实现的情况下实现ts-node
进程的实时重新加载。
即使是较旧的nodemon
版本:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
或者更好的方法是:将nodemon的配置外部化为一个nodemon.json
文件,其内容如下,然后只需像Sandokan建议的那样运行nodemon
:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }