纱线:找不到模块

时间:2020-03-20 16:29:44

标签: typescript yarnpkg yarn-workspaces

我有一个纱线工作区,其中设置了文件夹publicserver。我在VS Code中使用TypeScript。在没有预装该软件包的类型的任何模块上,我在VS Code中收到错误:

Cannot find module 'x'

但是,IntelliSense将显示x作为建议。我同时拥有x@types/x,如果我安装@types/x似乎没有什么区别。谢谢

Windows 1909 (Latest)
Visual Studio Code 1.43 (Latest)
TypeScript ^3.8.3 (Latest)
Yarn 2.0.0-rc.30 (Latest)

我还尝试为纱线找到类型根,但没有找到。有人可以告诉我根目录类型在哪里。

2 个答案:

答案 0 :(得分:1)

类似的问题在这里。该错误来自短绒;我认为它正在检查包锁定文件内部(该文件不存在,因为yarn正在使用yarn.lock)。

请在您的VSCode用户settings.json中检查这些内容:

"eslint.packageManager": "yarn",
"prettier.packageManager": "yarn",
"npm.packageManager": "yarn"

这些设置对我有用。 YMMV。

编辑:标点符号已更改

答案 1 :(得分:1)

看看这里的说明:https://yarnpkg.com/getting-started/editor-sdks

<块引用>

智能 IDE(例如 VSCode 或 IntelliJ)需要特殊配置才能使 TypeScript 工作。此页面旨在成为我们合作过的每个编辑器的设置集合 - 请对此列表做出贡献!

例如,当使用“vscode”IDE 时执行:

yarn dlx @yarnpkg/pnpify --sdk vscode

上面的命令将连接你的 vscode 项目以依赖纱线,即它在你的 sdks 配置中添加了 .yarn 文件夹,并告诉你的 IDE 使用它,通过将以下内容添加到你的settings.json

"typescript.tsdk": ".yarn/sdks/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true

提示:Yarn 以 zip 存档的形式缓存其包。因此,为了还能够检查由纱线管理的 node_modules 导入,您可以安装 ZipFS extension

<块引用>

此扩展为 VSCode 添加了直接从 zip 存档读取文件的支持。它作为 Yarn 工具链的一部分进行维护。将此扩展程序与 Yarn SDK 结合使用将允许您从缓存中无缝打开和编辑文件。