节点错误:命令行平坦的非法或缺少参数。开关

时间:2016-04-14 07:54:47

标签: node.js windows batch-file

我在Node.js 4.4.4

中使用spawn时遇到错误
  

节点错误:命令行平坦的非法或缺少参数。开关

这是我的代码:

    var bat = require.resolve('../src/util/bs/build.bat');
    var profile = require.resolve('../profiles/profile.js');
    var profileStr = '--profile' + ' ' + profile;
    var ls = spawn(bat, [profileStr]);

    ls.stdout.on('data', function (data) {
        console.log('stdout: ' + data);
    });

    ls.stderr.on('data', function (data) {
        console.log('stderr: ' + data);
    });

    ls.on('exit', function (code) {
        console.log('child process exited with code ' + code);
    });

从命令提示符调用时,.bat文件正常运行,如:

"C:\Projects\xxx\src\util\bs\build.bat --profile C:\Projects\xxx\profiles\app.profile.js"

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题,使用数组将参数传递给.bat。

示例:

var bat = require.resolve('../src/util/bs/build.bat');
var profile = require.resolve('../profiles/profile.js');

var ls = spawn(bat, ['--profile', profile]);

ls.stdout.on('data', function (data) {
    console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
    console.log('stderr: ' + data);
});

ls.on('exit', function (code) {
    console.log('child process exited with code ' + code);
});