2015-11-01 20 views
10

Do tej pory używałem gulp do budowania maszynopisu i plików sass, ale teraz z powodu kilku nowych kroków kompilacji chciałbym ujednolicić wszystko i użyć węzła jako pojedynczego punktu wejścia (również węzeł dla uruchamianie zadań dławiących za pomocą npm uruchom taskName).Kod VS i zadania z węzłem

tasks.json jest dość proste, zadanie build powinien działać npm run watch:

{ 
    "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", 
} 

a wyjście:

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: 

Bazując na wyjściu, łyk jest nadal w jakiś sposób wykorzystywany, nawet myśl, że nie ma tego w tasks.json (gulpfile.json istnieje w katalogu głównym i podczas wyszukiwania rozwiązania znalazłem, że kod VS automatycznie go wykrywa, co zakładam, że może być problem?). Również właściwość taskName wygląda jak automatycznie dołączana do wiersza poleceń jako argument, który jest nieprawidłowy.

Mniejsza jednak pracuje przykład (ale nadal działa łyk dlatego maszynopis jest skompilowany dwa razy na każdy zapis):

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

Jak mogę mieć wiele zadań z VS w Kodeksie przez KMP?

+0

Szukam również podobnego rozwiązania. Odnośnie parametru taskName dołączonego do wiersza poleceń, poszukaj właściwości config 'suppressTaskName' jak wspomniano [tutaj] (http://scottaddie.com/2015/10/07/harnessing-webpack-with-visual-studio-code/) – superjos

+0

, spójrz na [to] (https://dlaa.me/blog/post/vscodenodetask), aby zobaczyć, jak uruchomić zadania skryptów npm z kodu VS – superjos

Odpowiedz

16

Jak wspomniano w moich komentarzach, jeśli szukasz, aby uruchamiać skrypty KMP zadania z kodu VS, poszukaj this article że zasadniczo nakazuje stworzenie .vscode\tasks.json tak:

{ 
    "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"] 
     } 
    ] 
} 

Jako alternatywa istnieje również przykładowe rozszerzenie kodu VS firmy Microsoft, którego celem jest wykrywanie i uruchamianie skryptów npm: vscode-npm-scripts

+0

, ale jak uruchomić kompilator tsc, jeśli głównym poleceniem jest npm ? czy każde zadanie nie może mieć własnego polecenia? – Kokodoko

+0

Przepraszam, nie rozumiem tego. Jeśli masz toolchain oparty na chrząszczach, to powinien to być grunt/gulp, aby uruchomić kompilator pod pokrywą, w jednym z jego zadań/kroków. Jeśli tak jest, domyślam się, że po prostu powołujesz się na to specyficzne zadanie typu grunt/gulp ze skryptów npm. Wyjaśnij więcej, jeśli źle to zrobiłem. – superjos

+0

Dziękuję za odpowiedź. W momencie pisania tego pytania powyższe rozwiązanie nie zadziałało, jeśli dobrze pamiętam. Ale teraz jest poprawna odpowiedź. –

Powiązane problemy