【问题标题】:Webpack makes invalid bundle when change the module's name case更改模块名称大小写时,Webpack 使捆绑包无效
【发布时间】:2016-03-11 12:04:13
【问题描述】:

这听起来可能很奇怪,但是当我在应用程序中更改模块名称时,webpack 会更改捆绑输出并使其出错。我有窗口,这意味着模块路径应该不区分大小写,并且捆绑包必须始终相同。 Webpack 向我展示了一些模块的名称不明确,如果您使用区分大小写的操作系统,它可能会产生影响,但该捆绑包仍然可以正常工作。

然后我通过将require 中的名称从小写的component 更改为大写的Component 进行了修复,然后webpack 开始制作无效的包,如果你比较这两个输出包,会有很多差异。我的问题是:为什么在不区分大小写的环境中,webpack 的行为与区分大小写的名称不同,以及如何解决?也许它会改变模块顺序或类似的东西。 附言该应用程序很大:~2.5 mb。 P.S.S.问题在于继承。我使用 TypeScript,错误是我尝试从未定义扩展。

谢谢!

【问题讨论】:

    标签: javascript module typescript webpack


    【解决方案1】:

    为什么 webpack 在不区分大小写的环境下与区分大小写的名称表现不同

    webpack 的真正环境是 web,web 是区分大小写的。此外,它可能只是订购,例如按字母顺序排列,这将改变名称的顺序。

    问题在于继承。我使用 TypeScript,错误是我尝试从 undefined 扩展

    您可能在其中有一个 循环 参考。它之前工作的事实是偶然的(例如,按文件名排序符合预期)。

    修复

    删除循环引用。例如。使用 atom-typescript 找到它:https://github.com/TypeStrong/atom-typescript/blob/master/docs/dependency-view.md#circular

    【讨论】:

    • 是的,webpack 将模块索引增加了一个。是否有一些插件可以设置某些模块的优先级,或者告诉 webpack 首先加载这个模块?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2013-07-01
    • 2017-07-20
    • 2019-08-21
    • 2022-01-03
    • 2011-12-03
    相关资源
    最近更新 更多