我正在使用webpack 3.8.1并且正在接收以下构建警告的几个实例:
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
令人困惑的是,'两个'引用的文件只是一个文件 - 目录中没有两个文件,其名称仅在大小写上有所不同。
我还注意到,如果受到这些警告影响,我的热重新加载器通常不会对文件进行更改。
可能导致此问题的原因是什么?
答案 0 :(得分:53)
这通常是一个微不足道的错字的结果。
如果您要导入模块,例如import Vue from 'vue'
,import Vuex from 'vuex'
。
浏览您的文件并查看您使用的位置from 'Vue'
或from 'Vuex'
错误描述应该写得更清楚了,但我解释的是每次在webpack命令上出现此错误时我的问题的原因。
答案 1 :(得分:10)
对于其他遇到此问题并没有运气尝试建议的修复程序的人,这是另一种可能的修复程序。
请确保您在终端中使用的路径具有正确的大小写。例如,如果您在Windows上使用git bash并且您的项目具有以下路径:
C:\MyProjects\project-X
如果使用cd /c/myprojects/project-x
(请注意缺少大写字母)访问它,然后运行npm start
,则可能会遇到此问题。
解决方案是考虑项目路径区分大小写,并按以下方式使用它:
cd /C/MyProjects/project-X
答案 2 :(得分:4)
在角度6发生在我身上。 您的IDE或文本编辑器可能会忽略这是大写和小写字母误用错误。 我使用
import { PayComponent } from './payment/pay/pay.component';
代替
import { PayComponent } from './Payment/pay/pay.component';
想象一下“ P”和“ p”。祝你好运。
答案 3 :(得分:3)
当我尝试在窗口计算机上的vscode终端中运行npm start
时,会发生此问题。问题是/desktop/flatsome
而不是/Desktop/flatsome
,只是在vscode终端中将路径改为大写D
到桌面,而小写d
到桌面
答案 4 :(得分:2)
OMG我终于找到了解决问题的方法。
我正在使用 VS Code终端,并且在提示路径中使用的是桌面而不是桌面:
C:\Users\Hans\desktop\NODE JS\mysite>
要修复它,我只需要关闭项目文件夹并重新打开它即可:
File -> Close Folder
File -> Open Folder
现在VS Code终端正在使用正确的提示路径。
答案 5 :(得分:1)
我在Angle 6项目中遇到了同样的问题。
发生此问题的原因是,在模块之类的组件中导入组件
import { ManageExamComponent } from './manage-Exam.component';
我写过像manage-Exam一样的考试,考试用大写字母写成,而webpack理解小写字母。
我一经使用
import { ManageExamComponent } from './manage-exam.component';
少量使用过的考试,并且已解决问题。
答案 6 :(得分:0)
如果有人在使用 vue-styleguidist 时遇到这个问题,那么这 github issue 为我解决了问题。
答案 7 :(得分:0)
我遇到了同样的问题,因为我将项目文件夹的名称更改为“ Myclass”,而由于某些原因,在git bash中将其命名为“ myclass”。当我更改为小写的“ m”时,消息停止了。
答案 8 :(得分:0)
这些解决方案都不适合我。什么是:
就我而言,我只是更改了包含导入模块的文件名的大小写。它们在文件系统(OSX Finder,Bash)和代码编辑器(VS Code)中显示为小写。但是,以VS代码打开文件仍在代码编辑器选项卡中显示了旧文件名。我尝试完全删除文件,然后重新添加它们。这不起作用-新添加的文件仍在编辑器选项卡中显示旧名称,而我的构建仍在中断。
然后,经过数小时徒劳的修复尝试,我发现Git不会将对文件大小写的更改视为更改,因此它实际上从未更改过这些文件名:
How do I commit case-sensitive only filename changes in Git?
因此,我删除了有问题的文件,提交给Git,重新添加了文件并重新提交了-并且它起作用了。没有警告,并且构建错误也消失了。
答案 9 :(得分:0)
如果next.js链接(进入React)中出现此错误:
import Link from 'next/Link'
代替
import Link from 'next/link'
答案 10 :(得分:0)
我遇到了同样的问题,然后发现我的vue文件以小写命名,如下所示:event.vue。为了解决它,我将其重命名为Event.vue并在导入它的位置进行了更新,然后它开始工作。对于import语句,它看起来像这样:
之前
从'@ / components / NewsAndEvents / event'导入事件 重命名文件后,它必须如下所示:
从'@ / components / NewsAndEvents / Event'导入事件
答案 11 :(得分:0)
同样的问题发生在我身上,试试这个 cli git config --global core.ignorecase false
。它可能是 Git 设置的区分大小写的配置。对我来说,一切都在没有任何警告的情况下运行。
答案 12 :(得分:0)
我在 Vue.js 中遇到了同样的问题。最终事实证明,我在两个位置导入了具有不同名称空间的组件。
import Step1 from '~/Components/Application/Step1'
import Step1 from './Step1'
通过将第二个更改为:
import Step1 from '~/Components/Application/Step1'
希望对您有所帮助...
答案 13 :(得分:0)
我们用 webpack 解决了这个问题。将 entry 传递给 webpack 时,我们使用了 path.resolve("./abc.ts")
。这是根据当前终端路径解析相对浴。我们通过解析相对于当前目录的路径来解决这个问题。 path.resolve(__dirname, './abc.ts');
答案 14 :(得分:0)
就我而言,我错误地进行了两次导入:
UTF-8
答案 15 :(得分:0)
为我解决的问题(在下一个 js 上)是将目录名称更改为小写:
来自:
var audioPlayer: AVAudioPlayer?
func playSound(sound: String, type: String) {
if let path = Bundle.main.path(forResource: sound, ofType: type) {
do {
audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
audioPlayer?.play()
} catch {
print("ERROR")
}
}
}
// Some code here
playSound(sound: "resume", type: "m4a")
。
致:
/src/Components/NavBar/MainMenuItemMobile.js
。
答案 16 :(得分:0)
简单地重命名您的文件夹,然后输入 npm start 重试
答案 17 :(得分:0)
我正在使用 Jetbrains Webstorm(在 Windows 上)并且我的运行配置中 package.json 的路径大小写错误。
~\Projects\x\XWebsite\package.json
->
~\projects\x\XWebsite\package.json
答案 18 :(得分:0)
如果您使用的是 VS Code ,并且您正在执行“ npm run dev ”,但是在VS中未打开相应的项目文件夹 编码,然后将出现这些 3警告。
解决方案是:首先打开相应的项目文件夹,然后仅执行“ npm run dev”
答案 19 :(得分: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'
希望这两种方法都能解决您的问题。
答案 20 :(得分:0)
是的,如果您使用的名称相同但大小写已更改,则会发生这种情况: 例如,您曾经
import React from 'React'
import React from 'react'
答案 21 :(得分:0)
字母驱动器的大小写也很重要。就我而言,Windows 10文件中的字母为大写“ C”,而我文件中的小写为“ c”。
答案 22 :(得分:0)
我也有同样的问题。我导航到目录Trade_v3,而实际目录为Trade_V3。更改目录后,不会引发此错误。
答案 23 :(得分:0)
我们在Windows上运行React,我的一位开发人员看到了这一点,但没有其他人遇到问题。
我看着他们打开VS Code到项目的子目录,然后对项目目录进行小写cd
(而不是实际的大小写混合),然后运行npm start
。
您实际上可以在终端中以c:\someproject\somedir
的形式看到目录名称的小写字母,但在Windows资源管理器中则为c:\SomeProject\SomeDir
。
我很惊讶Windows命令终端允许您执行此操作。
答案 24 :(得分:0)
就我而言(Win7,VSCode,Angular 6),即使在所有地方都修复了错误的案例路径之后,问题仍然存在。 看起来像webpack以某种方式缓存路径, 所以解决它:
答案 25 :(得分:0)
如果您在Visual Studio Code和Gitbash中看到此消息,请转到设置并搜索C:\(大写C),然后将Gitbash.exe的路径更改为c:\,它将消失。 >
答案 26 :(得分:0)
我遇到了同样的问题,我将我的react文件夹命名为 UI ,并且webpack生成的路径以某种方式使其变为小写。
因此,我将其重命名为 ui ,即用小写字母代替了 UI 马上。
谢谢。
答案 27 :(得分:0)
类似的问题,但是我的问题是在C:\Users\<username>\AppData\Local\Yarn
中安装了软件包。删除该文件夹并重新添加全局软件包,我想解决此问题。
答案 28 :(得分:0)
我有类似的错误,但与其他答案所描述的不完全相同。我希望我的回答可以对某人有所帮助。
我正在导入两个组件中的文件(Angular 7项目):
组件1:
LANGUAGES = require("../../models/LANGUAGES.json");
组件2:
LANGUAGES = require("../../models/LANGUAGES.JSON");
这是一个愚蠢的错误:这里的问题是我在同一个文件上使用两个不同的要求,这些文件使用不同的大写字母(它会生成警告)。
如何解决问题?使用相同的模型。
组件1:
LANGUAGES = require("../../models/LANGUAGES.json");
组件2:
LANGUAGES = require("../../models/LANGUAGES.json");
OR
组件1:
LANGUAGES = require("../../models/LANGUAGES.JSON");
组件2:
LANGUAGES = require("../../models/LANGUAGES.JSON");
答案 29 :(得分:0)
我也有这个警告,但是我的问题是, 例如,有一个React项目的文件目录:
**/src/containers/PageOne/index.js
**/src/containers/PageTWO/pageOneAction.js
**/src/containers/PageOne/index.js
**/src/containers/PageTWO/pageTWOAction.js
并且会有类似的警告。因为最好不要使用除action.js
以外的相同文件名(例如这些文件夹中的index.js
),否则在具有其他大小写语义的文件系统上进行编译时,这可能导致意外的行为。 / p>
要解决此警告,我们可以这样做:
**/src/containers/PageOne/index.js
**/src/containers/PageOne/pageOneAction.js
**/src/containers/PageTWO/index.js
**/src/containers/PageTWO/pageTWOAction.js
这是我的经验,希望它能对某人有所帮助。