私は自分のtypescriptプロジェクトのための異なるビルドタスクをVSコードで定義しようとしています。私のtasks.jsonは、タスクが1つしかない限り動作します。1つのtasks.jsonでいくつかのtypescriptコンパイルタスクを定義する方法は?
tasks.json(コマンドパレット>タスクTSC)
{
"version": "0.1.0",
"command": "tsc",
"showOutput": "silent",
"args": ["-p", "."],
"problemMatcher": "$tsc"
"isShellCommand": true
}
私はいくつかのタスクを定義するとき、私は、コマンドパレットからそれらを選択することができますが、彼らは次のエラーを生成:
TS5042を:オプション「プロジェクトは、」コマンドラインでソースファイルを混在させることはできません
tasks.json(コマンドパレット>タスクdoSomethingの)
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"tasks":[
{
"taskName":"dosomething",
"showOutput": "silent",
"args": ["-p", "."],
"problemMatcher": "$tsc"
},
{
"taskName":"compileandwatch",
"showOutput": "silent",
"args": ["-p", ".", "-w"],
"problemMatcher": "$tsc"
}
]
}
質問:tasks.jsonでいくつかのタスクを定義する方法は?どのパラメータを "タスク"に含めるべきか、どのパラメータをルートに入れるべきか? microsoft docsに例はありません。
私は空の「引数」を残してみました:
"args": [],
しかし、私は、私はあなたが各タスクに
suppressTaskName = true
を設定するのを忘れて考える
ありがとう、私はこれを試してみます。しかし、 "suppressTaskName"は何をしますか?なぜ私はタスク名を抑制したいのですか? – Kokodoko
タスク名は、実行するプログラム名を指定するために使用されません。だからあなたが 'dosomething'という名前のタスクを持っているとき、vscodeは' node dosomething ../../../gulp.js ... 'と' args'の引数を実行しようとしません。代わりに引数だけを使ってコマンドを作成します。私のサンプル設定を見てください - 'build.dev'タスクは' node ../../../gulp.js ... 'を実行します – Amid
ありがとう。これは実際にそれらのコマンドを実行するノードを持つことに依存しますが、これは動作します。 tasks.jsonの中に完全に異なるコマンドを持つ方法はないようです(例えば、node-sassコンパイルコマンドとtscコンパイルコマンド) – Kokodoko