记录Vue使用HBuilder发布App热更新,遇到的一系列问题。使用vue-cli3,mui.js,HBuilder。
一、启动App第一个报错
报错信息如下:
Uncaught ReferenceError: mui is not defined
只需要在打开时判断App是否需要热更新,所以在登录界面增加以下代码引入mui.js,如还报同一错误,则可能是mui.js引入问题。
import mui from '@/utils/mui'
Vue.prototype.mui=mui
二、启动App第二个报错
报错信息如下:
Uncaught ReferenceError: plus is not defined
需要先保证plus已加载初始化。
mounted() {
var that=this
mui.plusReady(() => {
that.autoupdateapp()//版本检索,下载更新包,更新App
})
}
三、启动App第三个报错
报错信息如下:
Uncaught TypeError: ‘caller’, ‘callee’, and ‘arguments’ properties may not be accessed on strict mode functions or the arguments objects for calls to them:
由于vue是严格模式打包,报错是必然的,需要在根目录
.babelrc文件中加入配置"plugins": [“transform-remove-strict-mode”]
{
"plugins": ["transform-remove-strict-mode"],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["istanbul"]
}
},
"ignore": [
"./src/utils/*.js"
]
}
.eslintignre文件中加入配置src/utils/*.js,我的mui.js放在utils下。
如果项目根目录没有.babelrc与.eslintignre这两个文件,自己创建即可。
Vue热更新代码参考
HBuilder webApp热更新(在线升级)的实现