田心水原
田心水原
  • 发布:2020-05-13 12:52
  • 更新:2020-05-22 18:25
  • 阅读:3572

【报Bug】Uniapp的EasyCom自定义配置,运行H5编译出现uni-ui内部扩展组件找不到文件的错误

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.13.6

HBuilderX类型: 正式

HBuilderX版本号: 2.6.16

浏览器平台: Chrome

浏览器版本: 版本 84.0.4128.3(正式版本)dev (64 位)

项目创建方式: HBuilderX

App下载地址或H5⽹址:

示例代码:

"easycom": {
"autoscan": true,
"custom": {
"uni-(.)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue", // 匹配node_modules内@dcloudio的vue文件
"cu-(.
)": "@/components/custom/cu-$1/cu-$1.vue" // 匹配components目录内的vue文件
}
}

操作步骤:

(1)pages.json里面自定义配置easycom,见BUG描述,npm安装uni-ui
(2)运行-》运行到浏览器-》chrome

预期结果:

可正常编译通过

实际结果:

uni-ui内的扩展组件编译报错

bug描述:

Uniapp自定义组件模式下,对EasyCom自定义配置,运行H5平台编译出现uni-ui内部组件(uni-calendar)找不到组件(uni-calendar-item)的错误信息,疑问:EasyCom的配置是否会影响npm依赖的uni-ui组件编译找不到其他vue文件的问题,easycom的配置如下:
"easycom": {
"autoscan": true,
"custom": {
"uni-(.)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue", // 匹配node_modules内@dcloudio的vue文件
"cu-(.
)": "@/components/custom/cu-$1/cu-$1.vue" // 匹配components目录内的vue文件
}
}

官网有一段说明:在组件名完全一致的情况下,easycom引入的优先级低于手动引入(区分连字符形式与驼峰形式)。
uni-calendar.vue里面实际上是有手动引入的,但是编译时直接根据easycom的配置做了匹配,匹配不到就报错了,并没有识别到本页面的手动引入。

经过实测,修改引入名称:import calendarItem from './uni-calendar-item.vue',这样既可编译通过,因此个人认为,uni-calendar-item.vue应该单独分一个目录出来和uni-calendar目录同级可解决

2020-05-13 12:52 负责人:DCloud_UNI_HT 分享
已邀请:
田心水原

田心水原 (作者) - 80后IT男

请uniapp平台的大神们帮忙看下哈,给个回复,谢谢!

田心水原

田心水原 (作者) - 80后IT男

这个问题好像找到原因了,见上面描述,给出了个人认为的解决方案,如果的确是这个问题,请uniapp的大神修复uni-ui此问题,谢谢!

  • DCloud_UNI_HT

    先按照别名的方式处理,后续会兼容升级组件

    2020-05-18 11:01

想晒太阳

想晒太阳

这个还是要官方来解决的,修改的文件结构后面ui升级可能有问题。加了一个easycom的功能,自己的ui组件都没测

DCloud_UNI_HT

DCloud_UNI_HT

组件已经修复,插件市场下载最新组件验证是否有问题

该问题目前已经被锁定, 无法添加新回复