Vue打包优化--抽离依赖包(CDN抽离)

738 阅读2分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路

- [ 由何而来]

首先我们先了解一下服务器

服务器配置和带宽是分开的

配置就是体积大小,内存和储存空间

流量需要公网,需要ip,需要带宽,所以一般很贵,基本都是租,距离也会影响网速。

随着互联网的发展,新技术弹性扩容,会根据访问量来拉大带宽,但是占用还是很大

服务器传输给用户太浪费

image.png

你如果想要echarts.js还需要从服务器中获取

一些商业大佬观察到了商机,CDN由此而来(如湖北联通,广东电信等等)

其自动根据用户距离自动识别ip地址,跟不同地址托管到最近的服务器

资源托管方式

1,把所有资源托管到CDN 贵

2,只托管公共资源 免费,但是俗话说得好,免费的才是最贵的不是,当然了只是打趣

CDN中还是jsdelivr比较好,声称比任何的CDN都快

其实它做的事就是去各个平台拉取所有开源库,相当于把用户请求的依赖包从对服务器请求换成了到对CDN请求

image.png

换成了CDN,但是只是在用户访问服务器体积变小了, 在网络中请求的实际大小没变

- [ 如何用]

场景说明:在使用CDN引入外部文件的情况下使用external其目的是使本地项目依旧可以使用import的语法来引入这些第三方库,也就意味着你不需要改动本地项目的代码。若不想改动本地即可无需再设置external直接script引入即可

1.在vue.config.js中设置

image.png

echarts的官网你可以看到

image.png

其是从全局中获取的echarts

除了官网获取之外,我们也可以通过jsdelivr获取

进入www.jsdelivr.com/ 下拉到搜索框搜索

image.png

我们可以搜索到

image.png

点击你想选的右边小图标选复制即可

2.在index.html中引入

image.png

3.在此之前我们如果使用jsDelivr获取的话,最好再创建一个html用于测试,引入script链接

打开浏览器,输入window,因为我们需要获取全局名称

image.png

我们可以看到其全局名称为echarts,这里我们需要注意不是每个第三方都会用原本的名称,这里echarts只是个例,如element-ui就是ELEMENTvue-quill-editorVueQuillEditor,你不是事先看一看根本不会知道

拓展.如果我们想要将css也尽量减少服务器使用体积,我们需要先在main.js中删除你引入的css

image.png

然后如法炮制在jsDelivr中搜索即可,最后记得添加到head

image.png

注意!css不要在config中设置

说的不好的地方请大佬评论区指点