Tech

Nuxt.jsにautoprefixerの設定を追加する

対象読者

Nuxt.jsを使っていてautoprefixの対象ブラウザ設定を変更したい人

結論

package.jsonに Browserslist をするか .browserslistrc を設定する

"browserslist": [
  "> 1%",
  "last 3 versions",
  "ie >= 11",
  "android >= 4.2",
  "ios >= 9"
]
...

以上!

経緯

まずぐぐりまくった

ぐぐってみた感じではnuxt.config.jsでpostcssの設定を上書き/追加して対応していた。
ただ、なんかsass使っていた場合ビルドが上手くいかなくなった

Nuxtの中では何で行われているのかを調べてみた

最終的にはこのpostcssの設定ファイルに到達した。
特にautoprefixer単体のパッケージは恐らく使っていなくて、postcss-cssnextに内包されているものを使用していて、さらにはデフォルト設定だと思われます。

デフォルト設定は公式にあるとおり下記の設定になっていると思われます。

(default: browserslist default > 1%, last 2 versions, Firefox ESR, Opera 12.1)

postcss-cssnextの設定方法を調べた

上記の公式を見たところ

Browserslist will automatically try to find a browserslist config file or use its default value.

と書かれているので browserslist config file を追うと borwserslistのGithub に到達する。

Browserslist Example shows how every tool uses Browserslist. All tools will find target browsers automatically, when you add the following to package.json:

{
  "browserslist": [
    "> 1%",
    "IE 10"
  ]
}

Or in .browserslistrc config:

# Browsers that we support

> 1%
IE 10 # sorry

こんな感じで書かれていたのでpackage.jsonに追加してみた所正常に動作しました。

おわりに

結構nuxt.config.jsでwebpack拡張してる記事が多かったのですが、nuxtのかなり設定されている所をいじるよりこっちのがシンプルで良いのではと思って書きました。

色々隠蔽されている分かなり便利なのですが、拡張していこうと思った時に自力で何かする時はその分結構大変だなと思いました。

資料

share