uniapp,vite整合windicss

news/2024/9/23 4:19:42/

官方文档:https://weapp-tw.icebreaker.top/docs/quick-start/frameworks/hbuilderx

安装:

npm i -D tailwindcss postcss autoprefixer
# 初始化 tailwind.config.js 文件
npx tailwindcss initnpm i -D weapp-tailwindcss# 假如 tailwindcss 在 weapp-tailwindcss 之后安装,可以手动执行一下 patch 方法
# npx weapp-tw patch

然后把下列脚本,添加进你的 package.json 的 scripts 字段里:

 "scripts": {"postinstall": "weapp-tw patch"}

添加tailwind.config.js文件:

const path = require("path");const resolve = (p) => {return path.resolve(__dirname, p);
};
/** @type {import('tailwindcss').Config} */
module.exports = {// 注意此处,一定要 `path.resolve` 一下, 传入绝对路径// 你要有其他目录,比如 components,也必须在这里,添加一下content: ["./index.html", "./pages/**/*.{html,js,ts,jsx,tsx,vue}"].map(resolve),// ...corePlugins: {// 跨多端可以 h5 开启,小程序关闭preflight: false,},
};

vite.config.js 中注册windicss

import path from "path";
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import { UnifiedViteWeappTailwindcssPlugin as uvwt } from "weapp-tailwindcss/vite";
// 注意: 打包成 h5 和 app 都不需要开启插件配置
const isH5 = process.env.UNI_PLATFORM === "h5";
const isApp = process.env.UNI_PLATFORM === "app";
const WeappTailwindcssDisabled = isH5 || isApp;const resolve = (p) => {return path.resolve(__dirname, p);
};export default defineConfig({plugins: [uni(), uvwt({rem2rpx: true,disabled: WeappTailwindcssDisabled,// 由于 hbuilderx 会改变 process.cwd 所以这里必须传入当前目录的绝对路径tailwindcssBasedir: __dirname})],css: {postcss: {plugins: [require("tailwindcss")({// 注意此处,手动传入你 `tailwind.config.js` 的绝对路径config: resolve("./tailwind.config.js"),}),require("autoprefixer"),],},},
});

在app.vue的style中引入windicss

  @import 'tailwindcss/base';@import 'tailwindcss/utilities';
vite整合windicss
npm i -D vite-plugin-windicss windicss

引入插件
在这里插入图片描述

import vue from '@vitejs/plugin-vue'import createAutoImport from './auto-import'
import createSvgIcon from './svg-icon'
import createCompression from './compression'
import createSetupExtend from './setup-extend'
import WindiCSS from 'vite-plugin-windicss'export default function createVitePlugins(viteEnv, isBuild = false) {const vitePlugins = [vue()]vitePlugins.push(createAutoImport())vitePlugins.push(createSetupExtend())vitePlugins.push(createSvgIcon(isBuild))vitePlugins.push(WindiCSS())isBuild && vitePlugins.push(...createCompression(viteEnv))return vitePlugins
}

http://www.ppmy.cn/news/1523863.html

相关文章

Express框架中的res

中间件由两部分组成,中间件方法和请求处理函数; 中间件方法由express提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求; app.get(‘请求路径’,‘处理函数’); //接收并处理get请求 app.post(‘请求路径’,‘处理函数’); //接收并处理post请求 可以对同一个请求…

【云备份】可视化客户端----QT开发➕QT数据库编程

文章目录 一、 需求分析二、 概念结构设计三、逻辑结构设计1. 用户表 (users)2. 客户端本地文件信息表 (upload_files)3. 备份记录表 (backup_records)4. 服务端备份文件信息表 (backup_files) 四、 开发工具五、具体实现(一) 客户端程序运行演示 一、 需…

后端Web之SpringBoot原理

目录 1.配置优先级 2.Bean 3.SpringBoot原理 1.配置优先级 SpringBoot中支持三种格式的配置文件: .application.properties、application.yml和application. yaml。它们的配置优先级分别降低。虽然springboot支持多种格式配置文件,但是在项目开发时,推荐统一使用…

系统性能分析工具sysstat之sar命令以及nginx中打开gzip使用配置gzip_http_version值为1.0和1.1时遇到的结果乱码问题

一、系统性能分析工具:sysstat之sar命令 服务器维护常用的管理命令有很多:top、ps,、pstree、vmstat、iostat、iotop等,但好像都不全面,这里有一个比较系统全面的性能分析工具sar(System Activity Reporter系统活动情况…

Redis 缓存淘汰算法策略详解

引言 Redis 作为一款高性能的内存数据库,在处理大量数据时,由于内存有限,需要在数据达到设定的内存上限后,使用缓存淘汰策略来决定哪些数据应该被移除,以腾出空间存储新的数据。这一过程被称为缓存淘汰,通…

【网络安全】-文件上传漏洞实战-upload-labs(0~16)

准备&#xff1a; 一句话木马&#xff1a;<? php eval($_REQUEST[cmd]); ?)> 格式&#xff1a;写入txt文本重命名后缀问.php /.php 格式&#xff0c;看具体要求上传。 Pass-01: 显示页面源代码&#xff0c;发现是js对不合法文件进行检查,上传修改为.jpg的php文件直接…

ArrayList、LinkedList和Vector的区别

ArrayList 容量默认是10&#xff0c;它和 Vector 的底层实现都是基于动态数组&#xff0c;ArrayList 的内部元素可以通过 get 和 set 方法进行访问&#xff1b;LinkedList的底层实现是基于双向链表&#xff0c;当数据量很大或者操作很频繁的情况下&#xff0c;插入和删除元素时…

版权与开源协议:一场创新与自由的边界之争

在数字时代的浪潮中&#xff0c;版权与开源协议作为知识产权领域的两大支柱&#xff0c;既相互依存又暗自较劲&#xff0c;共同绘制着科技创新的宏伟蓝图。本文将带您深入这场创新与自由的边界之争&#xff0c;探讨版权与开源协议之间的微妙关系&#xff0c;以及它们如何共同推…