vue cli3根据不同指令打包不同环境的包

6 篇文章 0 订阅

cli2和cli3配置方式不同,本篇文章介绍的是cli3及3以上版本。输入vue -V可查看vue-cli版本,如下

步骤:

1.在根目录中添加.env.dev(测试环境)和.env.prod(生产环境)两个目录。

2. env.dev和.env.prod中的对应内容分别为如下:

NODE_ENV = 'development'
VUE_APP_TITLE = 'development'
NODE_ENV = 'production'
VUE_APP_TITLE = 'production'

3. 在package.json中加入相应打包指令,如下:

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

 4.在配置url请求路径的文件进行配置

baseUrl=process.env.NODE_ENV == 'development' ? '//development.com/api' : '//production/api/'

5.执行对应打包指令即可,完成后更目录中将会生成dist文件(打包文件)

测试环境打包指令:npm run dev

生产环境打包指令:npm run prod

易踩到的坑:

问题一:打包后运行dist中的html文件后,报错Uncaught SyntaxError: Unexpected token <

原因:打包后生成的html中引入的文件路径错误

解决方式:检查生成的html中引入文件的路径,在vue.config.js中根据实际情况配置正确路径,然后再次打包。如下

 注意:不同版本路径配置项的字段名不同

vue-cli 2.x版本   assetsPublicPath: ' '

vue-cli 3.x版本   baseUrl : ' '

vue-cli 4.x及以上版本   publicPath: ' '

问题二:打包后运行dist中的html文件后,页面空白但不报错

原因:路由使用的history模式,history模式在本地是没有问题的,但是部署服务时,需要后端配合修改服务器配置,如果没有配置则无法正常使用history模式。

前端解决方式:在router.js中将history模式改为hash模式。

import { createRouter, createWebHashHistory } from 'vue-router'


const router = createRouter({
	history: createWebHashHistory(process.env.BASE_URL),
	routes
})

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值