跳至主要内容

编辑器 SDK

智能 IDE(如 VSCode 或 IntelliJ)需要特殊配置才能在使用 即插即用安装 时使 TypeScript 正常工作。此页面是针对我们已研究的每个编辑器收集的设置。

可以使用 yarn dlx @yarnpkg/sdks 生成编辑器 SDK 和设置。可以在 专门页面 上找到其详细文档。

信息

为什么 Yarn PnP 需要 SDK?

Yarn PnP 通过生成 Node.js 加载器 来工作,该加载器必须注入到 Node.js 运行时中。许多 IDE 扩展执行它们封装的包(Prettier、TypeScript 等),而无需考虑加载器。

SDK 通过生成间接包来解决此问题。在需要时,这些间接包会在将 require 调用转发到实际包之前自动设置加载器。

用法

生成基本 SDK 和编辑器设置

yarn dlx @yarnpkg/sdks vscode vim ...

生成基本 SDK,但不生成编辑器设置

yarn dlx @yarnpkg/sdks base

更新所有已安装的 SDK 和编辑器设置

yarn dlx @yarnpkg/sdks

当前支持的工具

警告

yarn dlx @yarnpkg/sdks 命令将查看根 package.json 的内容以找出您需要的 SDK - 它不会查看任何其他工作区的依赖项。

支持的扩展如果在 package.json 依赖项中找到 ...,则启用
内置 VSCode TypeScript 服务器typescript
astro-vscodeastro
vscode-eslinteslint
prettier-vscodeprettier
relayrelay

如果您想做出更多贡献,请点击此处!

编辑器设置

CoC nvim

  1. 安装 vim-rzip

  2. 运行以下命令,它将生成一个 .vim/coc-settings.json 文件

yarn dlx @yarnpkg/sdks vim

Emacs

SDK 附带了一个 typescript-language-server 包装器,它使你能够使用 ts-ls LSP 客户端。

  1. 运行以下命令,它会生成一个名为 .yarn/sdks 的新目录
yarn dlx @yarnpkg/sdks base
  1. 创建一个包含以下内容的 .dir-locals.el 以启用 Flycheck 和 LSP 支持,并确保在应用本地变量后加载 LSP 以触发 eval-after-load
((typescript-mode
. ((eval . (let ((project-directory (car (dir-locals-find-file default-directory))))
(setq lsp-clients-typescript-server-args `("--tsserver-path" ,(concat project-directory ".yarn/sdks/typescript/bin/tsserver") "--stdio")))))))

Neovim Native LSP

  1. 安装 vim-rzip

  2. 运行以下命令,它会生成一个名为 .yarn/sdks 的新目录

yarn dlx @yarnpkg/sdks base

TypeScript 支持应该开箱即用,并与 nvim-lspconfigtheia-ide/typescript-language-server 一起使用。

VSCode

  1. 安装 ZipFS 扩展,它由 Yarn 团队维护。

  2. 运行以下命令,它会生成一个 .vscode/settings.json 文件

yarn dlx @yarnpkg/sdks vscode
  1. 出于安全原因,VSCode 要求你明确激活自定义 TS 设置

    1. 在 TypeScript 文件中按 ctrl+shift+p
    2. 选择“选择 TypeScript 版本”
    3. 选择“使用工作区版本”

你的 VSCode 项目现在配置为使用与你通常使用的完全相同的 TypeScript 版本,不同之处在于它能够正确解析类型定义。