将JS lib / plugins和CSS文件打包成单个文件是正确的吗?

时间:2018-05-11 13:23:10

标签: javascript webpack gulp

我知道现在开发人员希望减少网页发送的包含JavaScript和CSS文件的请求数量,并且有一些任务运行器和打包器(如Webpack和gulp)可以帮助您从自己的工作中打包所有脚本和样式和/或插件/ lib到一个脚本文件中,但问题是,这是正确的做法吗?

例如,使用reactreduxreact-redux的项目可以包含一个脚本文件,其中包含所有这些lib以及项目脚本,可能已经uglified / minified for like + 1MB

由于许多网站或网络应用程序目前使用此类lib,从某些CDN添加这些lib是不是更好,这有助于用户在浏览器已经缓存时不重新下载它们?

希望我的问题足够明确:) 欢呼声

1 个答案:

答案 0 :(得分:1)

不,不是。更好的解决方案是代码分割。你有多个小文件的地方,只有在需要时才会加载。这也可以使用webpack来完成。最好的"例如,解决方案是在单个文件中使用react + redux,然后立即下载。如果整个应用程序不需要其他依赖项,则它们应该是延迟加载的。

一个完美的场景:

鉴于您有一个vendor.js包含react + redux(在整个应用程序中使用)。

单个页面,例如,您导入moment.js。

用户输入网站 - > downloads react + redux bundle(现在缓存) - >转到另一页 - >下载moment.js文件。

围绕这些界限。

有用的资源:https://medium.com/webpack/predictable-long-term-caching-with-webpack-d3eee1d3fa31(使用webpack 3,但可轻松转换为webpack 4)。 还要在webpack文档(https://webpack.js.org

上查找splitChunks