我正在构建一个应用程序,它使用 Node.js 将多个 CLI 应用程序捆绑在一起以供内部使用。我正在使用几个 NPM 依赖项,其中一些有自己的 CLI 命令二进制文件。
为了用户友好,我在自己的应用程序中使用了Commander
git 风格的子命令。.js
该模块要求每个充当二进制文件的子命令都有一个单独的文件。
这类似于我到目前为止所拥有的,以及我想要完成的事情:
var program = require('commander'),
spawn = require('child_process').spawn;
program.parse(process.argv);
var args = ['./node_modules/exampleDep/.bin/index.js'].push(program.args);
var wrap = spawn('node', args);
wrap.stdout.on('data', function (data) {
process.stdout.write(data);
});
wrap.stderr.on('data', function (data) {
process.stderr.write(data);
});
所以基本上我试图在我自己的内部包装另一个二进制文件。此方法有效,但感觉有点 hack-ish,它会打开 2 个Node.exe
.