1.0.2 • Published 9 months ago
vite-plugin-auto-inject-css v1.0.2
为什么要开发这款插件!!
import { ElButton } from 'element-plus';
↓ ↓ ↓ ↓ ↓ ↓
import 'element-plus/theme-chalk/el-button.css';
import { ElButton } from 'element-plus';
📦 安装
$ npm i vite-plugin-auto-inject-css -D
$ yarn add vite-plugin-auto-inject-css -D
$ pnpm add vite-plugin-auto-inject-css -D
API
属性 | 描述 | 类型 | 默认值 |
---|---|---|---|
mode | 以什么样式的模式注入. | dependencies / peerDependencies | dependencies |
baseCss | 是否注入基础样式. | boolean | true |
resolvers | 要注入的库列表. | ElementPlusResolver[] | [] |
Resolver
属性 | 描述 | 类型 | 默认值 |
---|---|---|---|
inject | 自定义注入样式. | (name?: string) => string \| string[] | - |
🔨 使用案例
import { defineConfig, loadEnv } from 'vite'
import Vue from '@vitejs/plugin-vue'
import {
ElementPlusResolver,
createAutoInjectCssPlugin,
} from 'vite-plugin-auto-inject-css'
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd())
return {
server: {
open: true,
host: true,
https: !!env.https,
},
plugins: [
Vue(),
createAutoInjectCssPlugin({
resolvers: [ElementPlusResolver()],
}),
],
}
})
↓ ↓ ↓ ↓ ↓ ↓ 📚
dist
├─ assets
│ ├─ index-Ca3M0RQA.js # js文件
│ ├─ index-CwY391-e.css # 按需打包的UI库组件样式
├─ index.html # 入口 html
库模式 🚀
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import {
ElementPlusResolver,
createAutoInjectCssPlugin,
} from 'vite-plugin-auto-inject-css'
export default defineConfig(() => {
return {
build: {
target: 'es2018',
emptyOutDir: true,
copyPublicDir: true,
lib: {
entry: './src/App.vue',
},
rollupOptions: {
external: ['vue', 'element-plus'],
output: [
{
format: 'es',
dir: 'es',
},
{
format: 'cjs',
dir: 'lib',
exports: 'named',
},
],
},
},
plugins: [
Vue(),
createAutoInjectCssPlugin({
mode: 'peerDependencies',
resolvers: [ElementPlusResolver()],
}),
],
}
})
↓ ↓ ↓ ↓ ↓ ↓
import { ElButton } from 'element-plus';
↓ ↓ ↓ ↓ ↓ ↓
import 'element-plus/theme-chalk/base.css';
import 'element-plus/theme-chalk/el-button.css';
import { ElButton } from 'element-plus';
const { ElButton } = require('element-plus')
↓ ↓ ↓ ↓ ↓ ↓
'use strict';
require('element-plus/theme-chalk/base.css');
require('element-plus/theme-chalk/el-button.css');
const { ElButton } = require('element-plus');
如果当前 style 不属于 UI 库自身的,那么会在输出目录下生成 style 文件并自动注入在对应的 chunk 中.
↓ ↓ ↓ ↓ ↓ ↓
import './App.css'
或
require('./App.css')
自定义注入样式 🚀
import { defineConfig } from 'vite'
import {
ElementPlusResolver,
createAutoInjectCssPlugin,
} from 'vite-plugin-auto-inject-css'
export default defineConfig(() => {
return {
plugins: [
createAutoInjectCssPlugin({
mode: 'peerDependencies',
resolvers: [
ElementPlusResolver({
inject: (name) => `element-plus/theme-chalk/${name}.css`,
}),
],
}),
],
}
})
🍵 捐赠
如果您正在使用这个项目或者喜欢这个项目,可以通过以下方式支持我:
- Star、Fork、Watch 一键三连 🚀
1.0.2
9 months ago
1.0.1
9 months ago
1.0.0
10 months ago
1.0.0-beta.5
10 months ago
1.0.0-beta.4
10 months ago
1.0.0-beta.3
10 months ago
1.0.0-beta.2
10 months ago
1.0.0-beta.1
10 months ago
0.0.4
10 months ago
0.0.3
10 months ago
0.0.2
10 months ago
0.0.1
10 months ago