我知道现在开发人员希望减少网页发送的包含JavaScript和CSS文件的请求数量,并且有一些任务运行器和打包器(如Webpack和gulp)可以帮助您从自己的工作中打包所有脚本和样式和/或插件/ lib到一个脚本文件中,但问题是,这是正确的做法吗?
例如,使用react
,redux
,react-redux
的项目可以包含一个脚本文件,其中包含所有这些lib以及项目脚本,可能已经uglified / minified for like + 1MB
由于许多网站或网络应用程序目前使用此类lib,从某些CDN添加这些lib是不是更好,这有助于用户在浏览器已经缓存时不重新下载它们?
希望我的问题足够明确:) 欢呼声
答案 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