Tailwind.css + Postcss 笔记
0. 缘由
去年,一篇《Tailwind CSS: From Side-Project Byproduct to Multi-Million Dollar Business》在我的时间线上刷屏,作为 side project 和自由职业的翘楚,他的产品和商业项目十分令人羡慕。
所以,我一直想找个机会试用一下 Tailwind.css。这次春节,想着放松休闲一下,就开了个小项目,尝试一下新技术栈:
- Vue3 全家桶
- Tailwind.css + PostCSS
- Webpack 工具链
这篇笔记用来记录心得和体会。
1. 基础
2. 安装&配置
npm install tailwindcss@latest postcss@latest autoprefixer@latest
// postcss.config.js
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
}
}
2.1 创建 tailwindcss 配置
npx tailwindcss init
生成的配置文件如下:
// tailwind.config.js
module.exports = {
purge: [],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {},
plugins: [],
}
2.2 创建 CSS
@tailwind base;
@tailwind components;
@tailwind utilities;
这个 CSS 无法直接被浏览器使用,需要经过 PostCSS 调用 Tailwind 插件编译后才行。
2.3 配置 Webpack
只需要配置 CSS 和 Stylus 规则:
module.exports = {
module: {
rules: [
{
test: /.css$/,
use: [
isDevServer ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader'
]
},
{
test: /.styl(us)?$/,
use: [
isDevServer ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'postcss-loader',
'stylus-loader',
],
},
]
}
}
2.4 配置 .browserslistrc
PostCSS 同样需要用 browserslist 处理兼容性问题,所以一定要配置好,比如我近期喜欢用 bootstrap-icons 为图标,需要用到 svg-mask 系列属性,在 Chrome 里就需要补充前缀。那么,如果 browserslist 里没有 Chrome 就不会加前缀(我昨天就踩在这个坑里)。可以使用 npx browserslist 来检查。
2.5 修改 npm scripts
PostCSS 和 Tailwind.css 需要用 NODE_ENV 变量决定动作内容,所以必须加到 npm scripts 里。
{
"scripts": {
"serve": "NODE_ENV=development webpack serve --config build/webpack.config.js",
"build": "NODE_ENV=production webpack --config build/webpack.config.prod.js --mode=production",
"lint": "eslint --fix --ext=.vue,.js ./"
}
}
2.6 完成
至此,基础 Tailwind.css + PostCSS + Webpack 配置完成,接下来就可以使用 CSS 实现界面了。
相关文章
2023 告别 CSS 预处理工具,彻底拥抱 TailwindCSS
CSS 是声明式语言,很简单,很好学,但是写起来很累,所有东西都要写出来才能生效。复用方面更是无从下手,虽然大 […]
【视频】Nuxt3+Vercel+Serverless 全栈开发(2):配置 TailwindCSS,使用 grid 布局
课程继续。仍然结合近期的开发经验,分享最近我比较喜欢的全栈+高效+免费+云原生技术方案。 本次课程内容: Nu […]
【视频】如何正确使用 TailwindCSS
TailwindCSS 是一个争议很大的样式库。 他封装了大量原子化的样式,比如 w-4,表示 width: […]


