vue-cli打包

2023-11-14

创建vue-config.js文件

设置不同模式的打包入口

把main.js文件删除,创建main-prod.js和main-dev.js

module.exports = {
    chainWebpack: config => {
      // 判断当前的编译模式,设置入口的打包文件
        config.when(process.env.NODE_ENV === 'production', config => {
            config.entry('app').clear().add('./src/main-prod.js')
        })

        config.when(process.env.NODE_ENV === 'development', config => {
            config.entry('app').clear().add('./src/main-dev.js')
        })
    }
}

合并优化

默认情况下,通过import语法导入的第三方依赖包,会被打包到同一个文件中
造成文件体积过大
在这里插入图片描述
1
声明后,打包时发现该包名,就不会合并到同一个文件下,而是在去window全局查找直接使用

config.set('externals', {
            vue: 'Vue',
            'vue-router': 'VueRouter',
            axios: 'axios',
            lodash: '_',
            echarts: 'echarts',
            nprogress: 'NProgress',
            'vue-quill-editor': 'VueQuillEditor'
        })

2
main-prod中的样式表删除,
public/index.js文件中添加外部资源引用

  <!-- 富文本编辑器 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.core.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.snow.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.bubble.min.css" />
   

    <script src="https://cdn.staticfile.org/vue/2.5.22/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-router/3.0.1/vue-router.min.js"></script>
    <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
    <script src="https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>
    <!-- 富文本编辑器的 js 文件 -->
    <script src="https://cdn.staticfile.org/quill/1.3.4/quill.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>


优化element-ui

配置完,文件小了很多,但还是很大,于是对element-ui优化
在这里插入图片描述

main-prod.js中,注释element-ui按需加载的代码
index.html的头部区域,通过CND加载element-ui的js和样式

 <!-- element-ui 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.8.2/theme-chalk/index.css" />
        <!-- element-ui 的 js 文件 -->
    <script src="https://cdn.staticfile.org/element-ui/2.8.2/index.js"></script>

在这里插入图片描述

为不同模式下添加标题

main-prod.js中为html添加属性isProd
开发模式为false,发布模式为true,
并在public/index.js中进行判断

 config.plugin('html').tap(args => {
                args[0].isProd = false
                return args
            })
<title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>电商后台管理系统</title>

路由懒加载

当打包构建项目时,javaScript包会变得非常大,影响页面加载,把不同路由对应的组件分割成不同的代码块,然后路由被访问的时候才加载对应组件,这样效率更高
具体见链接

  1. 安装@babel/pugin-syntax-dynamic-import
  2. babel.config.js配置文件中声明该插件
  3. 将路由改为按需加载的形式,示例代码如下
const Foo = () => import(/* webpackChunkName: "group-foo"*/ './Foo.vue')
const Bar= () => import(/* webpackChunkName: "group-foo"*/ './Bar.vue')
const Baz= () => import(/* webpackChunkName: "group-boo"*/ './Baz.vue')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-cli打包 的相关文章

  • VUE+vue-print-nb,vue打印我踩过的坑

    这几天写了一个需求 要求打印条形码 先来张要打印出来的效果图吧 效果图大概长这样子 图是我随便找的 二维码扫出来是啥我也不知道 哈哈 写这个需求的时候踩了太多的坑了 在此记录下辛酸史 vue print nb基本用法 这个插件用法很简单 安
  • 存储器管理(分页存储)例题解析(操作系统)

    逻辑地址 页号 页长 页内偏移量 将逻辑地址102B H 转换成十进制 11 160 2 161 1 163 4139 因为页长1KB 1024 所以 4139 1024 4 余数是43 那么也就是说 页号是 4 页内偏移量是 43 由页号

