webentwicklung-frage-antwort-db.com.de

Fehler: jest-haste-map: Kollision beim Benennen des Modulnamens:

Ich habe ein benutzerdefiniertes npm module Erstellt (verwendet xxx anstelle seines Namens) und verknüpfe es manuell mit npm install.

Ich habe mich sehr bemüht und gesucht:

bevor Sie eine Frage stellen. Ich wäre dankbar, wenn mir jemand sagen würde, was mit meinem Code oder meinem Ansatz oder einem Fehler in meinem Code nicht stimmt.

Wenn ich react-native run-Android Ausführe, wird der folgende Fehler von metro bundler Ausgelöst.

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.

Mein benutzerdefiniertes Modul package.json Ist

{
  "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 Des benutzerdefinierten Moduls ist wie folgt sehr einfach

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

export default class XXXView extends React.Component {

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

datei, in der ich ein benutzerdefiniertes Modul verwende, ist

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"
    }
});

Ich habe npm install /absolute/path/to/xxx Versucht und das Modul richtig verknüpft. Mit richtig meine ich, dass ich das Paket react-native-xxx Im Verzeichnis nodemodule sehen kann. Ich habe alle möglichen Wege gegangen, aber nichts hat funktioniert.

Ich habe es auch versucht, aber keinen Erfolg gehabt

  • garn hinzufügen/absolut/Pfad/zu/reagieren-native-xxx
  • react-Native Link React-Native-xxx
  • react-Native Run-Android
15
Firu

Es sieht so aus, als hätten Sie zwei verschiedene reaktionsnative Projektordner, von denen einer von einem anderen abhängig ist (er wird als Abhängigkeit von node_module aufgenommen), und Sie führen anscheinend Ihren Befehl zum Starten des Servers ("reaktionsnativer Start") aus dem Bibliotheksordner aus.

1
Soman Dubey