TailwindCSS 从零开始 - 如何在 Angular 中使用 TailwindCSS

TA

安装说明

安装环境

  • Angualr 11.2.6
  • node.js v14.17.0

建立一个 Angular CLI

可以参考这一篇 Angular 笔记 - Angular CLI 安装与基本认识,这里就不在说明。

安装 TailwindCSS

输入指令就会自动安装 TailwindCSS 最新版本,PostCSS 以及 autoprefixer,详细说明可以看此篇中文版官方文件

npm install -D tailwindcss@latest postcss@latest autoprefixer@latest

产生 TailwindCSS 配置档

输入指令:

npx tailwindcss init

安装完成就会看到跟目录有一个 tailwind.config.js 的设定档案,点开内容如下:

tailwind.config.js

module.exports = {
  purge: [],
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {},
  },
  variants: {
    extend: {},
  },
  plugins: [],
}

引入基础样式

CSS

如果是用 CSS 格式,引入的话要使用 @tailwind

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

SCSS

如果是 SCSS 的话,引入要用 @import,因为有装 PostCSS 所以会自动编译。

@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";

移除不必要的样式

因为 TailwindCSS 是 Utility-First,就是一大包档案,为了避免有太多无用的样式导致专案肥大,所以可以设定什麽档案才要留样式,像是 Angular 设定大概就是 .html.scss 以及 .ts 档案了,在 purge 中设定如下:

tailwind.config.js

module.exports = {
  purge: {
    enabled: true,
    content: ["./src/**/*.html", "./src/**/*.scss"],
  },
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {},
  },
  variants: {
    extend: {},
  },
  plugins: [],
};

安装智能套件 Tailwind CSS IntelliSense

tailwind plugin

一定要安装智能套件,套件传送门,使用说明可参照这里

智能套件故障排除

stylelint

要安装 stylelint 智能套件故障排除的套件,因为 VSCode 看不懂 @tailwindcss 的标签,并且要取消工作区的 CSS 与 SCSS Validate 的设定。

CSS Validate

css validate

SCSS Validate

scss

最後在设定档 setting.json 里面贴上这一段

{
  "stylelint.config": {
    "rules": {
      "at-rule-no-unknown": [true, {
        "ignoreAtRules": [
          "tailwind",
          "apply",
          "layer",
          "variants",
          "responsive",
          "screen"
        ]
      }],
      "declaration-block-trailing-semicolon": null,
      "no-descending-specificity": null
    }
  },
  "css.validate": false,
  "scss.validate": false
}

在 Angular 使用 TailwindCSS JIT 模式

从 Angular12 有完整支援 TailwindCSS JIT 模式,所以专案若没有向下兼容的需要,建议可以升级到 v.12 以上喔!

参考资料


<<:  数据分析的好夥伴 - Python基础:模组载入

>>:  [Day - 26] - Spring Swagger之我的SeaFood API 手册配制方法

Day 6 - Ajax Type Ahead

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

Day28:错误处理

讲一个经典案例除以0,首先创造一个DivideByZeroEXception类别继承runtime_...

2022新年挑战 - 7 days for Javascript(Day 1 - Developer Set Up)

因为在工作上, 基本上碰不到Javascript, 感觉再不复习一下, 就要忘光光了 (汗) 所以决...

【Day 29】我这不是来了吗 - 侦测指令混淆

环境 Windows 10 19043 Python 3.9 前情提要 在【Day 27】Cmd 指...

[Day 18] Mattermost - 设定

设定 这里我简单介绍几个我觉得实用的功能唷!! 主题切换 官方提供的主题不好看啊~~~想自订主题怎麽...