jQuery 或其他第三方库是否应该与逻辑代码捆绑在一起?
Should jQuery or other third-party library be bundled together with logic code?
如今,前端开发人员有webpack、browserify 等工具将javascript 文件打包在一起。如果脚本在服务器上 运行,打包似乎比一次单独加载每个文件更好。但是如果我们将脚本部署到客户端,我们是否总是需要将所有脚本打包在一个文件中?还是自己写的代码?
例如jQuery是一个非常流行的第三方库,到处都在使用。如果我们使用 webpack 将 jQuery 与我们的逻辑代码捆绑在一起,是的,它减少了 HTTP 请求次数,但浪费了浏览器缓存,如果用户再次访问该站点或有多个页面使用 jQuery.
所以我的问题是:我们应该始终将所有代码捆绑在一起以减少一次性流量,还是单独部署常用的第三方库,尤其是在使用 npm/bower + webpack/browserify/elixir 时.最佳做法是什么?
正如您所提到的,将 jQuery 与您自己的代码捆绑在一起会抵消缓存优势,并且 jQuery 并不小。此外,您可能会在某个时候想要更改您的代码。你通常不会改变jQuery,但你会强制客户端重新下载它。
因此,单独分发第三方库是个好主意,最好有更长的缓存时间。
如今,前端开发人员有webpack、browserify 等工具将javascript 文件打包在一起。如果脚本在服务器上 运行,打包似乎比一次单独加载每个文件更好。但是如果我们将脚本部署到客户端,我们是否总是需要将所有脚本打包在一个文件中?还是自己写的代码?
例如jQuery是一个非常流行的第三方库,到处都在使用。如果我们使用 webpack 将 jQuery 与我们的逻辑代码捆绑在一起,是的,它减少了 HTTP 请求次数,但浪费了浏览器缓存,如果用户再次访问该站点或有多个页面使用 jQuery.
所以我的问题是:我们应该始终将所有代码捆绑在一起以减少一次性流量,还是单独部署常用的第三方库,尤其是在使用 npm/bower + webpack/browserify/elixir 时.最佳做法是什么?
正如您所提到的,将 jQuery 与您自己的代码捆绑在一起会抵消缓存优势,并且 jQuery 并不小。此外,您可能会在某个时候想要更改您的代码。你通常不会改变jQuery,但你会强制客户端重新下载它。
因此,单独分发第三方库是个好主意,最好有更长的缓存时间。