ドキュメント によると、デバッグする前にプログラムを起動することが可能です:
各デバッグセッションの開始前にタスクを起動するには、
preLaunchTask
を、tasksで指定されたタスクのいずれかのnameに設定します。 json。
「名前付き」タスクの構文例を見たことはありませんが、 スキーマドキュメント はtaskName
というプロパティを明らかにします。 launch.json preLaunchTasks
をタスクにリンクするためにそれを使用しようとしましたが、うまくいきませんでした。プログラムを起動すると、Visual Studio Codeが次のエラーを報告しました。
固有のタスク「launch-core」が見つかりませんでした。タスクが存在し、一意の名前を持っていることを確認してください。
カスタムの「名前付き」タスクは次のようになりました。
{
"taskName": "launch-core",
"version": "0.1.0",
"command": "C:\\utils\\mystuff.exe",
// The command is a Shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
}
次に、プロパティ名をtaskName
からname
、 このリンクに基づいて に変更してみました。それもうまくいきませんでした。
Intellisenseは、タスクに名前を付ける方法を提案しません。
Tasks.jsonファイルでタスクに一意の名前を付ける方法を知っている人はいますか?構文は何ですか?プロパティ名は何ですか?
最終的には、独自のnode.jsアプリを起動する前に、2つまたは3つのnode.jsプロセスを実行したいと思います。たとえば、デバッガーでアプリを起動する前に、次の3つのアプリを起動したいと思います。
sh -c 'cd ./manager/ && node manager.js'
sh -c 'cd ./adapter/ && node adapter.js'
sh -c 'cd ./core/ && node core.js'
Windowsボックスで作業している場合、私のタスクは次のようになります。
{
"taskName": "core-launch",
"version": "0.1.0",
// The command is tsc. Assumes that tsc has been installed using npm install -g TypeScript
"command": "start",
// The command is a Shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
// args is the HelloWorld program to compile.
"args": [
"ACD-Manager",
"/B",
"/D",
"./manager/",
"node",
"manager.js"
]
}
cmd start
capability を使用した上記のタスク。 1つではなく複数のノードタスクを起動する方法はまだわかりませんが、このタスク名の問題のため、1つのタスクを起動することすらできません。
Tasks.jsonファイルでタスクに名前を付けるにはどうすればよいですか?
それで、まだ関連がある場合、または誰かが同じ問題のこのスレッドを見つけた場合、私はそれがどのように機能するかを見つけました:
tasks.jsonで、'tasks'配列を作成する必要があります-コードヒントが役立ちます-オブジェクトの配列を保持します。オブジェクト内では、'taskName'キーと値のペアを使用できます。
例:
{
"version": "0.1.0",
"command": "npm",
"isShellCommand": true,
"args": ["run-script", "webpack"],
"showOutput": "always",
"tasks": [
{
"taskName": "runwebpack",
"suppressTaskName": true
}
]
}
私の場合、npm run-script webpack
コマンドを実行してからプロジェクトを実行します。 launch.jsonファイルでは、"preLaunchTask": "runwebpack"
は現在動作します。
注:この例では、suppressTaskName
はtrueです。省略するか、falseに設定すると、VS Codeはコマンドの後にtaskName
を追加します。
より一般的なアプローチは次のようになります。
{
"version": "0.1.0",
"command": "npm",
"isShellCommand": true,
"args": ["run-script"],
"showOutput": "always",
"tasks": [
{ "taskName": "webpack" }
]
}
後者の例では、tasks
配列を他のスクリプトで拡張して実行することもできます。
私の使い方のヒント:npm run-scriptは何をすべきかをpackage.jsonファイルのscripts
から取得しますオブジェクト。
編集:これはVS Code 1.3.1で動作します
FWIW、私はVS Code 1.20.1を使用しており、ここにpreLaunchTaskを機能させる方法があります
launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
...
"preLaunchTask": "npm: build",
}
]
}
私のpackage.json
:
{
...
"scripts": {
"build": "tsc"
...
}
}
バージョン2.0.0構成では、label
の代わりにtaskName
を使用するようになりました。
package.json:
...
"scripts": {
"tsc": "tsc",
...
}
...
launch.json(私のソースはsrc
ディレクトリにあり、tsc
はdist
ディレクトリにコンパイルされます):
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"preLaunchTask": "Compile",
"name": "Launch Program",
"program": "${workspaceFolder}/src/index.ts",
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"protocol": "inspector",
"sourceMaps": true
}
]
}
tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Compile",
"type": "npm",
"script": "tsc",
"problemMatcher": []
}
]
}
Gulpに関連して使用されるtaskNameを実際に見ただけです。他にもあるとは思いますが、私が洞察することはほとんどありません。おそらくこれは、あなたがすでに持っているものでスタートを切ることができますか?
質問のタイトルは次のとおりです。
「「preLaunchTasks」の使用とVisual Studioコードでのタスクの命名
PreLaunchTask *** s ***を定義する必要がありました。
here で説明されているdependOnプロパティを使用して、複数のタスクを設定できます。
たとえば、tasks.jsonの複合タスク:
{
"version": "2.0.0",
"tasks": [
{
"label": "Client Build",
"command": "gulp",
"args": ["build"],
"options": {
"cwd": "${workspaceRoot}/client"
}
},
{
"label": "Server Build",
"command": "gulp",
"args": ["build"],
"options": {
"cwd": "${workspaceRoot}/server"
}
},
{
"label": "Build",
"dependsOn": ["Client Build", "Server Build"]
}
]
}
タスクの命名に関する詳細情報を見つけることができます こちら 。
Vscode 1.36.1 (1.36.1)
の場合:
tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"label": "build:tsc",
"type": "npm",
"script": "build:tsc"
},
{
"label": "clean",
"type": "npm",
"script": "clean"
},
{
"label": "build",
"dependsOrder": "sequence",
"dependsOn": ["clean", "build:tsc"]
}
]
}
launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/dist/main.js",
"preLaunchTask": "build",
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"console": "integratedTerminal"
}
]
}
実行する前にnode ${workspaceFolder}/dist/main.js
、preLaunchTask
は最初にbuild
タスクを実行します。このタスクには、clean
とbuild
の2つのサブタスクが含まれます。最初にclean
タスクを実行し、次にbuild
タスクを実行します。
preLaunchTask
オプションにタスクのラベルを指定できます。