OSXのノードj内の子プロセス内でnvmを起動しようとしていますが、その際に次のエラーが発生しています: /bin/sh:/ Users/miker/.nvm/nvm.sh:許可が拒否されました。子プロセスはコード126で終了しました(nvmへの明示的なパスは、実行しないと実行されないので、子プロセスは実行可能ファイルを見ることができません)。NodeJSチャイルドプロセスEXECコマンドで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);
});
である私は、誰もがこの問題の解決策を持っている場合、私に知らせてくださいNodeJS 7.2.1およびNVM 0.32.1 を使用しています。
うん、そうだった。 nvmスクリプトを入手することでそれができました。ありがとう。 – thxmike