×

注意!页面内容来自https://blog.csdn.net/weixin_44813417/article/details/121329335,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页

Vue前端打包详细流程

添加打包命令

package.on中添加配置
npm run build 发布到线上的代码 不便于调试
命令:
①npm run build:dev 开发调式环境
②npm run build:prod 线上调试环境
在这里插入图片描述

	"build:dev": "vue-cli-service build --mode dev",
    "build:prod": "vue-cli-service build --mode prod"

运行打包代码

不可直接双击dist/index.html
需要放在http容器中运行:serve tomcat nginx iis
本次使用serve

下载serve: npm i -g serve

报错
Error: EPERM: operation not permittedmkdir ‘C:\Program Files\node\node global\node_modules.staging’
在这里插入图片描述
解决: 用户—>个人用户—>删除.npmrc文件

启动打包后的目录: serve dist
在这里插入图片描述

打包指定不同的环境变量

添加环境变量
① 开发:在根目录下创建 .env.dev 文件(与package.on中mode对应)
② 线上:在根目录下创建 .env.prod 文件(与package.on中mode对应)
在需要动态指定变量的位置使用process.env.NODE_ENV等
在这里插入图片描述

在这里插入图片描述

// .env.dev
##开发环境
NODE_ENV=development
##变量以VUE_APP_开头
VUE_APP_URL=http://www.dev.com

// .env.prod
##生产环境
NODE_ENV=production
VUE_APP_URL=http://www.prod.com

打包自定义文件

vuecli是基于webpack
vuecli零配置
不需要零配置可以指定vue.config.

npm run build:prod 少了注释、空行、压缩等

移除三方包

代码细分
①三方包:vue elementui axios等
②开发代码:自己写的
移出三方包: 使用三方提供cdn(免费、收费)
步骤:
①找到三方包cdn资源,添加到public/index.html
②把之前import导入的删除
③在vue.config.配置排除三方包

module.exports = {
  // 打开文件访问的相对路径 独立项目 通过项目根目录访问
  publicPath: './',
  // 开发时需要 线上不需要 map-->提供代码映射 方便调试代码
  productionSourceMap: process.env.NODE_ENV == 'development' ? true: false,
  // 配置webpack
  configureWebpack: config =>{
    // config---vuecli默认配置
    Object.assign(config,  {
      // 排除依赖包
      externals: {
        vue: 'Vue'
      }
    })
  },
}

gzip压缩

下载 npm i -D compression-webpack-plugin

打包发生错误:
ERROR TypeError: Cannot read property ‘tapPromise’ of undefined
TypeError: Cannot read property ‘tapPromise’ of undefined

在这里插入图片描述
错误原因: 脚手架配置gzip打包不支持这个版本
解决: 使用npm install [email protected] --save-dev
在vue.config.配置

打包会生成gz结尾的文件在这里插入图片描述

let CompressionWebpackPlugin = require('compression-webpack-plugin')

configureWebpack: config =>{
    let plugins = [
      new CompressionWebpackPlugin({
        // 压缩方式
        algorithm: 'gzip',
        // 匹配压缩文件
        test: /\.$|\.css$/,
        // 对于大于10k压缩
        threshold: 10240 
      })
    ]
    if(process.env.NODE_ENV == 'production') {
      config.mode = "production"
      config.plugins = [...config.plugins, ...plugins]
    } else {
      config.mode = 'development'
    }
  },

浏览器查看
请求头:Accept-Encoding: gzipdeflatebr
响应头:Content-Encoding: gzip
在这里插入图片描述

打包部署模式

hash: 打包后dist直接在http容器中运行 线上一致

history: 打包后脚手架刷新不会404 线上会404
解决方案:需要前端代码与后端一起部署 由后端负责跳转前端

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
1 条评论 您还未登录,请先 登录 后发表或查看评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
< type="text/css">
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值