Webpack:"存在多个模块具有仅在大小写上不同的名称,但所引用的模块是相同的"

162

我正在使用 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

令人困惑的是,“两个”被引用的文件实际上只有一个文件 - 在目录中没有两个名称仅在大小写上不同的文件。

我还注意到,如果文件受这些警告影响,则我的热重新加载器经常无法捕获对文件的更改。

可能是什么原因导致了这个问题?


看看这个,它可能会解决你的问题 https://dev59.com/7broa4cB1Zd3GeqPfjJV - Sarthak Saklecha
40个回答

0
我在一个 Gatsby 项目中遇到了这个问题,我错误地导入了组件。

enter image description here

为了解决这个问题,只需确保像这样使用import它们:
import Layout from "../components/Layout"
import Seo from "../components/Seo"

0

我曾经遇到过同样的问题,我的React文件夹命名为UI,但是Webpack生成的路径却变成了小写。

所以,我把它改名为ui,即使用小写字母而不是UI,这样就解决了警告问题。

谢谢。


0

类似的问题,但我的问题是安装在 C:\Users\<username>\AppData\Local\Yarn 的包。删除该文件夹并重新添加我想要的全局包可以解决这个问题。


0
如果您在 Visual Studio Code 和 Git Bash 中看到此消息,请转到设置,并搜索 C:\(大写 C),然后更改 Git Bash.exe 的路径为 c:\,它就会消失。

0

我也遇到了同样的问题,因为我将项目文件夹的名称更改为"Myclass",但在git bash中它变成了"myclass"。当我将小写字母"m"时,消息停止了。


0
我在使用npm link本地链接某个库时遇到了这个问题,显然在那之后我改变了一个文件夹的大小写(尽管我不记得为什么要这样做)。
使用npm rm [library]取消链接该库,然后使用npm link [path/to/library]再次链接该库可以为我解决这个问题。

0

我遇到了一个类似的错误,但不完全与其他答案描述的相同。希望我的回答能够帮助到某些人。

我正在两个组件中导入文件(Angular 7 项目):

组件 1:

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

组件2:

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

这是一个愚蠢的错误:问题在于我在同一个文件上使用了两个带有不同大写字母的requires(它生成了一个警告)。 如何解决这个问题? 使用相同的模块。
组件1:
LANGUAGES = require("../../models/LANGUAGES.json");

组件2:

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

或者

组件1:

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

组件2:

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

0
在我的情况下,我不小心导入了两个类似这样的文件:
import './Component.module.css'
import styles from './Component.module.css'

0

我也遇到了这个问题。我通常在 Fedora 机器上运行 Node 等,但需要在 Windows Server 上运行它。

经过 30 分钟的思考,我想知道为什么它会崩溃,最终发现是这个原因:

c:\myproject\

改为:

C:\myproject\

注意到区别了吗?

我已经想念 Fedora 了。因此,如果您在 Windows 上部署,建议使用 WSL


0

对我来说,这是一个大小写问题,在webpack.config.js文件的entry部分。 我有

entry: {
    app: "./scripts/app.ts"
}

而不是(大写的S

entry: {
    app: "./Scripts/app.ts"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接