我正在尝试为VS Code中的typescript项目定义不同的构建任务。只要只有一个任务,我的tasks.json就可以工作。
tasks.json(命令pallette> task tsc)
{
"version": "0.1.0",
"command": "tsc",
"showOutput": "silent",
"args": ["-p", "."],
"problemMatcher": "$tsc"
"isShellCommand": true
}
当我定义几个任务时,我可以从命令面板中选择它们,但它们会产生以下错误:
TS5042:选项'project'不能与命令行上的源文件混合
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”留空:
"args": [],
然后我收到此错误“dosomething.ts”未找到
答案 0 :(得分:1)
我想你忘了在每项任务上设置suppressTaskName = true
。下面是一个适合我的tasks.json示例。请注意,这样args
定义了应该运行的内容和传递给它的参数,任务名称不会影响结果命令:
{
"version": "0.1.0",
"command": "node",
"windows": {
"command": "node.exe"
},
"isShellCommand": true,
"tasks": [
{
"taskName": "build.dev",
"args": ["${workspaceRoot}/node_modules/gulp/bin/gulp.js", "build.dev"],
"isBuildCommand": true,
"suppressTaskName": true,
"problemMatcher": [
"$tsc"
]
},
{
"taskName": "document.code",
"args": ["${workspaceRoot}/node_modules/gulp/bin/gulp.js", "document.code"],
"suppressTaskName": true,
"problemMatcher": []
},
{
"taskName": "start.specs.web.server",
"args": ["${workspaceRoot}/node_modules/http-server/bin/http-server",
"${workspaceRoot}/dist/dev/specs"],
"suppressTaskName": true,
"problemMatcher": []
}
]
}
希望这有帮助。