经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS » 查看文章
Taro项目引入Tailwindcss
来源:cnblogs  作者:!win !  时间:2023/6/19 22:12:31  对本文有异议

前情

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:安装相关依赖

  1. npm install -D tailwindcss postcss autoprefixer weapp-tailwindcss

STEP 2:补充配置

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

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

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

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

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

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

  1. // config/index.js
  2. const { UnifiedWebpackPluginV5 } = require('weapp-tailwindcss/webpack')
  3. {
  4. mini: {
  5. webpackChain(chain, webpack) {
  6. chain.merge({
  7. plugin: {
  8. install: {
  9. plugin: UnifiedWebpackPluginV5,
  10. args: [{
  11. appType: 'taro'
  12. }]
  13. }
  14. }
  15. })
  16. }
  17. }
  18. }

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

  1. // config/index.js
  2. config = {
  3. // ...
  4. mini: {
  5. // ...
  6. postcss: {
  7. htmltransform: {
  8. enable: true,
  9. // 设置成 false 表示 不去除 * 相关的选择器区块
  10. // 假如开启这个配置,它会把 tailwindcss 整个 css var 的区域块直接去除掉
  11. // 需要用 config 套一层,官方文档上是错的
  12. config: {
  13. removeCursorStyle: false,
  14. }
  15. },
  16. },
  17. },
  18. }

STEP 3:在项目入口引入Tailwindcss

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

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

友情提示

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

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

codetips

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

doc

原文链接:https://www.cnblogs.com/xwwin/p/17492366.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号