WindowsでVisual Studio Code＋ESLintを使ってみる

#はじめに
以前、プロキシまわりの不具合でVisual Studio Code（VS Code）でのESLint利用を断念しましたが、不具合が解消され社内プロキシ環境下からでも使えるようになったので、手順を残しておきます。

例によって、画像盛りだくさんです。
回線速度遅い方はすみません。

#本記事での前提条件
* Node.jsは [Current版](https://nodejs.org/en/download/current/) を利用します。（LTS版でも同じようにできるはず）
* ESLintはグローバルインストールして使用します。
* プロキシサーバーは以下の通りと仮定します。（自身の環境に応じて適宜変更してください）

```bat:http-proxy
// 認証なし
http://proxy.example.com:8080
// 認証あり
http://username:password@proxy.example.com:8080
```
```bat:https-proxy
// 認証なし
http://proxy.example.com:8080
// 認証あり
http://username:password@proxy.example.com:8080
```

#Node.jsのインストール

* Node.jsの公式サイトからインストーラーをダウンロードし、実行します。
（使用しているOSの環境に応じ、32bit版/64bit版を選択）
![VSCodeESLint012.png](https://qiita-image-store.s3.amazonaws.com/0/49240/e8bfeeea-7b94-feb4-9fcb-c7a54d246b83.png)
　
* セキュリティ警告が表示される場合は［実行］を選択します。

* ［Next］を選択します。
![VSCodeESLint014.png](https://qiita-image-store.s3.amazonaws.com/0/49240/5a9d69be-6469-5a40-53c3-e872a7f8b05b.png)
　
* 使用許諾を確認し［I accept the term ・・・］にチェックを付け、［Next］を選択します。
![VSCodeESLint015.png](https://qiita-image-store.s3.amazonaws.com/0/49240/d4866bdb-7747-2787-3113-d0816dbaa3d9.png)
　
* インストール先を［C:\Program Files\nodejs\］から［C:\nodejs］へ変更し、［Next］を選択します。（インストールパスにスペースが入るとトラブルの元になることがあるので変更しておきます）
![VSCodeESLint016.png](https://qiita-image-store.s3.amazonaws.com/0/49240/9f2f25f8-0cf3-cf45-391d-1cb4d7eb061d.png)
　
* デフォルト選択のまま、［Next］を選択します。
![VSCodeESLint017.png](https://qiita-image-store.s3.amazonaws.com/0/49240/90c593fb-b9fe-bf61-004f-f12cc735e6b9.png)
　
* ［Install］を選択します。
![VSCodeESLint018.png](https://qiita-image-store.s3.amazonaws.com/0/49240/039d554e-fd6c-824b-0573-c337d33b347b.png)
　
* インストール処理を実行します。途中で権限確認ダイアログが表示されるので［はい］を選択します。
![VSCodeESLint019.png](https://qiita-image-store.s3.amazonaws.com/0/49240/bfb5cd94-4570-13c3-a140-67b0ac6d0cdc.png)
　
* ［Finish］を選択し、インストールを完了します。
![VSCodeESLint020.png](https://qiita-image-store.s3.amazonaws.com/0/49240/7f44bdbf-9b08-be5f-76a4-0f1e6c9bf6ec.png)
　
* コマンドプロンプトを管理者権限で起動し、［node -v］を実行してインストールできているか確認します。

```bat:
C:\>node -v
v6.7.0
```

##プロキシ利用時の場合
* コマンドプロンプトから［npm config set］で proxy と https-proxy をセットします。

```bat:
// proxy
C:\>npm config set proxy http://username:password@proxy.example.com:8080
// https-proxy
C:\>npm config set https-proxy http://username:password@proxy.example.com:8080
```

* ［npm config get］にて設定を確認します。

```bat:
C:\>npm config get
; cli configs
user-agent = "npm/3.10.3 node/v6.7.0 win32 x64"

; userconfig C:\Users\ko2a\.npmrc
https-proxy = "http://username:password@proxy.example.com:8080"
proxy = "http://username:password@proxy.example.com:8080"

; builtin config undefined
prefix = "C:\\Users\\KO2A\\AppData\\Roaming\\npm"

; node bin location = C:\nodejs\node.exe
; cwd = C:\WINDOWS\system32
; HOME = C:\Users\KO2A
; "npm config ls -l" to show all defaults.
```

#ESLintのインストール・動作確認

@mysticateaさんの記事「[ESLint 最初の一歩](http://qiita.com/mysticatea/items/f523dab04a25f617c87d)」の「使い方」を読んでください。
インストール・動作確認ができます。

ESLintをグローバルインストールする場合は、**%USERPROFILE%** 直下に .eslintrc.js/json/yml を作成しておく必要があります。

＃ESLintのインストール方法や設定次第なのかもしれませんが・・・
＃どうもVS CodeのESLintモジュール？は、デフォルトでここの.eslintrcファイルを見に行くみたいです。
＃ファイルがないと、VS Codeのコンソールで警告がでるみたい。NodePathをきちんと指定すればいいのかな？

```bat
[Warn  - 8:39:49] No ESLint configuration (e.g .eslintrc) found for file:
\\dummyserver\apps\app\src\sample.js
File will not be validated. Consider running the 'Create .eslintrc.json file' command.
```

手でかいてもいいですし、initコマンドで生成してもOKです。
こちらも@mysticateaさんの記事「[新しくなった eslint --init を試す](http://qiita.com/mysticatea/items/e2cd8b2c9879b3b0f561)」を参考にしていただくと簡単にできます。

```bat:
C:\>cd %USERPROFILE%

C:\Users\KO2A>eslint --init
```

#Visual Studio Codeのインストール・セットアップ

##Visual Studio Codeのインストール

* Visual Studio Codeの公式サイトからインストーラーをダウンロードし、実行します。
![VSCodeESLint001.png](https://qiita-image-store.s3.amazonaws.com/0/49240/d26afa9f-7c23-e6e9-6eda-83b9bea80673.png)
　
* セキュリティ警告が表示される場合は［実行］を選択します。

* ［次へ］を選択します。
![VSCodeESLint003.png](https://qiita-image-store.s3.amazonaws.com/0/49240/b5dc5559-7bef-78c0-d779-5094bcb88813.png)
　
* 使用許諾契約書に［同意する］を選択し、［次へ］を選択します。
![VSCodeESLint004.png](https://qiita-image-store.s3.amazonaws.com/0/49240/40f9030c-ab3b-1bbc-a8de-210816aaf8b6.png)
　
* そのまま［次へ］を選択します。
![VSCodeESLint005.png](https://qiita-image-store.s3.amazonaws.com/0/49240/633f061f-b2f5-4b60-3a88-5c5feb39d9d9.png)
　
* そのまま［次へ］を選択します。
![VSCodeESLint006.png](https://qiita-image-store.s3.amazonaws.com/0/49240/16f7cc32-d5d5-2f66-8d66-cc217dabb40e.png)
　
* 適宜必要なもの／不要なものを選択し、［次へ］を選択します。
![VSCodeESLint007.png](https://qiita-image-store.s3.amazonaws.com/0/49240/acb01744-fccf-b8cb-fe45-87bac34f0934.png)
　
* ［インストール］を選択します。
![VSCodeESLint008.png](https://qiita-image-store.s3.amazonaws.com/0/49240/455051d5-a71b-887b-514e-673dbc7d5431.png)
　
* インストール処理を実行します。
![VSCodeESLint009.png](https://qiita-image-store.s3.amazonaws.com/0/49240/230543a1-ef05-cf74-af09-c7bb9ba7c057.png)
　
* ［完了］を選択し、インストールを完了します。
![VSCodeESLint010.png](https://qiita-image-store.s3.amazonaws.com/0/49240/9c0ffab5-74b2-4217-8282-09d0121786be.png)


##Visual Studio Codeのセットアップ

* ［Ctrl］＋［P］でコマンドパレットを起動し、「ext install eslint」を実行します。
![VSCodeESLint025.png](https://qiita-image-store.s3.amazonaws.com/0/49240/d22a74c1-cd95-1915-30ca-504bc6c61322.png)
　
* 「ESLint」の「インストール」を選択します。
![VSCodeESLint026.png](https://qiita-image-store.s3.amazonaws.com/0/49240/9b0e393f-cd55-c15c-b335-ae5187cd380d.png)
　
* ［有効］を選択します。
![VSCodeESLint027.png](https://qiita-image-store.s3.amazonaws.com/0/49240/f9733c45-5d48-ab07-5f8d-484d6a468ca6.png)
　
* ［OK］を選択し、VS Codeを再起動します。
![VSCodeESLint028.png](https://qiita-image-store.s3.amazonaws.com/0/49240/f8843784-855d-70fd-f4a4-3fe409b7754e.png)
　

* コマンドプロンプトを起動し、［npm get prefix］の実行結果を控えます。

```bat:
C:\>npm get prefix
C:\Users\KO2A\AppData\Roaming\npm
```

* ユーザー設定を編集します。

```json:setting.json
// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
// TypeScript

    // JavaScript の検証を有効/無効にします
    "javascript.validate.enable": false, 

// ESLint configuration

    // Controls whether eslint is enabled for JavaScript files or not.
    "eslint.enable": true,

    // A path added to NODE_PATH when resolving the eslint module.
    "eslint.nodePath": "C:\\Users\\KO2A\\AppData\\Roaming\\npm"
}
```


##プロキシ利用時の場合

VS Codeのユーザー設定ファイルにプロキシ情報を記入する方法と、環境変数に **http_proxy** と **https_proxy** を指定する方法と、があります。

###ユーザー設定ファイルに記述する方法

* ユーザー設定ファイルにプロキシ情報を設定します。

```json:setting.json
// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
// HTTP

    // 使用するプロキシ設定。設定されていない場合、環境変数 http_proxy および https_proxy から取得されます。
    "http.proxy": "http://username:password@proxy.example.com:8080",

    // 提供された CA の一覧と照らしてプロキシ サーバーの証明書を確認するかどうか。
    "http.proxyStrictSSL": false,

    // すべてのネットワーク要求に対して 'プロキシ認証' ヘッダーとして送信する値。
    "http.proxyAuthorization": null
}
```

###環境変数を設定する方法

* システムのプロパティ［詳細設定］タブの［環境変数］を選択します。
![VSCodeESLint021.png](https://qiita-image-store.s3.amazonaws.com/0/49240/7827f5a3-0ada-baac-6c1b-b77a524a2d2d.png)
　
* ユーザー環境変数 or システム環境変数のどちらかに **http_proxy** と **https_proxy** の環境変数を作成します。（この例ではシステム環境変数へ追加）
![VSCodeESLint024.png](https://qiita-image-store.s3.amazonaws.com/0/49240/d20ad5bd-e9ce-0ae1-c11e-7541db5326cd.png)

![VSCodeESLint022.png](https://qiita-image-store.s3.amazonaws.com/0/49240/6134bc77-0b53-fc6f-21a4-7aefcd50c776.png)

![VSCodeESLint023.png](https://qiita-image-store.s3.amazonaws.com/0/49240/27c25774-c0f9-72d6-a46c-46ca8366a6b0.png)
　

* ユーザー設定を編集します。

```json:setting.json
// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
// HTTP

    // 使用するプロキシ設定。設定されていない場合、環境変数 http_proxy および https_proxy から取得されます。
    "http.proxy": "",

    // 提供された CA の一覧と照らしてプロキシ サーバーの証明書を確認するかどうか。
    "http.proxyStrictSSL": false,

    // すべてのネットワーク要求に対して 'プロキシ認証' ヘッダーとして送信する値。
    "http.proxyAuthorization": null
}
```

#おわりに
最近はAtomよりもVS Codeのが動作が軽いので、こちらがメインとなりつつあります。

とりあえずさくっと動かしてみることを目的としているため、ESLintはグローバルインストールとしていますが・・・設定ファイルの取得先をうまく指定できなかったりと面倒なので、ローカルインストールにした方が本当はよいのでしょうね。
node.jsそこまで詳しくなくてまだ手を出していないのですがorz

あ、Atom版の記事は気が向いたら修正します。ごめんなさい。