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

目录
  • 前言
  • 安装步骤
    • 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自动按需导入及出错解决
  • 总结

前言

在创建 Vue3 + Element-plus 项目时,根据 Element-plus 文档,采用自动导入,安装 unplugin-vue-components 和 unplugin-auto-import 两款插件,但在按要求配置后运行项目,npm 报错

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.安装插件

npm install -D unplugin-vue-components
npm install -D unplugin-auto-import

两个插件使用一条命令一起安装可能出错

2.vue.config.js 设置

const { defineConfig } = require('@vue/cli-service')

const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')

module.exports = defineConfig({
  configureWebpack: {
    plugins: [
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      }),
    ],
  },
)}

3.npm run serve 出错

解决方案

1.问题原因

以下问题解决其一即可:

1.1 unimport 包报错

查找 unplugin-auto-import 插件的依赖 unimport 包,node_modules\unimport\dist\chunks\vue-template.cjs:55 位置的语句报错:

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 及以前版本可规避此问题

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,升级方法:

npm install -g npm@8.10.0

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

自动按需导入官网教程

首先:npm install -D unplugin-vue-components unplugin-auto-import

然后配置webpack.config.js

const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')

module.exports = {
  // ...
  plugins: [
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
}

也可以直接配置babel.config.js,但是如果安装版本过高可能在配置时会报错,所以安装指定版本

npm i element-plus@1.0.2-beta.28
1
module.exports = {
  plugins: [
    [
      'import',
      {
        libraryName: 'element-plus',
        customStyleName: (name) => {
          return `element-plus/lib/theme-chalk/${name}.css`
        }
      }
    ]
  ],
}

按照官网自动按需导入element-plus出现以下问题:样式不生效

将安装版本更换为npm i element-plus@1.0.2-beta.28

总结

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

(0)

相关推荐

  • 详解Vue3怎么使用element-plus

    目录 1.安装 2.在main.js引入 3.使用 vue3出来一段时间了,element也更新了版本去兼容vue3,在这里简单的介绍一下如何使用element-plus吧 1.安装 npm install element-plus --save 2.在main.js引入 import { createApp, Vue } from 'vue'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css

  • Vue3.x中使用element-plus的各种方式详解

    目录 安装element-plus 方式一.全局引入element-plus 方式二.单个组件中使用 方式三.经过自己封装按需引入 1.在项目的src目录下建一个文件夹 global 2.register-element.ts代码如下 3.index.ts代码如下 4.main.ts中引入 安装element-plus element-plus // NPM  npm install element-plus --save // Yarn  yarn add element-plus // pn

  • Vue3+elementui plus创建项目的方法

    1.使用elementui plus版本实现按需加载组件会报错 Error: Cannot find module 'babel-preset-es2015' from 'D:\danzhukeji\danzhu\my_pp\src' 这样的情况下 { "presets": [["es2015", { "modules": false }]], "plugins": [ [ "component", { &

  • vue3引入Element-plus的详细步骤记录

    目录 vue3引入Element-plus的详细步骤 附:vue3 element plus按需引入最优雅的用法 总结 vue3引入Element-plus的详细步骤 前提是安装好了npm 以及创建好了vue脚手架 1.打开控制台到到你所在的根目录: 2.输入引入指令: npm install element-plus --save 3.等待安装好后,在脚手文件中打package.json查看是否安装好 看到有 "element-plus": "^2.1.5"就是安

  • vite+vue3+element-plus项目搭建的方法步骤

    使用vite搭建vue3项目 通过在终端中运行以下命令,可以使用 Vite 快速构建 Vue 项目. $ npm init vite-app <project-name> $ cd <project-name> $ npm install $ npm run dev 引入Element Plus 安装Element Plus: npm install element-plus --save main.js中完整引入 Element Plus: import { createApp

  • Vue3+Element-plus项目自动导入报错的解决方案

    目录 前言 安装步骤 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自动按需导入及出错解决 总结 前言 在创建 Vue3 + Element-plus 项目时,根据 Element-plus 文

  • 解决idea导入ssm项目启动tomcat报错404的问题

    用idea写ssm项目,基于之前一直在用spring boot 对于idea如何运行ssm花费了一番功夫 启动Tom act一直在报404 我搜了网上各种解决办法都不行,花费一天多的时间解决不了 就是在pom中添加下面代码 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin<

  • pycharm中keras导入报错无法自动补全cannot find reference分析

    目录 引言 分析 解决方法 理论解释 1. 直接导入keras 2. 从tensorflow里导入keras 3. 从tensorflow.python里导入keras: 4. 不导入keras 总结 引言 目前无论是中文还是国外网站对于如何正确的导入keras,如何从tensorflow中导入keras,如何在pycharm中从tensorflow里导入keras,这几个问题都众说纷纭,往往是互相借鉴给出一个可用的解决方法,但没有更进一步的解释了.常见因为keras导入引发的问题有以下几个:

  • vue3.0公共组件自动导入的方法实例

    一.前提 我们使用的是require.context方法导入,在vite创建的项目内使用会报错"require not found",所以必须用webpack创建项目.或者有大能可以说说vite怎么解决这个问题. 二.规则 我使用的注册规则是,搜索src/components/路径下的所有目录和子目录,搜索文件名叫做"index.vue"的文件,使用上级目录的名字作为组件名,进行注册.结构如下: 只注册index.vue,其他名字的组件不注册, 三.注册 由于vue

  • arco design按需导入报错排查思路与解决方案解析

    目录 正文 问题描述 排查问题 解决问题 处理思路 总结 正文 记录一档使用arco-design按需加载的问题,来帮助更多的开发者避免.当前项目我使用的 @arco-design/web-vue 与 vite-plugin-style-import 版本是: "@arco-design/web-vue": "^2.43.2", "vite-plugin-style-import": "^2.0.0" 问题描述 首先根据 ar

  • vue3接口数据赋值对象,渲染报错问题及解决

    目录 vue3接口数据赋值对象,渲染报错 vue在渲染数据的时候的一些报错问题 问题描述 解决方法 vue3接口数据赋值对象,渲染报错 const app = require('express')() // 跨域设置 app.all("*", function (req, res, next) { res.setHeader("Access-Control-Allow-Credentials", true); res.setHeader("Access-C

  • vue3使用element-plus中el-table组件报错关键字'emitsOptions'与'insertBefore'分析

    最近用vue3在做一个项目的时候,使用了element-plus中的组件el-table,在本地运行的时候一点错误也没有,但是打包后放到线上环境就开始报错.TypeError: Cannot read properties of null (reading 'insertBefore')和TypeError: Cannot read properties of null (reading 'emitsOptions') 这种报错可能存在三种情况. 然后查看代码的时候,我这边应该是第三种情况,改过

  • bootstrap+jquery项目引入文件报错的解决方法

    做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌张,终结起来也就几种类型的错误,在开发中每次遇到错误都善于总结,下次在看到就会胸有成竹知道是什么情况了,以下是在开发过程中总结的一些错误以及错误的解决方法. 报错一:Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: jQuery is not defined 错误原因:文件

  • 关于IDEA2020.1新建项目maven PKIX 报错问题解决方法

    报错问题如图: 仔细看报错问题后发现,这个错误的主要原因是: ValidatorException:PKIX path building failed : sun.security.provider.certpath.SunCertPathBuilderException : unable to find valid certification path to requested target 造成这个错误的原因是因为有些依赖和插件下载的时候需要验证证书,网上找了好多资料最终解决的,我这里集合了

  • Tomcat启动springboot项目war包报错:启动子级时出错的问题

    今天公司springboot项目准备部署到测试服务器上进行测试,打包好war后放到tomcat里面启动后,前端文件能访问到,但是接口请求一直是404,一直找了很久的原因,tomcat启动是成功的,war打包的时候也提示build success了,tomcat启动日志发现报错: java.lang.IllegalStateException: 启动子级时出错   at org.apache.catalina.core.ContainerBase.addChildInternal(Containe

随机推荐