VSフロント開発と社内プロキシ設定(VisualStudio2015/ASP.NET5)

# Visualstudio2015でフロント開発！

[Top 10 Changes in ASP.NET 5 and MVC 6](http://stephenwalther.com/archive/2015/02/24/top-10-changes-in-asp-net-5-and-mvc-6)
> 6. GruntJS, NPM, and Bower Support

asp.net5のwebアプリケーションは標準でnpm,Grunt,Gulp,Bowerなどのツールが使えるようになっています!!
さっそくフロントの開発ツールを使っていきましょう^^

※各ツールの詳細についてはここでは詳しく述べません。
私は、このあたりの記事がとても参考になりました。
[ASP.NET 5 と Visual Studio 2015 では Bower と Grunt が標準になるみたいなので勉強してみた/しばやん雑記](http://blog.shibayan.jp/entry/20141125/1416882231)
[ASP.NET 5 について一部/miso_soup3 Blog](http://miso-soup3.hateblo.jp/entry/2014/11/14/043310)

# 開発環境

- Windows7 Professional
- Visual Studio Community 2015
- 新規作成>プロジェクト>ASP.NETWebアプリケーション(C#)

下記のページを参考に設定を行いました。
[ASP.NET 5 RC1 をインストールする](http://www.ipentec.com/document/document.aspx?page=visual-studio-2015-install-asp-net-5-rc1)
[ASP.NET 5＋AngularJSでトレンドなSPAアプリを開発しよう！](https://codezine.jp/article/detail/8891)


# プロキシに阻まれる

だがしかし、npm/bowerはプロキシ環境下ではそのままでは使えませんでした…
インターネットオプション??環境変数のHTTP_PROXY??devenv.exe.config??と、いろいろ設定をいじってみましたが、最終的に成功したのは以下の方法でした。

>1. node.jsをインストールする
2. gitをインストールする
3. それぞれプロキシ設定をする
4. VisualStudioの外部ツールの検索場所指定を1,2でインストールしたnpm,gitに指定する
5. プロジェクトの.bowerrcにプロキシ設定をする

ざっくりいうと、VisualStudio内蔵のnpm/gitは無視して別でインストールしたものにプロキシ設定をしてそっちを使用するようにしています。
内蔵のものを使う方法は力及ばずでわかりませんでした…

**※もっとスマートなやり方がありましたらご教授くださいm(_ _)m!!**

以下詳細に見ていきます。

## 1. node.jsをインストールする
https://nodejs.org/en/

node.jsをインストールしますが、正しくはnode.jsに付随しているnpmが目的です。
インストールすると、環境変数のPathにnpmが追加されるはずです。(あとで使います）

## 2. gitをインストールする
https://git-for-windows.github.io/

Bowerが、ライブラリをgithubから取得してくる場合があるのでgitも使えるようにしておきます。

## 3. それぞれプロキシ設定をする

インストールしたnpm/gitそれぞれにプロキシ設定を行います。

- npm

```
$ npm config set proxy http://proxy.example.com:8080
$ npm config set https-proxy http://proxy.example.com:8080
```

- git

```
$ git config --global url."https://".insteadOf git://  ※gitアクセス時に強制的にhttpsにします
$ git config --global http.proxy http://proxy.example.com:8080
$ git config --global http.proxy http://proxy.example.com:8080
```

これでnpmとgitをプロキシ環境下で使う準備ができました。


## 4. VisualStudioの外部ツールの検索場所指定を1,2でインストールしたnpm,gitに指定する

[ツール＞オプション＞プロジェクトおよびソリューション＞外部webツール]で外部ツールを使用する際の検索先を以下のように変更します。

>1. [$(PATH)]を一番上にする
2. [$(DevEnvDir)\Extensions\Microsoft\Web Tools\External\git]のチェックを外す
2. gitのパス(ex)[C:\Program Files (x86)\Git\bin])を追加してチェックを付ける


1.でVS内蔵のnpmからプロキシ設定をしたnpmを優先して使用するようにしています。
また、2.3.ではVS内蔵のgitを検索候補から外し、プロキシ設定をしたgitを追加しています。

## 5. プロジェクトの.bowerrcにプロキシ設定をする
最後に、プロジェクトにbower.jsonを追加したときに一緒に追加される.bowerrcを以下のように修正します。

```.bowerrc
//.bowerrc
{
  "directory": "wwwroot/lib",
  "proxy" : "http://proxy.example.com:8080",
  "https-proxy" : "http://proxy.example.com:8080"
}
```

これで完了です！

# 参考
[proxy環境下でのnpm config設定](http://qiita.com/tenten0213/items/7ca15ce8b54acc3b5719)
[bowerにプロキシの設定をする方法](https://gist.github.com/taichi/6409876)
[Visual Studio 2015 bower configuration & proxy settings?](http://stackoverflow.com/questions/28808966/visual-studio-2015-bower-configuration-proxy-settings)
[VS 2015 + Bower: Does not work behind firewall](http://stackoverflow.com/questions/28725727/vs-2015-bower-does-not-work-behind-firewall)
[Visual Studio 2015 - Bower not working](http://stackoverflow.com/questions/34314510/visual-studio-2015-bower-not-working)
[Gulpfile.js failed to load in Task Runner Explorer(VS2015.1) #247](https://github.com/VirtoCommerce/vc-community/issues/247)