2021/01/26
[NuxtJS][TailwindCSS]リリースビルドだと特定のclassが効かなくなる問題に対処
概要
先日kumanoteのコーポレートサイト兼エンジニアブログである本サイトをTailwind CSSを使ってリニューアルしました。
結構洗練されたので、個人的にかなり気に入っています。
今回は、このサイトをリリースするに当たってちょっとした落とし穴にハマったので、その解決策になります。
具体的には、以下のような事象が起きてしまいました。
開発時にはちゃんと機能していたはずの色が黒色(デフォルトの色)になってしまっていた
よくよく調べたのですが、原因は以下だとわかりました。
意図せず、リリースビルドするときに必要なcssのclassが消去されてしまっていました。
※ そのclassはコンポーネントで動的に作成されていた(主に色に関連する)classでした。
@nuxtjs/tailwindcss というパッケージを使っていたのですが、リリースビルドをする際に、
componentやpageなどで使っていないcssを自動的に消してしまうような動きをしていました。
解決方法
tailwind.config.js
で特定のcss classはリリースビルド時に消去(purge)されないように指定しました。
module.exports = {
purge: {
content: [
'./components/**/*.{vue,js}',
'./layouts/**/*.vue',
'./pages/**/*.vue',
'./plugins/**/*.{js,ts}',
'./nuxt.config.{js,ts}',
],
options: {
safelist: [/^bg-/, /^hover:bg-/, /^text-/, /^hover:text-/], // <= ここの部分
},
},
}
Reference
以下を参照しました。
関連する記事
Nuxt2からNuxt3への移行とNextJSとNuxt3の比較について
弊社ホームページとブログサイトをNuxt2からNuxt3ベースに移行しました。
Next.js + TailwindCSSのプロジェクト立ち上げ時のメモ
Next.js + Tailwind CSSのプロジェクト作成時の操作ログです。
Nuxt.jsからNext.jsへのリニューアルを経て思うこと
Nuxt.jsからNext.jsへフルリニューアルしたことで見えてきた個人的なメリットとデメリットを整理します
Tailwindcssで定義されている色からAndroid版の定義を自動生成する
Tailwindcssで定義されている便利な色たちをAndroidでも利用したいので、jsonで定義されている色をAndroidの変数に変換するスクリプトを作りました