是否可以将 yarn-pnp 与 typescript/vscode 一起使用?

Is it possible to use yarn-pnp with typescript/vscode?

yarn-pnp 很棒 - 不再 node_modules! 但是如果没有 node_models,typescript/vscode 似乎无法正确解析模块。

有没有办法让它工作? 谢谢!

是的!

Typescript cli 在 Yarn 2+ 中开箱即用,因此您只需添加包即可:
yarn add -D typescript

和运行编译:
yarn tsc

也可以使 VS Code 与 PnP 模块一起工作!您可以使用`@yarnpkg/sdks 包(它是 Yarn 2+ 的一部分)

您可以通过以下方式在 VS Code 中启用 PnP 支持:
yarn dlx @yarnpkg/sdks vscode
这将生成 tssdk 并修改您的 .vscode/settings.json 以在 tssdk 中添加 TypeScript compiler-wrapper 作为 Workspace TypeScript 编译器。您应该 运行 VS Code,打开任何 TypeScript 文件,然后在 window 的右下角单击 TypeScript 版本。 Select Use Workspace Version 从下拉菜单实际使用Workspace Compiler,其版本有后缀-sdk.

您可能还想安装 VS Code zip 文件支持扩展: https://marketplace.visualstudio.com/items?itemName=arcanis.vscode-zipfs 能够开源项目依赖项,因为 Yarn 2 将所有依赖项存储在 zip 文件中

您还可以在此处阅读有关编辑器集成的官方 Yarn 2+ 文档:
https://next.yarnpkg.com/getting-started/editor-sdks

添加到@Viktor Vlasenko:

当我有一个工作区并在工作区内创建一个打字稿项目时, 新项目 settings.json 中的规则 typescript.tsdktypescript.enablePromptUseWorkspaceTsdk 可能不起作用。在这种情况下,您在选择 TypeScript 版本时将找不到 x.x.x-pnpify

VS Code 报告 This setting cannot be applied in this workspace. It will be applied when you open the containing workspace folder directly.

因此,在步骤 yarn dlx @yarnpkg/pnpify --sdk vscode 之后,确保应用 settings.json 中的那些新规则。可能需要新建一个window,直接打开文件夹

VS 代码版本:1.53.2

纱线版本:2.4.0