命令tsc -w -p server
观察server
目录将TypeScript编译成dist/server
文件夹(dist/server/app.js
是主要的 Node 脚本)。
命令 nodemon -w dist/server dist/server/app.js
监视 dist/server
文件夹并重新加载 dist/server/app.js
发生变化时。
问题:如果我同时运行两个命令,tsc
将花费一些时间,但 nodemon
启动得太快,当 dist/server/app.js
还不存在。
concurrently \"tsc -w -p server\" \"nodemon -w dist/server dist/server/app.js\"
另一方面,如果我按顺序运行命令,我会丢失nodemon
输出(即服务器输出),因为tsc
会观察变化并“窃取”控制台输出:
tsc -w -p server\ && nodemon -w dist/server dist/server/app.js
我用 nodemon 测试了这两种策略和 npm-run-all ,一种流行的替代方法。
相关问题(接受的答案并不能解决问题):
最佳答案
为 nodemon
添加 1000 毫秒的延迟为我解决了这个问题。
https://github.com/remy/nodemon#delaying-restarting
nodemon.json
{
"watch": ["build"],
"ext": "js",
"exec": "npm start",
"delay": 1000
}
package.json
{
"name": "demo",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node build/index.js",
"ts": "tsc -w",
"nodemon": "nodemon",
"code": "concurrently -n ts,nodemon npm:ts npm:nodemon"
},
"devDependencies": {
"concurrently": "^4.1.0",
"nodemon": "^1.18.9",
"typescript": "^3.2.2"
}
}
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es2017",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "build",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"include": [
"src/**/*"
]
}
npm 运行代码
关于node.js - 无法让 TypeScript 监视我的项目和 nodemon 重新加载它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50949639/