【问题标题】:TypeScript tries to compile node_modules of sibling folder with Yarn WorkspacesTypeScript 尝试使用 Yarn Workspaces 编译兄弟文件夹的 node_modules
【发布时间】: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

我错过了什么?

提前致谢。

【问题讨论】:

    标签: typescript yarnpkg yarn-workspaces


    【解决方案1】:

    已解决:

    • 将“@types/node”安装为通用开发依赖项,
    • 在通用 tsconfig 中添加“类型”:[“节点”]。

    ?

    【讨论】:

    • 谢谢!这也为我解决了这个问题。但你似乎理解错了。将types 属性添加到compilerOptions 会禁用自动包含,这仅在您使用具有全局声明的文件(而不是声明为模块的文件)时才重要,因此在大多数项目中禁用它应该是安全的。 node 类型与您的解决方案无关。见typescriptlang.org/docs/handbook/…
    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2021-11-18
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    相关资源
    最近更新 更多