wake-up-neo.net

Webpack: "Es gibt mehrere Module, deren Namen sich nur im Gehäuse unterscheiden", aber die referenzierten Module sind identisch

Ich verwende Webpack 3.8.1 und erhalte mehrere Instanzen der folgenden Build-Warnung: 

WARNING in ./src/Components/NavBar/MainMenuItemMobile.js
There are multiple modules with names that only differ in casing.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Use equal casing. Compare these module identifiers:
* /Users/path/to/babel-loader/lib/index.js!/Users/path/to/NavBar/MainMenuItemMobile.js
    Used by 1 module(s), i. e.
    /Users/path/to/babel-loader/lib/index.js!/Users/path/to/NavBar/ConstructedMainMenuItems.js
* /Users/path/to/babel-loader/lib/index.js!/Users/path/to/Navbar/MainMenuItemMobile.js
    Used by 1 module(s), i. e.
    /Users/path/to/babel-loader/lib/index.js!/Users/path/to/Navbar/ConstructedMainMenuItems.js
.....
(webpack)-hot-middleware/client.js ./src/index.js

Was verwirrend ist, ist, dass die 'zwei' Dateien, auf die verwiesen wird, nur eine Datei sind - es gibt keine zwei Dateien im Verzeichnis, deren Namen sich nur in dem Fall unterscheiden. 

Ich habe auch festgestellt, dass mein Hot Reloader die Änderungen an einer Datei oft nicht übernimmt, wenn sie von diesen Warnungen betroffen ist. 

Was könnte dieses Problem verursachen?

21
adc17

Dies ist normalerweise das Ergebnis eines winzigen Tippfehlers. 

Wenn Sie Ihre Module wie import Vue from 'vue', import Vuex from 'vuex' importieren.

Gehen Sie Ihre Dateien durch und prüfen Sie, wo Sie from 'Vue' oder from 'Vuex' verwendet haben. 

Die Fehlerbeschreibungen sollten klarer geschrieben worden sein, aber was ich erklärt habe, war jedes Mal die Ursache meines Problems für diesen Fehler in Webpack-Befehlen.

35
matthiku

Es passierte mir bei Winkel 6 . Es ist ein Groß- und Kleinbuchstabenfehler, den Ihr Texteditor oder Ihr Texteditor ignorieren kann ..__ 

import { PayComponent }      from './payment/pay/pay.component';

ANSTATT

import { PayComponent }      from './Payment/pay/pay.component';

Stellen Sie sich nur "P" und "p" vor. Viel Glück.

2
lilhamad

Wir haben auf Windows reagiert und einer meiner Entwickler hat dies gesehen, aber sonst hatte niemand das Problem.

Ich habe beobachtet, wie sie VS Code in einem Unterverzeichnis des Projekts geöffnet haben, dann ein cd in Kleinbuchstaben (anstelle der tatsächlichen gemischten Groß-/Kleinschreibung) in das Projektverzeichnis geschrieben und dann npm start Ausgeführt haben.

Sie können den Verzeichnisnamen im Terminal als c:\someproject\somedir In Kleinbuchstaben anzeigen, im Windows Explorer jedoch als c:\SomeProject\SomeDir.

Ich war überrascht, dass das Windows-Befehlsterminal dies ermöglicht.

1
Simon Hutchison

Für andere, die mit diesem Problem konfrontiert sind und die vorgeschlagenen Korrekturen ohne Erfolg ausprobiert haben, ist hier eine weitere mögliche Korrektur möglich.

Stellen Sie sicher, dass der in Ihrem Terminal verwendete Pfad die richtige Großschreibung hat. Wenn Sie beispielsweise git bash unter Windows verwenden und Ihr Projekt den folgenden Pfad hat:

C:\MyProjects\project-X

Wenn Sie mit cd /c/myprojects/project-x darauf zugreifen (beachten Sie das Fehlen von Großbuchstaben) und dann npm start ausführen, könnte dieses Problem auftreten.

Die Lösung wäre, den Projektpfad unter Berücksichtigung der Groß- und Kleinschreibung zu berücksichtigen und wie folgt zu verwenden:

cd /C/MyProjects/project-X

1

Ich hatte das gleiche Problem in Winkel 6 Projekt.

Dieses Problem trat auf, weil beim Importieren einer Komponente in das Modul z

import { ManageExamComponent } from './manage-Exam.component'; 

Ich habe wie eine Verwaltungsprüfung geschrieben, wobei Exam in Großbuchstaben und Webpack Kleinbuchstaben verstanden wird. 

Sobald ich gebraucht habe

import { ManageExamComponent } from './manage-exam.component'; 

verwendete Prüfung in klein und Problem gelöst.

1

Wenn Sie VS Code & verwenden, tun Sie "npm run dev", aber der entsprechende Projektordner wird nicht geöffnet in VS Code dann werden diese 3 Warnungen auftreten.

Die Lösung lautet also: Öffnen Sie zuerst den entsprechenden Projektordner und führen Sie dann nur "npm run dev" aus

