我正在尝试使用TypeScript和Angular应用程序运行开发服务器,而不必每次都转换ts文件。我发现我可以用它来运行,ts-node但我也想像观察.tsgulp watch一样观察文件并重新加载应用程序/服务器。
我正在尝试使用TypeScript和Angular应用程序运行开发服务器,而不必每次都转换ts文件。我发现我可以用它来运行,ts-node但我也想像观察.tsgulp 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是快速实例,我该如何杀死它并重新启动