`@react-native/jest` fails to resolve `react-native` in monorepos
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 127k
- Forks
- 25.3k
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 4
Description
Description
@react-native/jest fails to resolve react-native in monorepos that use pnpm or Yarn in pnpm mode. @react-native/jest makes direct references to react-native but never declares it as a dependency, hence it cannot find it because the package manager will never install it.
I was going to add react-native as a peer dependency but it looks like this will create a cycle since react-native has a peer dependency on @react-native/jest. Not sure what approach you would prefer here.
This is the workaround we're currently using: https://github.com/microsoft/rnx-kit/blob/18bf2c4c307826d8d075351d1b8aa93387566177/.yarnrc.yml#L37-L40
Steps to reproduce
- Clone https://github.com/microsoft/rnx-kit
- Remove the workaround mentioned above
- Run
yarn - Build dependencies leading up to the test app:
yarn build-scope @rnx-kit/test-app - Run test:
cd packages/test-app; yarn test
React Native Version
0.85.2
Affected Platforms
Other (please specify)
Output of npx @react-native-community/cli info
n/a
Stacktrace or Logs
% yarn test
FAIL test/App.test.tsx
● Test suite failed to run
Cannot find module 'react-native/Libraries/AppState/AppState' from '../../node_modules/.store/@react-native-jest-preset-virtual-2eb6229c53/package/jest/mock.js'
at Resolver._throwModNotFoundError (../../node_modules/.store/jest-resolve-npm-29.7.0-5c36f0eefb/package/build/resolver.js:427:11)
at mock (../../node_modules/.store/@react-native-jest-preset-virtual-2eb6229c53/package/jest/mock.js:15:19)
at Object.<anonymous> (../../node_modules/.store/@react-native-jest-preset-virtual-2eb6229c53/package/jest/setup.js:68:19)
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 0 | 0 | 0 | 0 |
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 0.297 s
Ran all test suites.
MANDATORY Reproducer
https://github.com/microsoft/rnx-kit/tree/tido/bump-react-native
Screenshots and Videos
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par les métadonnées de dépendance de @react-native/jest et le contournement .yarnrc.yml dans le reproducer rnx-kit obligatoire. Supprimez le contournement, exécutez yarn, exécutez build-scope @rnx-kit/test-app, puis exécutez le test depuis packages/test-app pour reproduire l’échec du résolveur. C’est terminé lorsque le test réussit sans le contournement et que la relation de dépendance fonctionne avec pnpm ou Yarn en mode pnpm.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- react-native
- Domaine
- mobile, testing
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100