Ich hatte das gleiche Problem in Vue.js. Schließlich stellte sich heraus, dass ich eine Komponente an zwei Stellen mit unterschiedlichen Namespaces importierte.

import Step1 from '~/Components/Application/Step1'

import Step1 from './Step1'

Behebung durch Ändern der zweiten in:

import Step1 from '~/Components/Application/Step1'

Hoffentlich hilft es einigen von euch ...

0
Sandip Mane

Ähnliches Problem, aber mein Problem waren Pakete, die in C:\Users\<username>\AppData\Local\Yarn installiert wurden. Durch das Löschen dieses Ordners und das erneute Hinzufügen der gewünschten globalen Pakete wurde das Problem behoben.

0
Josh G

In meinem Fall (Win7, VSCode, Angular 6)) bleibt das Problem auch dann bestehen, wenn ich überall den falschen Pfad für Groß-/Kleinschreibung festgelegt habe.

  • Benennen Sie Ordner oder Dateien, die Probleme verursachen, um
  • Bauen
  • Ich habe einen Fehler
  • Zurück umbenennen
  • Bauen
  • Erfolg
0
Sloven

Ich hatte das gleiche Problem, ich hatte meinen Reaktionsordner mit [~ # ~] ui [~ # ~] und der Pfad, der von Webpack generiert wurde, machte es irgendwie in Kleinbuchstaben.

Also habe ich es umbenannt in ui dh in Kleinbuchstaben anstelle von [~ # ~] ui [~ # ~] , das hat meinen Krieg sofort losgelassen.

Vielen Dank.

0
Rishabh Jain

Ja, dies passiert, wenn Sie denselben Namen verwendet haben, aber die Groß-/Kleinschreibung geändert wurde: Sie haben zum Beispiel verwendet

import React from 'React'
import React from 'react'
0
// waring
import Test from './TestHome'
// you can rename your file with camel-case and import
import Test from './test-home'
// or you should fix the path 
import Test from '@/views/TestHome'

Hoffe, dass die beiden Möglichkeiten Ihr Problem lösen.

0
Qian

Auch der Fall des Letter-Laufwerks spielt eine Rolle. In meinem Fall hatte Windows 10 den Großbuchstaben "C", während ich den Kleinbuchstaben "c" in der Datei hatte.

0
icernos

Wenn dies in Visual Studio Code und Gitbash angezeigt wird, wechseln Sie zu den Einstellungen, suchen Sie nach C:\(C in Großbuchstaben), und ändern Sie den Pfad für die Datei "Gitbash.exe" in "c: \". Die Datei wird dann ausgeblendet.

0
httpete

Ich hatte auch das gleiche Problem. Ich hatte zu einem Verzeichnis Trade_v3 navigiert, während das tatsächliche Verzeichnis Trade_V3 war. Nach dem Wechseln des Verzeichnisses wurde dieser Fehler nicht ausgelöst.

0
Raja Sekar

Ich hatte einen ähnlichen Fehler, aber nicht genau das, was andere Antworten beschrieben haben. Ich hoffe, meine Antwort kann jemandem helfen.

Ich habe eine Datei in zwei Komponenten (Winkelprojekt 7) importiert:

Komponente 1:

LANGUAGES = require("../../models/LANGUAGES.json");

Komponente 2:

LANGUAGES = require("../../models/LANGUAGES.JSON");

Dies ist ein dummer Fehler: Das Problem ist, dass ich zwei unterschiedliche Dateien für dieselbe Datei mit unterschiedlichen Großbuchstaben benutze (es wurde eine Warnung generiert).

Wie löse ich das Problem? Verwenden Sie dasselbe Modell.

Komponente 1:

LANGUAGES = require("../../models/LANGUAGES.json");

Komponente 2:

LANGUAGES = require("../../models/LANGUAGES.json");

OR

Komponente 1:

LANGUAGES = require("../../models/LANGUAGES.JSON");

Komponente 2:

LANGUAGES = require("../../models/LANGUAGES.JSON");
0
Curse

Ich habe auch diese Warnung, aber mein Problem ist, dass Zum Beispiel das Dateiverzeichnis des React-Projekts ist:

**/src/containers/PageOne/index.js
**/src/containers/PageTWO/pageOneAction.js

**/src/containers/PageOne/index.js
**/src/containers/PageTWO/pageTWOAction.js

Und es wird eine ähnliche Warnung geben. Da Sie besser nicht denselben Dateinamen verwenden möchten (z. B. action.js in diesen Ordnern), ausgenommen index.js, kann dies zu unerwartetem Verhalten beim Kompilieren in einem Dateisystem mit einer anderen Groß-/Kleinschreibung führen.

Um diese Warnung zu lösen, könnten wir das tun:

**/src/containers/PageOne/index.js
**/src/containers/PageOne/pageOneAction.js

**/src/containers/PageTWO/index.js
**/src/containers/PageTWO/pageTWOAction.js

Das ist meine Erfahrung, hoffe es könnte jemandem helfen.

0
aermin