首页 > 其他分享 >Taro项目引入Tailwindcss

Taro项目引入Tailwindcss

时间:2023-06-19 22:26:02浏览次数:44  
标签:插件 Taro Tailwindcss js tailwindcss 引入 config CSS

前情

Tailwind CSS 是一个原子类 CSS 框架,它将基础的 CSS 全部拆分为原子级别,同时还补全各种浏览器模式前缀,兼容性也不错。它的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何模板中的 CSS 类名,然后生成相应的样式代码并写入到一个静态 CSS 文件中。Tailwind CSS 快速、灵活、可靠,没有运行时负担。自动接触了Tailwindcss后,目前已经是我项目的标配了。正好手上有一个Taro的小程序项目,我也想让它引入Tailwindcss。

世面上流行的几种接入方式

方式1:通过https://github.com/pcdotfan/taro-plugin-tailwind插件引入

缺点:需要特殊处理冒号和反斜杠,同时对于tailwindcss的一些高级特性不支持,开发体验大打折扣

bad

方式2:通过https://github.com/dcasia/mini-program-tailwind插件引入

缺点:它实际上使用的是windi.css,目前windi.css已经处于不维护状态,官方已不推荐使用

windcss

方式3:通过使用https://github.com/sonofmagic/weapp-tailwindcss插件引入

基本与普通web项目使用差异不是特别大,目前我的taro项目就是使用此方式引入的。

通过https://github.com/sonofmagic/weapp-tailwindcss插件引入步骤

STEP 1:安装相关依赖

npm install -D tailwindcss postcss autoprefixer weapp-tailwindcss

STEP 2:补充配置

# 初始化 tailwind.config.js 文件
npx tailwindcss init

执行上面命令生成tailwind.config.js,并增加如下配置

/** @type {import('tailwindcss').Config} */
module.exports = {
  // 不在 content 包括的文件内编写的 class,不会生成对应的工具类
  content: ['./public/index.html', './src/**/*.{html,js,ts,jsx,tsx,vue}'],
  // 其他配置项
  // ...
  corePlugins: {
    // 不需要 preflight,因为这主要是给 h5 的,如果你要同时开发小程序和 h5 端,你应该使用环境变量来控制它
    preflight: false
  }
}

手动创建postcss.config.js,并注册Tailwindcss

// postcss.config.js
// 假如你使用的框架/工具不支持 postcss.config.js,则可以使用内联的写法
// 其中 `autoprefixer` 有可能已经内置了,假如框架内置了可以去除
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  }
}

在项目的配置文件 config/index中注册weapp-tailwindcss:

// config/index.js
const { UnifiedWebpackPluginV5 } = require('weapp-tailwindcss/webpack')

{
  mini: {
    webpackChain(chain, webpack) {
      chain.merge({
        plugin: {
          install: {
            plugin: UnifiedWebpackPluginV5,
            args: [{
              appType: 'taro'
            }]
          }
        }
      })
    }
  }
}

另外在和 @tarojs/plugin-html 一起使用时,需要配置下 postcss-html-transform 这个插件,不然默认配置下它会移除整个 Tailwindcss 注入的  css var 区域块,这会造成所有 tw-* 相关变量找不到,导致样式大量挂掉的问题。

// config/index.js
config = {
  // ...
  mini: {
    // ...
    postcss: {
      htmltransform: {
        enable: true,
        // 设置成 false 表示 不去除 * 相关的选择器区块
        // 假如开启这个配置,它会把 tailwindcss 整个 css var 的区域块直接去除掉
        // 需要用 config 套一层,官方文档上是错的
        config: {
          removeCursorStyle: false,
        }
      },
    },
  },
}

STEP 3:在项目入口引入Tailwindcss

// 在Taro项目下的app.scss中增加如下css代码
@import 'tailwindcss/base';
@import 'tailwindcss/utilities';
@import 'tailwindcss/components'

这样就可以愉快的在 taro项目中使用Tailwindcss开发需求了。

友情提示

在vs code下为了更好的用户开发体验,可以安装 Tailwindcss相关的插件

Tailwind CSS IntelliSense:此插件提示书写提示,极大的提高开发体验

codetips

Tailwind Documentation:文挡查询,在vscode中快速查询,直接搜索对应样式名就能查到使用方式,这个可有可无,直接查官方文挡也是一样的

