const compile = createApp({
template: ${props.source}
,
methods: {
toUserOrTopic: (type, id) => {
console.log(type, id)
}
}
})
compile.mount(document.getElementById('compile'));

- 发布:2022-12-29 12:06
- 更新:2022-12-29 15:31
- 阅读:211
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows0
HBuilderX类型: 正式
HBuilderX版本号: 3.6.15
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: 小米12
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
如代码所示,vue 3 uniapp项目
如代码所示,vue 3 uniapp项目
预期结果:
template属性正常编译执行
template属性正常编译执行
实际结果:
如图所示,报错
如图所示,报错
bug描述:
vue3 不支持template选项,报错,代码和报错如下图



123的秘密 (作者) - 程序猿
我找到解决的办法了 ,他们官方是不支持的,也就是说他们的vue3是跑运行版的,不是esm版本,也就不支持template属性了,但是我们可以重新npm install vue@3, 在vite.config.js配置alias(常规项目可以,uniapp不能全局替换)即可,或者在所需要用的地方将vue替换为esm版本,注意,注意,注意,不能完全代替,只代替需要用到的地方即可,否则会 全局报错,不能正常运行 uniapp,会生成很多没有的依赖,packge.json等文件,这些我觉得没什么用,解决的办法就是,删除所有的依赖和packge.json文件,只留下vue.esm.bundle.js和@vue文件夹,保存在static文件下(便于异地下载项目包),直接复制到nodeModules下即可,文件的引用应该大家都会,不再赘述。
-
123的秘密 (作者)
但是这种方法只是支持h5页面,app真机运行会报错exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught TypeError: no access
2022-12-29 15:47