Vue.js の開発にESLint + Prettier + Vetur を導入してみた
- はじめに
- Vetur、ESlint、PrettierをVscodeに導入する
- ESLint と Prettierをプロジェクトにインストールする
- jsconfig.jsonを作成する
- VeturのLinterとしての機能をESLintに委譲する為の設定を行う
- .eslintrcjsonlを作成する
- .prettierrc.ymlを作成する
- settings.jsonに設定を追加する
はじめに
vue.jsの学習に伴い、タイトルにあるように静的解析ツールなどを導入してみたのですが、色々苦労したのでその振り返りです。
エディタはVscode
を使用しています。
Vetur、ESlint、PrettierをVscodeに導入する
ESLintとPrettierを別々に実行するようなプロセスで設定を行っていきます。
ESLint と Prettierをプロジェクトにインストールする
yarn add -D eslint prettier eslint-plugin-vue eslint-config-prettier
eslint-config-prettierはESLintとPrettierの競合する箇所を取り除いてくれます。
eslint-plugin-vueを導入する理由は、
VeturのLinterとしての機能をESLintに委譲したい為です。
jsconfig.jsonを作成する
Vue CLIを使用し、Typescript
を使用していない場合はjsconfig.json
をプロジェクトの直下に配置します。
{ "compilerOptions": { "target": "es2015", "module": "esnext", "baseUrl": "./", "paths": { "@/*": ["components/*"] } }, "include": [ "src/**/*.vue", "src/**/*.js" ] }
VeturのLinterとしての機能をESLintに委譲する為の設定を行う
公式を参考にして、vscodeのsettings.json
に下記を追加します。
"eslint.validate": [ "javascript", "javascriptreact", "vue" ], "vetur.validation.template": false
.eslintrcjsonlを作成する
eslintrc.jsonをプロジェクト直下に配置します。 注: Vue2系を使用した際の設定です。
{ "env": { "browser": true, "es6": true }, "extends": [ "eslint:recommended", "plugin:vue/base", "plugin:vue/essential", "prettier" ], "parserOptions": { "ecmaVersion": 12, "sourceType": "module" } }
eslint-plugin-vueの詳細な設定はこちらを参照してください。
.prettierrc.ymlを作成する
.prettierrc.ymlをプロジェクト直下に配置します。
singleQuote: true printWidth: 10
こちらは適宜必要なルールを追加してください。
settings.jsonに設定を追加する
作業を行っているファイルを保存した際に、自動でESLintとPrettierが実行されるようにします。
その他諸々の設定も追加しています。
// コードフォーマッターとしてprettierを指定する。 "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, // ファイル保存時にコードフォーマッターが実行される。 "editor.formatOnSave": true, // ファイル保存時にESLIntが実行される。 "editor.codeActionsOnSave": { "source.fixAll.eslint": true, },
### 動作確認 まずはPrettierとESLintのルールが重複していないか以下のコマンドで確認します。
yarn eslint-config-prettier path/to/main.js
次に、Prettierの動作確認をします
yarn prettier --check path/to/main.js
最後にESLintの動作確認をします
yarn eslint path/to/main.js
エラーが発生しなければ、以上で設定は完了です!!