位置: IT常识 - 正文

vue项目打包优化及配置vue.config.js文件(实测有用)(vue打包速度优化)

编辑:rootadmin
vue项目打包优化及配置vue.config.js文件(实测有用) 首先我们需要在根目录里创建一个vue.config.js

推荐整理分享vue项目打包优化及配置vue.config.js文件(实测有用)(vue打包速度优化),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue项目打包优化方案,vue项目打包优化方案,vue项目打包运行,vuecli打包优化,vue3打包优化,vue webpack打包优化,vue项目打包优化方案,vue3打包优化,内容如对您有帮助,希望把文章链接给更多的朋友!

首先在文件中先写入//打包配置文件module.exports = { assetsDir: 'static', // outputDir的静态资源(js、css、img、fonts)目录 publicPath: './', // 静态资源路径(默认/,如果不改打包后会白屏) productionSourceMap: false, //不输出map文件};之后再使用CDN 加速优化(此代码在module.exports对象外面)cdn加速可以去官网找到相应插件的路径 BootCDN官网// 是否为生产环境const isProduction = process.env.NODE_ENV !== 'development';// 本地环境是否需要使用cdnconst devNeedCdn = false// cdn链接const cdn = { // cdn:模块名称和模块作用域命名(对应window里面挂载的变量名称) externals: { 'vue': 'Vue', 'vuex': 'Vuex', 'vue-router': 'VueRouter', 'axios': 'axios', 'element-ui': 'ELEMENT' //这里需要注意下 }, // cdn的css链接 css: ['https://unpkg.com/element-ui/lib/theme-chalk/index.css' //引入element ui css文件 ], // cdn的js链接 js: [ 'https://cdn.bootcss.com/vue/2.6.11/vue.min.js', 'https://cdn.bootcss.com/vue-router/3.2.0/vue-router.min.js', 'https://cdn.bootcss.com/axios/0.27.2/axios.min.js', 'https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.common.min.js' ]}vue项目打包优化及配置vue.config.js文件(实测有用)(vue打包速度优化)

在module.exports对象里写入

chainWebpack: config => { // ============注入cdn start============ config.plugin('html').tap(args => { // 生产环境或本地需要cdn时,才注入cdn if (isProduction || devNeedCdn) args[0].cdn = cdn return args }) // ============注入cdn start============ },对图片文件进行压缩

下载依赖 这里如果用npm 可能会下载速度慢安装失败,建议使用cnpm

cnpm install image-webpack-loader --save-dev

之后继续在 chainWebpack里面新增以下代码

config.plugins.delete('prefetch') config.module.rule('images') .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/) .use('image-webpack-loader') .loader('image-webpack-loader') .options({ bypassOnDebug: true })对代码压缩

先下载依赖 也建议使用cnpm

cnpm install uglifyjs-webpack-plugin --save-dev

在module.exports对象里写入

