yarn-pnp很棒-不再需要node_modules! 但是没有node_modules,typescript/vscode无法正确解析模块。
有没有方法可以使它正常工作? 谢谢!
yarn-pnp很棒-不再需要node_modules! 但是没有node_modules,typescript/vscode无法正确解析模块。
有没有方法可以使它正常工作? 谢谢!
是的!
在 Yarn 2+ 中,Typescript cli 可以开箱即用,所以您只需添加包:
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
,以将 TypeScript 编译器包装器添加到 tssdk
中作为工作区 TypeScript 编译器。您应该运行 VS Code,打开任何 TypeScript 文件,并在窗口右下角单击 TypeScript 版本。从下拉菜单中选择“使用工作区版本”以实际使用 Workspace 编译器,其版本具有后缀 -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
yarn pnpify --sdk
呢?如果是的话,这是 yarn v2 的一个重大缺点。 - Paul Razvan Bergtypescript
、eslint
等时,才需要运行 yarn pnpify --sdk
。该工具会获取当前已安装的依赖项并为其生成包装器,它需要知道您使用了哪些需要包装器的软件包。当您删除或升级其中一个依赖项时,就不需要运行 yarn pnpify --sdk
了。但是,当您升级 typescript
时,仍然可能希望这样做,以便 VS Code 在状态栏中显示正确的版本:x.y.z-pnpify
,否则它将显示旧版本,但一切仍将正常工作。 - Viktor Vlasenko添加到@Viktor Vlasenko:
当我有一个工作区并在其中创建一个TypeScript项目时,新项目中的 settings.json
文件中的规则 typescript.tsdk
和 typescript.enablePromptUseWorkspaceTsdk
可能无法正常工作。在这种情况下,当选择TypeScript版本时,您将无法找到x.x.x-pnpify
。
VS Code 报告说:此设置无法应用于此工作区。直接打开包含的工作区文件夹时将应用它。
因此,在执行步骤yarn dlx @yarnpkg/pnpify --sdk vscode
之后,请确保这些新规则在settings.json
中得到应用。您可能需要打开一个新窗口并直接打开该文件夹。
VS Code 版本:1.53.2
yarn 版本:2.4.0