”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在新项目和现有项目中使用 Prettier 设置 Tailwind CSS 自动类排序

如何在新项目和现有项目中使用 Prettier 设置 Tailwind CSS 自动类排序

发布于2024-08-07
浏览:770

介绍

Tailwind CSS 是一种流行的实用程序优先 CSS 框架,它提供低级实用程序类来直接在标记中应用样式,从而缩短开发周期。

另一方面,Prettier 是一种广泛使用的代码格式化程序,它通过解析代码并使用自己的规则重新打印来确保代码的格式一致。这有助于在整个项目中保持统一的代码风格,使代码库更干净、更易于阅读。

使用 Tailwind CSS 时的一个常见挑战是管理实用程序类的顺序,尤其是当样式和 HTML 的复杂性不断增加时。手动对这些类进行排序可能很乏味且容易出错。这就是自动类排序的用武之地。通过利用 Prettier 等工具以及 prettier-plugin-tailwindcss 等插件,我们可以自动对 Tailwind CSS 类进行排序,确保顺序一致并提高类的可读性和可维护性。

本文的目的是指导您完成在新项目和现有项目中使用 Prettier 设置 Tailwind CSS 自动类排序的过程。无论您是开始一个新项目还是融入一个正在进行的项目,这份综合指南都将为您提供分步说明。

目录

  • 在新项目中设置 Tailwind CSS 和 Prettier
    • 初始化项目并安装 Tailwind CSS
    • 安装并配置 Prettier
  • 在现有 Tailwind CSS 项目中设置 prettier-plugin-tailwindcss
  • 结论

在新项目中设置 Tailwind CSS 和 Prettier

在开始之前,请确保您已安装以下软件:

  • Node.js
  • 包管理器(我们将在这个项目中使用bun,但如果您愿意,您可以使用npm、yarn或pnpm)
  • 代码编辑器(例如 VS Code)

初始化项目并安装 Tailwind CSS

首先创建一个新项目。具体步骤可能会有所不同,具体取决于您首选的框架或设置。有关详细说明,请参阅 Tailwind CSS 安装框架指南。如果您已完成 Tailwind CSS 安装步骤,则可以继续执行在现有 Tailwind CSS 项目中设置 prettier-plugin-tailwindcss 部分。使用 Vite 的方法如下:

bun create vite my-app --template react-ts
cd my-app
bun install

现在让我们安装和配置 Tailwind CSS

bun install -D tailwindcss postcss autoprefixer
bunx tailwindcss init -p

您应该看到一个 Tailwind CSS 配置文件:tailwind.config.js,将以下内容复制到其中。

/** @type {import('tailwindcss').Config} */
export default {
  content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
  theme: {
    extend: {},
  },
  plugins: [],
};

将以下 Tailwind 指令添加到 CSS 文件的顶部(例如 src/index.css):

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

安装和配置 Prettier

bun install -D prettier prettier-plugin-tailwindcss

在项目的根目录中创建一个 prettier 配置文件,并将 prettier-plugin-tailwindcss 插件添加到配置文件中,我们使用 .prettierrc,您可以在此处查看其他可接受的 prettier 配置文件类型

{
  "plugins": ["prettier-plugin-tailwindcss"]
}

现在让我们测试一下设置,修改 src/App.tsx 文件并保存。

import { useState } from "react";
import "./App.css";

const App = () => {
  const [count, setCount] = useState(0);

  return (
    
      
> ); }; export default App;

结果:

import { useState } from "react";
import "./App.css";

const App = () => {
  const [count, setCount] = useState(0);

  return (
    
      
> ); }; export default App;

在现有 Tailwind CSS 项目中设置 prettier-plugin-tailwindcss

如果您的项目已经设置了 Prettier,则集成 prettier-plugin-tailwindcss 插件非常简单。您只需要安装插件并配置它。如果 Prettier 尚未安装,您需要将其与插件一起设置。

对于具有现有更漂亮设置的项目,运行:

bun add -D prettier-plugin-tailwindcss

对于没有现有 Prettier 设置的项目,运行:

bun add -D prettier prettier-plugin-tailwindcss

将该插件添加到您现有的 Prettier 配置中。如果没有现有的 Prettier 配置,请在项目的根目录中创建一个 .prettierrc 文件。然后添加以下内容:

{
  "plugins": ["prettier-plugin-tailwindcss"]
}

通过使用 Tailwind CSS 类更改文件来确保 Prettier 正常工作。保存文件并检查 Tailwind CSS 类是否自动排序。

How to Setup Tailwind CSS Automatic Class Sorting with Prettier in New and Existing Projects

结论

将 prettier-plugin-tailwindcss 集成到新的和现有的 Tailwind CSS 项目中,通过确保一致且有组织的类排序来改进您的开发工作流程。对于新项目,您可以同时设置 Prettier 和插件以简化初始配置。对于现有项目,只需将插件添加到现有 Prettier 设置中,或者如果尚未配置 Prettier,则安装 Prettier 和插件。

有关其他配置选项,例如对非标准属性中的类进行排序,请访问 prettier-plugin-tailwindcss 文档。

版本声明 本文转载于:https://dev.to/iamsheye/how-to-setup-tailwind-css-automatic-class-sorting-with-prettier-in-new-and-existing-projects-2ob8?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何有效地转换PHP中的时区?
    如何有效地转换PHP中的时区?
    在PHP 利用dateTime对象和functions DateTime对象及其相应的功能别名为时区转换提供方便的方法。例如: //定义用户的时区 date_default_timezone_set('欧洲/伦敦'); //创建DateTime对象 $ dateTime = ne...
    编程 发布于2025-05-22
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-05-22
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-05-22
  • Python环境变量的访问与管理方法
    Python环境变量的访问与管理方法
    Accessing Environment Variables in PythonTo access environment variables in Python, utilize the os.environ object, which represents a mapping of envir...
    编程 发布于2025-05-22
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-05-22
  • Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    在ASP.NET async void void async void void void void void的设计无需返回asynchroncon而无需返回任务对象。他们在执行过程中增加未偿还操作的计数,并在完成后减少。在某些情况下,这种行为可能是有益的,例如未期望或明确预期操作结果的火灾和...
    编程 发布于2025-05-22
  • 为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    Class 'ZipArchive' Not Found Error While Installing Archive_Zip on Linux ServerSymptom:When attempting to run a script that utilizes the ZipAr...
    编程 发布于2025-05-22
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-05-22
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中3个Party Package将另一个PAXPANCE带有导入式套件之间的另一个软件包,并在导入式套件之间导入另一个软件包。如回声消息所证明的那样: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    编程 发布于2025-05-22
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-05-22
  • Java字符串非空且非null的有效检查方法
    Java字符串非空且非null的有效检查方法
    检查字符串是否不是null而不是空的if (str != null && !str.isEmpty())Option 2: str.length() == 0For Java versions prior to 1.6, str.length() == 0 can be二手: if(str!= n...
    编程 发布于2025-05-22
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-05-22
  • 如何处理PHP文件系统功能中的UTF-8文件名?
    如何处理PHP文件系统功能中的UTF-8文件名?
    在PHP的Filesystem functions中处理UTF-8 FileNames 在使用PHP的MKDIR函数中含有UTF-8字符的文件很多flusf-8字符时,您可能会在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    编程 发布于2025-05-22
  • 如何简化PHP中的JSON解析以获取多维阵列?
    如何简化PHP中的JSON解析以获取多维阵列?
    php 试图在PHP中解析JSON数据的JSON可能具有挑战性,尤其是在处理多维数组时。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    编程 发布于2025-05-22
  • Spark DataFrame添加常量列的妙招
    Spark DataFrame添加常量列的妙招
    在Spark Dataframe 中创建一个常数列,可以通过多种方式实现具有适用于所有行的任意值的Spark DataFrame。使用文字值(SPARK 1.3)在尝试提供直接值时,用于此问题时,旨在为此目的的column方法可能会导致错误。 df.withcolumn('new_colu...
    编程 发布于2025-05-22

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3