【问题标题】:Is there a way to disable tree-shaking in webpack 2?有没有办法在 webpack 2 中禁用 tree-shaking?
【发布时间】:2017-09-05 22:05:37
【问题描述】:

有没有办法在 webpack 2 中禁用 tree-shaking,或者恢复到 webpack 1 中由 babel 处理导入的行为?我有一个似乎是 webpack 中的错误,但它只是随机发生的(不是 100% 可重现的),我想恢复到旧的行为,看看问题是否会消失。

我看到的错误是我在 node_modules 中导入模块,有时结果符号未定义。例如:

import { withRouter } from 'react-router';

'withRouter' 的值未定义,但仅在一个模块中。奇怪的是,这只发生在初始构建时,如果我进行增量构建,一切正常。

请注意,为 babel 设置 { modules: true } 不起作用 - 它只会导致 webpack 报告错误。

在了解更多信息之前,我不想将此作为错误提交。而且因为这只发生在一个大型项目中的数千个符号中,我怀疑我是否可以制作一个小的复制案例。

编辑:我创建了一个可以重现问题的极简示例:

https://github.com/viridia/webpack-miscompile

【问题讨论】:

  • 您是否碰巧找到了禁用未使用代码删除的方法?我面临着类似的问题,我正在构建一个 npm 包,其中包含一些旨在供其他使用者库使用但在 npm 包本身中未引用的模块,因此 webpack 将它们从输出包中排除。
  • 我从来没有在这里得到回复,或者我向 webpack 提交的 github 错误。最近我的 stackoverflow 运气不好,我的绝大多数问题都没有得到解答。
  • 我讨厌添加“我也是”但是...“我也是”。开发模式中存在的模块有时在生产中不存在。摇树似乎是罪魁祸首,但我无法辨别如何禁用它......至少看看这是否是罪魁祸首。

标签: webpack webpack-2


【解决方案1】:

我找到了我试图调试的原始问题的解决方案 - 请参阅 https://github.com/webpack/webpack-dev-server/issues/876 以获取完整说明。基本上我在 webpack-dev-server 中使用了错误的回调选项。

但是,我从来没有发现是否有禁用 tree-shaking 的选项。

【讨论】:

    猜你喜欢
    • 2019-02-14
    • 2017-07-01
    • 1970-01-01
    • 2018-01-28
    • 2016-12-28
    • 1970-01-01
    • 2018-05-19
    • 2018-06-29
    • 2019-02-08
    相关资源
    最近更新 更多