uni-app easycom APP真机运行时无效,小程序运行有效

uni-app easycom APP真机运行时无效,小程序运行有效

项目信息 详情
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win11
HBuilderX类型 正式
HBuilderX版本号 3.99
手机系统 Android
手机系统版本号 Android 14
手机厂商 小米
手机机型 小米13
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

/

预期结果:

/

实际结果:

/

bug描述:

小程序正常,APP真机运行时会报错

"easycom": {  
    "autoscan": true,  
    "custom": {  
      "^s-(.*)": "@/components/s-$1/s-$1.vue",  
      "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",  
      "^u--(.*)": "uview-plus/components/u-$1/u-$1.vue",  
      "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue",  
      "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"  
    }  
  },

报错 16:39:28.467 [Vue warn]: Failed to resolve component: u-empty If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. at <Index pageId=1 pagePath=“pages/index/index” pageQuery={} …>

16:39:28.471 [Vue warn]: Failed to resolve component: u-button If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. at <Index pageId=1 pagePath=“pages/index/index” pageQuery={} …>


更多关于uni-app easycom APP真机运行时无效,小程序运行有效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

真服了。耽误时间

更多关于uni-app easycom APP真机运行时无效,小程序运行有效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


可以给个demo看看代码

解决了。我node_modules里面装了vue包 和Hbuilder自带vue包 应该冲突了

在 uni-app 开发中,easycom 是一种自动按需引入组件的方式,可以简化组件的使用流程。通常情况下,easycom 在 H5、小程序、App 等平台都可以正常工作。如果你在 App 真机运行时发现 easycom 无效,但在小程序中有效,可能是以下几个原因导致的:

1. 组件路径问题

  • 确保你在 pages.json 或者 components 目录下的组件路径是正确的,并且大小写敏感。
  • App 平台对路径的解析可能比小程序更严格,因此要确保路径完全匹配。

2. 组件未注册

  • 虽然 easycom 是自动引入的,但如果你在某个页面或组件中手动引入了其他组件,可能会导致冲突或覆盖。
  • 检查是否有手动引入的组件与 easycom 冲突。

3. 平台差异

  • 某些组件可能在小程序平台上有特殊实现,而在 App 平台上没有对应的实现,导致无法正常使用。
  • 检查组件是否支持 App 平台。

4. App 平台的编译差异

  • App 平台使用的是 Vue 的运行时版本,而小程序平台使用的是 Vue 的完整版本。某些组件可能依赖 Vue 的完整版本中的功能。
  • 检查组件是否依赖了 Vue 的某些特性,这些特性在运行时版本中可能不可用。

5. 编译配置问题

  • 检查 manifest.json 中的 app-plus 配置,确保没有配置错误或遗漏。
  • 确保 easycom 的配置在 pages.jsonpages 目录下的页面配置中是正确的。

6. 编译环境问题

  • 有时开发环境的缓存或配置问题可能导致 easycom 在 App 平台上失效。尝试清理缓存或重新编译项目。
  • 使用 npm run dev:app-plusnpm run build:app-plus 重新编译 App 项目。

7. 组件命名冲突

  • 如果组件名称与内置组件或其他组件的名称冲突,可能会导致 easycom 无法正确解析。
  • 尝试给组件命名时加上前缀或修改组件名称,避免与其他组件冲突。

8. 调试工具

  • 使用真机调试工具(如 Chrome DevTools 或 HBuilderX 的内置调试工具)查看控制台是否有错误信息,帮助定位问题。

9. 检查 easycom 配置

  • 确保 easycom 的配置是正确的。在 pages.json 中添加如下配置:
    "easycom": {
      "autoscan": true,
      "custom": {
        "^u-(.*)": "@/components/u-$1/u-$1.vue"
      }
    }
回到顶部