Vue3 + Element Plus 按需引入 - 自动导入

1 前言

1.1 目的

Element Plus 使用按需引入,大大缩小打包后的文件大小

1.2 最终效果

自动生成 components.d.ts 文件,并在文件中引入 Element Plus 组件
在这里插入图片描述

自动生成 components.d.ts 文件,并在文件中引入 Element Plus API
在这里插入图片描述

2 准备工作

安装 Element Plus

# 选择一个你喜欢的包管理器

# NPM
$ npm install element-plus --save

# Yarn
$ yarn add element-plus

# pnpm
$ pnpm install element-plus

3 按需引入

3.1 安装插件

  • 组件按需引入所需插件:unplugin-auto-import 、 unplugin-vue-components
  • 图标按需引入所需插件:unplugin-auto-import 、 unplugin-icons

只需要安装到开发环境

$ pnpm i unplugin-auto-import unplugin-vue-components unplugin-icons -D

3.2 修改 vite.config.ts 文件

在这里插入图片描述

4 其他

4.1 ElMessageBox 使用时报错

若修改后还是报错,重启再看看

4.1.1 TS 报错: Cannot find name ‘ElMessageBox’

修改 tsconfig.json 配置: include 中增加 “./auto-imports.d.ts”
若 tsconfig.json 中没有配置include,则修改 tsconfig.app.json

"include": [
  "src/**/*.ts",
  "src/**/*.d.ts",
  "src/**/*.tsx",
  "src/**/*.vue",
  "./auto-imports.d.ts"
], 
4.1.2 Eslint 报错: ‘ElMessageBox’ is not defined.eslint(no-undef)

修改 vite.config.ts 配置: AutoImport 增加 eslintrc ,自动生成 .eslintrc-auto-import.json 文件

在这里插入图片描述

修改 .eslintrc.js 配置:

在这里插入图片描述

4.2 ElMessageBox 弹框样式未生效

在这里插入图片描述

使用按需引入后,不能再手动引入 ElMessageBox ,否则会引起样式冲突,需要删除手动引入 ElMessageBox 部分代码

在这里插入图片描述

4.3 图标使用

注意,-ep- 是 vite.config.ts 文件中配置的,必须保持一致

<!-- 直接使用 -->
<i-ep-menu />

<!-- 嵌套使用 -->
<el-icon><i-ep-menu /></el-icon>

4.4 修改命名空间

将所有el-替换为ep-,一般用于避免样式冲突
在这里插入图片描述

  1. 使用 ElConfigProvider 包装根组件
<!-- App.vue -->
<template>
  <el-config-provider namespace="ep">
    <!-- ... -->
  </el-config-provider>
</template>
  1. 创建 styles/element/index.scss
// styles/element/index.scss
@forward 'element-plus/theme-chalk/src/mixins/config.scss' with (
  $namespace: 'ep'
);
  1. 导入 index.scss
// vite.config.ts
export default defineConfig({
  css: {
    preprocessorOptions: {
      scss: {
        // 注意 "styles/element/index.scss" 文件路径是否正确
        additionalData: `@use "styles/element/index.scss" as *;`,
      },
    },
  },
  // ...
})
  1. 修改 ElementPlusResolver
// vite.config.ts
// ElementPlusResolver 传入 importStyle 参数
ElementPlusResolver({
  importStyle: 'sass'
})
  • 34
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
自动引入element-plus可以通过以下步骤实现: 1. 首先,安装element-plus包,可以使用以下命令之一: - NPM: `npm install element-plus --save` - Yarn: `yarn add element-plus` - pnpm: `pnpm install element-plus` 2. 在你的项目中,确保你已经配置了babel-plugin-component插件。这个插件将帮助我们按引入element-plus组件。 3. 在你的项目的babel配置文件中添加以下配置: ```javascript module.exports = { plugins: [ [ 'component', { libraryName: 'element-plus', styleLibraryName: 'theme-chalk' } ] ] } ``` 4. 现在,当你在项目中使用element-plus组件时,组件的样式会自动引入,但是使用命令方式创建的组件还要手动导入。 通过以上步骤,你就可以按自动引入element-plus组件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [element-plus的自动导入和按导入](https://blog.csdn.net/sayUonly/article/details/121100230)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Vue3 + Element Plus 按引入 - 自动导入](https://blog.csdn.net/weixin_36757282/article/details/125787811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值