vue打包上线过程

博主开发单次测试模块并将其用web - view内嵌到微信小程序,遇到两个问题。一是微信小程序环境判断时,使用weixin - js - SDK封装函数获取返回值为undefined,因异步请求,最终直接在代码里判断;二是vue打包mode设为history,若文件不在服务器根目录需后台配置路径,打包后访问地址含router设置的base和path。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做了一个单次测试的模块,需要使用web-view内嵌到微信小程序中,在这个过程中遇到了以下几个问题:

  1. 微信小程序环境判断
    当在小程序中引入h5界面时,需要对当前环境判断,来决定登录,因此使用了weixin-js-sdk,代码如下:
					let isweixin = false
					let ua = navigator.userAgent.toLowerCase()
					let isWeixin = ua.indexOf('micromessenger') !== -1  // 判断是否是微信浏览器访问的链接
					if (isWeixin) {
					  wx.miniProgram.getEnv((res) => {  // 判断是否是微信小程序调用
					    isweixin = res.miniprogram
					  })
					} else {
					  isweixin = false
					}
					return isweixin
				}

在这个过程中,因为多个位置出现判断,因此将这个函数封装,在这个过程中出现了获取不到函数返回值的问题,isweixin()的值一直是undefined,后来发现是因为wx.miniProgram.getEnv发送的是异步请求,所以在取值时出现取不到的情况.最后处理方法是直接在代码里判断.

  1. vue打包时mode设置为history出现的问题.
			export default new Router({
			  mode: 'history',
			  base: '/student/vuewordtest/',
			  routes: [
			    {
			      path: '/',
			      name: 'SelectType',
			      component: resolve => require(['@/pages/wordTest/SelectType'], resolve),
			      meta: {
			        title: '测试结果'
			      }
			    },
			    {
			      path: '/testWord',
			      name: 'TestWord',
			      component: resolve => require(['@/pages/wordTest/TestWord'], resolve),
			      meta: {
			        title: '单词测试'
			      }
			    }
			  ]
			})

mode默认值为hash,但是这是url中会有#号,这样的url存在特殊字符,不利于解析同时也不好看,因此改为hostory,在此需要说明的时,如果build之后的文件没有放在服务器根目录的话,必须要后台进行路径配置。详见vue-router官网(https://router.vuejs.org/zh/guide/essentials/history-mode.html)
3.vue打包后的访问地址http:www.***+base+path base和path均是router中设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值