我试图在电子中使用AngularJS运行一个命令,我得到了一个错误。
events.js:183 Uncaught Error: spawn dita ENOENT
at _errnoException (util.js:1024)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190)
at onErrorNT (internal/child_process.js:372)
at _combinedTickCallback (internal/process/next_tick.js:138)
at process._tickCallback (internal/process/next_tick.js:180)
_errnoException @ util.js:1024
ChildProcess._handle.onexit @ internal/child_process.js:190
onErrorNT @ internal/child_process.js:372
_combinedTickCallback @ internal/process/next_tick.js:138
_tickCallback @ internal/process/next_tick.js:180这是我的产卵命令 :-
spawn('dita',
['--input=C:\Users\aaa\Desktop\ditamaps\mobile-phone\mobilePhone.ditamap', '--output=C:\Users\aaa\Desktop', '--format=pdf'],
{
cwd: $scope.ditaPath + "\\bin"
}, function(error, stdout, stderr) {
// work with result
console.log(stdout);
console.log(stderr);
console.log(error);
});当我手动运行相同的批处理代码时,它运行得很好。这个错误是什么?我没办法拿到这个。
发布于 2018-09-27 15:18:54
创建带有派生的进程与在命令提示符上运行进程不一样,您可以传递可执行文件的绝对路径,例如,
spawn('/full/path/to/dita',
['--input=C:\Users\aaa\Desktop\ditamaps\mobile-phone\mobilePhone.ditamap', '--output=C:\Users\aaa\Desktop', '--format=pdf'],
{
cwd: $scope.ditaPath + "\\bin"
}, function (error, stdout, stderr) {
// work with result
console.log(stdout);
console.log(stderr);
console.log(error);
}
);或者如果您想模拟命令提示符
spawn('cmd.exe',
['dita', '--input=C:\Users\aaa\Desktop\ditamaps\mobile-phone\mobilePhone.ditamap', '--output=C:\Users\aaa\Desktop', '--format=pdf'],
{
cwd: $scope.ditaPath + "\\bin"
}, function (error, stdout, stderr) {
// work with result
console.log(stdout);
console.log(stderr);
console.log(error);
}
);这两种解决方案都应该有效,但在您的场景中,我想第二种解决方案可能很容易实现。
https://stackoverflow.com/questions/52536986
复制相似问题