2017-12-26 213 views
12

aşağıdaki yığın izini alıyorumaşağıdaki yudum görev pencereler üzerinde çalışan ancak ubuntu

/* 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'}); 
}); 

yudum görev üzerinde çalışan ama ben gerekli tüm dosyaları var

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 

debug olamaz değil düğüm modüllerinde de herhangi bir yardım gerçekten takdir edilmektedir. Yukarıdaki Dosya kullanımına

Daha referans - server/server.js ve ./client/src/app/shared/sdk geçerken https://github.com/rahulrsingh09/loopback-Angular-Starter/blob/master/gulpfile.js

+0

Gulpfile nispi yolu ''../Node_modules/.bin/lb-sdk'' geçerli mi? – GMaiolo

+0

evet gulp dosyası düğüm modülleri ile aynı adımda, bu klasöre cd dosya için –

+0

ithalat yolunu çalışır ve path.resolve işlevi ile node_modules dosyasını çözümlemeyi deneyin? var path = require ('path'); path.resolve (dosya) – metinata

cevap

4

Ben lb-sdk.cmd Eğer pencerelerde çalıştırmak zannediyorsunuz dosyasıdır yüzünden olduğunu düşünüyorum. Komutu aşağıya değiştirdiğimde hata gider. Windows stili dizin eğik çizgileri linux'tan farklıdır.

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

Daha fazla bilgi buldum ve bulduğum ikinci bir yanıt göndereceğim (yukarıda kabul edildi).

sen/linux arası spawn kullanabilirsiniz pencerelerde dizinleri değişen kaçınmak istiyorsanız

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

kazan-spawn (sohbet iletişim kutusundan) artık per the github repo korunmaz. Eğer aşağıdaki değişiklikleri yapın kullanarak ilgileniyorsanız:

  1. npm
  2. npm spawn-senkronizasyon yüklemek çapraz spawn yüklemek
  3. npm strongloop (needs to be reinstalled per this link)
  4. değişim 'google chrome' yüklemek tarayıcı eşitleme görevi per this link chrome.exe:
  5. çalıştırmak yudum
+0

ile bunu stacktrace ''olarak aldım. iç veya dış komut olarak tanınmaz, çalıştırılabilir program veya toplu iş dosyası. ' –

+0

Bir yol sorunu gibi geliyor, "./" öğesini kaldırmayı deneyin. node_modules param. Yani, 'node_modules/.bin/lb-sdk.cmd' yapın. –

+0

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

-1

Eğer basePath kullanmayı deneyebilirsiniz. Örneğin gibi:

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

Yup deneyeyim, ama ben zaten temel yolu kullanıyorum ve referans göstermeli veya aynı noktada sanırım, ama bir atış verecektir –

+0

Hala aynı hata @Krasimir benim sert şans, ben sadece niçin o niçin bu yüzden tek başına değil, tek başına çalışır ve linux iyi çalışır, aynı hata yapar Bu arada –