【问题标题】:How do I force VSCode to always use my workspaces version of typescript for all projects?我如何强制 VSCode 始终对所有项目使用我的工作区版本的打字稿?
【发布时间】:2023-02-06 15:05:56
【问题描述】:

每次我在 VSCode 中打开一个新项目时,它都默认使用它自己的 TypeScript 版本而不是工作区版本,有没有一种方法可以默认使用工作区版本,这样我就不必每次都更改它?

例如

我已经尝试查看设置,但似乎只能提示我不要每次都默认为我想要的行为。

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    你目前能做的最好的事情是:

    "typescript.tsdk": "./node_modules/typescript/lib",
    "typescript.enablePromptUseWorkspaceTsdk": true,
    

    在撰写本文时,最新的 VS Code 版本为 1.75。

    目前没有设置让工作区在没有提示的情况下使用工作区的 TypeScript SDK。

    至于目前的原因,在 typescript.enablePromptUseWorkspaceTsdk 设置存在之前(尽管我认为评论的逻辑今天仍然适用),a maintainer has once commented

    我们支持在工作区设置中设置typescript.tsdk,但出于安全原因,我们始终要求用户选择使用工作区版本的打字稿。这就是本地存储发挥作用的地方。

    and later elaborated:

    提示基本上是在问:你信任这个工作区吗?它来自哪里。工作区版本的 TypeScript 也可以从工作区执行其他文件,因此我们无法合理地确保 VS Code 只运行受信任的文件。我们默认做安全的事情:不要从工作区加载任何东西。无论如何,切换到从工作区加载任何代码必须是选择加入的,并且必须基于用户操作。

    这里最合理的解决方案是添加一个工作区设置,当用户第一次打开工作区时自动显示选择 tsdk 提示

    That's how the typescript.enablePromptUseWorkspaceTsdk came to be


    有一个您可能感兴趣的功能请求:VSCode should default to using the TypeScript version in the current project #172732

    引用自one of the maintainers' reponses to that feature-request

    我们之前已经讨论过这个问题,但出于以下几个原因决定不这样做:

    • TS 的工作区版本往往会过时。旧的 TS 版本有错误和性能问题,我们的捆绑版本经常修复这些问题。我们不对旧 TS 版本进行任何修复,这些旧版本的问题报告通常也没有帮助

    • 虽然在某些情况下使用不同的 TS 版本进行编辑与编译很重要,但通常不会。

      在您的笔记中:

      VSCode 更新 TypeScript 版本很慢

      稳定版的 VS Code 通常会在一到两周内获取最新的稳定版 Typescript。最新的 TS 通常在一天后出现在 VS Code 内部人员中。在您的情况下听起来您正在尝试使用即将推出的 TS beta 或 RC 中的功能

      我认为这对于需要最新 TS 的高级用户立即切换到使用 TS 的工作区版本并不是一个很大的障碍

    妥协是你已经调出的设置:typescript.enablePromptUseWorkspaceTsdk。这使高级用户更容易切换,而不会影响不需要切换到工作区版本的绝大多数用户的体验(并且切换实际上可能会导致更差的用户体验)

    这是您可能会感兴趣的另一个功能请求:Combine workspace trust with enablePromptUseWorkspaceTsdk #135713。引用该功能请求:

    现在我们在 VSCode 中有了工作区信任功能。 enablePromptUseWorkspaceTsdk 的单独提示感觉有些多余。当用户已经信任工作区时,我们能否在工作区设置中自动支持typescript.tsdk

    这不会降低安全性,并且可以更轻松地在我们庞大的开发人员用户群中分发typescript.tsdk

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 2017-10-07
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多