Tengo el mismo problema que en:
Reaccionar mecanografiado (2312,14): identificador duplicado 'LibraryManagedAttributes'
y
Error de TypeScript: identificador duplicado 'LibraryManagedAttributes'
Pero simplemente no puedo encontrar ninguna solución.
Ya actualicé a las últimas versiones de node/npm/yarn/typescript. También intenté degradar. Nada ayuda.
yarn build --verbose yarn run v1.9.4 $ react-scripts-ts build --verbose Creating an optimized production build... Starting type checking and linting service... Using 1 worker with 2048MB memory limit ts-loader: Using typescript@3.0.3 and C:\dev\project\frontend\tsconfig.prod.json Warning: member-ordering - Bad member kind: public-before-private Failed to compile. C:/dev/project/frontend/node_modules/@types/prop-types/node_modules/@types/react/index.d.ts (2312,14): Duplicate identifier 'LibraryManagedAttributes'. error Command failed with exit code 1.
--verbose
alguna manera no me da más información.
Como puedo ver, LibraryManagedAttributes
se define en:
node_modules/@types/react/index.d.ts
node_modules/@types/prop-types/node_modules/@types/react/index.d.ts
node_modules/@types/react-overlays/node_modules/@types/react/index.d.ts
¿De dónde viene esto? ¿Cómo puedo evitar eso?
Quiero averiguar de dónde proviene este error para poder informarlo a la entidad correcta, pero no sé por dónde empezar.
¿Qué más puedo probar?
Esto parece suceder porque Yarn resuelve múltiples versiones de un paquete; @types/react
en este caso particular. Yarn resuelve @types/react
desde su paquete.json y como una dependencia de @types/react-dom
.
Tome el siguiente fragmento de mi paquete.json :
"devDependencies": { "@types/react": "^15.0.16", "@types/react-dom": "^0.14.23" ... }
El yarn.lock que se crea después de ejecutar yarn install
contiene algo similar a esto:
"@types/react-dom@^0.14.23": version "0.14.23" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-0.14.23.tgz#cecfcfad754b4c2765fe5d29b81b301889ad6c2e" dependencies: "@types/react" "*" "@types/react@*": version "16.4.14" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.14.tgz#47c604c8e46ed674bbdf4aabf82b34b9041c6a04" dependencies: "@types/prop-types" "*" csstype "^2.2.0" "@types/react@^15.0.16": version "15.6.19" resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.19.tgz#a5de18afe65b0f29767328836b48c498a5d3a91b"
Tenga en cuenta que @types/react-dom
depende de cualquier versión de @types/react
como se indica mediante "*"
. Yarn resuelve dos versiones de @types/react
: "16.4.14"
y "15.6.19"
. Esto da como resultado los conflictos de tipo que mencionaste.
La solución es agregar un campo de resoluciones a su paquete.json para decirle a Yarn que resuelva una versión específica de @types/react
. Tome la siguiente muestra:
"resolutions": { "@types/react": "^15.0.16" }
Ejecute la yarn install
nuevo. Observe el cambio en el archivo yarn.lock :
"@types/react-dom@^0.14.23": version "0.14.23" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-0.14.23.tgz#cecfcfad754b4c2765fe5d29b81b301889ad6c2e" dependencies: "@types/react" "*" "@types/react@*", "@types/react@^15.0.16": version "15.6.19" resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.19.tgz#a5de18afe65b0f29767328836b48c498a5d3a91b"
Yarn ahora resuelve la misma versión "15.6.19"
para las dependencias "@types/react@*"
y "@types/react@^15.0.16"
.
Me gustaría saber por qué esto es necesario. Espero que Yarn entienda que puede resolver la dependencia "@types/react" "*"
con "@types/react@^15.0.16"
en lugar de resolverla con la última versión de @types/react
.
Esto parece ser un problema mecanografiado.
Mi solución actual es agregar "skipLibCheck": true
a tsconfig.json
.
Quiero enfatizar que eso es solo una solución y no una solución al problema en sí.
Tengo el mismo error. Logré solucionarlo eliminando mis '@types/react' y luego instalándolos nuevamente.
yarn remove @types/react yarn add --dev @types/react