写在前面

放弃了。。。

1)方案1 - 参考下面的“完整步骤” - 安装成功,运行成功,但是!好多class不生效!

2)方案2 - 不安装tailwindcss,直接使用独立的编译好的完整css文件!
      tailwind.min.css 2.93 MB 超简单,但是打开页面好费劲!
     下载来源: https://www.npmjs.com/package/tailwindcss/v/2.2.0?activeTab=code 

效果图

1)方案1 - 参考下面的“完整步骤” - 安装成功,运行成功,但是!好多class不生效!

2)方案2 - 不安装tailwindcss,直接使用独立的编译好的完整css文件!

完整步骤

  1. 停止HBuilderX的预览
     
  2. 命令行 cd到项目根目录
     
  3. 安装tailwindcss v3  (官方手册 https://v3.tailwindcss.com/docs/flex
    目前uniapp对v4支持还不大够 (官方手册 https://tailwindcss.com/docs/flex
    npm install tailwindcss@3 @tailwindcss/cli -D
  4. 创建 /tailwind-input.css
    /* 如果是小程序的话,第一行注释掉,因为tailwind base模块提供的一些样式选择器是基于*,这在小程序中会报错 */
    @tailwind base;
    @tailwind components;  
    @tailwind utilities;
  5. 创建 /tailwind.config.js
    /** @type {import('tailwindcss').Config} */ 
    module.exports = {separator: '__', // 如果是小程序项目需要设置这一项,将 : 选择器替换成 __,之后 hover:bg-red-500 将改为 hover__bg-red-500  corePlugins: {  // 预设样式  preflight: false, // 一般uniapp都有预设样式,所以不需要tailwindcss的预设  // 以下功能小程序不支持  space: false, // > 子节点选择器  divideWidth: false,  divideColor: false,  divideStyle: false,  divideOpacity: false,  },  content: ['./index.html', './main.js', './App.vue', './pages/**/*.{vue,js}'],theme: {// 字号,使用 App.vue 中的 --x-font-size 样式变量配置  fontSize(config){  const list = ['2xs','xs','sm','base','md','lg','xl','2xl','3xl'];  let result = {}  list.forEach(it=>{  result[it] = `var(--x-font-size-${it})`  })  return result  },  extend: {  // 间距,tailwindcss中默认间距是rem单位,可以统一设置为uniapp的rpx单位。  // 类似的设置根据项目需求自己调整一下就好了,没必要去安装别人的预设,其实主要是小程序不兼容的css比较多,H5和App基本都直接兼容tailwindcss默认的预设  spacing(config) {let result = { 0: '0' }  // 允许的数值大一些也无所谓,最后打包tailwindcss会摇树优化,未使用的样式并不会打包  for (let i = 1; i <= 300; i++) {result[i] = `${i}rpx`}return result  },  // 增加颜色板,现在主流UI组件库大都是采用css变量实现定制主题,所以这里引用了全局的css变量,这个css变量的定义位置可以在 App.vue 中 page{} 选择器下  // 其实tailwindcss只是一个css工具,不必局限于它内部提供的东西,灵活运用css变量这些特性完全可以整合出自己的生产力工具  colors:{   'primary': 'var(--x-color-primary)',  'tips' : 'var(--x-color-tips)'  },  }, },plugins: [],
    }
  6. 修改 /package.json,在{}中添加以下代码,不要有注释:
    "scripts": {  "tailwind-dev": "tailwindcss -i ./tailwind-input.css -o ./static/tailwind.css --watch",  "tailwind-build": "tailwindcss -i ./tailwind-input.css -o ./static/tailwind.css"  
    }
  7. 创建 /vite.config.js
    import { defineConfig } from 'vite';
    import uni from '@dcloudio/vite-plugin-uni';// 添加以下代码
    /** ==== 处理 tailwind cli 的自动启动和打包 ==== */
    const child_process = require('child_process');
    let tailwindMode = process.env.NODE_ENV;
    // 主进程输出
    child_process.exec(// 这里指令对应 package.json 中的 npm scripts  tailwindMode == 'production'?'npm run tailwind-build':'npm run tailwind-dev',{cwd: __dirname, // 切换目录到当前项目,必须},(error, stdout, stderr) => {// tailwind --watch 是一个持久进程,不会立即执行回调  // process.stdout.write('tailwind success')  if (error) {  console.error('[tailwindcss] 异常,请检查');  console.error(error);  console.error(stdout);  console.error(stderr);  }  if(tailwindMode == 'production'){  console.log('[tailwindcss] 生产环境打包完成');  }  }
    )
    export default defineConfig({plugins: [uni(), ],
    });
  8. 修改 /App.vue的style
    <style lang="scss">/*每个页面公共css */@import './static/tailwind.css';
    </style>
  9. 配置完成!
  10. 开始HBuilderX的预览
  11. 修改 /pages/index/index.vue,添加代码查看效果:
    <view class="text-3xl font-bold underline hover:bg-red-500">Hello world!
    </view>

写在后面

uniapp需要另外安装postcss吗?

在使用uni-app进行开发时,通常并不需要手动安装PostCSS,因为uni-app内部已经集成了PostCSS的功能。PostCSS主要用于对CSS进行转换和优化,比如自动添加浏览器前缀、CSS变量替换、CSS模块化等。在uni-app项目中,这些功能通常是通过内置的编译系统自动处理的。

为什么不需要手动安装?

  1. 内置支持:uni-app使用了Vue CLI的插件系统,其中包括了对PostCSS的支持。这意味着当你创建一个uni-app项目时,PostCSS已经作为依赖内置了。

  2. 自动配置:在uni-app中,你可以通过package.json中的postcss字段来自定义PostCSS的配置,例如使用autoprefixer来自动添加CSS前缀。例如:

{"postcss": {"plugins": {"autoprefixer": {}}}
}

...

参考文章

【笔记】用HbuilderX创建的uniapp项目中,使用tailwindcss_uniapp 使用tailwindcss-CSDN博客文章浏览阅读2.5k次,点赞26次,收藏33次。1. 执行npx tailwindcss -i ./tailwind-input.css -o ./static/tailwind.css --watch 命令后, 一直提示ReBuilding...关于如何在uniapp项目(HBuilderX创建的项目)中使用tailwind, 一般能找到的uniapp+tailwind的文章,在HBuilderX创建的项目里都不能用。2. 在main.js中添加: import "@/static/tailwind.css", 整个项目的页面都变成空白了。_uniapp 使用tailwindcss https://blog.csdn.net/m0_66382276/article/details/142205410Hbuilder创建的uniapp工程,使用tailwindcss最优雅的方式 - DCloud问答Hbuilder创建的uniapp工程,使用tailwindcss最优雅的方式 - 简介使用Hbuilder创建的uniapp工程,目前很难找到可以顺利使用tailwindcss的方案 本文仅针对 Hbuilder 创建的 uniapp 工程,对于 vue-cli 方式创建的uniapp工程,网上有文章提供了方法,但也可以使用本文的...https://ask.dcloud.net.cn/article/id-40098

其他参考

Using PostCSS

Install Tailwind CSS using PostCSS - Tailwind CSSInstalling Tailwind CSS as a PostCSS plugin is the most seamless way to integrate it with build tools like webpack, Rollup, Vite, and Parcel.https://v3.tailwindcss.com/docs/installation/using-postcssTailwind CLI

Installation - Tailwind CSSThe simplest and fastest way to get up and running with Tailwind CSS from scratch is with the Tailwind CLI tool.https://v3.tailwindcss.com/docs/installationPlay CDN

Try Tailwind CSS using the Play CDN - Tailwind CSSUse the Play CDN to try Tailwind right in the browser without any build step.https://v3.tailwindcss.com/docs/installation/play-cdn

https://www.cnblogs.com/xwwin/p/18374796
https://ask.dcloud.net.cn/article/id-40098__page-2
https://segmentfault.com/a/1190000045385232
https://zhuanlan.zhihu.com/p/694212190
https://blog.csdn.net/qq_63358859/article/details/149071215
https://www.runoob.com/tailwindcss/tailwindcss-installbycdn.html

UnoCSS 是类似 Tailwind 但更轻量的原子化 CSS 引擎,对 UniApp 支持更好
https://unocss.nodejs.cn/
https://juejin.cn/post/7475283309062029327

ending...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917989.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917989.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917989.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Idea去git项目,发现拉取和推送都很慢的问题

在大多数情况下&#xff0c;用Idea去对项目进行拉取和推送是很方便的&#xff0c;对于新手来说也是非常友好的但是最近博主遇到了一个问题&#xff0c;就是我feat一个简单的类&#xff0c;去提交推送都需要很长的时间&#xff0c;甚至是20分钟&#xff0c;博主去找了很多方法。…

无人机图传的得力助手:5G 便携式多卡高清视频融合终端的协同应用

前言在无人机作业中&#xff0c;图传系统是连接空中与地面的关键纽带&#xff0c;而 5G 便携式多卡高清视频融合终端虽不直接搭载于无人机&#xff0c;却能通过地面协同突破传统微波图传的局限&#xff0c;为无人机远程监控、应急指挥提供稳定高效的传输支撑。型号&#xff1a;…

【博客系统UI自动化测试报告】

博客系统UI自动化测试报告一、项目背景二、测试内容(一)测试用例(二)测试账号(三&#xff09;使用Selenium进行Web自动化测试1.环境搭建2.创建浏览器驱动3.编写博客登陆模块的测试用例代码4.编写博客主页展示模块的测试用例代码5.编写博客创作模块的测试用例代码6.编写博客查看…

简单手写Transformer:原理与代码详解

Transformer 作为 NLP 领域的里程碑模型&#xff0c;彻底改变了序列建模的方式。它基于自注意力机制&#xff0c;摆脱了 RNN 的序列依赖&#xff0c;实现了并行计算&#xff0c;在机器翻译、文本生成等任务中表现卓越。本文将从零开始&#xff0c;手写一个简化版 Transformer&a…

Numpy科学计算与数据分析:Numpy入门之数组操作与科学计算基础

Numpy入门实践&#xff1a;从零开始掌握科学计算利器 学习目标 通过本课程的学习&#xff0c;学员将了解Numpy的历史背景、核心特点及其在科学计算中的重要性。学员将掌握如何使用Numpy进行数组操作&#xff0c;包括数组的创建、索引、切片以及基本的数学运算&#xff0c;为后…

python:讲懂决策树,为理解随机森林算法做准备,以示例带学习,通俗易懂,容易理解和掌握

为什么要讲和学习决策树呢?主要是决策树(包括随机森林算法)不需要数据的预处理。现实世界的数据往往“脏乱差”,决策树让你在数据准备上可以少花很多功夫,快速上手,用起来非常的“省心”。总之,决策树是机器学习领域里最直观易懂、解释性最强、应用最广泛的基础模型之一…

C语言:单链表学习

文件&#xff1a;main.c #include "linkedList.h"int main(int argc, char *argv[]) {// 创建头结点NODE *head NULL;// 创建链表if (llist_create(&head, 666) < 0){perror("链表创建失败&#xff01;");return -1;}// 向链表插入数据llist_addTa…

使用 decimal 包解决 go float 浮点数运算失真

文章目录问题解决注意问题 go float 在运算的时候会出现精度问题 package mainimport ("fmt" )func main() {var a float64 0.3var b float64 0.6fmt.Println("ab", ab) // 你以为是 0.9 但是结果是&#xff1a;0.8999999999999999 }你观察到的 0.3 …

MongoDB学习专题(六)复制集和分片集群

1、概念MongoDB复制集的主要意义在于实现服务高可用&#xff0c;类似于Redis中的哨兵模式2、功能1. 数据写入主节点时将数据复制到另一个副本节点上2. 主节点发生故障时自动选举出一个新的替代节点在实现高可用的同时&#xff0c;复制集实现了其他几个作用数据分发&#xff1a;…

vue3对比vue2的性能优化和提升 :Vue 3 vs Vue 2

1.性能提升 1.1.响应式系统的改进: 从 Object.defineProperty 到 Proxy Vue2:Vue 2 的响应式系统基于 Object.defineProperty,它为每个属性单独设置 getter 和 setter。虽然能够满足基本需求,但它在以下方面存在性能瓶颈: Vue2 中数组监听的局限性:Vue2 通过Object.defi…

进程生命周期管理:从创建到终止的完整逻辑

前言 在操作系统的世界里&#xff0c;进程就像一个个忙碌的 “工作单元”&#xff0c;从被创建到完成任务后终止&#xff0c;始终遵循着一套严谨的生命周期规则。理解进程的生命周期管理&#xff0c;是揭开操作系统多任务调度神秘面纱的关键 —— 而这其中&#xff0c;进程的创…

【显示器】背光板的结构和工作原理

背光板是LCD&#xff08;液晶显示器&#xff09;中的一个重要组件&#xff0c;它负责提供屏幕所需的光源。下面我们详细解释背光板的结构和工作原理。背光板的基本结构一个典型的背光板由以下几个主要部分组成&#xff1a;LED灯条&#xff1a;通常使用白色LED作为光源。导光板&…

hadoop HDFS 重置详细步骤

有时候我们需要对hdfs重置&#xff0c;步骤如下&#xff1a; 1、停止服务 2. 清除日志节点ssh dmp-hdfs-ns1 rm -rf /disk1/dfs/jn/meta/*ssh dmp-hdfs-ns2 rm -rf /disk1/dfs/jn/meta/*ssh dmp-hdfs-dt1 rm -rf /disk1/dfs/jn/meta/*ssh dmp-hdfs-dt2 rm -rf /disk1/dfs/jn/me…

前端性能优化:从请求到资源的精细调控

在用户体验为王的时代&#xff0c;前端性能直接决定产品的留存率。本文聚焦 “减少不必要的传输与加载损耗”&#xff0c;从 合并HTTP请求、启用压缩、减少Cookie、资源加载顺序 四个维度&#xff0c;拆解优化思路与落地方法。 一、合并HTTP请求&#xff1a;突破浏览器并发瓶颈…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势柱状图

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解微博舆情数据可视化分析-热词情感趋势柱状图…

脚本统计MongoDB集合结构信息

场景&#xff1a; 当想统计mongodb集合的结构是什么数据类型时。 1.利用variety.js解析 https://github.com/variety/variety 2.脚本 #!/bin/bash#userxxx #passwxxx host1xx.1x.1x.150 port27010 dbhgrtabs$(echo "show collections"|mongo ${host}:${port}/${db}|g…

订单簿流动性分析与机器学习在大单匹配中的应用

一、订单簿流动性的基本概念 1.1 订单簿的结构与组成 在金融市场中&#xff0c;订单簿&#xff08;Order Book&#xff09;是买卖双方提交的限价订单的集合&#xff0c;通常以价格优先、时间优先的原则进行排序。订单簿由多个层级的价格档位组成&#xff0c;每个档位包含若干限…

CSS :is () 与 :where ():简化复杂选择器的 “语法糖”

在 CSS 编写中&#xff0c;你是否遇到过这样的场景&#xff1a;需要给多个不同父元素下的子元素设置相同样式&#xff0c;结果写出一长串重复的选择器&#xff1f;比如给header、main、footer中的p标签设置相同的颜色&#xff0c;传统写法可能是header p, main p, footer p { c…

vue打包号的文件如何快速查找文件打包后的位置

解析“explorer yz-front-dist”&#xff1a;前端开发者的实用命令小知识 在前端开发的日常工作中&#xff0c;我们经常会接触到各种命令行操作&#xff0c;其中“explorer yz-front-dist”是一个看似简单却暗藏实用价值的命令。对于刚接触开发的新手来说&#xff0c;理解它的含…

Go语言数据类型深度解析:位、字节与进制

Go语言数据类型深度解析&#xff1a;位、字节与进制 在计算机编程中&#xff0c;数据类型是构建一切的基础。理解不同数据类型的特性、内存占用以及在不同场景下的应用&#xff0c;对于编写高效、可靠的代码至关重要。 本文将深入探讨Go语言中的数据类型系统&#xff0c;重点讲…