55
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nuxt.js で ESLint & Prettier を導入する

Posted at

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 を作る

.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 にエイリアスコマンドを追加する

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 で下記のような設定をする。

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)

55
46
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?