随机推荐

  • [深度学习]循环神经网络:RNN,LSTM,GRU,Attention机制,沿时间的截断反向传导算法

    RNN Recurrent Neural Network 循环神经网络 每个RNN都有一个循环核心单元 它把x作为输入 将其传入RNN RNN有一个内部隐藏态 internal hidden state 这个隐藏态会在RNN每次读取新的输入
  • ElasticSearch6.x 核心概念总结

    ElasticSearch6 x 与MySQL8 核心概念对比 ElasticSearch6 x MySQL8 x 索引 index 数据库 database 类型 type 表 table 文档 document 行 row 字段 fie
  • golang slice 是 struct 类型,作为参数传递时要传地址

    总结 slice 为结构体类型 go 传参都是值传递 跨函数传递 slice 时 要传变量的地址 不能直接传递变量值 因为除了 len 会变 遇到扩容时 还会新建底层数组 先看下 slice 的定义 type slice struct ar
  • Java 堆排序的应用--对类根据目标成员进行排序

    Java 堆排序的应用 对类根据目标成员进行排序 前言 堆排序方案 应用 快排方案 应用 代码记录 结语 前言 突然想对SQL语句搜索上来的数据重新排个序 也就是对类list排序 一时间网上搜了搜都说要覆写compareTo函数 觉得这么搞
  • 制作U盘安装CentOS 6.2

    见附件 CentOS6 2需自行下载
  • HCIP2------路由器、交换机的转发原理

    一 路由器 1 路由器产生的原因 对于普通用户来说 主机A与主机B通信需要通过路由器 从而构成简单的局域网 局域网内的计算机要和外面的计算机进行通信 要把请求提交给路由器的以太口 进而发展成为广域网 同时需要有一种方法来判断从源主机到达目的
  • Lattic Diamond软件安装不成功问题

    安装过程可以远程操作 但安装完成后不能通过远程来打开软件应用程序 一定要在本地电脑上打开使用 否则lisence中的MAC地址会不匹配
  • ScrollView默认位置不是最顶部

    场景描述 在scrollview中套用了一个recycleview 发现 recycleview上面的部分TextView不能被显示 直接显示的是recycleview的底部 分析原因 在Activity计算窗口的高度时 是在listvie
  • 在Excel中根据条件查找匹配多个值

    在Excel中根据条件查找匹配多个值 vlookup只能匹配第一个值 之前在深圳的时候就被问过这个问题 今天又遇到同事在问 索性记录在此 如下图 根据E列的值 在A列中查找对应的数据 输出匹配行上B列的值 依次填入到F G H 列 公式拆解
  • idea 配置maven常见问题

    1 在applicationContext dao xml中配置数据源时提示 cannot resolve property key 解决 在Facets中移除spring 重新添加一次 将xml引入 2 maven 下载的依赖库Depen
  • 腾讯云服务器标准型S5、S4、S3、S2区别及怎么选择?

    腾讯云标准型服务器包括S2 S3 S4实例 这些实例都是标准型服务器 那么S2 S3 S4 S5区别在哪里呢 在这一块选择的时候新手会有很多犹豫 看上去型号都差不多 配置里面很多参数也看不懂 到底怎么选呢 接下来带大家去看看详细情况 腾讯云
  • VS code 插件配置手册

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 VS code 插件配置手册 C C Tools插件 C C 支持安装库文件的配置GDB本地调试配置GDB远程调试配置Remote VSCode插件 远程编辑文件安装环境
  • VCPKG 包下载失败解决思路

    vcpkg经常会遇到资源无法访问 可能是域名解析出了问题 我们只需要将域名解析后的ip地址添加到hosts文件列表中可解决此问题 如 185 199 108 133 raw githubusercontent com 在此之前可先通过终端p
  • spring-boot-starter家族成员简介

    应用程序starters 以下应用程序starters是Spring Boot在org springframework boot组下提供的 springboot使用指南https docs spring io spring boot doc
  • Transforms的使用

    Transforms是常用的图像预处理方法 提高泛化能力 其实是一个py文件 其中包含了totensor 将数据类型转换成tensor类型 resize等工具 tensor数据类型 通过Transforms totensor去看两个问题 1
  • Linux 的 anaconda 虚拟环境下安装指定的 cuda、cudnn、pytorch

    感悟 首先 anaconda 的虚拟环境真香 开辟一个新的虚拟环境 很多环境 版本不兼容的问题都不复存在 尤其对复现别人代码的同学很有用 条件 只要安装的版本不超过自己机器的硬件条件 那么就可以安装 步骤 1 确定安装的 cuda 版本 在
  • springBoot+scheduling实现多任务动态定时任务

    使用spring自带的scheduling定时调度任务相当于轻量级的Quartz 但是不支持分布式 若要实现分布式定时任务就得使用Quartz了 第一步 在入口类中声明定时任务 import org springframework boot
  • java中比较两个map是否相同

    结论 对于所有继承于AbstractMap的map类 基本上jdk中的map都继承了 直接使用Map equals 即可 源码解析 AbstractMap重写了equals方法 保证对两个相同内容的map调用equals比较结果为真 源码如
  • opencv之人脸检测项目实战(二)

    自我介绍 目录 一 人脸检测整体架构 1 1 什么是人脸检测 1 2 人脸检测的应用场景 1 3 人脸检测核心架构 二 人脸检测实现技术储备 2 1 NDK开发的原理 2 2 什么是JNI 2 3 OpenCV架构体系 三 人脸识别项目实战
  • vue-cli打包

    创建vue config js文件 设置不同模式的打包入口 把main js文件删除 创建main prod js和main dev js module exports chainWebpack config gt 判断当前的编译模式 设置