doc

标签:插件,Taro,Tailwindcss,js,tailwindcss,引入,config,CSS
From: https://www.cnblogs.com/xwwin/p/17492366.html

相关文章

  • Ubuntu 23.10 将引入安全增强的 PPA
    导读 Ubuntu的升级不断地增强功能并添加安全修复程序。但是,很少见到一些核心机制的更改。 在Ubuntu23.10中,PPA的功能得到了改进。至少,你在终端中看到警告会更少。这是什么意思呢?让我详细说明一下。GPG密钥问题传统上,PPA和其他外部存储库是通过 /etc/apt......
  • 太炸了!PS 2023引入AI新技术 功能逆天
    AI已经是最近设计师们最常聊的话题之一了,而我们熟悉的Adobe公司当然不甘落后,先是推出了AI萤火虫,最近又推出了Photoshop beta。在最新的测试版本,ps引入了AI功能,我们一起来看一下。在选取内加上我们想要的内容,比如yellowroadlines,AI就会自动识别双黄线他该去的地方。可以对......
  • Spring Boot单体应用引入sleuth链路追踪
    文章目录前言一、问题模拟二、引入sleuth链路跟踪1、引入sleuth的maven依赖2、添加属性配置3、logback配置4、日志信息5、通过@NewSpan注解声明新的Span三、引入Sleuth链路跟踪的好处四、Sleuth概念说明五、Logback的MDC特性前言最近排查生产环境的异常时发现一个问题,虽然找到了......
  • three.js 置换贴图 alpha贴图 的妙用 - 3D文字不引入字体文件
    实现将文字绘制到canvascanvas生成置换贴图alpha贴图将canvas转换成texture将texture贴到material修改shader将黑色背景区域去掉视频教程请移步b站canvas生成贴图classCanvas{canvas:HTMLCanvasElement=document.createElement("canvas");protectedctx:CanvasRen......
  • tailwindcss基本使用
    目录一、tailwindcss基本使用1、设置tailwind和postcss一、tailwindcss基本使用1、设置tailwind和postcss命令*npminit-y*npmitailwindcsspostcss-cliautoprefixer*npxtailwindinit编辑tailwind.config.jsmodule.exports={content:["./public/**/*.......
  • web3产品介绍:mask将Web3的隐私和优势引入像Facebook和Twitter这样的社交媒体平台
    介绍:MaskNetwork是一个开源的浏览器扩展,将Web3的隐私和优势引入像Facebook和Twitter这样的社交媒体平台。它是一个功能强大的工具,允许用户在社交媒体上享受区块链的隐私保护和其他Web3的好处。让我们一起探索MaskNetwork的主要特点和为用户带来的益处。主要特点:1.隐私保护:Ma......
  • 利用Taro打造敏捷的移动App架构
    什么是Taro?Taro(或称为Taro框架)是一种用于构建跨平台应用程序的开源JavaScript框架。它基于React和ReactNative,可以用于开发Web、iOS、Android和微信小程序等平台上的应用程序。Taro的目标是实现一套代码多端运行的方案,开发者可以使用一套React语法编写代码,然后通过Taro编译器将......
  • 公司已有springboot项目引入swagger
    公司已有springboot项目引入swagger1、swagger介绍官网:https://swagger.io/Swagger是一个用于生成、描述和调用RESTful接口的Web服务。通俗的来讲,Swagger就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务2、引入目的Swagger有以下3个重要的作......
  • iOS SDK打包引入外边的文件
    一、SDK打包引入外边的文件添加外边项目引入包的路径/Users/renhao/Desktop/安硕/Project/AE-SDK/td-ios-sdk/ReleaseResources/TalkingDataSDKDemo/TDEncrypt/CocoaSecurity/Users/renhao/Desktop/安硕/Project/AE-SDK/td-ios-sdk/ReleaseResources/TalkingDataSDKDemo/TDEncr......
  • 算法的引入
    算法解题四步走分析需求设计算法算法实现验证结果算法需要的特性输入:可以有一个或者多个输入输出:至少有一个正确的输出有穷性:确保算法执行的时间是理想确切性:确保算法的每一个步骤都是有意义的可行性:算法的每一步都是能执行的简单的案例#如果a+b+c=1000,且a^2+b^2......