在 HBuilderX 中使用 tailwindcss

!!!建议直接看项目 https://github.com/sonofmagic/uni-app-vue2-tailwind-hbuilder-template 模板
因为后续又做了一些兼容性改动,但是文章里面没有提及,比如 postcss 配置现在为了适配多端有些变化啥的。

  • 在 HBuilderX 中使用 tailwindcss

    • 前言
    • 快速使用模板
    • 从 0 到 1 的搭建过程
      • vue2 版本

        • package.json
        • vue.config.js
        • postcss.config.js
        • tailwind.config.js
        • App.vue 中引入 tailwindcss
      • vue3 版本
        • package.json
        • vite.config.js
        • tailwind.config.js
        • App.vue 中引入 tailwindcss
    • 其他配置
      • .gitignore
      • HbuilderX 智能提示工具
    • 关联项目
      • 插件核心
      • CLI 工具
      • 模板 template
      • 预设 tailwindcss preset
    • Bugs & Issues

前言

之前我写了一个 weapp-tailwindcss-webpack-plugin 来兼容 uni-app,taro等等各个框架,不过那时候提供的 demo 都是 cli 版本的。最近社区里有同学问我, HBuilderX 要如何使用?

今天就给大家带来 HBuilderXvue2vue3 各自的 tailwindcss 的使用方法。

快速使用模板

如果你只想直接使用,而不在意 从 0 到 1 的搭建过程的话,你可以直接使用这 2 个模板。

uni-app-vue2-tailwind-hbuilder-template

uni-app-vue3-tailwind-hbuilder-template

下载下来后,先本地 npm i/yarn 安装一下依赖,然后就可以直接导入 HBuilderX 使用了。

从 0 到 1 的搭建过程

vue2 版本

vue2 版本的 uni-app 内置的 webpack 版本为 4 , postcss 版本为 7, 所以还是只能使用 @tailwindcss/postcss7-compat 版本。

package.json

新建一个vue2 uni-app项目,然后我们 npm init -y 在项目根目录创建一个 package.json,并安装依赖:

{"devDependencies": {"autoprefixer": "9","postcss": "7","postcss-rem-to-responsive-pixel": "^5.1.3","tailwindcss": "npm:@tailwindcss/postcss7-compat","weapp-tailwindcss-webpack-plugin": "^1.6.8","webpack": "npm:webpack@webpack-4"}
}

vue.config.js

然后添加 vue.config.js 文件,注册 weapp-tailwindcss-webpack-plugin:

// 为了 tailwindcss jit 开发时的热更新
if (process.env.NODE_ENV === "development") {process.env.TAILWIND_MODE = "watch";
}const {UniAppWeappTailwindcssWebpackPluginV4,
} = require("weapp-tailwindcss-webpack-plugin");/*** @type {import('@vue/cli-service').ProjectOptions}*/
const config = {//....configureWebpack: {plugins: [new UniAppWeappTailwindcssWebpackPluginV4()],},//....
};module.exports = config;

postcss.config.js

然后再添加 postcss.config.js

