Ошибка: jest-haste-map: @providesModule конфликт имен при использовании локальной зависимости - PullRequest
0 голосов
/ 20 октября 2018

Я использую локальный модуль в package.json, который также имеет react-native в качестве зависимости.

В моем приложении package.json:

"react": "16.4.1",
"react-native": "0.56.0",
"react-native-services": "file:///Users/R01/Projects/react-native-services"

В моем react-native-services package.json:

"react": "16.4.1",
"react-native": "0.56.0"

Поэтому при запуске react-native run-android Metro Bundler выдает:

Looking for JS files in
   /Users/R01/Projects/RNApp
   /Users/R01/Projects/react-native-services 


Metro Bundler ready.

Loading dependency graph...(node:72824) UnhandledPromiseRejectionWarning: Error: jest-haste-map: @providesModule naming collision:
  Duplicate module name: Sample
  Paths: /Users/R01/Projects/react-native-services/node_modules/react-native/Libraries/Sample/package.json collides with /Users/R01/Projects/RNApp/node_modules/react-native/Libraries/Sample/package.json

 This error is caused by a @providesModule declaration with the same name across two different files.
    at setModule (/Users/R01/Projects/RNApp/node_modules/jest-haste-map/build/index.js:446:17)
    at workerReply (/Users/R01/Projects/RNApp/node_modules/jest-haste-map/build/index.js:496:9)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:182:7)
(node:72824) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:72824) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
error: bundling failed: Error: jest-haste-map: @providesModule naming collision:
  Duplicate module name: Sample
  Paths: /Users/R01/Projects/react-native-services/node_modules/react-native/Libraries/Sample/package.json collides with /Users/R01/Projects/RNApp/node_modules/react-native/Libraries/Sample/package.json

This error is caused by a @providesModule declaration with the same name across two different files.
    at setModule (/Users/R01/Projects/RNApp/node_modules/jest-haste-map/build/index.js:446:17)
    at workerReply (/Users/R01/Projects/RNApp/node_modules/jest-haste-map/build/index.js:496:9)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:182:7)

Я уже пробовал:

  • С обоими *Установки 1021 * и yarn (обновленные), но react-native run-android выдает всегда одну и ту же ошибку.
  • watchman watch-del-all rm -rf node_modules && npm install rm -fr $ TMPDIR / реагировать * кэш npmчистый запуск npm - --reset-cache

Ответы [ 4 ]

0 голосов
/ 16 апреля 2019

Столкнулся с той же проблемой Решил это !!

Все пакеты npm в проекте имеют модули узлов.Убедитесь, что каталог node_modules внутри пакетов не должен содержать уже существующий модуль узла.

В моем случае react-native присутствовал в node_modules моего проекта, а также в node_modules другой разветвленной библиотеки.

Какбиблиотека была разветвлена, я мог удалить из нее каталог node_modules, и проблема была решена.

0 голосов
/ 20 октября 2018

Я отвечаю сам.

В качестве временного решения и учитывая, что помещение зависимостей в peerDependencies также не сработало, я поместил react и react-native в devDependencies пакета react-native-services.

0 голосов
/ 23 февраля 2019

Я тоже получил такую ​​же ошибку.Я попробовал следующие шаги, он работает как очаровательный.

Пожалуйста, удалите все специфичные для реакции папки из "% appdata% \ Temp", а затем попробуйте следующие команды:

rimraf node_modules
npm cache clean --force
npm install
rm -rf ios/build

Изменить /Users/Jebasuthan/XcodeProject/Game/ios/Pods/React/package.json к чему-то еще

нерекурсивный

Xcode change

0 голосов
/ 20 октября 2018
watchman watch-del-all

rm -rf node_modules && npm install

rm -fr $TMPDIR/react-*
npm cache clean
npm start -- --reset-cache

для более подробной информации проверьте здесь

...