如何在TypeScript文件更改时观察并重新加载ts-node。

29 浏览
0 Comments

如何在TypeScript文件更改时观察并重新加载ts-node。

我正在尝试使用TypeScript和Angular应用程序运行开发服务器,而无需每次转换ts文件。

我发现我可以使用ts-node运行.ts文件,但我也想监视.ts文件并重新加载我的应用程序/服务器。一个例子是命令gulp watch

admin 更改状态以发布 2023年5月22日
0
0 Comments

我已经放弃了nodemonts-node,转而选择了更好的替代方案,ts-node-dev
https://github.com/whitecolor/ts-node-dev

只需运行ts-node-dev src/index.ts

[编辑]
自从我写了这篇回答以来,nodemon已经有了很大的改进,所需的配置现在更轻量化,性能也更好。我目前在不同的项目中都使用它们,并对它们都很满意。

0
0 Comments

现在只需简单地执行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"
}

0