const path = require("path");module.exports = {plugins: [require("autoprefixer")({remove: process.env.UNI_PLATFORM !== "h5",}),require("tailwindcss")({config: path.resolve(__dirname, "./tailwind.config.js"),}),// rem 转 rpxrequire("postcss-rem-to-responsive-pixel/postcss7")({rootValue: 32,propList: ["*"],transformUnit: "rpx",}),],
};

这里特别注意,在声明所有路径时,必须声明为绝对路径!!!

因为 hbuilderx 有这样一个读取配置的策略:如果目标目录是相对路径,就会读取 '\HBuilderX\plugins\uniapp-cli\' 目录下的文件,这直接导致配置找不到,导致项目无法启动。

tailwind.config.js

接着我们添加 tailwind.config.js

const path = require("path");
const resolve = (p) => {return path.resolve(__dirname, p);
};/** @type {import('@types/tailwindcss/tailwind-config').TailwindConfig} */
module.exports = {mode: "jit",purge: {content: [resolve("./index.html"),resolve("./pages/**/*.{vue,js,ts,jsx,tsx,wxml}"),],},darkMode: false, // or 'media' or 'class'theme: {extend: {},},variants: {},plugins: [],corePlugins: {preflight: false,},
};

同样,content 也必须为绝对路径。

App.vue 中引入 tailwindcss

最后只需在 App.vue 引入即可:

<style lang="scss">
/*每个页面公共css */
@import "tailwindcss/base";
@import "tailwindcss/utilities";
</style>

现在,你就可以在 hbuildervue2 项目中愉快的使用 tailwindcss 了!

vue3 版本

uni-appvue3/vite 版本,使用了 rollup base 的插件。
暂时不要升级到 vite 3.x 版本,目前 uni-app 并没有兼容这个版本,详见 Release Notes, 安装 2.x 版本的最新即可。(3.x会报process is not defined 的错误)

package.json

我们 npm init -y 在项目根目录创建一个 package.json,并安装依赖:

{"devDependencies": {"autoprefixer": "^10.4.8","postcss": "^8.4.14","postcss-rem-to-responsive-pixel": "^5.1.3","tailwindcss": "^3.1.7","weapp-tailwindcss-webpack-plugin": "^1.6.10"}
}

vite.config.js

然后添加 vite.config.js 文件,注册 weapp-tailwindcss-webpack-plugin:

import path from "path";
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import vwt from "weapp-tailwindcss-webpack-plugin/vite";
import postcssWeappTailwindcssRename from "weapp-tailwindcss-webpack-plugin/postcss";const isH5 = process.env.UNI_PLATFORM === "h5";// vite 插件配置,注意一定要把 uni 注册在 vwt 前
const vitePlugins = [uni()];const resolve = (p) => {return path.resolve(__dirname, p);
};const postcssPlugins = [require("autoprefixer")(),require("tailwindcss")({config: resolve("./tailwind.config.js"),}),
];
if (!isH5) {vitePlugins.push(vwt());postcssPlugins.push(postcssWeappTailwindcssRename({}));
}
// https://vitejs.dev/config/
export default defineConfig({plugins: vitePlugins,css: {postcss: {// 内联写法plugins: postcssPlugins,},},
});

tailwind.config.js

添加 tailwind.config.js:

const path = require("path");
const resolve = (p) => {return path.resolve(__dirname, p);
};
/** @type {import('tailwindcss').Config} */
module.exports = {content: ["./index.html", "./**/*.vue"].map(resolve),theme: {extend: {},},plugins: [],corePlugins: {preflight: false,},
};

下面这点在上面的 vue2 中也提到了,我再重复一遍

这里特别注意,在声明所有路径时,必须声明为绝对路径!!!

因为 hbuilderx 有这样一个读取配置的策略:如果目标目录是相对路径,就会读取 '\HBuilderX\plugins\uniapp-cli\' 目录下的文件,这直接导致配置找不到,导致项目无法启动。

App.vue 中引入 tailwindcss

<style lang="scss">
/*每个页面公共css */
@import "tailwindcss/base";
@import "tailwindcss/utilities";
</style>

现在,你就可以在 hbuilderxvue3 项目中愉快的使用 tailwindcss 了!

其他配置

.gitignore

unpackage
node_modules
.hbuilderx

HbuilderX 智能提示工具

DCloud-HBuilderX团队提供了对应的插件,可以去

https://ext.dcloud.net.cn/plugin?id=8560 进行下载,即可产生智能提示。

关联项目

插件核心

weapp-tailwindcss-webpack-plugin 提供核心转义功能

CLI 工具

weapp-ide-cli: 一个微信开发者工具命令行,快速方便的直接启动 ide 进行登录,开发,预览,上传代码等等功能。

模板 template

uni-app-vite-vue3-tailwind-vscode-template

uni-app-vue3-tailwind-vscode-template

uni-app-vue2-tailwind-vscode-template

weapp-native-mina-tailwindcss-template

uni-app-vue2-tailwind-hbuilder-template

uni-app-vue3-tailwind-hbuilder-template

预设 tailwindcss preset

tailwindcss-miniprogram-preset

Bugs & Issues

欢迎提交到此处

在 HBuilderX 中使用 tailwindcss相关推荐

  1. HBuilderX中创建的项目在手机模拟器上面运行

    首先在官网下载一个手机模拟器,安装完成以后,我们在HBuilderX中,选择工具栏的工具->设置->运行配置,配置Android模拟器端口为7555. 我们在HBuilderX中打开一个项 ...

  2. 如何为HBuilderX安装sass?HBuilderX中如何使用sass?

    1,访问插件页面:scss/sass编译 - DCloud 插件市场 2,点击这个按钮完成登录或注册 3,登录完成后,页面提示"是否打开HBuilderX吗?"--是 4,HBui ...

  3. HbuilderX中 真机调试 Android IOS

    文章目录 一.Android 二.IOS 2.1. 运行到IOS 2.2. 打开调试模式 一.Android HbuilderX中 Android 真机调试 二.IOS 2.1. 运行到IOS 2.2 ...

  4. (二)01- DCloud平台 HTML5+ App开发——真机调试运行 夜神模拟器运行HBuilderX中的html文件 夜神模拟器运行App的基础功能示例-手机设备-分享功能-拍照功能

    DCloud 平台 HTML5 + App 开发 下载安装 HBuilderX 下载地址:https://www.dcloud.io/hbuilderx.html HBuilderX-使用步骤: 第一 ...

  5. HbuilderX中新建MUI下的移动端App

    简介: (1)HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同 ...

  6. Vue中使用tailwindcss

    一.下载tailwindcss npm install tailwindcss 二.引入tailwindcss 创建样式文件夹,或在现有文件夹引入,例如style/index.css @import ...

  7. hbuilderx适配Android11,小米11在HBuilderX中真机联调问题

    (1) 问题:为检测到手机或模拟器 解决:手机开启usb调试 (2) 安装HBuilder基座App失败 10:33:50.398 正在编译中... 10:34:09.363 DONE Build c ...

  8. vue3 + vite + ts + setup , 第十二练 Vue3 css style 新特性,样式穿透,插槽选择器,全局选择器,在vue3中使用tailwindcss

    一.vue3.x 样式新特性 样式穿透  深度选择器 <style scoped> .a :deep(.b) {/* ... */ } </style> 插槽选择器 <s ...

  9. 在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例

    1.基础开发环境,所用到的 Api 以及实现的思路. 应用场景: 商家打印小票,小票包含顾客消费的商品明细信息以及末尾附上二维码,二维码供顾客扫码开票. HbuilderX开发工具: HBuilder ...

最新文章

  1. 卷积神经网络(Convolutional Neural Network, CNN)
  2. $.ajax 的async参数在crossdomain跨站下的问题
  3. 角色操作-角色添加流程分析
  4. linux kdb内核调试器,使用KDB调试工具
  5. python制作 whl 源文件,并制作本地pip源
  6. 【转载】"library not found for - "解决办法
  7. c语言线程原理,线程池的原理和实现c语言
  8. ASP.NET MVC 重点教程一周年版 第七回 UrlHelper
  9. java 11下载_jdk11版
  10. liunx的du命令查看文件夹大小
  11. jquery插件--浮动广告
  12. C# 判断圆与矩形的冲突
  13. php implode key,PHP implode()用法及代碼示例
  14. wordpress php格式,PHP_WordPress自定义时间显示格式,在帮King改他的私人情侣博客模 - phpStudy...
  15. 控制台调出Servers
  16. 阿里云天池供应链大赛(一)
  17. 2023最新广西大学计算机电子信息考研复试之计算机网络和软件工程 828数据结构与程序设计上岸冲刺复试宝典(复试版/复试资料)
  18. pyltp安装的一系列过程
  19. iOS安全–看了这个,你还敢用分身版微信吗?
  20. mysql+uuid的数据类型_mysql 数据类型

热门文章

  1. simplesamlphp 配置,安装,SP版本
  2. 蹲在ICU的门口,我看到了死亡的样子
  3. 调整idea面板字体大小
  4. 淘客API升级后的解决方案,怎么采集淘宝的商品数据
  5. 黑月教主去水印软件_去视频水印的软件有什么?这个多功能转换器
  6. 批量远程执行shell命令工具
  7. 解决QNetworkAccessManager 请求返回UnknownNetworkError,无法继续请求问题
  8. 系统常用参数的推荐设置(操作同样适合于其他AD版本,操作方法一致)
  9. www.wljx.net/forum.php,齐博CMS:主页被黑,不知漏洞在哪?
  10. QT+OSG/osgEarth编译之四:libpng+Qt编译(一套代码、一套框架,跨平台编译,版本:libpng-1.6.38)