vue3解决Uncaught SyntaxError: Identifier 'h' has already been declared报错

824 阅读1分钟

原因描述

使用了插件 unplugin-auto-import/vite导致的问题。 环境详情是 vite4.0.0 + vue3 + unplugin-auto-import/vite0.14.4 + pnpm 在workspace模式下apps demo 代码引用 packages 依赖包代码,会出现上述问题, 使用已发布的npm包不会出现上述问题。

我本地联调组件库会出现问题,而安装已经发布的组件便不会出现问题。

解决方法

在vite.config.ts中的AutoImport填入ignore属性,如下:

    AutoImport({
      // 可以自定义文件生成的位置,默认是根目录下,使用ts的建议放src目录下
      dts: true,
      ignore: ['h'], //解决h报错
      imports: ['vue', 'vue-router'],
      eslintrc: {
        enabled: true,
      },
    }),

使用这种方法可以解决问题、但是本地的其他地方之前未引入h的地方会报错提示未引入。目前暂未找到合适的替代方法。

参考文章: www.jianshu.com/p/1739e6bcb…