LoginSignup
6
3

More than 3 years have passed since last update.

Nuxt.jsでページ遷移時のtransitionが動かないとき

Posted at

事象

Nuxt.jsでページ遷移時のtransitionを設定する際は、このように書くと普通動きます。
ルーティング - NuxtJS

.page-enter-active, .page-leave-active {
  transition: opacity .5s;
}
.page-enter, .page-leave-to {
  opacity: 0;
}

しかし、開発サーバー上ではうまく動いてるんですが、generateしたりproductionモードで動作させるとどうも動かなくなる。。。

解決法

/* purgecss start ignore *//* purgecss end ignore */でくくる。

/* purgecss start ignore */
.page-enter-active, .page-leave-active {
  transition: opacity .5s;
}
.page-enter, .page-leave-to {
  opacity: 0;
}
/* purgecss end ignore */

手っ取り早いのはこれだけど他にも解決方法は色々ある。

原因

tailwindCSS-moduleを使っていたため発生してしまっていました。

tailwindCSS-moduleにはPurgeCSSがincludeされていて、
https://github.com/nuxt-community/tailwindcss-module

特に設定しないとPurgeCSSは本番では動作し、開発サーバー上では動作しない設定になっています。
https://github.com/nuxt-community/tailwindcss-module/blob/master/lib/module.js#L5

そのため、動的にセットされるこのtransitionのクラスが開発サーバーではpurgeされず、本番でpurgeされてしまうため発生してしまっていたようでした。
めでたし。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3