Widziałem, że można zdefiniować zadanie w VSCode. Ale nie jestem pewien, jak zdefiniować wiele zadań w tasks.json
pliku.
visual-studio-code
vscode-tasks
Franz Gsell
źródło
źródło
Odpowiedzi:
Na wszelki wypadek, gdyby to komuś pomogło ... Jeśli nie masz / nie chcesz gulp / grunt / etc ... ani dodatkowego skryptu powłoki, który będzie wysyłał polecenia zadań, „npm run” już tam jest.
dotyczy to pakietu webpack i mokka, jak w przypadku „Buduj i testuj”, Shift+ Ctrl+ B, Shift+ Ctrl+T
.vscode / tasks.json:
{ "name": "npmTask", //... "suppressTaskName": true, "command": "npm", "isShellCommand": true, "args": [ "run" ], "tasks": [ { //Build Task "taskName": "webpack", //Run On Shift+Ctrl+B "isBuildCommand": true, //Don't run when Shift+Ctrl+T "isTestCommand": false, // Show the output window if error any "showOutput": "silent", //Npm Task Name "args": [ "webpack" ], // use 2 regex: // 1st the file, then the problem "problemMatcher": { "owner": "webpack", "severity": "error", "fileLocation": "relative", "pattern": [ { "regexp": "ERROR in (.*)", "file": 1 }, { "regexp": "\\((\\d+),(\\d+)\\):(.*)", "line": 1, "column": 2, "message": 3 } ] } }, { //Test Task "taskName": "mocha", // Don't run on Shift+Ctrl+B "isBuildCommand": false, // Run on Shift+Ctrl+T "isTestCommand": true, "showOutput": "always", "args": [ "mocha" ] } ] }
package.json:
{ ... "scripts": { "webpack": "webpack", "mocha": "/usr/bin/mocha" }, ... }
źródło
To, co pomogło mi lepiej to zrozumieć, to sekwencja argumentów przekazywanych do polecenia. Dla niektórych może to być oczywiste, ale nie jest to jasne w dokumentacji.
Pomijanie niektórych pól, aby skupić się tylko na wysyłanym poleceniu:
Powyższa definicja spowoduje powstanie następującego polecenia:
Nazwa zadania
myTask
jest zawsze ostatnia. Od wersji 0.4 można go pominąć"suppressTaskName": true
.źródło
Spróbuj tego
źródło
Używam następującego pliku tasks.json do uruchamiania wielu scenariuszy kompilacji TypeScript. Umieszczam plik tsconfig.json w każdym folderze, dzięki czemu mogę indywidualnie dostroić dane wyjściowe każdego folderu. Po prostu upewnij się, że pomijasz nazwę zadania, ponieważ próbuje umieścić ją w ciągu polecenia.
Tak wygląda struktura folderów, gdzie / script to wyjściowy katalog główny, a / source to wejściowy katalog główny. Oba foldery odwołują się do deklaracji typów w folderze / typingd i / typings. Język TypeScript jest w pewnym stopniu ograniczony do używania ścieżek względnych w odniesieniach zewnętrznych, więc pomaga uprościć sprawę, jeśli te struktury folderów są podobne.
O tak, łatwiej jest uruchamiać je wybiórczo, jeśli oznaczysz je jako nieskompilowane i zastąpisz klucz kompilacji, aby wybrać określone zadanie z listy, na przykład ...
Aktualizacja : Jeśli chcesz, zawsze możesz być całkowicie nieuczciwy. Mogą istnieć lepsze sposoby obsługi argumentów, ale w tej chwili działa to dla mnie pod OSX.
źródło
Nie znam właściwej odpowiedzi na to pytanie (i też chciałbym wiedzieć), ale moje brzydkie obejście na wypadek, gdyby komuś pomogło. Jestem na Windowsie, skończyło się na stworzeniu prostego skryptu wsadowego, który może zawierać po prostu
Wtedy mój plik tasks.json wygląda mniej więcej tak
źródło
We właściwości zadań można wyświetlić więcej niż jedno zadanie. Coś jak:
źródło
tsc
imocha
.Ta funkcja została dodana w programie Visual Studio Code v1.9 (styczeń 2017) . Przykład i tekst pochodzą z informacji o wersji :
{ "version": "0.1.0", "tasks": [ { "taskName": "tsc", "command": "tsc", "args": ["-w"], "isShellCommand": true, "isBackground": true, "problemMatcher": "$tsc-watch" }, { "taskName": "build", "command": "gulp", "args": ["build"], "isShellCommand": true } ] }
Polecenia na zadanie
Możesz teraz zdefiniować różne polecenia dla każdego zadania ( # 981 ). Pozwala to na uruchamianie różnych poleceń dla różnych zadań bez pisania własnego skryptu powłoki.
tasks.json
Plik za pomocą poleceń zadania jak wygląda [ww.]źródło
Wydaje się, że jest to błąd VSCode od wersji 0.5.0
Mój gulp.js:
Zwróć uwagę, że pierwsze zadanie używa isBuildCommand, więc uruchamia się CTRL + SHFT + B, a następne zadanie to isTestCommand, więc uruchamia się CTRL + SHFT + T. Jednak aby pierwsze zadanie zaakceptowało argumenty, nazwa zadania i argumenty musiały zostać odwrócone.
Od wersji VSCode 0.5.0 powyższe działa, ale poniższe nie działają:
Oto dane wyjściowe z task.json z poprawną kolejnością zadań i argumentów:
Oto poprawne dane wyjściowe z pliku tasks.json z nazwą zadania i argumentem odwróconym podczas korzystania z argumentów:
źródło
Począwszy od wydania z lutego 2017 r., Możesz używać Terminal Runner i komponować wiele zadań, konfigurując zadania zależności. To trochę dziwne, ponieważ otworzy oddzielny zintegrowany terminal dla każdego zadania, który musisz obserwować, aby sprawdzić, czy coś działa i pamiętaj o zamknięciu („układają się”), i nie otrzymasz powiadomienia „gotowe” , ale wykonuje swoją pracę. Funkcjonalność jest wstępna, ale obiecująca. Oto przykład uruchomienia tsc i jspm dla aplikacji Cordova.
źródło
Pracowały dla mnie:
tasks.json:
MyProject.UnitTests \ project.json :
Uruchom bower: Ctrl + Shift + B z vscode Uruchom testy: Ctrl + Shift + T z vscode
źródło
To działa dla mnie ...
Wiem, że jest tu wiele różnych odpowiedzi, ale moje podejście znowu było trochę inne, więc pomyślałem, że dodam moje 2 pensy.
Jestem w systemie Windows i używam zewnętrznego pliku wsadowego do uruchamiania poleceń. Jest podobna do powyższej odpowiedzi Jonathana, ale nie przesyłam do niej żadnych poleceń, co oznacza, że mój plik „tasks.json” jest inny.
Mogę z czasem zmienić to podejście (na przykład jeszcze nie zabrałem się za zabawę łykiem), ale ta metoda działa dla mnie w tej chwili doskonale.
Używam kierownic do tworzenia szablonów html, babel, więc mogę używać kodu ES6 i lintera kodu do wychwytywania błędów. Na koniec plik wsadowy uruchamia przeglądarkę z moją stroną startową (index.html)
Oto mój plik wsadowy o nazwie run_tasks.bat:
A oto mój plik tasks.json:
Następnie w VSCode wciskam „CTRL + SHIFT + B”, aby uruchomić plik wsadowy.
źródło
Mam aplikację Electron, która musi skompilować mniej arkuszy stylów, a następnie skompilować i uruchomić program. Użyłem rozwiązania @Oceana, które zadziałało ... nic innego nie zadziałało.
Moje pliki tasks.json i build-tasks.bat znajdują się w katalogu .vscode w katalogu głównym projektu.
build-tasks.bat
tasks.json
źródło
Dzięki temu wątkowi mam teraz kompilację C # / dnxcore50 i testowanie debugowania itp. Pracujące w vscode na osx z tym:
Jestem pewien, że linux byłby zasadniczo taki sam. Jedyną rzeczą, która mnie irytuje, jest konieczność utrzymywania plików .csproj tylko do debugowania. Z niecierpliwością czekam na sposób debugowania za pomocą dnx, chociaż nie szukałem teraz od kilku tygodni.
źródło