2017-12-26 30 views
12

나는 다음과 같은 스택 추적을 얻고있다다음 꿀꺽 꿀꺽의 작업 창에서 작업을하지만, 우분투

/* Run the npm script npm run buildLsdk using gulp */ 
gulp.task('sdk', function() { 
    if (process.cwd() != basePath) { 
    process.chdir('..'); 
    // console.log(process.cwd()); 
    } 
    spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q'], {stdio: 'inherit'}); 
}); 

꿀꺽 작업에 작업을하지만 난 내가 필요한 모든 파일이

Error: spawn ./node_modules/.bin/lb-sdk ENOENT 
    at exports._errnoException (util.js:1022:11) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) 
    at onErrorNT (internal/child_process.js:359:16) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 
    at Module.runMain (module.js:607:11) 
    at run (bootstrap_node.js:420:7) 
    at startup (bootstrap_node.js:139:9) 
    at bootstrap_node.js:535:3 

를 디버깅 할 수 없습니다되지 않는다 노드 모듈에서도 도움이된다. 위의 파일 사용에

더 많은 참조 - server/server.js./client/src/app/shared/sdk을 전달할 때 https://github.com/rahulrsingh09/loopback-Angular-Starter/blob/master/gulpfile.js

+0

gulpfile 상대 경로''./node_modules/.bin/lb-sdk''가 유효합니까? – GMaiolo

+0

예 gulp 파일이 노드 모듈과 동일한 단계에 있습니다. 해당 폴더에 대한 cd가 작동합니다. –

+0

파일 경로를 가져온 다음 path.resolve 함수로 node_modules 파일을 확인하십시오. var 경로 = 필요 ('경로'); path.resolve (file) – metinata

답변

4

lb-sdk.cmd는 Windows에서 실행해야하는 파일이기 때문에 생각합니다. 내가 아래 명령을 변경하면 오류가 사라집니다. Windows 스타일 디렉토리 슬래시가 Linux와 다릅니다.

gulp.task('sdk', function() { 
spawn(
    '.\\node_modules\\.bin\\lb-sdk.cmd', 
    [ 
    '.\\server\\server.js', 
    '.\\client\\src\\app\\shared\\sdk', 
    '-q' 
    ], {stdio: 'inherit'} 
); 
}); 

나는 좀 더 많은 정보를 발견, 나는 (하나 받아 들여졌다 위) 내가 찾은 두 번째 대답을 게시 할거야.

당신이/리눅스 당신이 교차 알 수 있습니다 창에서 디렉토리를 변경하는 것을 방지하려면

: https://www.npmjs.com/package/cross-spawn

윈 - 산란 (채팅 대화 상자에서)는 더 이상 per the github repo 유지되지 않습니다. 당신은 다음과 같이 변경하게 사용에 관심이 있다면 :

  1. NPM은
  2. NPM 산란 싱크를 설치 크로스 산란을 설치를
  3. NPM strongloop (needs to be reinstalled per this link)
  4. 변화 '구글 크롬'을 설치 브라우저 동기화 작업은 per this link를 chrome.exe의합니다 :
  5. 실행 꿀꺽는
+0

나는 이것을 stacktrace로 얻는다. '' 작동 가능한 프로그램 또는 배치 파일로 내부 또는 외부 명령으로 인식되지 않습니다. ' –

+0

경로 문제와 유사하게 들리므로 "./"을 제거하십시오. node_modules 매개 변수에서. 그러므로 'node_modules/.bin/lb-sdk.cmd'로 만드십시오. –

+0

https://stackoverflow.com/questions/20765337/how-to-fix-is-not-an-internal-or-external-command-error –

-1

당신은 basePath를 사용하여 시도 할 수 있습니다. 예를 들면 다음과 같습니다.

spawn(
    './node_modules/.bin/lb-sdk', 
    [ 
    basePath + '/server/server.js', 
    basePath + '/client/src/app/shared/sdk', 
    '-q' 
    ], {stdio: 'inherit'} 
); 
+0

그래도 내가 시도해 보도록하겠습니다 만 이미 기본 경로를 사용하고 있으며 참조하거나 참조해야합니다. 같은 지점 내가 추측하지만, 그것을 줄 것이다 –

+0

여전히 같은 오류 @ Krasimir 내 하드 행운, 난 그냥 그것을 왜 worng 일을 혼자 서서 번들 작업 및 리눅스에서 잘 작동 작동하지 않습니다 같은 오류 '에 의해 –