uni-app 使用 tailwindcss

tailwindcss 中文文档
windicss 英文文档

我是通过vue-cli创建的项目,HBuilderX没有试过,这里介绍使用vue-cli创建的项目,可查看官方文档。这里有两种配置方式(重置主题和重命名类),目的都是考虑兼容性,您可根据实际情况处理。英文

vue create -p dcloudio/uni-preset-vue my-project

1️⃣ 重置主题

安装依赖

npm install tailwindcss@npm:@tailwindcss/postcss7-compat -D

配置 tailwindcss

在项目根目录创建tailwind.config.js文件,用于配置tailwindcss

// tailwind.config.js
module.exports = {
  purge: ['./public/index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
  darkMode: false,
  separator: '__', // 兼容小程序,将 : 替换成 __
  theme: {
    // 兼容小程序,将默认配置里带 .和/ 清除
    // 如果有些属性你没有用到,请在 corePlugins 里禁用
    extend: {},
    fontSize: {},
    height: {},
    inset: {},
    screens: {},
    spacing: {},
    translate: {},
    width: {}
  },
  variants: {},
  plugins: [],
  corePlugins: {
    // 兼容小程序,将带有 * 选择器的插件禁用
    preflight: false,
    space: false,
    divideColor: false,
    divideOpacity: false,
    divideStyle: false,
    divideWidth: false
  }
}

配置 postcss

在根目录的postcss.config.js中的plugins属性添加引入。注意要放在@dcloudio/vue-cli-plugin-uni/packages/postcss之前,非小程序端才能将rpx转换。

// postcss.config.js
const path = require('path')
module.exports = {
  parser: require('postcss-comment'),
  plugins: [
    require('postcss-import')({
      resolve(id) {
        if (id.startsWith('~@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3))
        } else if (id.startsWith('@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2))
        } else if (id.startsWith('/') && !id.startsWith('//')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1))
        }
        return id
      }
    }),
    require('tailwindcss'),
    require('autoprefixer')({
      remove: process.env.UNI_PLATFORM !== 'h5'
    }),
    require('@dcloudio/vue-cli-plugin-uni/packages/postcss')
  ]
}

2️⃣ 重命名类

这里和重置主题配置不同是,不重置默认的配置,而是将配置中类名带.和/替换其他兼容字符。

安装依赖

npm install tailwindcss@npm:@tailwindcss/postcss7-compat postcss-class-rename -D

配置 tailwindcss

// tailwind.config.js
module.exports = {
  purge: ['./public/index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
  darkMode: false,
  separator: '__', // 兼容小程序,将 : 替换成 __
  theme: {
    extend: {}
  },
  variants: {},
  plugins: [],
  corePlugins: {
    // 兼容小程序,将带有 * 选择器的插件禁用
    preflight: false,
    space: false,
    divideColor: false,
    divideOpacity: false,
    divideStyle: false,
    divideWidth: false
  }
}
配置 postcss
// postcss.config.js
const path = require('path')
module.exports = {
  parser: require('postcss-comment'),
  plugins: [
    require('postcss-import')({
      resolve(id) {
        if (id.startsWith('~@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3))
        } else if (id.startsWith('@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2))
        } else if (id.startsWith('/') && !id.startsWith('//')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1))
        }
        return id
      }
    }),
    require('tailwindcss'),
    require('postcss-class-rename')({
      '\\\\.': '_' // 兼容小程序,将类名带 .和/ 替换成 _
    }),
    require('autoprefixer')({
      remove: process.env.UNI_PLATFORM !== 'h5'
    }),
    require('@dcloudio/vue-cli-plugin-uni/packages/postcss')
  ]
}

⚠ 引入 tailwindcss

配置完成后我们引入tailwindcss,注意不要在main.js中引入,因为APP端无效,需要在App.vue中引入。

<style>
@import url('tailwindcss/tailwind.css');
</style>

兼容小程序版

安装相关依赖:

这是我项目的依赖给大家参考一下:
在这里插入图片描述

安装tailwindcss

安装的是兼容版的:详细安装请移步>>> tailwindcss官网-安装

在这里插入图片描述

1.安装tailwindcss
npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
2.初始化配置文件
npx tailwindcss-cli@latest init

这步会生成tailwindcss.config文件

除此外请自行安装上图其他依赖

配置tailwindcss

到这里项目录应该是这样的:
在这里插入图片描述

引入taiwindcss

在src 目录新建 style 文件夹并创建tailwind.css
在tailwind.css 中写入

@tailwind base;
@tailwind components;
@tailwind utilities;

在这里插入图片描述

main.js里面引用
import "@/style/tailwind.css"

将这段覆盖tailwindcss.config.js

module.exports = {
  // Tree-shake unused styles in production build
  // purge: ['./src/**/*.{vue,js,ts,jsx,tsx,html}'],
  purge: [],
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {},
    // Disable breakpoints
    screen: {}
  },
  variants: {
    extend: {},
  },
  plugins: [],
  corePlugins: {//禁用一些小程序class不支持的分割
    space: false,
    divideWidth: false,
    divideColor: false,
    divideStyle: false,
    divideOpacity: false,
  }
}
postcss.config.js中写入,通过postcss-class-rename将小程序不支持的分割替换掉如:w-3/4中的/

⚠这步很重要 否则就会报如下错误
在这里插入图片描述

const path = require('path')
module.exports = {
  parser: require('postcss-comment'),
  plugins: [
    require('postcss-import')({
      resolve (id, basedir, importOptions) {
        if (id.startsWith('~@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3))
        } else if (id.startsWith('@/')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2))
        } else if (id.startsWith('/') && !id.startsWith('//')) {
          return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1))
        }
        return id
      }
    }),
   
    require('@dcloudio/vue-cli-plugin-uni/packages/postcss'),
    require("tailwindcss")({ config: "./tailwind.config.js" }),
      /* ******* 引入tailwindcss ******* */
      // // 根据平台差异进行不同的样式处理
      ...(
        process.env.UNI_PLATFORM !== "h5"
          ? [
            // 使用postcss-class-name 包将小程序不支持的类名写法转换为支持的类名,如:"hover:xxx"
            require("postcss-class-rename")({
              "\\\\:": "--",
              "\\\\/": "--",
              "\\\\.": "--",
              ".:": "--",
              "\\\*": "--",
            })
          ]
          : [
            require("autoprefixer")({
              remove: true,
            }),
          ]
      ),

    
  ]
}

