zukucode
主にWEB関連の情報を技術メモとして発信しています。

Atom ESLintのVue.jsプラグインを導入し.vueファイルで構文チェックを行う

Atomエディタで.vueファイル(単一ファイルコンポーネント)の構文チェックを行うための設定です。

eslintのインストール

JavaScriptのリアルタイム構文チェックを行うために、eslintグローバルインストールします。

eslintだけでなく、.vue(単一ファイルコンポーネント)用の構文チェックをするプラグインもインストールします。

グローバルインストールするために-gをつけるのを忘れないようにします。

$ npm install -g eslint eslint-config-vue eslint-plugin-html eslint-plugin-vue

Atomパッケージのインストール

以下のAtomのパッケージをインストールします。

インストール時に依存するパッケージのインストールも行うように指示されることがありますので、その場合は依存するパッケージもインストールします。

  • linter
    • 構文チェックを行うためのベースとなるパッケージ
  • linter-eslint
    • 上記でインストールしたeslintをAtomで使用するためのパッケージ
  • language-vue
    • .vueファイルのシンタックスハイライトなどを行うためのパッケージ

linter-eslintの設定

scopeの設定

linter-eslintをインストールすると.jsファイルは構文チェックを行ってくれるのですが、.vueファイルではチェックを行ってくれません。

.vueファイルもチェック対象となるように、linter-eslintの設定画面でList of scope to run Eslint on, ...の設定項目にsource.jsなどの拡張子がいろいろと指定されているはずなので、そこに.vueも追記します。

source.js, source.jsx, source.js.jsx, source.babel, source.js-semantic
source.js, source.jsx, source.js.jsx, source.babel, source.js-semantic, text.html.vue

pathの設定

上記でグローバルインストールしたeslintを使用するために、グローバルインストールしたeslintのパスを設定します。

Global Node Installation Pathの設定項目にパスを設定します。

パスはOSによって異なりますが、以下のコマンドでパスを取得できます。

$ npm get prefix
/usr/local #linuxの場合(各PCの環境によって変わります)

コマンドを実行して出力されたパスをそのまま設定項目に追記します。

また、Use global ESLint Installationの項目のチェックボックスがOFFになっている場合はONにします。

eslintの設定

プロジェクトフォルダのルートに.eslintrc.jsonのファイルを作成します。

このファイルで「文字列の囲みはシングルクォーテーションを使用する(ダブルクォーテーションの場合はエラー)」などの細かい設定を行います。

設定内容はお好みですが、"extends": "vue"で、上記でインストールしたvueのプラグインを適用させています。

{
    "env": {
        "browser": true,
        "es6": true,
        "node": true
    },
    "extends": "vue",
    "parserOptions": {
        "ecmaVersion": 2017
    },
    "rules": {
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        "no-constant-condition": 1,
        "no-var": 2,
        "prefer-const": 2
    }
}

以上で設定完了です。チェックがされない場合は、開いているファイルを閉じてからもう一度開き直してみてください。


関連記事

  • webpack lessをImportしてビルドする

    Vue.js lessを使いwebpackでビルドするでvueファイルの中でlessを実装してビルドする方法を紹介しました。htmlやbodyなどに適用するベースのクラスを外部のlessファイルに実装...


  • ExtractTextPluginでcssファイルを出力する

    webpackのプラグインExtractTextPluginを使って、ビルドされたjsファイルからstyleの部分を抽出してcssファイルで出力します。extract-text-webpack-plu...


  • webpack-dev-serverで開発サーバーを起動する

    webpack-dev-serverで開発サーバーを起動します。ファイルやフォルダ構成などの環境はvueファイル(単一ファイルコンポーネント)をwebpackでビルドで紹介したものと同様とします。we...


  • webpack モジュールのパスを絶対パスで指定する方法

    自分で作成したモジュールをインポートするときはインポートするファイルを基準に相対パスで指定する必要があります。フォルダ構成によっては深く階層を辿らないといけないので、フォルダ構成が変わってしまうと大変...


  • Vuex 厳格(strict)モードでエラーになるよくある原因

    Vuexの厳格(strict)モードでエラーになってしまう原因でよくあるパターンです。stateに格納した配列をソートして表示するときに、stateの値をcomputedやgettersでそのままソー...


  • Vuex stateを作成して各コンポーネントで参照する

    Vue.jsにVuexを導入するでVuexの導入が完了しました。実際にstoreを作成して、各コンポーネントでその値を参照できるようにします。最初にstoreを作成します。mutations.jsにs...


  • Vuex mutationでstateの値を変更する

    Vuex stateを作成して各コンポーネントで参照するでstateを作成して各コンポーネントで参照できるようになりました。stateはmutationの処理でしか変更できません。コンポーネントからm...


  • Vuex moduleに定義したstateをコンポーネントで簡単に取得する

    Vuexのモジュールに定義したstateを各コンポーネントで参照する方法を紹介します。以下のようにmoduleが定義されているとします。各コンポーネントではthis.$store.state.モジュー...


  • Vuexとaxiosを連携する

    Vuex actionでローディングアイコンを表示するで、actionの処理でローディングの表示非表示を制御するmutationを実行するようにしました。ajaxの処理が増えるたびに同じmutatio...


  • Vuex モジュールのactionの処理で別モジュールのactionをコールする

    Vuexのモジュール内のactionの処理で別モジュールのactionをコールする方法を紹介します。ルートのactionの場合、moduleで定義したactionをコールする場合は、以下のようにモジュ...