2017-10-16 14 views
0

child_process의 산란을 사용하는 동안 NVM와 노드 버전을 변경할 수 있지만, 내 기본 버전은 그래서, 방법과 노드 버전을 변경 6.Nodejs : 나는 스크립트를 실행하는 데 산란을 사용

동안 스크립트는 node8.x 필요로하는 방법 NVM은 다음 스크립트 호출 당신은에서 턴 쉘의 노드 버전 (NVM를 사용하여) 전환 스크립트 함수를 호출하는 코드를 수정할 수 있습니다 child_process의 산란

let linkstart =()=>{ 
 
    let cp = spawn('node', ['dist/app.js']); 
 

 
    cp.stderr.on('data', (data)=>{ 
 
     console.error('stderr: ', data.toString('utf8')); 
 
    }) 
 

 
    cp.stdout.on('data', (data)=>{ 
 
     console.info('stdout: ', data.toString('utf8')); 
 
    }) 
 

 
    return cp; 
 
}

답변

0

를 사용하는 동안.

#!/bin/sh 

nvm use v8.7.0 
node dist/app.js 

내가

let cp = spawn('nvm', ['use', 'v8.7.0', ';', 'node', 'dist/app.js']); 

처럼 뭔가를 시도하지만 다음과 같은 오류

Error: spawn nvm ENOENT 

에 있습니다, 그것을 더 파고, 우리는 모든 노드 스크립트에서 직접 nvm를 호출 할 수 없습니다 보인다 그것에 대한 추론은 여기에 @Github으로 주어진다. 가능한 해결책이 있다면 더 자세히 살펴 보겠습니다 :)

희망이 있습니다.

0

.js 파일을 실행중인 경우. process.fork를 사용해야합니다.

let setup = { 
    execPath : '/home/User/.nvm/v8.7.0/bin/node' , // path to binary 
    cwd: Path to dist/ 
    stdio : [0, 1, 2, 'ipc']  // [process.stdin, process.stdout, process.stderr, ipc] 
} 

let fork = require('child_process').fork; 
let child = fork('app.js', setup);