tsconfig.json配置

{
  "compilerOptions": {
    "types": [
      "@dcloudio/types",
      "miniprogram-api-typings",
      "mini-types"
    ],
    "baseUrl": ".",
   "paths": {
     "@/*": ["src/*"]
   }
 },
 "exclude": ["node_modules", "dist"]
  
}
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
uni-app使用uni-list,你可以按照以下步骤进行操作: 1. 在页面中引入uni-list组件,可以通过在页面的json文件中添加"usingComponents"字段来引入组件,或者直接在页面的vue文件中使用import语句引入组件。 2. 在页面的template中使用uni-list组件,可以通过在template中添加<uni-list>标签来创建一个列表。 3. 在<uni-list>标签内部,可以使用<uni-list-item>标签来创建列表项。你可以使用v-for指令来循环渲染多个列表项,可以参考\[3\]中的示例。 4. 可以通过在<uni-list-item>标签上设置样式来自定义列表项的外观。根据\[3\]中的描述,如果要设置<uni-list-item>的样式,需要在它外层的view标签上设置才会生效。 总结起来,使用uni-list在uni-app中创建列表的步骤是:引入组件、创建<uni-list>标签、在<uni-list>标签内部使用<uni-list-item>标签循环渲染列表项,并在view标签上设置样式。 #### 引用[.reference_title] - *1* *2* [【uni-app教程】uni-app入门教程](https://blog.csdn.net/beiluoL/article/details/129264321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [uni-appuni-list列表分割线不显示问题](https://blog.csdn.net/weixin_57375608/article/details/129951060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

织_网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值