Uno vui
警告!
uno-vui目前还在积极开发中,还不能用于生产环境
简介
uno-vui是基于Unocss和Vueuse开发的vue3 UI组件库。 组件库使用最新的Vue3 setup script, 完全使用Typescript来编写,并使用Vite进行打包和构建。
安装
@unocss/reset包含style样式预设。更多信息@iconify/json是图标库, 你也可以使用cdn的方式加载图标, Unocss推荐的cdn有两个https://esm.sh/和https://cdn.skypack.dev/,在国内使用cdn不太稳定, 推荐使用安装的方式。 更多信息
shell
pnpm add uno-vui @unocss/reset @vueuse/core
pnpm add unocss @iconify/json -Dshell
yarn add uno-vui @unocss/reset @vueuse/core
yarn add unocss @iconify/json -Dshell
npm install uno-vui @unocss/reset @vueuse/core
npm install unocss @iconify/json -D配置
推荐使用vite.config.ts + uno.config.ts的配置方式,详细
ts
// vite.config.ts
import Unocss from 'unocss/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
Unocss(),
]
})ts
// uno.config.ts
import { presetUnoVui } from 'uno-vui/preset';
import { TransformerAttributifyToClass, unovuiIconsOptions } from 'uno-vui/utils';
import {
defineConfig,
presetAttributify, presetIcons, presetUno,
transformerDirectives, transformerVariantGroup
} from 'unocss';
export default defineConfig({
presets: [
presetUno(),
presetAttributify(),
presetIcons(unovuiIconsOptions({
svgPath: "src/assets/svgs"
})),
presetUnoVui({
themes: [
{ primary: "blue", accent: "purple" },
{ primary: "pink", accent: "sky" },
],
// 通过预设覆盖uno-vui默认使用图标
// icons: {
// loading: "i-mingcute:loading-line animate-spin"
// }
})
],
transformers: [
TransformerAttributifyToClass(), // 必须放在第一个
transformerVariantGroup(),
transformerDirectives(),
],
// 添加这里恨重要,unocss默认不扫描node_modules文件夹下的.js,.cjs文件
// 这个ui库打包时是没有生成css文件的
include: [/.*\/uno-vui\.js(.*)?$/, './**/*.vue']
})添加virtual:uno.css到程序主入口文件
ts
// main.ts
import '@unocss/reset/tailwind.css'; // css 预设,你也可以使用其他预设
import 'virtual:uno.css'; // unocss全量导入(不推荐)
失去tree-shaking能力
ts
import { createApp } from 'vue';
import { Unovui } from 'uno-vui';
import App from './App.vue';
const app = createApp(App);
app.use(Unovui);按需导入(推荐)
你需要额外的插件来导入,首先安装插件
shell
pnpm add unplugin-vue-components unplugin-auto-import -Dshell
yarn add unplugin-vue-components unplugin-auto-import -Dshell
npm install unplugin-vue-components unplugin-auto-import -D然后在Vite配置中添加如下配置
ts
// vite.config.ts
import Unocss from 'unocss/vite';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { defineConfig } from 'vite';
import { unovuiResolver } from 'uno-vui/utils';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
Unocss(),
AutoImport({
imports: ["vue", "@vueuse/core"],
ignore: ["h"],
vueTemplate: true
}),
Components({
resolvers: [
unovuiResolver()
]
})
],
})
uno-vui