之前听人说过把要使用的库使用cdn引入项目可以减小项目的体积,从而可以优化首屏渲染,也听人说过这个没用,你使用cdn,最终在客户端还是要加载库,对客户端而言只是加载时调的服务器不一样而已。我就想请问以下几个问题
- 使用cdn引入库是不是真的比npm引入的好?
- 好在哪里?用哪种方式,最终在浏览器都要加载,是不是浏览器使用cdn加载比你从项目加载快
- 有一个东西叫Tree Shaking的,比如说lodash,如果你用cdn,那么要加载全部,那么如果你npm lodash-es,浏览器下载的体积反而要小很多,这种情况是不是npm比cdn要好
用不用 CDN 和是不是 npm 引入,完全是两个维度的问题,并不冲突。
但这里题主想问的应该是“使用第三方的 CDN 链接以 <script> 方式引入” 和 “使用 npm 安装并使用 webpack 之类的工具打包” 孰优孰劣的问题。
具体情况具体分析,不能一概而论,要考虑以下这么几个问题:
终极解决方案:你可以把自己的 Web 站点整站都 CDN 化啊,即能享受到 npm 按需引入的优势,又能拥有前面 1、2 两点的优势。