Visual Studio Code 忽略打字稿版本设置
Posted
技术标签:
【中文标题】Visual Studio Code 忽略打字稿版本设置【英文标题】:Visual Studio Code ignores typescript version settings 【发布时间】:2017-05-21 14:22:06 【问题描述】:我无法让 Visual Studio Code 更新它正在运行的打字稿版本。
我已经详细阅读了this question的答案。
我已尝试将我的用户设置设置为:
"typescript.tsdk": "C:\\Users\\myUser\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib"
这没有帮助。
我也尝试将我的工作区设置设置为:
"typescript.tsdk": "./node_modules/typescript/lib"
这似乎也没有效果。
我将任务运行器配置为运行 tasks.json 并将其设置为以下内容:
"version": "0.1.0",
"command": "tsc",
"args": ["-v"],
"echoCommand": true
这将使用 -v 命令调用 tsc(以输出版本)。
当我按下 ctrl+shift+B 时,输出显示
运行命令> tsc -v 版本 1.8.34
我还需要做些什么来让 Visual Studio Code 更新其 Typescript 版本吗?
注意:我去了上面尝试过的两条路径,并在 bin 文件夹中执行了 tsc -v 并且都返回了 2.1.4
注意二:我已经尝试过多次重启 Visual Studio Code。
注意 III:当我从 C: 的命令提示符运行 tsc -v 时,它会输出 2.1.4
我正在运行 Visual Studio Code 1.8.1
更新:
我将 tasks.json 更改为运行 where tsc,这是输出:
运行命令> where tsc C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.js C:\Users\myUser\AppData\Roaming\npm\tsc C:\Users\myUser\AppData\Roaming\npm\tsc.cmd
所以我可以看到它从哪里获得旧版本的打字稿,但我不明白为什么它不使用“覆盖”版本。
我唯一的猜测是覆盖不适用于构建。它仅适用于智能感知等。 不过,我需要一种方法来改变这一点……
【问题讨论】:
【参考方案1】:我致力于 VSCode 中的 TypeScript 和 javascript 支持。
typescript.tsdk
设置用于 IntelliSense 的 VSCode 中使用的 TypeScript 版本。它不会影响用于运行任务的tsc
版本。任务使用与命令行相同的逻辑来解析tsc
。
要在任务中使用 tsc
的本地副本,请将 task.json
更改为:
"version": "0.1.0",
"command": "./node_modules/.bin/tsc",
"args": ["-v"],
"echoCommand": true
或者,在 Windows 上:
"version": "0.1.0",
"command": ".\\node_modules\\.bin\\tsc.cmd",
"args": ["-v"],
"echoCommand": true
希望这有助于解决问题。请let us know,如果有任何想法可以使文档更清晰,或者您甚至可以submit a PR to improve the docs。
【讨论】:
非常感谢您的回答!我曾尝试过类似的东西,但无法让它工作。当我输入你的建议时,我得到了一个错误。将isShellCommand
添加为 true 给了我错误消息:'。'不被识别为内部或外部命令、可运行程序或批处理文件。我试图取出前导的“。” (和其他一些组合)但我无法让它工作。
既然你是windows,你必须使用windows风格的路径:.\\node_modules\\.bin\\tsc.cmd
。我也更新了答案以显示这一点。
就是这样!非常感谢!
我正在使用 VSCode,我不再能够切换 Typescript 版本。我在右下角的工具栏中没有看到当前版本,也没有看到 Typescript 版本的菜单。我失去了所有的智能。试图降级到 VSCode 的 1.3 版本,但看到完全相同的行为。我试图谷歌这导致我设置 typescript.tsdk 但无济于事! @MattBierner 你知道为什么会这样吗?
听起来内置的JavaScript and TypeScript language features
扩展被禁用了。在扩展视图中,搜索 @builtin
以确保它已启用以上是关于Visual Studio Code 忽略打字稿版本设置的主要内容,如果未能解决你的问题,请参考以下文章
React 本机流程、打字稿和 Visual Studio Code
Visual Studio Code 中的打字稿是不是有自动导入功能?
如何让 Visual Studio Code linter 忽略一行?
是否可以使用 Visual Studio Code 的 linter 忽略特定警告?