configureWebpack: config => { if (isProduction || devNeedCdn) config.externals = cdn.externals // 代码压缩 config.plugins.push( new UglifyJsPlugin({ uglifyOptions: { //生产环境自动删除console compress: { drop_debugger: true, drop_console: true, pure_funcs: ['console.log'] } }, sourceMap: false, parallel: true }) ) },对公共代码抽离

在configureWebpack里继续写入

// 公共代码抽离 config.optimization = { splitChunks: { cacheGroups: { vendor: { chunks: 'all', test: /node_modules/, name: 'vendor', minChunks: 1, maxInitialRequests: 5, minSize: 0, priority: 100 }, common: { chunks: 'all', test: /[\\/]src[\\/]js[\\/]/, name: 'common', minChunks: 2, maxInitialRequests: 5, minSize: 0, priority: 60 }, styles: { name: 'styles', test: /\.(sa|sc|c)ss$/, chunks: 'all', enforce: true }, runtimeChunk: { name: 'manifest' } } } }最后整合起来vue.config.jsconst UglifyJsPlugin = require('uglifyjs-webpack-plugin')// 是否为生产环境const isProduction = process.env.NODE_ENV !== 'development';// 本地环境是否需要使用cdnconst devNeedCdn = false// cdn链接const cdn = { // cdn:模块名称和模块作用域命名(对应window里面挂载的变量名称) externals: { 'vue': 'Vue', 'vuex': 'Vuex', 'vue-router': 'VueRouter', 'axios': 'axios' }, // cdn的css链接 css: [ ], // cdn的js链接 js: [ 'https://cdn.bootcss.com/vue/2.6.11/vue.min.js', 'https://cdn.bootcss.com/vue-router/3.2.0/vue-router.min.js', 'https://cdn.bootcss.com/axios/0.27.2/axios.min.js', 'https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.common.min.js' ]}//打包配置文件module.exports = { assetsDir: 'static', publicPath: './', productionSourceMap: false, //不输出map文件 chainWebpack: config => { // ============注入cdn start============ config.plugin('html').tap(args => { // 生产环境或本地需要cdn时,才注入cdn if (isProduction || devNeedCdn) args[0].cdn = cdn return args }) // ============注入cdn start============ // 在chainWebpack中新增以下代码 config.plugins.delete('prefetch') config.module.rule('images') .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/) .use('image-webpack-loader') .loader('image-webpack-loader') .options({ bypassOnDebug: true }) }, configureWebpack: config => { if (isProduction || devNeedCdn) config.externals = cdn.externals // 代码压缩 config.plugins.push( new UglifyJsPlugin({ uglifyOptions: { //生产环境自动删除console compress: { drop_debugger: true, drop_console: true, pure_funcs: ['console.log'] } }, sourceMap: false, parallel: true }) ) // 公共代码抽离 config.optimization = { splitChunks: { cacheGroups: { vendor: { chunks: 'all', test: /node_modules/, name: 'vendor', minChunks: 1, maxInitialRequests: 5, minSize: 0, priority: 100 }, common: { chunks: 'all', test: /[\\/]src[\\/]js[\\/]/, name: 'common', minChunks: 2, maxInitialRequests: 5, minSize: 0, priority: 60 }, styles: { name: 'styles', test: /\.(sa|sc|c)ss$/, chunks: 'all', enforce: true }, runtimeChunk: { name: 'manifest' } } } } }, devServer: { proxy: { '/api': { target: '线上接口地址', ws: true, changeOrigin: true, pathRewrite: { '^/api': '/', // 根据之前vuejs的配置,用来拿掉URL上的(/api),但是暂时没有什么效果 }, }, }, },};最后我的vue项目由原来的12M减少到2M,启动也是成功
本文链接地址:https://www.jiuchutong.com/zhishi/278470.html 转载请保留说明!

上一篇:阻止更改系统主题内容(阻止电脑系统更新设置在哪)

下一篇:人工智能导论(第四版)王万良编著课后习题答案(人工智能导论报告)

  • ios15左滑搜索怎么关闭(ios15左滑搜索怎么打开)

    ios15左滑搜索怎么关闭(ios15左滑搜索怎么打开)

  • 华为mate20可不可以插内存卡(华为mate20可不可以反向充电)

    华为mate20可不可以插内存卡(华为mate20可不可以反向充电)

  • 快手评论赞最多什么不置顶(快手作品点赞评论多了起到什么作用)

    快手评论赞最多什么不置顶(快手作品点赞评论多了起到什么作用)

  • 苹果11快捷指令在哪(苹果11快捷指令在哪里)

    苹果11快捷指令在哪(苹果11快捷指令在哪里)

  • 操作系统的基本特征(操作系统的基本职能包括)

    操作系统的基本特征(操作系统的基本职能包括)

  • pr剪辑只有声音看不到视频(pr剪辑声音与画面不同步)

    pr剪辑只有声音看不到视频(pr剪辑声音与画面不同步)

  • qq怎么关闭随心贴功能(qq怎么关闭随心贴?)

    qq怎么关闭随心贴功能(qq怎么关闭随心贴?)

  • 支付宝连接失败请检查网络设置(支付宝连接失败zenme设置)

    支付宝连接失败请检查网络设置(支付宝连接失败zenme设置)

  • 哪种数据格式的数据量最小(哪种数据格式具有高质量的图像信息,后期处理)

    哪种数据格式的数据量最小(哪种数据格式具有高质量的图像信息,后期处理)

  • 在word文档中不可直接操作的是(在word文档中不能作为文本转换为表格的分隔符是)

    在word文档中不可直接操作的是(在word文档中不能作为文本转换为表格的分隔符是)

  • 快手权重是啥意思(什么是快手权重)

    快手权重是啥意思(什么是快手权重)

  • 苹果电脑可以下载抖音吗(苹果电脑可以下载office吗)

    苹果电脑可以下载抖音吗(苹果电脑可以下载office吗)

  • 蓝牙耳机进水了还能用吗(蓝牙耳机进水了能修好吗)

    蓝牙耳机进水了还能用吗(蓝牙耳机进水了能修好吗)

  • 屏幕总成不带框好换吗(屏幕总成不带框怎么解决边框问题)

    屏幕总成不带框好换吗(屏幕总成不带框怎么解决边框问题)

  • iphone11是不是旗舰机(苹果11是苹果旗舰机吗)

    iphone11是不是旗舰机(苹果11是苹果旗舰机吗)

  • 快手直播红心能点多少次(快手直播红心能买吗)

    快手直播红心能点多少次(快手直播红心能买吗)

  • word字母下标怎么打(word 字母下标)

    word字母下标怎么打(word 字母下标)

  • ios13怎么去掉dock栏(ios13去掉底部dock横条)

    ios13怎么去掉dock栏(ios13去掉底部dock横条)

  • 光盘分为只读光盘和(光盘的只读文件怎么保存)

    光盘分为只读光盘和(光盘的只读文件怎么保存)

  • 华为nova5pro支持电子身份证吗(华为nova5pro支持内存卡扩展吗)

    华为nova5pro支持电子身份证吗(华为nova5pro支持内存卡扩展吗)

  • 手机接电话声音小怎么回事(手机接电话声音很小怎么办)

    手机接电话声音小怎么回事(手机接电话声音很小怎么办)

  • 美食菜谱app开发怎么盈利(美食做菜app)

    美食菜谱app开发怎么盈利(美食做菜app)

  • 最新目标检测算法回顾2022笔记(目标检测 2021)

    最新目标检测算法回顾2022笔记(目标检测 2021)

  • mysql中binlog有什么作用(mysql binlog是什么)

    mysql中binlog有什么作用(mysql binlog是什么)

  • 税务行政复议是税务行政复议机关的裁决活动
  • 金蝶软件可以实现一键报税吗
  • 个人所得税有哪些减免政策
  • 融资租赁确认的利息收入需要交增值税吗
  • 劳务费属于印花税范围吗
  • 个体工商户每月需要申报个税吗
  • 报表申报错误怎么作废重报
  • 取得增值税专用发票要算税吗
  • 人身保险和意外保险是一个东西吗
  • 个人房租费收入怎么做账
  • 非居民企业投资收益
  • 商业汇票如何申领
  • 全资子公司改为独立公司
  • 接受捐赠的增值税计入利润总额吗
  • 年度所得税汇算清缴报告在哪打印
  • 保证金抵扣货款合同
  • 员工离职后收取客户钱款
  • 小规模企业怎么报税
  • 所得税申报错了扣款了怎么办
  • 汇总缴纳增值税附加税如何缴纳
  • 固定资产折旧税务处理
  • 开具发票时,哪些备注事项需要被重视?
  • 出口分为哪四步
  • 记账凭证汇总表和汇总记账凭证有什么区别
  • 应交税金的明细科目
  • 差旅费中的车票可以抵扣进项税吗
  • 境外公司在境内取得的收入如何交税
  • 企业注销个税怎样更正申报呢
  • 怎么租办公室省钱
  • 使用mac什么意思
  • php 设计模式 鸟哥
  • 建筑业主营业务收入二级科目有哪些
  • 个人销售住房是否免征土地增值税
  • 浅谈中国式现代化3000字论文
  • vscode简单入门
  • php通过url传递参数
  • 存货跌价准备的转销会计分录
  • notion all in one
  • php备份mysql数据库
  • spring bootcsdn
  • 毫米波雷达的硬件构成
  • php100 jquery教程
  • cpu power management设置
  • discuz论坛安装步骤
  • 淘宝天猫开票是普票还是专票
  • 个体工商户购买生育险有生育津贴吗
  • 百旺连接服务器失败,是否使用离线文件进行更新
  • 土石方费用入什么科目
  • 经营结余是指事业单位在本年度经营活动
  • 不入库存商品直接走成本会怎样
  • 两者的性质有所差异
  • 查询sqlserver数据库开发这门课程的最高分
  • 安全生产费会计准则
  • 房地产契税新政策2023
  • 从公司账户转给出纳备注
  • 上家失控发票补税补不起
  • 自己开发建造的房屋
  • 企业主营业务收入分录
  • 个别会计报表和合并会计报表
  • 核定征收方式的小型微利企业可以享受
  • 普通发票和增值发票的区别在哪里
  • 往来会计岗位职责怎么写
  • 商业零售企业商品进销差价
  • sqlyog存储过程
  • windows 文件名太长无法删除
  • linux中的rpm
  • centos vim编辑器
  • win7删除未识别的网络
  • win10修复dllregisterserver
  • linux源于
  • linux命令find用法详解
  • python ftps
  • python代码视频
  • js插件大全
  • 什么绑定什么服务
  • js咋用
  • js使用类
  • android的动画有哪些?
  • Python编程中装饰器的使用示例解析
  • 江苏省无锡市国4车辆报废新规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设