uniapp cli vue3+vite+ts 编译为微信小程序后,使用index文件重新导出组件的写法,导致无法找到组件

- 发布:2024-11-28 17:22
- 更新:2024-11-29 10:23
- 阅读:206

// components/test/index.ts
export * as Test from './test.vue'
// do something
export const TEST = 'test'
// pages/index/index
import { TEST } '@/components/test' // 不能导入Test组件,只能让easycom自动导入
-
-
l***@icloud.com (作者)
我也发现了,import { TEST } '@/components/test' // 不能导入Test组件,编译成微信小程序不能导入组件,这种方式编译后在对应目录只有wxml,准备全部修改成easycom
2024-11-29 10:26
-
l***@icloud.com (作者)
回复 zZZ1Ma: 当时全部导出是为了vscode的代码提示和语义识别,现在项目差不多完成,得全部改回来,好坑啊,选型的时候也确定没有小程序的需求,就没有考虑那么多
2024-11-29 10:29
-
回复 l***@icloud.com: vscode能自动导入啊,我这样写是为了处理同目录下有不同组件的情况,例如
components/button
录下有button、iconButton、textButton
等组件,需要在components/button/index.ts
统一导出2024-11-29 10:36
-
l***@icloud.com (作者)
在components/index.ts 中 export { default as Test11 } from "./test/test11.vue";
而 test11.vue 写法为 setup 组合式api
然而导入@/components 后,组件无法使用,test11 也没有用const导出呀
2024-11-28 17:49
l***@icloud.com (作者)
可以试着跑下我上传的代码,h5,app平台这种写法就支持,在微信小程序内不行,我看了编译后的文件,只有wxml,没有对应的 js,json,wxss 文件。如果直接引入 import Test from '@/components/test11/test11.vue' ,这样是能渲染出来的,编译后的文件也有对应,js,wxss,wxml,json
2024-11-28 17:52
DCloud_UNI_yuhe
回复 l***@icloud.com: 组合式 api,只是个语法糖,实际的是这样
<script>
export default {
setup(){
}
}
</script>
<script setup>
</script>
2024-11-28 18:01
l***@icloud.com (作者)
回复 DCloud_UNI_yuhe: 改成export default 实际上是一样的效果,无法使用该组件;和组合式API的写法无关,经过多次测试,通过component/index.ts(内容 export { default as Test1 } from './test1.vue';) 统一导出后,在pages/index/index.vue导入就会无法使用(内容 import { Test1 } from '@/components' ),如果使用组件具体地址就导入可以使用(内容 import Test1 from '@/components/test1.vue' )
2024-11-28 23:30