相关疑难解决方法(0)

节点子进程执行命令失败,错误代码为1

我试图使用节点js子进程执行一些行并获取错误.以下是我的代码:

let cmd : string = "code " + PROJECTS[value];
exec(cmd, function callback(error, stdout, stderr) {
  console.log("started console app");
});
Run Code Online (Sandbox Code Playgroud)

错误:

cmd:"C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\code-settings-syn... (length: 82)"
code:1
killed:false
message:"Command failed: C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\c... (length: 99)"
signal:null
stack:undefined
Run Code Online (Sandbox Code Playgroud)

错误JSON的详细信息.

Full CMD : "C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\code-settings-sync""
Full message : "Command failed: C:\WINDOWS\system32\cmd.exe /s /c "code c:\Users\shana\Dropbox\code-settings-sync"\n"
Run Code Online (Sandbox Code Playgroud)

cmd child-process node.js typescript visual-studio-code

13
推荐指数
1
解决办法
5043
查看次数

nodejs exec命令失败,没有有用的错误消息

这是要执行的代码



    cp.exec("cc -Wall /tmp/test.c -o /tmp/test", function(e, stdout, stderr) {
        if (e) {
            var errorstr = "Compilation failed with the following error
"+ e.message.toString() client.send(errorstr) console.log(e, stdout, stderr) ee.prototype.removeAllListeners() } else if (stderr.length > 0) { client.send("Compilion finished with warnings\n"+ stderr + '\n') client.send('compiled') ee.prototype.emit('compiled') } else { client.send("Compilation successful") ee.prototype.emit('compiled') } })
Run Code Online (Sandbox Code Playgroud)

'client'是socket.io的回调参数的参数.'ee'是EventEmitter的一个实例

来了问题.在运行代码时,回调表明该命令不成功.console.log(e,stdout,stderr)是

{ [Error: Command failed: ] killed: false, code: false, signal: undefined } '' ''

/tmp/test.c是一个有效的C代码以及检查目录/ tmp,我发现test.c的是适当的和二进制"测试" 生成并在上壳运行,则适当地执行.所以我不明白为什么它会导致执行不成功.错误对象的信息也没有用.希望得到一些帮助/解释

javascript exec child-process node.js

11
推荐指数
1
解决办法
9340
查看次数

NodeJS 子进程 EXEC 命令失败,NVM 权限被拒绝 OSX

我试图在 OSX 上的 Nodejs 子进程中启动 nvm 但是,这样做时,我收到以下错误: /bin/sh: /Users/miker/.nvm/nvm.sh: 权限被拒绝。子进程以代码 126 退出(我将其称为 nvm 的显式路径,因为在没有它的情况下运行,子进程看不到可执行文件。)

这很明显是权限问题。但是,我不确定为什么,因为我可以毫无问题地自行启动命令。只有在子进程中启动时才会失败。也许,子进程在另一个配置文件的上下文中运行?如果是这样,有没有办法维持当前的配置文件或上下文?

这是一个示例代码

let exec = require('child_process').exec;

let child = exec('echo $NVM_DIR && $NVM_DIR/nvm.sh use && npm install', {
    cwd: './build/'
});

child.stdout.on('data',
    (data) => {
        console.log(data);
    });

child.stderr.on('data',
   (data) => {
        //throw errors
        console.log(data);
    });

child.on('close', (code) => {
    console.log('child process exited with code ' + code);
});
Run Code Online (Sandbox Code Playgroud)

我正在使用 NodeJS 7.2.1 和 nvm 0.32.1 如果有人有解决此问题的方法,请告诉我。

child-process node.js nvm

2
推荐指数
1
解决办法
4287
查看次数