发布于 2026-01-06 2 阅读
0

一分钟内将 Tailwind 添加到 React 项目 步骤 1 — 使用 CRA 模板设置 React 步骤 2 — 安装 npm 包 步骤 3 — 设置 Tailwind 文件 步骤 4 — 创建 postcss 配置 步骤 5 — 编写构建脚本 步骤 6 — 在代码中包含 Tailwind 其他设置 由 Mux 呈现的 DEV 全球展示挑战赛:展示你的项目!

不到一分钟即可将 Tailwind 集成到 React 项目中

步骤 1 — 使用 CRA 模板设置 React

步骤 2 — 安装 npm 包

步骤 3 — 设置 Tailwind 文件

步骤 4 — 创建 PostCSS 配置

步骤五——编写构建脚本

步骤 6 — 在代码中包含 Tailwind 指令

附加设置

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

上次我给 React 项目添加 Tailwind 的时候,花了大约 30 分钟做研究,参考之前的项目,才最终让那些实用类正常工作。所以我决定做一个清单,方便以后自己或其他人参考,在 React 中使用 Tailwind 时使用。

注意:以下方法并非将 Tailwind 添加到 React 项目的唯一途径,但对我来说,它们在大多数情况下都有效。如果您有任何想法,欢迎在下方留言分享您的方法,我可能会在未来几天将其添加到这篇博客中。

步骤 1 — 使用 CRA 模板设置 React

首先运行以下命令安装 CRA 模板:

npx create-react-app cool-demo
Enter fullscreen mode Exit fullscreen mode

步骤 2 — 安装 npm 包

完成后,继续package.json查看所有已安装的软件包。现在,为了添加和配置Tailwind,我们需要添加一些额外的软件包以方便使用。

其他附加套餐包括:

yarn add tailwindcss postcss-cli autoprefixer @fullhuman/postcss-purgecss npm-run-all
Enter fullscreen mode Exit fullscreen mode

1️⃣tailwindcss是 Tailwind 的官方 npm 包,也是我们项目的关键包。

2️⃣postcss-cli是一个使用 JS 插件转换样式的工具

3️⃣是一个 PostCSS 插件,它可以自动为引用caniuse.com 的autoprefixer内容添加供应商前缀,这真是太棒了。

4️⃣@fullhuman/postcss-purgecss是另一个 PostCSS 插件,它可以移除所有未使用的 CSS 样式,从而减小构建文件的大小。

5️⃣npm-run-all同时运行多个构建脚本或依次运行多个构建脚本

步骤 3 — 设置 Tailwind 文件

现在是时候将 Tailwind 文件添加到我们的项目中了。我们需要创建两个文件,一个用于tailwind.css指定要从 Tailwind 库引入哪些内容,另一个tailwind.config.js用于根据我们的需要配置 Tailwind。

手动创建以上两个文件,或者将以下内容复制粘贴到终端中创建。

touch src/tailwind.css tailwind.config.js
Enter fullscreen mode Exit fullscreen mode

1️⃣tailwind.css

现在,npm 包会引用这个文件tailwindcss,然后生成一个包含我们所有实用类的庞大 Tailwind CSS 文件。

但首先,我们需要添加所需的类类型。所以请将此添加到您tailwind.css刚刚创建的文件中。

@tailwind base;
@tailwind components;
@tailwind utilities;
Enter fullscreen mode Exit fullscreen mode

2️⃣tailwind.config.js

如上所述,您需要根据自身需求进行配置。Tailwind官方文档详细介绍了具体操作方法。就我个人而言,我更倾向于桌面优先的设计策略,这与 Tailwind 的默认设置完全相反,所以我通常会先从桌面端入手。

module.exports = {
  purge: [],
  theme: {
    extend: {},
    screens: {
      xl: { max: "1279px" },
      // => @media (max-width: 1279px) { ... }

      lg: { max: "1023px" },
      // => @media (max-width: 1023px) { ... }

      md: { max: "767px" },
      // => @media (max-width: 767px) { ... }

      sm: { max: "639px" },
      // => @media (max-width: 639px) { ... }
    },
  },
  variants: {},
  plugins: [],
};
Enter fullscreen mode Exit fullscreen mode

专业提示:与其tailwind.config.js自己创建并复制粘贴任何样板代码,不如运行此npx命令来获得一个框架设置,以便快速上手。

npx tailwindcss init
Enter fullscreen mode Exit fullscreen mode

--full最后还要传递该标志,以获取 Tailwind 的完整配置文件。

npx tailwindcss init --full
Enter fullscreen mode Exit fullscreen mode

步骤 4 — 创建 PostCSS 配置

在我们的项目中配置postcss其附加插件。

postcss.config.js在根文件夹中创建一个名为的文件,或者直接将其复制到终端。

touch postcss.config.js
Enter fullscreen mode Exit fullscreen mode

现在使用我们安装的插件和 Tailwind 更新该文件。

