javascript - 更改模块名称大小写时,Webpack 使 bundle 无效

标签 javascript module typescript webpack

这听起来可能很奇怪,但是当我在我的应用程序中更改模块名称时,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/

相关文章:

javascript - Facebook xhr 登录 : Cross-Origin Request Blocked

php - 如何在 Drupal 8 中使用带有自定义页面的可打印模块

perl - 当从 Perl 模块调用方法时,为什么 '::' 和 '->' 可以互换工作(某种程度上)?

typescript - TypeScript混淆错误 'Object is possibly ' undefined'和 'Property ' length'在类型上不存在

Angular 2 找不到名称 SimpleChanges

javascript - ES6 中的 map 与对象,何时使用?

javascript - 如何使用leaflet中的OSRM match api来绘制路线?

javascript - 是否可以使用 Meteor 在客户端中列出 SimpleSchema 模式的 allowedValues?

ruby-on-rails - rails : callbacks from module

Angular 8 : Make FormBuilder Accept Numbers Only with Range for Latitude and Longitude