📌  相关文章
📜  预算错误:捆绑初始 es5 超出了最大预算. 128 kB 总共 5.12 MB 未满足预算 5 MB. (1)

📅  最后修改于: 2023-12-03 15:28:55.728000             🧑  作者: Mango

预算错误:捆绑初始 es5 超出了最大预算

当编译 JavaScript 应用程序时,Webpack 是最受欢迎的打包工具之一。在使用 Webpack 进行打包时,可能会遇到如下的错误:

预算错误:捆绑初始 es5 超出了最大预算. 128 kB 总共 5.12 MB 未满足预算 5 MB.

这表明您的应用程序打包后大小超出了预期,并且已经超出了您设置的最大限制。这种情况通常发生在将许多第三方库添加到您的应用程序中时,这些库之间可能有相互依赖,并且它们的大小最终导致了打包超过预期大小。

解决此问题可能需要进行以下几个步骤:

1. 分析打包大小

使用 Webpack 的 bundle 分析工具可以快速分析打包后的大小。可以通过命令行设置该工具的选项,例如使用webpack-bundle-analyzer

npm install webpack-bundle-analyzer --save-dev

然后在webpack.config.js中配置:

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

module.exports = {
  // 配置项
  // ...
  plugins: [
    new BundleAnalyzerPlugin()
  ]
};

运行上述命令后,它将生成一个可视化的打包分析图表,该图表有助于确定到底哪些库或模块是最大的贡献者,从而帮助您缩减打包大小。

2. 建议执行

首先,你可以尝试按如下方式优化 Webpack 的配置:

增加最大预算的值。

performance: {
  hints: process.env.NODE_ENV === 'production' ? 'warning' : false,
  maxAssetSize: 1024 * 1024 * 5, // 5MB
  maxEntrypointSize: 1024 * 1024 * 5, // 5MB
}

修改了 maxAssetSizemaxEntrypointSize 的预算,从5MB增加到10MB。

尝试移除一些您不需要的库、模块、组件等,从而最大程度地缩减打包体积。

使用 Webpack 的代码分割功能。这将减少应用程序的初始加载时间,从而提高用户体验。代码分割可以通过异步加载来实现。具体的代码分割方式可以参考 Webpack 的文档

请注意,最佳实践是将 library 打包到较小的 chunks 中并尽可能少地将其捆绑在一起。

3. 结论

以上是解决 Webpack 打包大小超过预期问题的一些常规步骤。当出现类似错误时,您可以尝试使用这些步骤来缩减打包体积并提高应用程序的性能。如果您仍无法解决此问题,请考虑与相关的 Webpack 社区和其他开发人员进行交流获取更多见解。