带有编译和 nodemon 问题的 Typescript npm 脚本

Typescript npm script with compilation and nodemon issue

我一直在关注几个 SO 链接,了解如何在一个命令中 运行 同时使用 tsc -w 和 nodemon app.js。

Link 我跟着:

我在 node.js 中使用打字稿进行一个项目。每次 ts 代码发生变化时,我都想使用 tsc -w 进行编译,然后使用 nodemon app.js 文件执行 运行ning 服务器。问题是我尝试了这两个命令,但它仍然不是 运行ning 第二个命令。我不知道为什么它不起作用。

我在 package.json 脚本中使用的命令

"dev1": "tsc -w && nodemon ./.build/src/app.js",

"dev2": "tsc && concurrently \"tsc -w\" \"nodemon ./.build/src/app.js\""

运行 npm 运行 dev1

运行 npm 运行 dev2

目前只有第一个命令是 运行ning,我看不到 nodemon 运行s 时会出现的日志。终端仅显示在日志下方:

Found 0 errors. Watching for file changes

[注意:当我尝试一个接一个地 运行 时,这两个命令都 运行 完美]

使用的版本(稍旧)

打字稿:3.0.1

nodemon: 2.0.7

ts-节点:5.0.1

任何帮助将不胜感激。我不想使用任何额外的包,比如 ts-node-dev。

有几件事需要检查(并仔细检查)

  • 确保您已经安装了 typescript 包(而不是 tsc 包)。做 npm uninstall tsc; npm i -D typescript
  • 确保 运行 tsc 命令正确,例如tsc -w app.ts(或者创建一个详细的tsconfig.json如果你有一个完整的源目录
  • 确保您为 nodemon 提供了正确的路径

这是一个可以开始使用的工作脚本:

mkdir my-ts-project
cd my-ts-project
npm init -y
npm i -D concurrently typescript nodemon
vim app.ts
npx concurrently "npx tsc -w app.ts" "nodemon app.js"

然后您可以更改 app.ts 并查看反映的更改。


提示:我建议使用 ts-node-dev 而不是 nodemon 并且仅将 tsc 用于生产构建。更简单。

对于那些仍在努力寻找解决方案的人,我终于从

找到了解决方案

将以下脚本添加到 package.json

"dev": "./node_modules/nodemon/bin/nodemon.js -e ts  --exec \"tsc && node ./.build/src/index.js\""

一旦你简单地更改了代码 运行 带有 npm 运行 dev 的开发脚本,它会启动 nodemon 并使其监视 .ts 文件(使用 -e 标志)。然后,每次 .ts 文件更改时,nodemon 将执行基本上编译的任务并 运行s 节点应用程序。