Javascript 从npm script package.json捕获退出标志
是否可以挂接npm脚本的退出标志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的系统之外
“脚本”:{
“服务”:“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中没有直接的选项?