我正在尝试用TypeScript和Angular应用程序运行一个开发服务器,而不是每次都转译ts文件。

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


当前回答

步骤1:你可以简单地安装nodemon和ts-node(如果你已经安装了,跳过)

npm install --save-dev nodemon ts-node

步骤2:你可以在package.json中配置启动脚本

"start": "nodemon ./src/app.ts"

现在nodemon自动从项目中识别typescript,自己使用ts-node命令。使用npm start,它会自动编译/监视和重载。

如果你得到任何错误,如typescript模块没有在项目中找到。在项目文件夹中简单使用此命令。

npm link typescript

其他回答

把这个加到你的包里。json文件

scripts {
"dev": "nodemon --watch '**/*.ts' --exec 'ts-node' index.ts"
}

要做到这一点,你还需要安装ts-node作为dev-dependency

yarn add ts-node -D

运行yarn dev启动dev服务器

这对我来说很管用:

nodemon src/index.ts

显然,由于这个拉请求:https://github.com/remy/nodemon/pull/1552

我已经抛弃了nodemon和ts-node,取而代之的是一个更好的选择,ts-node-dev https://github.com/whitecolor/ts-node-dev

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

(编辑) 自从我写了这个答案,nodemon已经改进了很多,现在所需的配置更轻了,性能也更好了。我目前使用这两种方法(显然是在不同的项目中),并且都很满意。

nodemon和ts-node:

nodemon --watch source --ext ts,json --exec "node --loader ts-node/esm ./source/index.ts"

你可以使用ts-node-dev

当任何必需的文件发生变化时,它重新启动目标节点进程(作为标准的node-dev),但在重新启动之间共享Typescript编译过程。

安装

yarn add ts-node-dev --dev

还有你的包裹。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"
}