Stylelint v14から破壊的変更が入り、Sassなどのルールはプラグイン化されました。 それに伴って、すでに導入済みの設定がある場合、いくつかの変更を加える必要があったので記録しておきます。
公式の移行ドキュメントは以下です。
https://stylelint.io/migration-guide/to-14/
結論を先に書くと、追加が必要な依存は以下です。
yarn add -D postcss postcss-scss yarn add -D stylelint-config-standard-scss yarn add -D postcss-html
で、stylelint.config.jsを以下のように修正します(元ファイルはプロジェクト次第なので、あくまで簡略版)。
module.exports = { - extends: ['stylelint-config-standard', 'stylelint-config-prettier'], + extends: ['stylelint-config-standard-scss', 'stylelint-config-prettier'], rules: { 'selector-pseudo-element-no-unknown': [ true, { ignorePseudoElements: ['v-deep'], }, ], }, + overrides: [ + { + files: ['**/*.vue'], + customSyntax: 'postcss-html', + }, + ], }
まずpostcss
ですが、これはSassとかLessを使う場合は基本的に必要となる模様。
SCSSを使いたいのでpostcss-scss
も一緒に追加しています。
stylelint-config-standard-scss
は、今回からプラグイン化されたSCSSのルールです。
インストールしたらstylelint.config.jsのextends
に追加します。
これは公式ドキュメント通り。
最後にpostcss-html
は、<style>
タグに挟まれた部分だけチェックするようにしてくれるものです。
NuxtJS (Vue.js)特有の事情として、*.vueファイル中のスタイルは<style>
タグ内に書くため、これが必要になります。
*.scssファイルなどでは不要なので、stylelint.config.jsのoverrides
で*.vueファイルにのみ適用されるよう設定します。
以上です!