这听起来可能很奇怪,但是当我在我的应用程序中更改模块名称时,webpack 会更改捆绑输出并使其出错。我有 windows,这意味着模块路径应该不区分大小写,并且包必须始终相同。 Webpack 向我展示了一些模块的名称不明确,如果您使用的是区分大小写的操作系统,它可能会影响,但 bundle 仍然可以正常工作。
然后我通过将 require
中的名称从小写的 component
更改为大写的 Component
来修复,然后 webpack 开始制作无效的包,如果比较这两个输出包,就会发现很多差异。我的问题是:为什么 webpack 在不区分大小写的环境中对区分大小写的名称表现不同以及如何修复它?也许它改变了模块顺序或类似的东西。
附言该应用程序很大:~2.5 mb。
附言问题出在继承上。我使用 TypeScript,错误是我尝试从 undefined 扩展。
谢谢!
最佳答案
why does webpack behaves different with case-sensitive name in case-insensitive environment
webpack 的真正环境是网络,网络是区分大小写的。它也可能只是订购例如按字母顺序排列,这将随着名称的变化而改变顺序。
The problem is in inheritance. I use TypeScript and the error is that I try to extend from undefined
您可能在那里有一个循环引用。它之前起作用的事实是偶然的(例如,按文件名排序满足预期)。
修复
删除循环引用。例如。使用 atom-typescript 找到它:https://github.com/TypeStrong/atom-typescript/blob/master/docs/dependency-view.md#circular
关于javascript - 更改模块名称大小写时,Webpack 使 bundle 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34124205/