Visual Studio 2015 bietet integrierte Unterstützung für Tools wie Grunt, Bower, Gulp und NPM für ASP.NET 5-Projekte.
Wenn ich jedoch ein ASP.NET 4.5.2-Projekt mit Visual Studio 2015 erstelle, werden diese Tools nicht verwendet. Ich möchte Bower anstelle von Nuget verwenden, um clientseitige Pakete zu verwalten.
Ich kann Informationen zur Verwendung dieser Tools mit Visual Studio 2013 finden (siehe this question zum Beispiel). Ich denke jedoch, dass das Verfahren für Visual Studio 2015 anders ist, da es diese Tools unterstützt.
Obwohl Liviu Costeas Antwort richtig ist, habe ich noch einige Zeit gebraucht, um herauszufinden, wie es tatsächlich gemacht wird. Hier ist meine schrittweise Anleitung, die mit einem neuen ASP.NET 4.5.2 MVC-Projekt beginnt. Dieses Handbuch beinhaltet die clientseitige Paketverwaltung mit Bower, deckt jedoch (noch) nicht Bundling/Grunt/Gulp ab.
Erstellen Sie mit Visual Studio 2015 ein neues ASP.NET 4.5.2-Projekt (MVC-Vorlage).
Deinstallieren Sie die folgenden Nuget-Pakete:
Entfernen Sie App_Start\BundleConfig.cs
Aus dem Projekt.
Löschen
using System.Web.Optimization;
und
BundleConfig.RegisterBundles(BundleTable.Bundles);
von Global.asax.cs
Löschen
<add namespace="System.Web.Optimization"/>
von Views\Web.config
Baugruppenbindungen für System.Web.Optimization
Und WebGrease
aus Web.config
Entfernen
Neue package.json
- Datei zum Projekt hinzufügen (NPM configuration file
- Elementvorlage)
bower
zu devDependencies
hinzufügen:
{
"version": "1.0.0",
"name": "ASP.NET",
"private": true,
"devDependencies": {
"bower": "1.4.1"
}
}
Das Laubenpaket wird automatisch installiert, wenn package.json
Gespeichert wird.
Neue bower.json
- Datei zum Projekt hinzufügen (Bower Configuration file
- Elementvorlage)
Fügen Sie den Abhängigkeiten bootstrap
, jquery-validation-unobtrusive
, modernizr
und respond
hinzu:
{
"name": "ASP.NET",
"private": true,
"dependencies": {
"bootstrap": "*",
"jquery-validation-unobtrusive": "*",
"modernizr": "*",
"respond": "*"
}
}
Diese Pakete und ihre Abhängigkeiten werden automatisch installiert, wenn bower.json
Gespeichert wird.
Views\Shared\_Layout.cshtml
)Ersetzen
@Styles.Render("~/Content/css")
mit
<link rel="stylesheet" href="~/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/Content/Site.css" />
Ersetzen
@Scripts.Render("~/bundles/modernizr")
mit
<script src="~/wwwroot/lib/modernizr/modernizr.js" ></script>
Ersetzen
@Scripts.Render("~/bundles/jquery")
mit
<script src="~/wwwroot/lib/jquery/dist/jquery.min.js"></script>
Ersetzen
@Scripts.Render("~/bundles/bootstrap")
mit
<script src="~/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/wwwroot/lib/respond/dest/respond.min.js"></script>
In allen anderen Ansichten ersetzen
@Scripts.Render("~/bundles/jqueryval")
mit
<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>
In den Kommentaren unten empfiehlt LavaHot die Bundler & Minifier-Erweiterung als Ersatz für den Standard-Bundler, den ich in Schritt 2 entferne. Er empfiehlt auch diesen Artikel = beim Bündeln mit Gulp.
Es ist eigentlich nicht zu unterschiedlich. Es ist nur so, dass all dies in Visual Studio besser unterstützt wird, wenn Sie beispielsweise neue Elemente hinzufügen, für die Sie Vorlagen für Bower- oder Npm-Konfigurationsdateien haben. Sie haben auch Vorlagen für die Konfigurationsdateien gulp oder grunt.
Das eigentliche Aufrufen von Grunt/Gulp-Tasks und das Binden von Tasks zum Erstellen von Ereignissen wird jedoch weiterhin mit Task Runner Explorer ausgeführt, genau wie in VS 2013.