当前位置: 首页 > news >正文

在 uniapp 里使用 unocss,vue3 + vite 项目

一、创建项目方式:vue-cli

二、基本的安装

npm install -D unocss

三、vite.config.js

import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import UnoCSS from 'unocss/vite'
// https://vitejs.dev/config/
export default defineConfig({plugins: [uni(),UnoCSS()],server: {port: 6321,host: '0.0.0.0',}
})

四、main.js

import {createSSRApp
} from "vue";
import App from "./App.vue";import 'virtual:uno.css'
export function createApp() {const app = createSSRApp(App);return {app,};
}

五、unocss.config.js

unocss-preset-weapp 是一个专为 微信小程序 和 UniApp 设计的 UnoCSS 预设,它内置了 rpx 单位支持,并可以自动处理 rem 转换问题10。
安装:

npm i unocss-preset-weapp -D
// unocss.config.jsimport presetWeapp from "unocss-preset-weapp";import {transformerClass,transformerAttributify,
} from "unocss-preset-weapp/transformer";
import { defineConfig, presetAttributify } from "unocss";
const directionMap = {t: "top",b: "bottom",r: "right",l: "left",x: ["left", "right"], // 水平方向y: ["top", "bottom"], // 垂直方向
};export default {presets: [presetAttributify(),presetWeapp({whRpx: true, // 启用 rpx 单位(默认 true)platform: "uniapp", // 或 'uniapp'designWidth: 750,}),],transformers: [transformerAttributify(), transformerClass()],shortcuts: [],rules: [// 基础间距[/^m-(\d+)$/, ([, d]) => ({ margin: `${d}rpx` })],[/^p-(\d+)$/, ([, d]) => ({ padding: `${d}rpx` })],// 方向性间距(修正版)[/^m([tbrlxy])-(\d+)$/,([, dir, d]) => {const directions = Array.isArray(directionMap[dir])? directionMap[dir]: [directionMap[dir]];return Object.fromEntries(directions.map((k) => [`margin-${k}`, `${d}rpx`]));},],[/^p([tbrlxy])-(\d+)$/,([, dir, d]) => {const directions = Array.isArray(directionMap[dir])? directionMap[dir]: [directionMap[dir]];return Object.fromEntries(directions.map((k) => [`padding-${k}`, `${d}rpx`]));},],// 负值支持[/^-m([tbrlxy])?-(\d+)$/,([, dir, d]) => {if (!dir) return { margin: `-${d}rpx` };const directions = Array.isArray(directionMap[dir])? directionMap[dir]: [directionMap[dir]];return Object.fromEntries(directions.map((k) => [`margin-${k}`, `-${d}rpx`]));},],["center",{position: "absolute",top: "50%",left: "50%",transform: `translate(-50%, -50%)`,},],["shadow1",{"box-shadow": "0px 0px 12px rgba(0, 0, 0, .12)",},],[/^border-#([0-9a-fA-F]+)$/,([_, color]) => ({border: `1px solid #${color}`,}),],["trans",{transition: ".3s",},],],
};

为什么这里要写这么一大段自定义规则,因为这个插件有bug,目前已经反馈了,希望以后可以更新修复,贴上 github issue 截图
在这里插入图片描述

http://www.dtcms.com/a/329941.html

相关文章:

  • Html5-canvas动态渐变背景
  • uniapp授权登录
  • AI服务器需求激增,三星内存与SSD供不应求,HBM与DDR5成关键驱动力
  • docker安装centos
  • AI新贵叫板谷歌Chrome:AI 搜索的入口之战
  • Squash Merge(压缩合并)和Rebase Merge(变基合并)介绍
  • 航电系统数据传输模块技术解析
  • 367. 有效的完全平方数
  • 【R语言】R语言的工作空间映像(workspace image,通常是.RData)详解
  • 力扣面试150题--三角形最小路径和 最小路径和 不同路径 最长回文子串
  • 说说内存泄漏的常见场景和排查方案?
  • 【OpenGL】LearnOpenGL学习笔记07 - 摄像机
  • 记某一次仿真渗透测试
  • 【关于Java的常用类】
  • Unity中启用DLSS 【NVIDIA】
  • Python 类元编程(导入时和运行时比较)
  • Java Web开发:Session与Cookie详细入门指南
  • 看懂 Linux 硬件信息查看与故障排查
  • 网站交互中存储信息的主要方式
  • Linux LNMP配置全流程
  • 【Unity开发】Unity核心学习(一)
  • Eclipse RCP产品动态模块设计
  • 【软件测试】电商购物项目-各个测试点整理(一)
  • VUE3中的内置 API
  • eclipse嵌入式编译速度慢
  • 【知识】UV Python 快速入门指南
  • GLM-4.5V 解读:多模态推理之王
  • 【Android】View#post执行时机浅谈
  • Chrome 插件开发实战
  • 高防IP的防护原理是什么?