NodeJS 使用npm-run-all时正常关闭

pqwbnv8z  于 2022-12-12  发布在  Node.js
关注(0)|答案(1)|浏览(152)

在我的开发环境中,我使用npm-run-allrun-p)并行运行两个npm脚本:WACH模式下的打印脚本编译器;和我的服务器。当我点击CTRL+C时,我试图正常关闭我的服务器,但似乎SIGINTSIGTERM都没有被捕获。有人能找出问题所在吗?
我在Windows、npm-run-all@^4.1.5nodemon@^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)
rekjcdws

rekjcdws1#

NPM swallows the SIGTERM/SIGINT signals,因此要正常关闭您的应用,请不要使用npm run,而是使用node本身

相关问题