1
0

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 1 year has passed since last update.

Nuxt.jsでの開発におけるLinterとFormatter設定

Posted at

はじめに

VS Code環境におけるNuxt.jsで簡単に構文チェック、フォーマットが行えるようにほかのサイトを参考にしながら設定してみました。

前提

create-nuxt-appした時点で、ESLint, Prettier, Stylelintは入っているものとします。

バージョン等は下記の通り

package.json
{
  "scripts": {
    "lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .",
    "lint:style": "stylelint \"**/*.{css,scss,sass,html,vue}\" --ignore-path .gitignore",
    "lint:prettier": "prettier --check .",
    "lint": "yarn lint:js && yarn lint:style && yarn lint:prettier",
    "lintfix": "prettier --write --list-different . && yarn lint:js --fix && yarn lint:style --fix"
  },
  // 省略
  "devDependencies": {
    "@babel/eslint-parser": "^7.16.3",
    "@nuxtjs/eslint-config": "^8.0.0",
    "@nuxtjs/eslint-module": "^3.0.2",
    "@nuxtjs/stylelint-module": "^4.1.0",
    "eslint": "^8.4.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-nuxt": "^3.1.0",
    "eslint-plugin-vue": "^8.2.0",
    "prettier": "^2.5.1",
    "stylelint": "^14.1.0",
    "stylelint-config-prettier": "^9.0.3",
    "stylelint-config-recommended-vue": "^1.1.0",
    "stylelint-config-standard": "^24.0.0"
  }
}

ESlintの設定変更

.eslintrc.js
module.exports = {
  // 省略
  rules: {
    'vue/html-indent': ['error', 2],
    'no-unused-vars': 'off', // 使っていない変数あってもOK
    'vue/html-self-closing': 'off', // imgタグのようにタグが1つで完結してもOK
    'vue/max-attributes-per-line': 'off',
    // 不要なカッコは消す
    'no-extra-parens': 1,
    // 無駄なスペースは削除
    'no-multi-spaces': 2,
    // 不要な空白行は削除。2行開けてたらエラー
    'no-multiple-empty-lines': [2, { max: 1 }],
    // 関数とカッコはあけない(function hoge() {/** */})
    'func-call-spacing': [2, 'never'],
    // true/falseを無駄に使うな
    'no-unneeded-ternary': 2,
    // セミコロンは禁止
    semi: [2, 'never'],
    // 文字列はシングルクオートのみ
    quotes: [2, 'single'],
    // varは禁止
    'no-var': 2,
    // jsのインデントは2
    indent: [2, 2],
    // かっこの中はスペースなし!違和感
    'space-in-parens': [2, 'never'],
    // コンソールは許可
    'no-console': 0,
    // カンマの前後にスペース入れる?
    'comma-spacing': 2,
    // 配列のindexには空白入れるな(hogehoge[ x ])
    'computed-property-spacing': 2,
    // キー
    'key-spacing': 2,
    // キーワードの前後には適切なスペースを
    'keyword-spacing': 2,
  },
}

StyleLintの設定

stylelint.config.js
module.exports = {
  // 省略
  rules: {
    'order/properties-alphabetical-order': true, // アルファベット順に
    'block-no-empty': null, // 空のクラスをエラー判定するかどうか
    'at-rule-no-unknown': [
      true, // @include, @mixin, @each, @extendをエラー判定しない
      { ignoreAtRules: ['include', 'mixin', 'each', 'extend'] },
    ],
    'rule-empty-line-before': null, // 各クラスごとに空行を入れるかどうか
    'at-rule-empty-line-before': null, // @の前に空行を入れるかどうか
  },
}

VS Codeの設定

settings.json
{
  // 省略
  // ESLint
  "eslint.workingDirectories": ["./"],
  "eslint.validate": [
    "javascript"
  ],
  // stylelint
  "stylelint.enable": true,
  "stylelint.configBasedir": ".",
  "stylelint.validate": ["css"],
  "css.validate": false,
  "scss.validate": false,
  // Lint On Save
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.organizeImports": true,
    "source.fixAll.eslint": true,
    "source.fixAll.stylelint": true
  },
  // prettier
  "[json]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "vetur.validation.template": false
}

参考にしたページ

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?