Javascript 从npm script package.json捕获退出标志

Javascript 从npm script package.json捕获退出标志,javascript,npm,docker-compose,scripting,package.json,Javascript,Npm,Docker Compose,Scripting,Package.json,是否可以挂接npm脚本的退出标志 “脚本”:{ “服务”:“docker组装和npm启动” } 当使用ctrl+c退出脚本时,我希望能够调用docker compose down 对于shell脚本,可以通过“捕获”已签名的出口0来实现这一点 #/bin/bash 诱捕码头工人;回声停止;退出0'SIGINT 码头工人整理& npm启动 完成 我宁愿不使用shell脚本,这样它就可以在类似Unix的系统之外的其他操作系统上运行 我宁愿不使用shell脚本,这样它就可以在类似Unix的系统之外

是否可以挂接npm脚本的退出标志

“脚本”:{
“服务”:“docker组装和npm启动”
}
当使用
ctrl+c退出脚本时,我希望能够调用
docker compose down

对于shell脚本,可以通过“捕获”已签名的出口0来实现这一点

#/bin/bash
诱捕码头工人;回声停止;退出0'SIGINT
码头工人整理&
npm启动
完成
我宁愿不使用shell脚本,这样它就可以在类似Unix的系统之外的其他操作系统上运行

我宁愿不使用shell脚本,这样它就可以在类似Unix的系统之外的其他操作系统上运行

您可以在Node.js中编写脚本,使其与可以运行
npm start
的任何操作系统兼容

#!/usr/bin/env node

'use strict';
const childProcess = require('child_process');

childProcess.spawnSync('docker-compose', ['up'], { stdio: 'inherit'});

process.on('SIGINT', () => {
  console.log('SIGINT caught, running docker-compose down');
  childProcess.spawnSync('docker-compose', ['down'], { stdio: 'inherit' });
  process.exit(0);
});

console.log('go ahead, press control-c');
childProcess.spawnSync('npm', ['start'], { stdio: 'inherit' });

我喜欢这个想法,所以我猜package.json中没有直接的选项?