У меня та же проблема, что и в:
React typescript (2312,14): повторяющийся идентификатор LibraryManagedAttributes
а также
Ошибка TypeScript: повторяющийся идентификатор LibraryManagedAttributes
Но я просто не могу найти никакого решения.
Я уже обновился до последних версий node / npm / yarn / typescript. Также попробовал понизить версию. Ничего не помогает.
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 [email protected] 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 почему-то не дает мне дополнительной информации.
Как я вижу, LibraryManagedAttributes определяется в:
node_modules/@types/react/index.d.tsnode_modules/@types/prop-types/node_modules/@types/react/index.d.tsnode_modules/@types/react-overlays/node_modules/@types/react/index.d.tsОткуда это взялось? Как мне этого избежать?
Я хочу выяснить, откуда взялась эта ошибка, чтобы сообщить об этом нужному объекту, но я не знаю, с чего начать.
Что еще можно попробовать?
На самом деле помогло удаление файла yarn.lock. Я все еще беспокоюсь, что когда-нибудь это повторится. Я не знаю, как это вообще произошло. Это может быть связано с этой проблемой: github.com/DefinitiTyped/DefinitiTyped/issues/28881
Если кто-то сталкивается с проблемой из-за внутренней зависимости @ types / response-dom и столкновения @ types / response, вы можете попробовать этот ответ, который в основном удалял и переустанавливал их оба за один раз. stackoverflow.com/a/54239498/4353782





