【问题标题】:Webpack devtool="(none)" breaks my codeWebpack devtool="(none)" 破坏了我的代码
【发布时间】:2018-12-14 03:13:40
【问题描述】:

我正在使用 webpack 3.10,并且我为 dev/prod 提供了不同的 webpack 配置。现在在我的产品配置中设置了“devtool =”(none)“”,而在我的开发配置中它是“eval-source-map”。

遗憾的是,使用 prod 配置,我的捆绑包无法正常工作。在使用开发配置时,一切正常。 我试了一下,每个在 webpack 文档中标记为“生产:是”的设置:https://webpack.js.org/configuration/devtool/ 破坏了我的代码。

谁能解释设置之间的确切区别。是否还有其他变化(缩小/丑化)?

亲切的问候。

【问题讨论】:

  • 这似乎不是有效的语法:"devtool = "(none)"" 另外,我认为您可能把文档看得太字面意思了,(none) 应该只是 null 或空字符串 @987654326 @。查看更多实际配置代码会很有帮助。
  • codesandbox.io/s/k0lmjlqmj7 我在这个沙箱中使用它们创建了 2 个 webpack 文件。真的没有太大区别。同样正如我所说的任何其他生产:是的 devtool 参数的值(如沙箱中的“源映射”)会破坏它。
  • 好的。我的(/我们的)代码的一部分根本没有缩小。将反应组件的类型检查为字符串。所以缩小只是打破了它。现在好了。 Webpack 一切都很好:)

标签: webpack webpack-3


【解决方案1】:

在 webpack 5.2.0 中,您可以在生产环境中将配置声明为 devtool: false 以实现 (none) 功能。

注意:如果您有 mode: "development" 并且您在 webpack 配置中没有提及 devtool,则 devtool 默认为 eval

【讨论】:

  • 仅供参考:此功能并非 webpack v5 独有。它也在 v4 中。
  • devtool: false 在 webpack 5 中对我不起作用。
【解决方案2】:

这不是你使用它的方式。要使其工作,您不应指定 devtool 键。不是空值或(none),您的配置中根本不应该有devtool 键。

{
  ...
  plugins: [],
  optimization: {}
  ...
}

中间没有任何devtool

【讨论】:

  • mode: development 的情况下不正确。在开发模式下,devtool 默认为eval
  • 嗯,有一个布尔选项。只需将其设置为false,这在 webpack 的编程使用中将非常有用。
猜你喜欢
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多