在 Angular 中轻松设置 TailwindCSS
在本教程中,我将向您展示如何以 EZ EZ 方式将 TailwindCSS 集成到您的 Angular 项目中。
本教程适用于想要在其 Angular 应用程序中使用新发布版本11.2.0(现在附带对 TailwindCSS 的原生支持😉)或旧版本的用户。
您可以跳过💩直接进入安装步骤
内容
- 什么是 TailwindCSS?
- TailwindCSS 如何工作?
- TailwindCSS 的优势
- TailwindCSS 的缺点
- 安装 TailwindCSS (Angular 版本 < 11.2.0)
- 安装 TailwindCSS(Angular 版本 >= 11.2.0)
- 确保 TailwindCSS 在 Angular 中正常工作
- 在 Angular 产品构建中清除 Tailwind
什么是 TailwindCSS?
“一个实用优先的 CSS 框架,包含诸如
flex、、pt-4和text-center之类的类rotate-90,可以直接在你的标记中组合以构建任何设计。” - Tailwind 团队
TailwindCSS 如何工作?
TailwindCSS 与 Bootstrap 等其他 CSS 框架不同。它自带一组实用类(CSS 类)。您可以创建并组合这些类,从而赋予 UI 所需的外观。TailwindCSS 允许您以非常简单的方式自定义样式,从而创建您自己的设计系统。
TailwindCSS 的优势
- 您将花费更多时间在业务逻辑上而不是 CSS 上
- 预制的实用类可供使用
- 您可以像添加任何 CSS 类一样添加它们的类
- 生产重量轻
- 移动优先
- 可扩展、可定制
- 以“老派”的方式使用它,将其样式应用到您的 CSS 类中
- IDE 的扩展
- 有据可查
- 受到 Vue 和 React 等不同工具的良好支持
- 您可以随时检查网站中的 TailwindCSS 类并查看实际的 CSS 代码 :)
- 类的命名约定是有意义的,例如space-y-4它将在 HTML 元素之间添加 4 像素的垂直(Y 轴)空间。
TailwindCSS 的缺点
- 如果你是 CSS 新手,我不建议你这么做,不是因为它难,而是因为它会让你变懒。有时你根本不需要写 CSS,只需要添加一些类即可。
- 会使你的 HTML 变得非常脏乱。如果你在 HTML 元素中添加大量类,它很快就会变得丑陋!一个解决方案是使用 TailwindCSS 中的类来创建组件,这样你就可以清理你的 HTML。
安装 TailwindCSS(Angular 版本 < 11.2.0)
如果你的 Angular 版本大于或等于 11.2.0,则可以跳过此部分
我个人认为,在低于 11.2.0 版本的 Angular 应用中使用 TailwindCSS 最简单的方法是使用@ngneat/tailwind npm 包。我的使用体验非常好(即插即用)。
- 
  第一步是在您的 Angular 项目中运行以下示意图: ng add @ngneat/tailwind
- 
  当询问您是否要启用暗模式时,请选择 class
- 
  当被问到是否愿意在组件样式中使用 Tailwind 指令和函数时,请选择 Yes
- 
  当系统询问您要启用哪些 TailwindCSS 插件时,请选择 forms或typography全部启用。这取决于您。
在我们的 Angular 应用程序中安装 TailwindCSS 后,我们需要关注 4 个部分。
- 创建新文件后tailwind.config.js它应该看起来像这样
 - 创建新文件后webpack.config.js它应该看起来像这样
 - 新的dark类已添加到您的index.htmlbody 元素
<body class="dark">
  <app-root></app-root>
</body>
- 一些导入内容已添加到您的styles.scss文件中
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
注意:要在生产版本中打开清除功能,请关注这条小推文
选修的
看看我朋友 Beeman 制作的这个精彩视频吧。它展示了如何在 3 分钟内将 TailwindCSS 在 Angular 中使用!
安装 TailwindCSS(Angular 版本 >= 11.2.0)
如果您的 Angular 版本低于 11.2.0,则可以跳过本节并查看上面的安装说明。如果您已经执行了前面的步骤,请转到Testing TailwindCSS in Angular下一节。
- 
  安装 npm install -D tailwindcss
- 
  安装 TailwindCSS 插件(可选): 
- 
  npm i @tailwindcss /typography 
- 
  npm i @tailwindcss /forms 
有些人正在运行旧版本的 CLI 或 @angular-devkit/build-angular。请确保您的 package.json 至少包含 11.2.0 版本,或者有更新的版本(如果有)。
- 在工作区或项目根目录中创建一个 TailwindCSS 配置文件。将该配置文件命名为tailwind.config.js
它看起来应该是这样的:
module.exports = {
    prefix: '',
    purge: {
      content: [
        './src/**/*.{html,ts}',
      ]
    },
    darkMode: 'class', // or 'media' or 'class'
    theme: {
      extend: {},
    },
    variants: {
      extend: {},
    },
    plugins: [require('@tailwindcss/forms'),require('@tailwindcss/typography')],
};
- 在您的styles.scss文件中添加以下TailwindCSS导入
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
如果您使用的是 CSS 而不是 SCSS,您的文件应该如下所示:
@tailwind base;
@tailwind components;
@tailwind utilities;
确保 TailwindCSS 在 Angular 中正常工作
转到任意组件并写入以下内容:
<button
  class="py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-red-400">Hello</button>
现在运行ng serve,你应该看到以下按钮
如果您不想在 HTML 中包含那么多类,则可以通过将 TailwindCSS 类放入 CSS/SCSS 文件中来清理它。
.btn {
    @apply py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-red-400
}
** 注意我正在使用@apply **
<button class="btn">Hello</button>
运行 Angular 11.2.0 和 Tailwind 的项目的Github Repo
如何在生产环境中清除 TailwindCSS
如果我们不清除 CSS,由于 TailwindCSS 为您添加了大量 CSS 类,我们的 CSS 可能会非常繁重。如果您清除 CSS,所有未使用的类都将被移除。
我认为在 Angular 11.2.0 中进行清除的方法如下:
A) 这是我推荐的方法。将其添加到你的构建脚本中NODE_ENV=production ng build --prod
 ,你的 tailwind.config.js 文件应该如下所示。
...
purge: {
      enabled: process.env.NODE_ENV === 'production',
      content: [
        './src/**/*.{html,ts}',
      ]
    },
...
B)tailwind.config.js file您可以在属性enabled中设置属性purgetrue
....
prefix: '',
    purge: {
      enabled: true,
      content: [
        './src/**/*.{html,ts}',
      ]
    },
....
然后您可以运行ng build --prod,您将看到您的捆绑包变得越来越小。
特别感谢:
ngneat/tailwind 包的贡献者:
Chau Tran 
Beeman
以及这个出色的软件包的其他贡献者。
特别感谢 Angular Taiwan 的 GDE Kevin 帮助我调试问题
。Kevin
特别感谢 Vlad,他向我展示了清除技巧 :) 
Vlad Tansky
 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com
          


