vscodeでvueのeslint、prettier、stylelintの設定を行う
visual studio code
で.vue
や.js
で構文チェックやフォーマットを行うeslint
とprettier
の設定を行います。
(2020年1月時点の情報です。)
拡張機能の追加
以下の拡張機能をインストールします。
- Vetur
.vue
ファイルを扱うために必要です。- ESLint
eslint
をvscode
に組み込みます。- Prettier
prettier
をvscode
に組み込みます。- stylelint
stylelint
をvscode
に組み込みます。
vscodeの設定
vscode
で以下の設定を追加します。
{
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"vetur.format.defaultFormatter.html": "prettier",
"css.validate": false,
"less.validate": false,
"scss.validate": false,
"javascript.format.enable": false,
}
npmパッケージのインストール
以下のパッケージをインストールします。
- eslint
- eslint-config-prettier
- eslint-plugin-prettier
- eslint-plugin-vue
- prettier
- prettier-eslint
- stylelint
- stylelint-config-prettier
- stylelint-prettier
また、必須ではありませんが、検証ルールのセットなどをお好みでインストールします。
- eslint-config-airbnb-base
- stylelint-config-standard
eslintの設定
eslint
の設定ファイルを作成し、以下の設定をします。
ルールはそれぞれお好みで設定してください。
.eslintrc.js
module.exports = {
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module',
},
env: {
browser: true,
node: true,
},
extends: [
'eslint:recommended',
'airbnb-base',
'plugin:prettier/recommended',
'plugin:vue/recommended',
'prettier/vue',
],
plugins: ['vue', 'prettier'],
rules: {
'global-require': 0,
'import/no-unresolved': 0,
'no-param-reassign': 0,
}
};
prettierの設定
prettier
の設定ファイルを作成し、以下の設定をします。
ルールはお好みで設定してください。
.prettierrc.js
module.exports = {
printWidth: 100,
singleQuote: true,
trailingComma: 'es5',
};
stylelintの設定
stylelint
の設定ファイルを作成し、以下の設定をします。
ルールはお好みで設定してください。
.stylelintrc.js
module.exports = {
extends: [
'stylelint-config-standard',
'stylelint-prettier/recommended',
],
rules: {
'no-empty-source': null,
'declaration-colon-newline-after': null,
'value-list-comma-newline-after': null,
}
};
動作確認
以上で設定ができましたので、一応vscode
を再起動して動作確認を行います。
不要なカッコがある、セミコロンがない、インデントがおかしい、などのエラーに対してエラーが表示されることが確認できます。
エラー箇所にマウスオーバーでエラー内容が確認できます。
保存すると自動でフォーマットされることが確認できます。
(私の環境だけかもしれませんが、保存処理Ctrl+sを何回もしなければ正しくフォーマットされないことがありました。フォーマットされない場合は何回もCtrl+sで保存処理をしてみてください。)
vue
ファイルのhtml
やcss(scss)
にもエラーチェックが動作し、保存時に自動フォーマットされることが確認できます。