我在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"
答案 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);
});