TypeScript 尝试使用 Yarn Workspaces 编译兄弟文件夹的 node_modules
Posted
技术标签:
【中文标题】TypeScript 尝试使用 Yarn Workspaces 编译兄弟文件夹的 node_modules【英文标题】:TypeScript tries to compile node_modules of sibling folder with Yarn Workspaces 【发布时间】:2019-12-27 18:00:50 【问题描述】:我正在尝试使用 TypeScript 和 Yarn 工作区创建一个带有“服务器”和“客户端”文件夹的 monorepo 项目。在没有创建“客户端”文件夹的情况下编译“服务器”文件夹效果很好,但是当我创建“客户端”文件夹时,编译“服务器”文件夹会使 TypeScript 想要编译“客户端”的 node_modules 文件夹,但会出现错误仍在编译。
错误如下:
../../../../.config/yarn/global/node_modules/typescript/lib/lib.dom.d.ts:5353:11 - 错误 TS2300:重复标识符“FormData”。
5353 接口表单数据 ~~~~~~~~
../node_modules/@types/react-native/globals.d.ts:40:15 40 声明类 FormData ~~~~~~~~ 'FormData' 也在这里声明。
../../../../.config/yarn/global/node_modules/typescript/lib/lib.dom.d.ts:5363:13 - 错误 TS2300:重复标识符“FormData”。
5363 声明 var FormData: ~~~~~~~~
../node_modules/@types/react-native/globals.d.ts:40:15 40 声明类 FormData ~~~~~~~~ 'FormData' 也在这里声明。
../../../../.config/yarn/global/node_modules/typescript/lib/lib.dom.d.ts:15671:11 - 错误 TS2300:重复标识符“URLSearchParams”。
15671 接口 URLSearchParams ~~~~~~~~~~~~~~~~~~
../node_modules/@types/react-native/globals.d.ts:258:15 258 声明类 URLSearchParams ~~~~~~~~~~~~~~~ 'URLSearchParams' 也在这里声明。
我试过了:
不使用工作区, 将“客户端”指定为“服务器”的依赖项, 从“服务器”tsconfig 中排除 node_modules,但没有结果。
我创建了一个测试存储库来重现错误(1- 克隆存储库、2- 纱线安装、3- cd 服务器、4- tsc):https://github.com/lewislbr/typescript-test
我错过了什么?
提前致谢。
【问题讨论】:
【参考方案1】:已解决:
将“@types/node”安装为通用开发依赖项, 在通用 tsconfig 中添加“类型”:[“节点”]。?
【讨论】:
谢谢!这也为我解决了这个问题。但你似乎理解错了。将types
属性添加到compilerOptions
会禁用自动包含,这仅在您使用具有全局声明的文件(而不是声明为模块的文件)时才重要,因此在大多数项目中禁用它应该是安全的。 node
类型与您的解决方案无关。见typescriptlang.org/docs/handbook/…以上是关于TypeScript 尝试使用 Yarn Workspaces 编译兄弟文件夹的 node_modules的主要内容,如果未能解决你的问题,请参考以下文章
Yarn 3.x PNP typescript CRA eslint 不适用于 VSCode
yarn create react-app with typescript throwing errors
是否可以将 yarn-pnp 与 typescript/vscode 一起使用?