web-dev-qa-db-fra.com

Erreur: jest-haste-map: collision de dénomination du module Haste:

J'ai créé un npm module Personnalisé (utilisera xxx à la place de son nom) et je le lie manuellement à l'aide de npm install.

J'ai essayé très fort et j'ai cherché:

avant de poser une question. Je serais reconnaissant si quelqu'un me disait ce qui n'allait pas avec mon code ou mon approche ou toute erreur dans mon code.

Lorsque j'exécute react-native run-Android L'erreur suivante est déclenchée par metro bundler

Error: jest-haste-map: Haste module naming collision:
  Duplicate module name: react-native
  Paths: E:\cdg-native\CDG\node_modules\react-native-XXX\node_modules\react-native\package.json collides with E:\cdg-native\CDG\node_modules\react-native\package.json

This error is caused by `hasteImpl` returning the same name for different files.

Mon module personnalisé package.json Est

{
  "name": "react-native-xxx",
  "version": "1.0.0",
  "description": "Library to render xxx",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "react native xxx"
  ],
  "author": "Firdous Nath",
  "license": "ISC",
  "peerDependencies": {
    "react": "*",
    "react-native": "*"
  },
  "devDependencies": {
    "react": "^16.6.1",
    "react-native": "^0.57.5",
    "babel-cli": "^6.26.0",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1"
  }
}

index.js Du module personnalisé est très simple comme ci-dessous

import React from "react";
import { Text } from "react-native";

export default class XXXView extends React.Component {

    render() {
        return (
            <Text> From custom module </Text>
        );
    }
}

fichier où j'utilise un module personnalisé est

import React from "react";
import {StyleSheet, View} from "react-native";
import XXXView from "react-native-xxx"
//import {XXXView} from "react-native-xxx" -> I tried this as well

export default class App extends React.Component {
    render() {
        return (
            <View style={styles.container}>
                <XXXView/>
            </View>
        )
    }
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: "center",
        alignItems: "center",
        backgroundColor: "#f5fcff"
    }
});

J'ai essayé npm install /absolute/path/to/xxx Et il a correctement lié le module. Par correctement, je veux dire que je peux voir le package react-native-xxx Dans le répertoire nodemodule. J'ai fait tous les moyens possibles mais rien n'a fonctionné.

J'ai aussi essayé mais sans succès

  • ajout de fil/absolu/chemin/vers/react-native-xxx
  • lien react-native react-native-xxx
  • réagir-natif exécuter-Android
15
Firu

Il semble que vous ayez 2 dossiers de projet natifs réactifs différents où l'un dépend d'un autre (il est inclus en tant que dépendance node_module) et il semble que vous exécutiez la commande de démarrage de votre serveur ("démarrage natif réactif") à partir du dossier de la bibliothèque.

1
Soman Dubey