Похоже, это проблема с машинописным текстом.
Мой текущий обходной путь - добавление "skipLibCheck": true в tsconfig.json.
Я хочу подчеркнуть, что это всего лишь обходной путь, а не решение самой проблемы.
Это было решено? Я просто попытался создать приложение и получил эту ошибку.
Обратите внимание, что добавление "skipLibCheck": true в tsconfig является потенциально деструктивным действием для безопасности типов вашей кодовой базы, и его очень сложно отменить.
Это должен быть ответ
Спас мой день, включение skipLibCheck работает для меня, для меня он не работал только в моем локальном, поэтому включение флага skipLibCheck должно быть для меня нормально
это прямо здесь устранило проблему
Кажется, это происходит потому, что Yarn разрешает несколько версий пакета; @types/react в данном конкретном случае. Yarn разрешает @types/react из вашего package.json и как зависимость от @types/react-dom.
Возьмите следующий фрагмент из моего package.json:
"devDependencies": {
"@types/react": "^15.0.16",
"@types/react-dom": "^0.14.23"
...
}
yarn.lock, который создается после запуска yarn install, содержит что-то похожее на это:
"@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"
Обратите внимание, что @types/react-dom зависит от любой версии @types/react, как указано в "*". Yarn разрешает две версии @types/react: "16.4.14" и "15.6.19". Это приводит к конфликтам типов, о которых вы упомянули.
Решение состоит в том, чтобы добавить поле разрешений к вашему package.json, чтобы указать Yarn разрешить конкретную версию @types/react. Возьмите следующий образец:
"resolutions": {
"@types/react": "^15.0.16"
}
Снова запустите yarn install. Обратите внимание на изменение в файле 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 теперь разрешает одну и ту же версию "15.6.19" для зависимостей "@types/react@*" и "@types/react@^15.0.16".
Я сам хотел бы знать, зачем это нужно. Я ожидаю, что Yarn поймет, что он может разрешить зависимость "@types/react" "*" с "@types/react@^15.0.16" вместо того, чтобы разрешать ее с помощью последней версии @types/react.
У меня была та же проблема, и этот ответ приблизил меня к решению. Однако мне также пришлось удалить папку node_modules перед yarn install, поскольку в противном случае yarn install не будет действовать в достаточной степени на измененном package.json. (Я отредактировал ответ соответствующим образом, чтобы другие читатели не столкнулись с этой проблемой, но, как ни странно, этот ответ был отвергнут.)
После обновления файла блокировки можно ли удалить поле resolutions?
Да, можно безопасно удалить конфигурацию разрешений после создания нового файла блокировки.
@sander schutten Спасибо, я создал отчет об ошибке для команды React github.com/facebook/react/issues/20005
Вы можете использовать yarn why @types/react, чтобы получить дополнительную информацию о происхождении этих различных версий. В моем случае у меня были версии 17.x и 16.x, последняя из которых возникла из-за зависимости, которую я на самом деле не использовал, поэтому я мог просто удалить ее.
Самый простой способ исправить это для меня - удалить каталог node_modules и файлы yarn.lock / package-lock, а затем выполнить установку yarn для переустановки всех модулей node.
У меня такая же проблема после yarn upgrade @types/react-router-dom. git diff показывает, что несколько версий @types/react разрешены. В моем случае yarn upgrade @types/react решает проблему. Удаление yarn.lock должно помочь.
Кажется, что новая (без yarn.lock) установка разрешит пакеты в согласованное состояние, но частичное обновление не разрешит зависимости глобально. Таким образом, для обновления всех задействованных пакетов могут потребоваться ручные настройки.
Ключевым моментом было удаление yarn.lock. Удаление только node_modules и установка не помогли.
yarn upgrade @types/react решил проблему для меня. У меня файл yarn.lock ядерная бомба не потребовалась
В моем случае я получил сообщение об ошибке, указывающее, что «LibraryManagedAttributes» объявлен в 2 разных местах. Следуя по путям, я понял, что в установленном модуле также есть файл package.json, который также добавляет "@ types / response" в качестве dep, и его версия отличается от версии в корневом файле package.json. Я заменил эти два на одну и ту же версию, и проблема была решена.
Это старый ответ, но, учитывая, что он занимает у меня наивысшее значение в категории «активный», я считаю, что он заслуживает упоминания: вам никогда не следует изменять файл package.json зависимости. Как только вы переустановите модули узла или соберете другой разработчик из исходного кода, ваши изменения не будут распространяться, и вам будет плохо.
У меня такая же ошибка. Мне удалось исправить это, удалив мои «@ types / response», а затем снова установив их.
yarn remove @types/react
yarn add --dev @types/react
Что касается меня, у меня были типы реакции, дублированные в react-redux, react и react-intl, когда я обновлял react-intl. Наименее навязчивое исправление, которое у меня сработало до сих пор, - это запустить следующее:
npx yarn-deduplicate --packages @types/react yarn.lock
Если полученное различие файла блокировки выглядит правильно, удалите node_modules, затем yarn, чтобы получить свежие пакеты из дедуплицированного файла блокировки.
Спасибо за это. Это сразу решило проблему. Следует отметить как ответ
В связи с вопросом, запуск npm list @types/react из каталога вашего package.json должен отображать повторяющиеся определения типов, найденные в вашем проекте.
У меня был запрос конфликтующей версии для реакции в другом используемом мной модуле. Исправление этого и повторная установка с помощью пряжи мне тоже не помогли.
Однако использование NPM вместо Yarn решило эту проблему для меня.
Надеюсь, это кому-то поможет.
У меня сработало удаление react и @types/react из package.json, а затем в zsh:
rm -rf node_modules/**/react
npm i react @types/react
C:/Users/japa/source/repos/ReactTestApp/TemplateExample/ClientApp/node_modules/@types/react/index.d.ts
TypeScript error in C:/Users/japa/source/repos/ReactTestApp/TemplateExample/ClientApp/node_modules/@types/react/index.d.ts(2835,14):
Duplicate identifier 'LibraryManagedAttributes'. TS2300
В моем случае мне нужно было решить проблему вручную (по принципу, описанному в TS2300). Проблема возникла, когда я добавил в свой проект ReactKendo.
ClientApp в моем проекте ClientApp\node_modules\@typesreact, а затем удалил егоreact после того, как ошибка исчезла, и кажется, что ошибка исчезла навсегда, поэтому мне кажется, что это типичная волшебная ошибка где-то во вселенной :-)Больше ничего менять в конфигурационных файлах мне не пришлось.
Для меня это вызвано только упомянутым @types/react-redux. Исправлено npm i --save-dev @types/react, поэтому package.json выглядит так:
...
"devDependencies": {
"@types/react": "^16.9.19",
"@types/react-redux": "^7.1.7"
...
}
У меня возникла эта проблема при работе со связанными зависимостями. Мой связанный пакет находится в репозитории lerna, и у него был @types/react как devDependency. Я добавил @types/react как peerDependency, переключил свой рабочий процесс на ялк и смог продолжить.
В нашем случае мы исправили это
Перенос всех пакетов @types/* в devDependencies
rm -rf yarn.lock и rm -rf node_modules
Снова запустите yarn install
Использование пряжа-дедупликация устранило проблему для меня.
Шаги:
yarn-deduplicate или использовать npx на втором шагеnpm install -g yarn-deduplicate
или
yarn global add yarn-deduplicate
yarn-deduplicateyarn-deduplicate yarn.lock --packages @types/react yarn.lock
или
npx yarn-deduplicate --packages @types/react yarn.lock
node_modulesrm -rf node_modules
yarn install
В моем случае ошибка появилась, когда номера версий @types/react (v17.0.3) и @types/react-dom (v17.0.2) не были синхронизированы.
Чтобы решить эту проблему, я удалил @types/react, потому что он поднимается с @types/react-dom. В этом можно убедиться, запустив yarn why @types/react.
Пряжа не должна так устанавливать несколько копий
@types/react. Попробуйте удалить файлyarn.lockи снова запуститьyarn install. Если это не помогает, попробуйте удалить все зависимости отpackage.json, кроме@types/react,@types/prop-typesи@types/react-overlays, и посмотрите, сохраняется ли проблема. Если это так, добавьте своиpackage.jsonиyarn.lock(это должно быть не более ~ 40 строк) к вопросу, чтобы мы могли понять, почему yarn делает то, что делает.