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

Eri*_*ric 4 typescript visual-studio-code yarnpkg

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

有没有办法使这项工作?谢谢!

Vik*_*nko 5

是! PnP模块可以同时使用TypeScript编译器和VS Code!您可以使用@berry/pnpify包(它是Yarn v2的一部分,但也适用于Yarn v1)。

首先,应将包添加到项目中:
yarn add -D @berry/pnpify

然后,您可以通过以下方式在VS Code中启用PnP支持:
yarn pnpify --sdk
这将生成tssdk并修改您的内容,.vscode/settings.json以将TypeScript编译器包装器添加tssdk为Workspace TypeScript编译器。您应该运行VS Code,打开任何TypeScript文件,然后在窗口的右下角单击TypeScript版本。Use Workspace Version从下拉菜单中选择以实际使用Workspace Compiler,其版本带有后缀-pnpify

当您想tscpackage.json脚本中运行时,请在pnpify命令前加上命令。例如:
"build": "pnpify tsc"

"watch": "pnpify tsc -w"

您也可以在此处参考Yarn v2的官方文档:https
//yarnpkg.github.io/berry/advanced/pnpify


小智 5

添加到@Viktor Vlasenko:

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

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。您可能需要打开一个新窗口并直接打开该文件夹。

VS代码版本:1.53.2

纱线版本:2.4.0