VS Code中仅最后一个同类NPM任务被识别的原因及解决办法
问题原因与解决办法
你的问题核心是tasks.json存在JSON语法错误,每个任务对象最后一个属性末尾的多余逗号,导致VS Code解析配置时出错,只能识别到最后一个有效任务。
错误点说明
在JSON语法中,对象的最后一个键值对后面不能加逗号。你的配置里,每个任务的"type": "npm",、inputs里的"default": "british",都带了多余的逗号,这会让VS Code无法正确解析整个tasks数组,只保留最后一个没有语法错误的任务。
修复后的tasks.json配置
{ "version": "2.0.0", "inputs": [ { "type": "pickString", "id": "locale", "description": "Which localisation should be used in this task", "options": ["british", "american", "canadian"], "default": "british" } ], "tasks": [ { "label": "localise", "script": "localise:make", "options": { "env": { "NODE_ENV": "test", "PROJECT_UI_LOCALISATION": "${input:locale}" } }, "type": "npm" }, { "label": "localise:british", "script": "localise:make", "options": { "env": { "NODE_ENV": "test", "PROJECT_UI_LOCALISATION": "british" } }, "type": "npm" }, { "label": "localise:american", "script": "localise:make", "options": { "env": { "NODE_ENV": "test", "PROJECT_UI_LOCALISATION": "american" } }, "type": "npm" }, { "label": "localise:canadian", "script": "localise:make", "options": { "env": { "NODE_ENV": "test", "PROJECT_UI_LOCALISATION": "canadian" } }, "type": "npm" } ] }
后续验证步骤
- 保存修改后的tasks.json,重启VS Code或者执行
Tasks: Reload Tasks命令(按下Ctrl+Shift+P搜索该命令)。 - 再次打开
Tasks: Run Tasks,就能看到所有四个任务了。 - 对于launch.json中的配置,
"preLaunchTask": "localise:${input:locale}"需要确保对应的input定义正确,而"postDebugTask": "localise:british"现在应该能正常找到任务。
内容的提问来源于stack exchange,提问作者AncientSwordRage
相关产品推荐
相关产品推荐

