Vue 3 + Vite 项目中按需引入 Element Plus (JavaScript)

1. 安装必要依赖
bash 复制代码
npm install element-plus
npm install -D unplugin-vue-components unplugin-auto-import
2. 配置 vite.config.js
js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})
3. 可选样式配置
3.1 完整引入样式 (推荐)

在 main.js 中:

js 复制代码
import 'element-plus/dist/index.css'
3.2 按需引入样式 (需要额外安装插件)
bash 复制代码
npm install -D vite-plugin-style-import

然后在 vite.config.js 中添加:

js 复制代码
import { createStyleImportPlugin } from 'vite-plugin-style-import'

export default defineConfig({
  plugins: [
    // ...其他插件
    createStyleImportPlugin({
      libs: [
        {
          libraryName: 'element-plus',
          esModule: true,
          ensureStyleFile: true,
          resolveStyle: (name) => {
            return `element-plus/es/components/${name.substring(3)}/style/css`
          },
        },
      ],
    }),
  ],
})
4. 使用组件

现在你可以直接在模板中使用 Element Plus 组件,无需手动导入:

vue 复制代码
<template>
  <el-button type="primary">按钮</el-button>
  <el-input v-model="inputValue" placeholder="请输入内容"></el-input>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    }
  }
}
</script>
5. 自定义主题 (可选)

在 vite.config.js 中添加:

js 复制代码
export default defineConfig({
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "element-plus/theme-chalk/src/index" as *;`,
      },
    },
  },
})

然后创建 variables.scss 文件定义变量:

css 复制代码
$--color-primary: #409EFF;
注意事项
  1. 确保你的 Vue 版本是 3.x
  2. 确保 Vite 版本是 2.x 或更高
  3. 按需引入只适用于模板中使用的组件
  4. 如果需要在 JS 中使用 ElMessage 等非组件 API,仍需手动导入:
js 复制代码
import { ElMessage } from 'element-plus'

ElMessage.success('操作成功')
相关推荐
阿珊和她的猫3 小时前
HTTP:Web 世界的基石协议详解
前端·网络协议·http
未来之窗软件服务3 小时前
自建开发工具IDE(二)文件托拽读取——东方仙盟炼气期
开发语言·前端·javascript·仙盟创梦ide·东方仙盟
conkl4 小时前
构建健壮的前端请求体系:从 HTTP 状态码到 Axios 实战
前端·网络协议·http
g***B7384 小时前
前端组件设计模式,复用与扩展
前端·设计模式
chxii4 小时前
第六章:MySQL DQL 表之间的关系 自连接 一对一、一对多、多对一、多对多
java·前端·mysql
U***49834 小时前
前端性能优化插件,图片压缩与WebP转换
前端
c***V3234 小时前
前端构建工具发展,esbuild与swc性能
前端
u***u6854 小时前
前端构建工具多环境配置,开发与生产
前端
U***e634 小时前
前端构建工具迁移,Webpack到Vite
前端·webpack·node.js
Ustinian_3105 小时前
【HTML】前端工具箱实现【文本处理/JSON工具/加解密/校验和/ASCII/时间戳转换等】【附完整源代码】
前端·html·json