因为Tailwind CSS的设计原理,在开发时会先帮你生成一堆的class,CSS文件最少3MB起步🤷♂️。随着开发下去需要的Variants只会变得越来越多,开发中产生的CSS文件甚至变成10-20 MB都是可能的,还会连带拖慢载入的时间。
这时候JIT模式就派上用场啦!Tailwind CSS 2.0正式上线的Just-in-Time (简称JIT )编译器,可以在写HTML时及时编译CSS,大幅缩短编译时间,以及缩小产生的文件大小。
Just-in-Time 模式的新功能
废话不说,马上来看它可以做什么:
- 超快速的编译时间 。 原本Tailwind CLI编译需要3-8秒,在 JIT模式 下仅需 0.8秒 。
- 直接使用任意Variants 。 不用再烦恼需不需要开
active
、focus
或disabled
等。 - 任意值CSS class 。 可以直接在HTML里写像
top-[247px]
这样的class,将会自动生成。 而且也可以使用Variants:lg:top-[587px]
。 - 在develop和production产生一样的CSS 。 不需要烦恼上线后会不会有class灵异的消失~
- 在开发时有更好的浏览器效能 。 因为develop和production的CSS大小一样小,本地预览时不会出现10-20 MB的CSS,开启相关开发工具也不会载入很久。
启用JIT 模式
要开启非常简单,只需要在 tailwind.config.js
里把 mode
设成 'jit'
就行了:
但因为JIT模式在开发时就只会打包需要的class,所以也要配置 purge
的部分:
新功能
然后就可以开始玩功能了!
直接使用任意Variants
直接在HTML写就可以了,不用在 tailwind.config.js
做设定,方便许多了。 其他的 focus-visible
、 disabled
、 even
等都可以用喔!
当然,还支援各种叠加的用法,像这样😎:
任意值class
如果网站是照着设计稿刻出来的,这个功能绝对是必备。 使用任意值class很简单,把你想要指定的值用 [...]
框起来,比如 h-[100px]
可以设定高度为 100px
。 但要注意的是不能滥用,否则Tailwind CSS的设计系统就失去了原本的优势了。
首先是万恶的图片,绝对定位+图片宽高,现在终于都可以在HTML 里搞定! :
或者是网格设定:
!important 修饰符
还有 !important
也可以使用,在特殊状况时会用到:
如果加上Variants时, !
要跟着样式名字,而不是加在最前面:
JIT 模式的限制
当然JIT 模式不是万能的,它也有一些使用上的限制,请往下看...
需要记住一件事情,Tailwind CSS 是静态提取class 的,写class 务必要写完整,不然Tailwind CSS 会无法正确的打包CSS。
❌ 这样是不行的呦:
✔ 动态选择完整的class:
但如果真的要写完全动态的class 的话,只能改用Inline-style 或CSS-in-JS 的套件了。
❌ 这样是不行的呦:
✔ 改用Inline-style
还有,JIT模式是没有使用PurgeCSS,所以PurgeCSS的设定都不能用,如果出于特殊状况需要用safelist的话,可以增加一个 safelist.txt
达成这个目的。
结语
结论,JIT 模式太香了! 速度快不说,还有这么多新功能,真的爽到起飞!!!😍
JIT感觉太方便了,之前开发编译Tailwindcss都要将近10s,而且配置还很麻烦,以后就都用JIT了,甚至比原版功能还多
有了JIT的各种东西,只要用了JIT,性能提升刷刷的!
就好比没有JIT的QEMU和有JIT的QEMU那样
我能不能把作者的文章盗了