uni-app easycom 无法正常编译的问题

uni-app easycom 无法正常编译的问题

操作步骤:

  • 启动到浏览器就会出现

预期结果:

  • 正常编译,页面内容均正常显示

实际结果:

  • [Vue warn]: Failed to resolve component: u-popup
  • If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement

bug描述:

  • 使用第三方组件库 uview-plus,main.ts 挂载了uview-plus,
  • pages.json 配置了easycom => “autoscan”: true,
  • “custom”: { “^uni-(.)”: “@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue”, “^u-(.)”: “uview-plus/components/u-$1/u-$1.vue” },
  • 运行到浏览器报错 [Vue warn]: Failed to resolve component: u-popup
  • If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement
  • 页面上显示不出组件,HBX4.0.8 4.0.6 均有这个问题。
信息类别 信息内容
产品分类 uniapp/H5
PC开发环境 Windows
操作系统版本 win10专业版 22H2
浏览器 Chrome
浏览器版本 123.0.6312.106(正式版本) (64 位)
项目创建方式 CLI
CLI版本号 3.8.12

更多关于uni-app easycom 无法正常编译的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

easycom中的自动扫描去掉,热更新之后页面显示正常,但是控制台依旧报错 [Vue warn]: Failed to resolve component: u-popup If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement 重新刷新也没问题,但是重新启动依旧显示不了组件

更多关于uni-app easycom 无法正常编译的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-appeasycom 功能是为了简化组件引用而设计的,允许开发者在不手动引入组件的情况下直接使用。如果遇到 easycom 无法正常编译的问题,可能是以下几个原因导致的。以下是一些常见的排查和解决方法:


1. easycom 配置问题

确保 easycom 配置正确,通常不需要额外配置,但如果需要自定义,可以在 pages.json 中检查 easycom 的配置。

"easycom": {
  "autoscan": true,
  "custom": {
    "^uni-(.*)": "@/components/uni-$1.vue"
  }
}

2. 组件路径问题

确保组件的路径和命名符合 easycom 的规则。默认情况下,easycom 会自动扫描 components 目录下的组件。

  • 组件文件名:my-component.vue
  • 使用方式:<my-component />

如果组件不在默认的 components 目录下,可以通过 custom 配置自定义路径。


3. 组件命名冲突

如果项目中存在同名组件,可能会导致 easycom 无法正确解析。确保组件命名唯一,或者在引用时指定完整路径。


4. HBuilderX 版本问题

确保使用的 HBuilderX 是最新版本。旧版本可能存在 easycom 的兼容性问题,更新到最新版本可以解决大部分问题。


5. 组件未正确注册

如果组件未正确注册或未按照 easycom 的规则命名,可能导致无法编译。检查组件是否按照以下规则命名:

  • 文件名:kebab-case(短横线分隔),例如 my-component.vue
  • 使用方式:camelCase,例如 <myComponent />

6. 项目配置文件损坏

如果项目配置文件(如 pages.jsonmanifest.json 等)损坏,可能导致 easycom 无法正常工作。可以尝试以下方法:

  • 备份项目文件。
  • 删除 node_modulesunpackage 目录,然后重新运行 npm install
  • 重新创建项目配置文件。

7. 依赖问题

如果项目依赖的插件或库与 easycom 冲突,可能会导致编译失败。检查是否有第三方库影响了 easycom 的功能。


8. 控制台错误信息

查看编译时的控制台错误信息,通常会提示具体的错误原因。根据错误信息进行针对性的修复。


9. 手动引入组件

如果以上方法均无效,可以尝试手动引入组件,暂时绕过 easycom 的问题:

<script>
import MyComponent from '@/components/my-component.vue';

export default {
  components: {
    MyComponent
  }
};
</script>
回到顶部