// Configure purgecss plugin
const purgecss = require("@fullhuman/postcss-purgecss")({
  // Specify the paths to all of the template files in your project
  content: [
    "./public/**/*.html",
    "./src/**/*.jsx",
    // etc.
  ],

  // This is the function used to extract class names from your templates
  defaultExtractor: content => {
    // Capture as liberally as possible, including things like `h-(screen-1.5)`
    const broadMatches = content.match(/[^<>"'`\s]*[^<>"'`\s:]/g) || [];

    // Capture classes within other delimiters like .block(class="w-1/2") in Pug
    const innerMatches = content.match(/[^<>"'`\s.()]*[^<>"'`\s.():]/g) || [];

    return broadMatches.concat(innerMatches);
  },
});

// Export all plugins our postcss should use
module.exports = {
  plugins: [
    require("tailwindcss"),
    require("autoprefixer"),
    ...(process.env.NODE_ENV === "production" ? [purgecss] : []),
  ],
};
Enter fullscreen mode Exit fullscreen mode

如果你从未听说过Purgecss,它是 postcss 的另一个插件,可以帮助我们精简 Tailwind 生成的庞大 css 文件,并将其缩小到我们代码库中包含的类/样式。

请注意,我们仅在production开发阶段使用此插件,因为在开发过程中它并不重要,而且运行速度可能较慢,所以我们最好先解决这个问题。其余部分是,tailwindcss如前所述autoprefixer,供应商会为我们的 CSS 样式添加前缀,例如。

-o-transition: all 4s ease;
-webkit-transition: all 4s ease;
-ms-transition: all 4s ease;
-moz-transition: all 4s ease;
transition: all 4s ease;
Enter fullscreen mode Exit fullscreen mode

步骤五——编写构建脚本

这就是我们将要用到这个npm-run-all 包的时候了。所以基本上,我们想要做的就是创建一些 npm 脚本,以便在我们对 Tailwind 文件进行任何更改时,都能监视并编译它。

为了不让你们感到困惑,我逐一解释。

1️⃣

"build:tailwind": "postcss src/tailwind.css -o src/tailwind.generated.css"
Enter fullscreen mode Exit fullscreen mode

在发布构建版本之前,您需要运行一次该程序。该程序会接收一个输入文件,并根据src/tailwind.css需要将 CSS 类输出到指定位置。tailwind.generated.css-o

2️⃣

"watch:tailwind": "postcss -w src/tailwind.css -o src/tailwind.generated.css"
Enter fullscreen mode Exit fullscreen mode

这与上面的唯一区别在于-w标志,即监视标志,现在每当您更新tailwind.css文件时,您都会立即看到更改生效。

3️⃣

"start": "react-scripts start"
"dev": "run-p watch:tailwind start"
Enter fullscreen mode Exit fullscreen mode

现在终于将它们组合在一起了,运行后npm start我们的 React 可以正常工作,但要监视tailwind.css文件更改,我们需要添加run-p watch:tailwind命令。

run-p这是我们npm-run-all软件包中的一个组件,它的作用是并行运行我们指定的脚本。因此,我们可以同时运行这两个脚本,而无需切换终端npm run watch:tailwindnpm run start

4️⃣

"prebuild": "npm run build:tailwind",
"build": "react-scripts build",
Enter fullscreen mode Exit fullscreen mode

最终我们需要构建命令来部署我们的应用程序,所以让我们添加它们。需要注意的是,pre这里的关键字很特殊,它意味着每次build执行我们的命令之前,都prebuild必须先执行其他命令。和prestart也是如此start

还有一个post关键字可以实现反向操作,比如postbuild在运行一个脚本后再运行另一个脚本build。不过,我还没用过。

这是所有相同命令的列表,其中包含一些用于测试的默认命令。

"scripts": {
        "build:tailwind": "postcss src/tailwind.css -o src/tailwind.generated.css",
        "watch:tailwind": "postcss -w src/tailwind.css -o src/tailwind.generated.css",
        "start": "react-scripts start",
        "dev": "run-p watch:tailwind start",
        "prebuild": "npm run build:tailwind",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject"
},
Enter fullscreen mode Exit fullscreen mode

现在我们已经完成了 Tailwind 运行脚本的设置,您可以根据自己的使用场景添加任何其他需要的脚本。

步骤 6 — 在代码中包含 Tailwind 指令

不使用 Tailwind CSS 代码时最糟糕的情况就是:你忘记将生成的 CSS 文件添加到项目的入口文件中。所以,请将这行代码添加到你的配置文件index.jsApp.js其他任何你认为合适且有效的位置。

import "./tailwind.generated.css";
Enter fullscreen mode Exit fullscreen mode

另外,你可能也想删除.gitignore这个文件,因为它是一个非常大的 CSS 文件,里面充满了实用类,你可能不想让它使你的 GitHub 项目变得杂乱无章。

我们来看看它是否有效。

尝试添加一些你从 Tailwind 中了解的类,例如字体颜色或边距,看看是否有效。

我对App.js文件进行了修改,并为文本元素添加了text-yellow-400text-green-600,结果就得到了这个结果。

Create React 应用演示

附加设置

在为这篇博客做研究时,我发现了一个名为cssnano 的软件包,它在 npm 上有超过 600 万次的下载量,你可以查看它的网站,上面展示了一个很棒的示例。

这是另一个 PostCSS 插件,它可以移除我们在 CSS 文件中编写的所有奇怪注释(例如“像这样”)和空格,并压缩文件以进一步减小打包后的大小。不妨试试看。

请在下方分享您的配置,或对我的做法提出任何见解,无论对错。欢迎随时在 Twitter 上联系我,我的账号是@heytulsiprasad

文章来源:https://dev.to/thebuildguy/adding-tailwind-into-react-project-in-under-a-minute-41jp