ESLint だけでもコード整形はできるようですが、Prettier のコード整形の方が優れているらしい。
Nuxt.js の公式ドキュメントの通り、併用して導入することにします。
Nuxt.js で ESLint を使う
インストール
$ npm install --save-dev babel-eslint eslint eslint-config-prettier eslint-loader eslint-plugin-vue eslint-plugin-prettier prettier
ESLint の設定ファイルをつくる
プロジェクトの root に .eslintrc.js
を作る
module.exports = {
root: true,
env: {
browser: true,
node: true
},
parserOptions: {
parser: 'babel-eslint'
},
extends: [
"eslint:recommended",
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
"plugin:vue/recommended",
"plugin:prettier/recommended"
],
// required to lint *.vue files
plugins: [
'vue'
],
// add your custom rules here
rules: {
"semi": [2, "never"],
"no-console": "off",
"vue/max-attributes-per-line": "off",
"prettier/prettier": ["error", { "semi": false }]
}
}
注意
公式ドキュメントをコピペすると module.exports {
となっていましたが、
IDEに文法エラーだと怒られたので module.exports = {
に修正しました。
package.json にエイリアスコマンドを追加する
"scripts": {
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"lintfix": "eslint --fix --ext .js,.vue --ignore-path .gitignore ."
}
以上で npm run lint
で LINT チェック、 npm run lintfix
で LINT の簡易修正が可能になる。
ちなみに、ESLint は .gitignore
に書いてあるものは無視します。
ホットリローディングしたいとき
npm run dev
中は常に変更を検知させたい場合(というかそうするのがおすすめ)は nuxt.config.js
で下記のような設定をする。
/*
** Build configuration
*/
build: {
/*
** You can extend webpack config here
*/
extend(config, ctx) {
// Run ESLint on save
if (ctx.isDev && ctx.isClient) {
config.module.rules.push({
enforce: "pre",
test: /\.(js|vue)$/,
loader: "eslint-loader",
exclude: /(node_modules)/
})
}
}
}
参考
[公式ドキュメント]
(https://nuxtjs.org/guide/development-tools#eslint-and-prettier)
[Step by Stepで始めるESLint]
(https://qiita.com/howdy39/items/6e2c75861bc5a14b2acf)
[Prettier 入門 ~ESLintとの違いを理解して併用する~]
(https://qiita.com/soarflat/items/06377f3b96964964a65d#%E4%BD%95%E6%95%85prettier%E3%82%92%E5%88%A9%E7%94%A8eslint%E3%81%A8%E4%BD%B5%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8B)