Ошибка сбоя в сборе пакетов: дублирующее имя модуля
Это происходило случайно во время разработки. При попытке запустить npm start
или react-native run-ios
я получаю следующую ошибку:
Failed to build DependencyGraph: @providesModule naming collision:
Duplicate module name: react-native-vector-icons
Paths: /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json collides with /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/Libraries/Animated/release/package.json
This error is caused by a @providesModule declaration with the same name accross two different files.
Error: @providesModule naming collision:
Duplicate module name: react-native-vector-icons
Paths: /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json collides with /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/Libraries/Animated/release/package.json
This error is caused by a @providesModule declaration with the same name accross two different files.
at HasteMap._updateHasteMap (/Users/chandlervdw/Repos/Relay/mobile/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:162:15)
at /Users/chandlervdw/Repos/Relay/mobile/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:140:25
Странно, /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json
на самом деле перечисляет react-native-vector-icons
как имя для модуля???
Если я удалю этот файл, ошибка больше не произойдет, но упаковщик застрял на уровне 93% и жалуется на то, что полностью неуместная библиотека не найдена.
Я сдул свое репо и даже переустановил все, в том числе npm
, rnpm
и даже обновил node
. Я использую те же версии всего, что и мои товарищи по команде, которые могут запускать упаковщик без проблем.
Ответы
Ответ 1
Проводя это как ответ на всякий случай, если у кого-то еще будет эта проблема в будущем.
Запуск npm start
с разрешениями sudo
предоставляет правильные привилегии, когда диспетчер пакетов узлов запускает начальную фазу сборки. Это происходит только в том случае, если оболочка/пользователь, с которой вы работаете, имеет ограниченные привилегии. Принудительное повышение привилегий для sudo дает полный менеджер пакетов для завершения сборки.
Ответ 2
Я получал ошибки, например
Failed to build DependencyGraph: @providesModule naming collision:
Failed to build DependencyGraph: @providesModule naming collision:
Duplicate module name: accepts
Duplicate module name: accepts
Я решил его, удалив кеш npm .npm
и перезапустив packager
с помощью --reset-cache
rm -rf ~/.npm
Ответ 3
sudo
или chown
не исправил это для меня. Я получаю ту же ошибку из той же библиотеки, очень странно:
Failed to build DependencyGraph: @providesModule naming collision:
Duplicate module name: react-native-vector-icons
Paths: /Users/collumj/research/k9fresh/ios/build/Build/Products/Debug-iphonesimulator/kisharNine.app/package.json collides with /Users/collumj/research/k9fresh/node_modules/react-native/local-cli/core/__fixtures__/files/package.json
Нет необходимости в sudo
, когда я столкнулся с этим.
Предупреждение: разрушительный, сначала проверьте.
rm -rf android ios
git reset --hard
npm start
Это исправляет это каждый раз. RN 0,39,2
edit: позже, я думаю, я исправил это, отменив react-native-vector-icons
lib; Я думаю, что инструкции, которые я получил, заставили меня удвоить связь или устали каким-то образом.
Ответ 4
После очистки кеша nvm и переустановки всего node_modules я понял, что у меня возникла эта проблема из-за реакции-native-router-flux.
Я исправил его с понижением от [email protected]
до [email protected]
Подробнее здесь:
https://github.com/aksonov/react-native-router-flux/issues/1816