在我的开发环境中,我使用npm-run-all
(run-p
)并行运行两个npm脚本:WACH模式下的打印脚本编译器;和我的服务器。当我点击CTRL+C
时,我试图正常关闭我的服务器,但似乎SIGINT
或SIGTERM
都没有被捕获。有人能找出问题所在吗?
我在Windows、npm-run-all@^4.1.5
和nodemon@^2.0.20
上使用节点v18.3.0。
(我也试过使用concurrently
,但也有同样的问题...)
- 包.json*:
"scripts": {
"build": "tsc",
"start": "node --enable-source-maps ./dist/index.js",
"dev": "npm run build && run-p dev:*",
"dev:build": "tsc -w",
"dev:run": "nodemon ./dist/index.js"
}
- ./dist/索引.js*:
const shutdown = () => {
httpServer.stop()
socketServer.stop()
}
process.once('SIGINT', shutdown)
process.once('SIGTERM', shutdown)
1条答案
按热度按时间rekjcdws1#
NPM swallows the SIGTERM/SIGINT signals,因此要正常关闭您的应用,请不要使用
npm run
,而是使用node
本身