emotionにlintを追加して、効率的に開発を行う
CSS in JS でのlint(今回はemotion)の設定を行ったのときのその時に行ったことになります。
今回使用するパッケージのバージョン
{ "@types/react": "^17.0.2", "next": "^10.0.1", "react": "^17.0.1", "react-dom": "^17.0.1", "postcss-jsx": "^0.36.4", "prettier": "^2.2.1", "stylelint": "^13.12.0", "stylelint-config-recess-order": "^2.3.0", "stylelint-declaration-block-no-ignored-properties": "^2.3.0", "stylelint-no-unsupported-browser-features": "^4.1.4", "stylelint-prettier": "^1.2.0" }
今回行う stylelint.config.js
のファイル内容
module.exports = { // add your custom config here // https://stylelint.io/user-guide/configuration plugins: [ 'stylelint-declaration-block-no-ignored-properties', 'stylelint-no-unsupported-browser-features', 'stylelint-prettier', ], extends: ['stylelint-config-recess-order'], rules: { 'prettier/prettier': true, 'plugin/declaration-block-no-ignored-properties': true, 'plugin/no-unsupported-browser-features': [ true, { severity: 'warning', }, ], 'font-family-no-missing-generic-family-keyword': true, 'declaration-block-no-shorthand-property-overrides': true, 'declaration-block-trailing-semicolon': 'always', 'selector-pseudo-element-colon-notation': 'double', }, }
入れているstylelintのパッケージ
stylelint-config-recess-order
cssの要素の順番を変更してくれるパッケージ
stylelint-declaration-block-no-ignored-properties
.hoge { display: inline; width: 100px; }
のようなインライン要素に対して、横幅を設定している時など適応しない要素があるときにエラーを出力してくれるパッケージ
stylelint-no-unsupported-browser-features
.hoge { display: grid; }
などの.browserslistrc
に記載されているブラウザーに対応していないプロパティを記載したときにエラーを出してくれるパッケージ
stylelint-prettier
stylelintとprettierとの連携してくれるパッケージ
emotionとの連携を行う
postcss-jsx
のインストール
今回の場合、インストールを行わなくても動きましたが念のためインストールを行ます。
$ npm install -D postcss-jsx
stylelintのscriptを追加
{ script: { "stylelint": "stylelint --fix **/*.{ts,tsx,css}" } }