Reputation: 3226
This happened seemingly randomly during development. When trying to run npm start
or react-native run-ios
, I get the following error:
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
Strangely, /Users/chandlervdw/Repos/Relay/mobile/node_modules/react-native/local-cli/rnpm/core/test/fixtures/files/package.json
actually does list react-native-vector-icons
as the name for the module???
If I delete that file, the error no longer happens but the packager gets stuck at 93% and complains about a completely irrelevent library not being found.
I blew away my repo and even reinstalled everything, including npm
, rnpm
, and even upgrading node
. I'm running the same versions of everything as my teammates, who are able to run the packager without issues.
Upvotes: 16
Views: 10063
Reputation: 10232
After cleaning the nvm cache and reinstalling all node_modules I realized I was having this issue because of react-native-router-flux.
I fixed it with a downgrade from [email protected]
to [email protected]
More details here: https://github.com/aksonov/react-native-router-flux/issues/1816
Upvotes: 3
Reputation: 46579
sudo
or chown
did not fix it for me. I get the same error from the same library, very odd:
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
No need for sudo
when I encounter this.
Warning: destructive, check in first.
rm -rf android ios
git reset --hard
npm start
This fixes it every time. RN 0.39.2
edit: later, I think I fixed this by unlinking the react-native-vector-icons
lib; I think the instructions I got made me double up on the linking or were out of date somehow.
Upvotes: 4
Reputation: 7517
I was getting errors like
Failed to build DependencyGraph: @providesModule naming collision:
Failed to build DependencyGraph: @providesModule naming collision:
Duplicate module name: accepts
Duplicate module name: accepts
I solved it by deleting npm's cache .npm
and rerunning packager
with --reset-cache
rm -rf ~/.npm
Upvotes: 4
Reputation: 4079
Posting this as an answer just in case anybody else has this issue in future.
Running npm start
with sudo
permissions grants the correct privileges when nodes package manager is running the initial build phase. This only seems to happen if the shell/user that you are running from has restricted privileges. Force escalating privileges to sudo gives the package manager full control to complete the build.
Upvotes: 8