Vue 配置使用 externals 使用cdn减小打包体积

在 vue.config.js 中 书写配置
   // 引入webpackconst webpack = require('webpack');const path = require('path');const assetsCDN = {// 放置需要使用 cdn 的库externals:{vue: 'Vue','element-plus': 'ElementPlus',},css:[// 存放 引用 css文件的地址'//unpkg.com/element-plus@1.0.2-beta.48/lib/theme-chalk/index.css',],js:[// 存放 引用 js 文件的地址'//unpkg.com/vue@3.1.1/dist/vue.global.js','//unpkg.com/element-plus@1.0.2-beta.48/lib/index.full.js']}module.exports = {// 配置代理服务器// devServer: {//     port: 9010, // 端口号//     proxy: {//         '/api': {//             target: 'http://localhost:3000', // 后台地址//             changeOrigin: true, // 允许跨域//             pathRewrite: {//                 '^/api': ''  // 匹配别名//             }//         }//     },//     open: true, // 启动自动打开// },configureWebpack: config => {// 视为一个外部库,而不将它打包进来。config.externals = assetsCDN.externals;// 设置全局变量// config.plugins.push(new webpack.ProvidePlugin({//     '@': path.resolve(__dirname, './src'),// }))},chainWebpack: config => {// HtmlWebpackPlugin 插件 存储数据 用于生成html模板config.plugin('html').tap(args => {args[0].cdn = assetsCDN;return args})}
}
在入口文件中书写配置 (一般是 public/index.html )
  <!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title><!--================循环引入 cdn 中的 css 文件 ================--><% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %><link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" /><% } %><!--==========================================================-->
</head><body><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.Please enable it to continue.</strong></noscript><div id="app"></div><!--================ 循环引入 cdn 中的 js 文件 ================--><% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %><script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script><% } %><!--==========================================================-->
</body></html>
  • vue3 自动配置了 全局 API Treeshaking 通过这一更改,如果模块打包工具支持 tree-shake,则 Vue 应用程序中未使用的全局 API 将从最终的打包产物中排除,从而获得最佳的文件大小。
  • element-plus 也支持按需引入,建议使用按需引入(我这里测试使用,所以全部引入了),可以更加减少打包后体积大小。同时也可以使 cdn 引用文件 变小,加载速度更快

Vue 配置使用 externals 使用cdn减小打包体积 (前端优化)相关推荐

  1. Vue 中使用externals和CDN来优化项目的体积

    Vue 中使用externals和CDN来优化项目的体积 externals是webpack中的一个配置 文档说明 主要是为了防止项目在打包的时候,将一些通过import引入的包也一起打包到bundl ...

  2. echarts如何定制使用以便于减小打包体积

    我们一般使用echarts不会全量引入,因为全量引入会导致包体积过大,首页加载白屏的时长会较长,容易被测试或者产品经理吐槽;所以我们一般会按需引入,这里有两种方式可以按需引入,我们分别说下; 第一种, ...

  3. Vue项目优化,减小打包体积

    使用Vue-cli脚手架搭建项目Vue的话(这里说明一下,我用的是脚手架2.x),看这里  1.使用路由懒加载  原理,让文件按需加载,使用的时候再加载出来 在路由文件导出的对象加入下面这种格式 ex ...

  4. vue配置各种环境-环境切换问题-打包自由切换

    vue-cli版本是2.0左右的就会有webpack的config目录 vue-cli版本是3.0以上的就会有vue.config.js没有config目录 我们先来看第一种怎么配置(有webpack ...

  5. vue配置多个跨域+下载打包

    本地项目需要下载阿里云上的文件,而且需要前端下载后打包1.配置多个代理 devServer: {host: '0.0.0.0',port: port,proxy: {[process.env.VUE_ ...

  6. DNS与CDN知识汇总(前端优化一)

    什么是DNS? 域名系统DNS(Domain Name System),他由三部分组成(名称解析器,域名空间,名称服务器),他是一个分布式数据库,功能是联系域名和ip地址,域名和ip对应,被称为记录, ...

  7. vue项目webpack打包优化体积优化,打包体积减少200kb到4Mb

    解决方法 1.压缩图片 应尽可能地压缩项目中的图片,或使用svg矢量图.雪碧图.webp图片(此种图片仅兼容谷歌和opera浏览器,但图片的体积更小)等小体积的图片,达到减少打包体积的目的. 2.路由 ...

  8. vue 一个页面有点请求需要同时发送_前端性能优化,这些你都需要知道

    来源: 海洋里的魔鬼鱼 前言 最近花了一些时间在项目的性能优化上,背后做了很多工作,但是最后依然没有达到自己想要的结果,有些失望,但是还是记录下自己的执着. 性能优化总结:减少请求次数.减小资源大小. ...

  9. VUE 通过EXTERNALS 加载外部CDN资源,减少打包体积

    目录 前端性能优化方案 1.在vue.config.js 里面的写入如下配置     使用externals 代码 在vue.config.js里面  设置打包排除项     使用此配置项   con ...

最新文章

  1. python 使用sax 解析xml 文件
  2. jwt只能用ajax么,使用JWT进行登录认证的一些问题
  3. 3.JAVA基础复习——JAVA中的类与对象
  4. eclipse没有日志_技术进展 | 加强公共DHT抵抗eclipse攻击!
  5. Fiddler抓取https证书问题
  6. arm-linux-gcc 硬浮点,ARMCC和GCC编译ARM代码的软浮点和硬浮点问题 【转】
  7. 安卓案例:Volley用法演示
  8. 重启iis与mysql服务器吗_每晚定时重启IIS和数据库服务可节省服务器资源
  9. lvs keepalive配置Jenkins2高可用
  10. SAP MM 采购单据中的’Origin Accept’选项会影响Inbound Delivery创建操作方式
  11. c# webform js文件获取客户端控件,后台cs获取前台客户端控件的值,c#和js的交互...
  12. python3爬虫验证码识别——超级鹰打码平台的使用实战:识别古诗文网登录页面中的验证码
  13. 广东省计算机学校,广东省计算机基础练习平台(高校版)安装设置方法
  14. UE4 3DUI Widget半透明渲染模糊和重影问题
  15. Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
  16. 【JS】H5打开支付宝
  17. 解决mac BigSur外接显示器发白、发黄、字体发虚 (OpenCore关闭SIP和Read-Only System)
  18. 挑出区域内每一行最小值,并标记颜色
  19. 【STM32】NVIC 中断优先级管理,抢占优先级,响应优先级,中断寄存器
  20. 什么是框架,框架的作用是什么?

热门文章

  1. Probability and Statistics for Engineering and The Sciences 概率论与数理统计 读书笔记(一)
  2. BT下载 BitComet
  3. 华北电力大学微型计算机,华北电力大学学报(自然科学版)
  4. 计算机毕业设计Java学生课堂互动教学系统(源码+系统+mysql数据库+lw文档)
  5. 麻花影视,爱观影的请速度下载
  6. VirtualBox 安装以及 CentOS Linux 系统环境安装教程
  7. python游戏代码怎样才能玩好英雄联盟_用Python编写代码分析《英雄联盟》游戏胜利的最重要因素...
  8. 图片自适应,且不超过原始大小,需要设置最大宽度
  9. Vue3教程:开发一个 Vue 3 + element-plus 的后台管理系统
  10. 黑宝石(Black Diamond)免费主题