yarnpkg - TypeScript intenta compilar node_modules de una carpeta hermana con Yarn Workspaces
Estoy intentando crear un proyecto monorepo con carpetas "server" y "client" usando TypeScript y Yarn Workspaces. Compilar la carpeta "server" sin haber creado todavía la carpeta "client" funciona bien, pero cuando creo la carpeta "client", compilar la carpeta "server" hace que TypeScript quiera compilar la carpeta node_modules de "client", dando errores, aunque compila de todos modos.
Los errores son como:
../../../../.config/yarn/global/node_modules/typescript/lib/lib.dom.d.ts:5353:11 - error TS2300: Identificador duplicado 'FormData'.
5353 interfaz FormData { ~~~~~~~~
../node_modules/@types/react-native/globals.d.ts:40:15 40 declare class FormData { ~~~~~~~~ 'FormData' también se declaró aquí.
../../../../.config/yarn/global/node_modules/typescript/lib/lib.dom.d.ts:5363:13 - error TS2300: Identificador duplicado 'FormData'.
5363 declarar var FormData: { ~~~~~~~~
../node_modules/@types/react-native/globals.d.ts:40:15 40 declare class FormData { ~~~~~~~~ 'FormData' también se declaró aquí.
../../../../.config/yarn/global/node_modules/typescript/lib/lib.dom.d.ts:15671:11 - error TS2300: Identificador duplicado 'URLSearchParams'.
15671 interfaz URLSearchParams { ~~~~~~~~~~~~~~~
../node_modules/@types/react-native/globals.d.ts:258:15 258 declarar clase URLSearchParams { ~~~~~~~~~~~~~~~ 'URLSearchParams' también fue declarado aquí.
He intentado:
- no usando Workspaces,
- especificando "cliente" como una dependencia de "servidor",
- excluyendo node_modules del tsconfig de "server",
pero sin resultados.
He creado un repositorio de prueba para reproducir los errores (1- clonar el repositorio, 2- yarn install, 3- cd server, 4- tsc): https://github.com/lewislbr/typescript-test
¿Qué me estoy perdiendo?
Gracias de antemano.
Respuesta #1
Lo resolví mediante:
- Instalando "@types/node" como una dependencia de desarrollo común,
- Agregando "types": ["node"] en el tsconfig común.
🎉