命令tsc -w -p server
观察server
目录将 TypeScript 编译到dist/server
文件夹中(dist/server/app.js
是主节点脚本(。
Commandnodemon -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测试了这两种策略,这是一种流行的替代方案。
相关问题(接受的答案不能解决问题(:
- 有没有办法使用 npm 脚本来运行 tsc -watch && nodemon --watch?
添加1000 毫秒的延迟以nodemon
为我解决了这个问题。
https://github.com/remy/nodemon#delaying-restarting
Nodemon.json
{
"watch": ["build"],
"ext": "js",
"exec": "npm start",
"delay": 1000
}
包.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 run code