manifest.json配置
"h5" : {
"router" : {
"mode" : "history"
},
"devServer" : {
"https" : false
},
"async" : {
"loading" : "AsyncLoading",
"error" : "errorPage"
}
}
测试替换代码过后还是原来的 链接服务器超市,点击屏幕重试 页面
manifest.json配置
"h5" : {
"router" : {
"mode" : "history"
},
"devServer" : {
"https" : false
},
"async" : {
"loading" : "AsyncLoading",
"error" : "errorPage"
}
}
测试替换代码过后还是原来的 链接服务器超市,点击屏幕重试 页面
7***@qq.com (作者)
vue3+vite的h5项目,配置async的自定义error,不生效
在页面中使用全局变量可以组件可以没有报错
import errorPage from "@/compoments/error"
export function createApp() {
const app = createSSRApp(App)
.use(store)
.use(VueClipboard)
.component('error-page',errorPage);
return { app};
}
"h5" : {
"router" : {
"mode" : "history"
},
"devServer" : {
"https" : false
},
"async" : {
"loading" : "AsyncLoading",
"error" : "error-page"
}
}
找到问题了
是 @dcloudio/uni-h5-vite 这个组件中的函数 generatePagesDefineCode 代码太老了,没有添加对 loading, error 的入参判断,所以你在 manifest 里的配置在使用 vue3 + vite 时是无效的。
文件:
node_modules/@dcloudio/uni-h5-vite/dist/plugins/pagesJson.js
代码:
但是这段逻辑在 HBuilderX 内置的代码里已经是正常的了,不知为何 @dcloudio/uni-h5-vite 并没有跟上更新,或者说为什么这块代码没有复用,有这么多重复。
文件:
/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-h5-vite/dist/plugins/pagesJson.js
代码:
如何想临时修复这个问题,在你本地的 node_modules/@dcloudio/uni-h5-vite/dist/plugins/pagesJson.js 文件中 157 行之后插入这段代码即可:
if(async.loading){
AsyncComponentOptions.loadingComponent = {
name:'SystemAsyncLoading',
render(){
return createVNode(resolveComponent(async.loading))
}
}
}
if(async.error){
AsyncComponentOptions.errorComponent = {
name:'SystemAsyncError',
render(){
return createVNode(resolveComponent(async.error))
}
}
}
本想自己帮忙修复一下,但找了半天找不到 uniapp 开源的这段代码在哪个项目里,不会是假开源吧。。
检查你的依赖版本是否低于 3.0.0-3061320221209001
uniapp 项目源码均托管在 https://github.com/dcloudio/uni-app
建议后续反馈问题参考提交Bug模板提供完整信息
2023-02-21 20:47
回复 DCloud_UNI_WZF: @dcloudio/uni-h5-vite 这个包连 https://www.npmjs.com/package/@dcloudio/uni-h5-vite 这里都只有 3.0.0-alpha-3000020210611001 版本。
2023-02-22 11:56
7***@qq.com (作者)
注册成功了 在页面中测试可以
2023-02-21 18:28
7***@qq.com (作者)
import errorPage from "@/compoments/error"
export function createApp() {
const app = createSSRApp(App)
.use(store)
.use(VueClipboard)
.component('errorPage',errorPage);
return { app};
}
这个是注册的组件
2023-02-21 18:31