[前端] Vue3+Element-plus项目自动导入报错的解决方案

2025 0
黑夜隐士 2022-10-21 15:47:20 | 显示全部楼层 |阅读模式
目录

    前言安装步骤
      1.安装插件2.vue.config.js 设置3.npm run serve 出错
    解决方案
      1.问题原因
        1.1 unimport 包报错1.2 node.js 和 npm 版本过低
      2.解决方法
        2.1 降低 unplugin-auto-import 插件版本2.2 升级 node.js 和 npm 版本

    补充:element-plus自动按需导入及出错解决总结


前言

p>在创建 Vue3 + Element-plus 项目时,根据 Element-plus 文档,采用自动导入,安装 unplugin-vue-components 和 unplugin-auto-import 两款插件,但在按要求配置后运行项目,npm 报错</p>
ERROR  SyntaxError: Unexpected token '?'
...\node_modules\unimport\dist\chunks\vue-template.cjs:55
    const name = i.as ?? i.name;
网上查找发现当前(20220601)并无相关解决方案,经排查发现错误是由 unplugin-auto-import 插件的依赖 unimport 包引发,查看解决方法可直接跳转至“解决方案”

安装步骤


1.安装插件
  1. npm install -D unplugin-vue-components
  2. npm install -D unplugin-auto-import
复制代码
两个插件使用一条命令一起安装可能出错

2.vue.config.js 设置
  1. const { defineConfig } = require('@vue/cli-service')
  2. const AutoImport = require('unplugin-auto-import/webpack')
  3. const Components = require('unplugin-vue-components/webpack')
  4. const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
  5. module.exports = defineConfig({
  6.   configureWebpack: {
  7.     plugins: [
  8.       AutoImport({
  9.         resolvers: [ElementPlusResolver()],
  10.       }),
  11.       Components({
  12.         resolvers: [ElementPlusResolver()],
  13.       }),
  14.     ],
  15.   },
  16. )}
复制代码
3.npm run serve 出错




解决方案


1.问题原因

以下问题解决其一即可:

1.1 unimport 包报错

查找 unplugin-auto-import 插件的依赖 unimport 包,node_modules\unimport\dist\chunks\vue-template.cjs:55 位置的语句报错:
  1. const name = i.as ?? i.name;
复制代码
1.2 node.js 和 npm 版本过低

笔者出现此问题时,node.js 版本为 v12.18.0,npm 版本为 6.14.5

2.解决方法

降低 unplugin-auto-import 插件版本或升级 node.js 和 npm 版本,选择其一即可:

2.1 降低 unplugin-auto-import 插件版本

更换 unplugin-auto-import 插件版本,经验证,安装 unplugin-auto-import@0.72 及以前版本可规避此问题
  1. npm install -D unplugin-auto-import@0.7.2
复制代码
2.2 升级 node.js 和 npm 版本

将 node.js 版本升级至长期维护版,20220601时为 v16.15.0,升级方法:从 node.js官网 下载长期维护版,安装位置选择与当前 node.js 位置相同即可
将 npm 版本升级为与 node.js 版本匹配的推荐版本,20220601时为 8.10.0,升级方法:
  1. npm install -g npm@8.10.0
复制代码
补充:element-plus自动按需导入及出错解决

自动按需导入官网教程
首先:npm install -D unplugin-vue-components unplugin-auto-import
然后配置webpack.config.js
  1. const AutoImport = require('unplugin-auto-import/webpack')
  2. const Components = require('unplugin-vue-components/webpack')
  3. const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
  4. module.exports = {
  5.   // ...
  6.   plugins: [
  7.     AutoImport({
  8.       resolvers: [ElementPlusResolver()],
  9.     }),
  10.     Components({
  11.       resolvers: [ElementPlusResolver()],
  12.     }),
  13.   ],
  14. }
复制代码
也可以直接配置babel.config.js,但是如果安装版本过高可能在配置时会报错,所以安装指定版本
  1. npm i element-plus@1.0.2-beta.28
  2. 1
  3. module.exports = {
  4.   plugins: [
  5.     [
  6.       'import',
  7.       {
  8.         libraryName: 'element-plus',
  9.         customStyleName: (name) => {
  10.           return `element-plus/lib/theme-chalk/${name}.css`
  11.         }
  12.       }
  13.     ]
  14.   ],
  15. }
复制代码
按照官网自动按需导入element-plus出现以下问题:样式不生效
将安装版本更换为npm i element-plus@1.0.2-beta.28

总结

到此这篇关于Vue3+Element-plus项目自动导入报错解决的文章就介绍到这了,更多相关Vue3 Element-plus自动导入报错内容请搜索中国红客联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持中国红客联盟!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行