UnoCSS

官方链接

https://unocss.dev/

装包

yarn add unocss @unocss/preset-uno @unocss/preset-attributify @unocss/preset-icons

 

vue.config.ts:

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'
import { visualizer } from 'rollup-plugin-visualizer'
import externalGlobals from 'rollup-plugin-external-globals'
import { createHtmlPlugin } from 'vite-plugin-html'
import Unocss from 'unocss/vite';
import { presetUno, presetAttributify, presetIcons } from 'unocss'

// https://vitejs.dev/config/
export default defineConfig({
  // base: 'doc',
  server: {
    port: 3007,
    proxy: {
      '/api': {
        target: 'http://localhost:85',
        changeOrigin: true,
        rewrite: (path) => {
          console.log(path)
          return path.replace(/^\/api/, '/api')
        },
      },
    },
  },
  plugins: [
    vue(),
    vueJsx(),
    vueDevTools(),
    visualizer(),
    Unocss({
      presets: [
        presetUno(),
        presetAttributify(),
        presetIcons()],
    }),
    {
      ...externalGlobals({
        vue: 'Vue',
        'vue-demi': 'VueDemi',
        'vue-router': 'VueRouter',
        'element-plus': 'ElementPlus',
      }),
      enforce: 'post',
      apply: 'build',
    },
    createHtmlPlugin({
      inject: {
        data: {
          cdnCss: ['element-plus_2.7.7_index.css'],
          cdnJs: [
            'vue_3.4.32.js',
            'vue-demi_0.14.8_index.iife.js',
            'vue-router_4.4.0.global.js',
            'element-plus_2.7.7_index.full.js',
          ],
        },
      },
    }),
  ],
  build: {
    sourcemap: true,
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
})

main.ts:

import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'
import { init } from './views/index/config'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import 'uno.css'

const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(ElementPlus)
init(app)

app.mount('#app')

me/Index.vue:

<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'

const router = useRouter()

const handleJump = (path: any) => {
  router.push(path)
}

onMounted(() => {})
</script>

<template>
  <div>
    me
    <button @click="() => handleJump('/home')">home</button>
    <button class="bg-blue w-80 h-10 ml-10 m-1">button</button>
  </div>
</template>

人工智能学习网站

https://chat.xutongbao.top

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐同保

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值