scssのコード品質については stylelint,prettierを使ってscssのコード品質を保つ - Qiitaを参考。
また、.js
と.vue
が混在しているプロジェクトを想定。(.js
についてはjQuery
も使っている想定)
eslint, prettierをインストール
$ yarn add babel-eslint eslint eslint-config-airbnb eslint-config-prettier eslint-plugin-import eslint-plugin-prettier eslint-plugin-vue
参考
- babel-eslint - npm
- eslint - npm
- eslint-config-airbnb - npm
- eslint-config-prettier - npm
- eslint-plugin-import - npm
- eslint-plugin-prettier - npm
- eslint-plugin-vue - npm
prettierrcの設定・.eslintrc.jsonの設定
.prettierrc
{
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"proseWrap": "preserve"
}
参考
.eslintrc.json
.eslintrc.json
{
"env": {
"es6": true,
"browser": true,
"jquery": true // if use $
},
"plugins": [
"import"
],
"parserOptions": {
"parser": "babel-eslint",
"sourceType": "module",
"allowImportExportEverywhere": false
},
"extends": [
"airbnb-base",
"eslint:recommended",
"plugin:vue/recommended",
"plugin:prettier/recommended"
],
"globals": {
"gon": true
},
"rules": {
"semi": [
"error",
"never"
],
"comma-dangle": [
"error",
"never"
],
"no-param-reassign": [
"error", {
"ignorePropertyModificationsFor": [
"state"
]
}
],
"prettier/prettier": [
"error",
{
"printWidth": 120,
"singleQuote": true,
"trailingComma": "none",
"semi": false
}
]
}
}
参考
- prettierの使い方 - Qiita
- ESLintとPrettierを併用するときの設定(eslint-plugin-prettier, eslint-config-prettier) - dackdive’s blog
- Vue.jsにPrettier環境を設定するときのメモ - Qiita
- もうprettierで消耗したくない人へのvueでのeslint設定 - Qiita
- Prettier 入門 ~ESLintとの違いを理解して併用する~ - Qiita
- Vue.jsスタイルガイドとeslint-plugin-vue検証ルールのマッピング - Qiita
- 運用中のVue.jsプロジェクトにESLintを入れるためにやったこと - Qiita
- ESLintのエラールール。日本語ざっくり解説スタイル編 - Qiita
package.json(npm script)
app/frontend/javascripts
よりも下にjs,vueファイルを入れている場合。
{
"scripts": {
"lint:javascript": "eslint --fix app/frontend/javascripts/**/*.{js,vue}"
},
}