2015-11-01 16 views
10

Şimdiye kadar yapı kalıpları ve sass dosyaları oluşturmak için yontma kullandım, ancak şimdi birkaç yeni adımdan dolayı her şeyi birleştirmek ve düğümü tek bir giriş noktası olarak kullanmak istiyorum. npm üzerinden görev görevleri yerine getirme görevName).VS Kod ve görevlerle ilgili görevler

tasks.json oldukça basit, görev buildnpm run watch çalışmalıdır:

{ 
    "version": "0.1.0", 
    "command": "npm", 
    "isShellCommand": true, 
    "tasks": [ 
     { 
      "taskName": "build", 
      "isBuildCommand": true, 
      "showOutput": "always", 
      "isWatching": true, 
      "args": [ 
       "run", "watch" 
      ] 
     } 
    ] 
} 

package.json

"scripts": { 
    "watch": "gulp default", 
} 

Ve çıkışı: çıkışına dayanarak

gulp default build 
[14:20:54] Using gulpfile PATH_TO/gulpfile.js 
[14:20:54] Task 'build' is not in your gulpfile 
[14:20:54] Please check the documentation for proper gulpfile formatting 
npm ERR! Windows_NT 6.3.9600 
npm ERR! argv "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "watch" "build" 
npm ERR! node v0.12.2 
npm ERR! npm v2.7.4 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] watch: `gulp default build` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] watch script 'gulp default build'. 
npm ERR! This is most likely a problem with the 2 package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  gulp default build 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls 2 
npm ERR! There is likely additional logging output above. 
npm ERR! Please include the following file with any support request: 

, gulp hala bir şekilde kullandı bile'da bunun bir işareti olmadığını düşündüm( gulpfile.json, kök dizinde bulunur ve bir çözüm ararken, VS Kodunun otomatik olarak algıladığını buldum; bu sorun olabileceğini düşünüyor muyum?). Ayrıca taskName özelliği, yanlış olan bir argüman olarak komut satırına otomatik olarak eklenmiş gibi görünüyor.

Daha küçük ama çalışma örneği (ama yine de bu nedenle typescript her kurtarmak iki kez derlenmektedir yudum çalışır): NPM yoluyla VS Kanununda ile

{ 
    "version": "0.1.0", 
    "command": "npm", 
    "isShellCommand": true, 
    "args": [ 
     "run", "watch" 
    ], 
    "showOutput": "always" 
} 

nasıl olabilir çoklu görevler? temelde aşağıdaki gibi bir .vscode\tasks.json oluşturmak için talimat this article arayın VS Kanunu gelen npm komut görevleri çalıştırmak için arıyorsanız, benim yorum belirtildiği gibi

+0

Benzer bir çözüm de arıyorum. Komut satırına eklenen taskName ile ilgili olarak, burada belirtildiği gibi "suppressTaskName" config özelliğini arayın (http://scottaddie.com/2015/10/07/harnessing-webpack-with-visual-studio-code/) – superjos

+0

Ayrıca , npm betikleri görevlerini VS Code – superjos

cevap

16

: Alternatif olarak

{ 
    "version": "0.1.0", 
    "command": "npm", 
    "isShellCommand": true, 
    "suppressTaskName": true, 
    "tasks": [ 
     { 
     // Build task, Ctrl+Shift+B 
     // "npm install --loglevel info" 
     "taskName": "install", 
     "isBuildCommand": true, 
     "args": ["install", "--loglevel", "info"] 
     }, 
     { 
     // Test task, Ctrl+Shift+T 
     // "npm test" 
     "taskName": "test", 
     "isTestCommand": true, 
     "args": ["test"] 
     }, 
     { 
     // "npm run lint" 
     "taskName": "lint", 
     "args": ["run", "lint"] 
     } 
    ] 
} 

, orada Ayrıca, Microsoft'un örnek bir VS Kodu uzantısı, özellikle npm komut dosyalarını algılamayı ve çalıştırmayı amaçlamaktadır: vscode-npm-scripts

+0

'dan nasıl çalıştıracağınızı görmek için [this] (https://dlaa.me/blog/post/vscodenodetask) 'a bakın, ancak ana komut npm ise tsc derleyicisini nasıl çalıştırırsınız ? her görevin kendi komutu olamaz mı? – Kokodoko

+0

Üzgünüm, anlamıyorum. Grunt/gulp-bazlı bir takım zinciriniz varsa, kapakların altındaki tsc derleyicisini görevlerinden/adımlarından birinde çalıştırmak için grunt/gulp'un görevi olmalıdır. Eğer durum buysa, sanırım sadece bu özel homurdanma/gulp görevini npm betiklerinden çağırıyorsunuz. Lütfen yanlış anladıysam daha fazla açıkla – superjos

+0

Cevabınız için teşekkür ederiz. Ben doğru cevap hatırlatırsam, yukarıdaki çözüm işe yaramadı. Ama şimdi doğru cevap. –