ASP.NET 4.5プロジェクトのVisual Studio 2015でGrunt、Bower、Gulp、NPMを使用する


90

Visual Studio 2015には、Grunt、Bower、Gulp、NPM for ASP.NET 5プロジェクトなどのツールのサポートが組み込まれています。

ただし、Visual Studio 2015を使用してASP.NET 4.5.2プロジェクトを作成すると、これらのツールは使用されません。クライアント側のパッケージを管理するために、nugetの代わりにbowerを使用したいと思います。

Visual Studio 2013でのこれらのツールの使用に関する情報を見つけることができます(たとえば、この質問を参照してください)。しかし、Visual Studio 2015では、これらのツールのサポートが組み込まれているため、手順が異なると思います。

回答:


128

一方ではLiviu Costeaの答えが正しいか、それはまだそれが実際にどのように行われるかを理解するために私にかなりの時間を要しました。これが、新しいASP.NET 4.5.2 MVCプロジェクトから始まる私のステップバイステップガイドです。このガイドには、bowerを使用したクライアント側のパッケージ管理が含まれていますが、(まだ)バンドル/グラント/ gulpについては説明していません。

ステップ1(プロジェクトの作成)

Visual Studio 2015で新しいASP.NET 4.5.2プロジェクト(MVCテンプレート)を作成します。

ステップ2(プロジェクトからのバンドル/最適化の削除)

ステップ2.1

次のNugetパッケージをアンインストールします。

  • ブートストラップ
  • Microsoft.jQuery.Unobstrusive.Validation
  • jQuery.Validation
  • jQuery
  • Microsoft.AspNet.Web.Optimization
  • Webグリース
  • アントラー
  • Modernizr
  • 応答する

ステップ2.2

App_Start\BundleConfig.csプロジェクトから削除します。

ステップ2.3

削除する

using System.Web.Optimization;

そして

BundleConfig.RegisterBundles(BundleTable.Bundles);

から Global.asax.cs

ステップ2.4

削除する

<add namespace="System.Web.Optimization"/>

から Views\Web.config

ステップ2.5

以下のためのアセンブリバインディングを削除System.Web.OptimizationしてWebGreaseから、Web.config

ステップ3(プロジェクトにバウアーを追加する)

ステップ3.1

package.jsonプロジェクトに新しいファイルを追加(NPM configuration fileアイテムテンプレート)

ステップ3.2

追加bowerするにはdevDependencies

{
  "version": "1.0.0",
  "name": "ASP.NET",
  "private": true,
  "devDependencies": {
    "bower": "1.4.1"
  }
}

bowerパッケージは、package.json保存時に自動的にインストールされます。

ステップ4(バウ​​ワーの構成)

ステップ4.1

bower.jsonプロジェクトに新しいファイルを追加(Bower Configuration fileアイテムテンプレート)

ステップ4.2

追加bootstrapjquery-validation-unobtrusivemodernizrおよびrespond依存関係に:

{
  "name": "ASP.NET",
  "private": true,
  "dependencies": {
    "bootstrap": "*",
    "jquery-validation-unobtrusive": "*",
    "modernizr": "*",
    "respond": "*"
  }
}

これらのパッケージとその依存関係bower.jsonは、保存時に自動的にインストールされます。

ステップ5(変更Views\Shared\_Layout.cshtml

ステップ5.1

交換する

@Styles.Render("~/Content/css")

<link rel="stylesheet" href="~/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/Content/Site.css" />

ステップ5.2

交換する

@Scripts.Render("~/bundles/modernizr")

<script src="~/wwwroot/lib/modernizr/modernizr.js" ></script>

ステップ5.3

交換する

@Scripts.Render("~/bundles/jquery")

<script src="~/wwwroot/lib/jquery/dist/jquery.min.js"></script>

ステップ5.4

交換する

@Scripts.Render("~/bundles/bootstrap")

<script src="~/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/wwwroot/lib/respond/dest/respond.min.js"></script>

ステップ6(他のソースを変更する)

他のすべてのビューで置き換え

@Scripts.Render("~/bundles/jqueryval")

<script src="~/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>

役立つリンク


バンドルと縮小

以下のコメントで、LavaHotは、ステップ2で削除したデフォルトのバンドラーの代わりとして、Bundler&Minifier拡張機能を推奨しています。彼は、Gulpとのバンドルに関するこの記事も推奨しています


6
どうもありがとうございました。1つのステップが抜けていることは正しいですか:〜/ wwwrootを/../bower_componentsにマップする方法(またはgulp / grunt config bowerパッケージを "〜/ wwwroot"に移動する方法)このステップを追加して、その方法を説明できますかVS2015環境でIIS Expressを実行するためにjs / cssコードを調整することをお勧めしますか?
Roman Pokrovskij 2015

あなたが作成する場合bower.jsonのVisual Studio 2015のファイルを、それが自動的に作成されますbowerrcから亭のインストールのデフォルトの場所を上書きしますだけでなく、ファイル、bower_componentsへのwwwroot/lib
セージブラッシュGIS

1
つまり、バンドルは私にとって非常に便利です。デフォルトのバンドラー削除したので、Bundler&Minifierを置き換えることをお勧めします。Task Runner Explorerを使用し、npmおよびbowerに類似した構成ファイルがあります。これもWeb Essentialsの一部なので、すでにインストールされている場合があります。
LavaHot

1
ここでは、gulpにバンドルするトピックに関する素晴らしい記事を紹介します。
LavaHot

1
詳細情報@SagebrushGISをありがとう!また、MVCプロジェクトにBowerパッケージ管理を追加する方法についても調査しています。VS2015経由でbower.jsonを追加しましたが、あなたが話しているbowerrcファイルが見つかりません。欠落している可能性のある手順、またはこのファイルはどこにありますか?今のところ回避策として、次を使用します:<link rel = "stylesheet" href = "〜/ bower_components / bootstrap / dist / css / bootstrap.min.css" />
Guido Kersten

4

実際にはそれほど違いはありません。たとえば、新しいアイテムを追加するときに、bowerまたはnpm構成ファイルのテンプレートを使用すると、Visual Studio内でこれらすべてのサポートが向上するというだけです。また、gulpまたはgrunt設定ファイルのテンプレートもあります。
しかし、実際にgrunt / gulpタスクを呼び出し、それらをビルドイベントにバインドすることは、VS 2013と同様に、Task Runner Explorerで行われます。


ツールがインストールされた状態でVSにnpmパッケージをインストールする方法はまだわかりません。.npmインストールを試行するたびに、プロジェクトがノード用にセットアップされていないと表示されます
Mastro

まず、ルートフォルダーにpackage.jsonを作成する必要があります。通常は、csprojファイルの兄弟としてターゲットプロジェクトのルートに作成します。その後、npmコマンドを使用できます
Roman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.