Я хочу очистить свой временный файл, когда люди control-c
(закрывают текущий скрипт cli).
У меня есть две опции библиотеки:
- https://www.npmjs.com/package/exit-hook
- https://www.npmjs.com/package/tmp
Оба сталкиваются с одной и той же проблемой, например, exit-hook
.
Проблема в том, что я должен execSync
что-то в моем скрипте, например:
const { execSync } = require("child_process");
execSync(`spawn some server`, {
// the server watch for something
stdio: "inherit"
});
exitHook(() => {
fs.removeSync("clear some file");
});
Если я запустил вышеупомянутый скрипт, сервер запустится и stdio распечатает хорошо, но когда я нажму control-c
, он покажет что-то вроде this
child_process.js:650
throw err;
^
Error: Command failed: spawn some server
...
at Module._compile (internal/modules/cjs/loader.js:1151:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
status: null,
signal: 'SIGINT',
output: [ null, null, null ],
pid: 42680,
stdout: null,
stderr: null
}
^C
Как заставить execSync
игнорировать SIGINT
, или как мне решить эту проблему?