Uso de Grunt, Bower, Gulp, NPM con Visual Studio 2015 para un proyecto ASP.NET 4.5
visual-studio-2015 asp.net-4.5 (2)
Visual Studio 2015 viene con soporte integrado para herramientas como Grunt, Bower, Gulp y NPM para proyectos ASP.NET 5.
Sin embargo, cuando creo un proyecto ASP.NET 4.5.2 con Visual Studio 2015, no usa estas herramientas. Me gustaría usar Bower en lugar de Nuget para administrar los paquetes del lado del cliente.
Puedo encontrar información sobre el uso de estas herramientas con Visual Studio 2013 (consulte this pregunta, por ejemplo). Pero supongo que el procedimiento es diferente para Visual Studio 2015, ya que ha incorporado soporte para estas herramientas.
En realidad no es muy diferente.
Es solo que hay un mejor soporte para todos estos dentro de Visual Studio, por ejemplo, cuando agrega nuevos elementos, tiene plantillas para archivos de configuración bower o npm.
También tiene plantillas para archivos de configuración Gulp o Grunt.
Pero la llamada a las tareas de gruñir / tragar y vincularlas para crear eventos todavía se realiza con el Explorador de tareas Runner, al igual que en VS 2013.
Si bien la respuesta de Liviu Costea es correcta, todavía me llevó bastante tiempo descubrir cómo se hace realmente. Así que aquí está mi guía paso a paso a partir de un nuevo proyecto MVC de ASP.NET 4.5.2. Esta guía incluye la gestión de paquetes del lado del cliente utilizando Bower, pero no cubre (todavía) agrupación / gruñido / trago.
Paso 1 (Crear proyecto)
Cree un nuevo proyecto ASP.NET 4.5.2 (plantilla MVC) con Visual Studio 2015.
Paso 2 (Eliminar agrupación / optimización del proyecto)
Paso 2.1
Desinstale los siguientes paquetes Nuget:
- oreja
- Microsoft.jQuery.Unobstrusive.Validation
- jQuery.Validation
- jQuery
- Microsoft.AspNet.Web.Optimization
- WebGrease
- Antlr
- Modernizr
- Responder
Paso 2.2
Eliminar
App_Start/BundleConfig.cs
del proyecto.
Paso 2.3
Eliminar
using System.Web.Optimization;
y
BundleConfig.RegisterBundles(BundleTable.Bundles);
de
Global.asax.cs
Paso 2.4
Eliminar
<add namespace="System.Web.Optimization"/>
de
Views/Web.config
Paso 2.5
Eliminar enlaces de ensamblaje para
System.Web.Optimization
y
WebGrease
de
Web.config
Paso 3 (Agregar bower al proyecto)
Paso 3.1
Agregue un nuevo archivo
package.json
al proyecto (plantilla de elemento del
NPM configuration file
)
Paso 3.2
Agregue
devDependencies
a
devDependencies
:
{
"version": "1.0.0",
"name": "ASP.NET",
"private": true,
"devDependencies": {
"bower": "1.4.1"
}
}
El paquete Bower se instala automáticamente cuando se guarda
package.json
.
Paso 4 (Configurar bower)
Paso 4.1
Agregue un nuevo archivo
bower.json
al proyecto (plantilla de elemento del
Bower Configuration file
)
Paso 4.2
Agregue
bootstrap
,
jquery-validation-unobtrusive
,
modernizr
y
respond
a las dependencias:
{
"name": "ASP.NET",
"private": true,
"dependencies": {
"bootstrap": "*",
"jquery-validation-unobtrusive": "*",
"modernizr": "*",
"respond": "*"
}
}
Estos paquetes y sus dependencias se instalan automáticamente cuando se guarda
bower.json
.
Paso 5 (Modificar
Views/Shared/_Layout.cshtml
)
Paso 5.1
Reemplazar
@Styles.Render("~/Content/css")
con
<link rel="stylesheet" href="~/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/Content/Site.css" />
Paso 5.2
Reemplazar
@Scripts.Render("~/bundles/modernizr")
con
<script src="~/wwwroot/lib/modernizr/modernizr.js" ></script>
Paso 5.3
Reemplazar
@Scripts.Render("~/bundles/jquery")
con
<script src="~/wwwroot/lib/jquery/dist/jquery.min.js"></script>
Paso 5.4
Reemplazar
@Scripts.Render("~/bundles/bootstrap")
con
<script src="~/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/wwwroot/lib/respond/dest/respond.min.js"></script>
Paso 6 (Modificar otras fuentes)
En todas las demás vistas, reemplace
@Scripts.Render("~/bundles/jqueryval")
con
<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>
Enlaces útiles
- http://idisposable.co.uk/2015/02/switching-the-client-side-build-library-in-visual-studio-2013-mvc-template-to-gulp-and-bower/
- http://www.baconapplications.com/running-bower-grunt-in-visual-studio-2013/
- http://devkimchi.com/1511/integrating-grunt-and-bower-with-visual-studio-2013/
- http://www.dotnetcurry.com/visualstudio/1096/using-grunt-gulp-bower-visual-studio-2013-2015
- http://andy-carter.com/blog/a-beginners-guide-to-package-manager-bower-and-using-gulp-to-manage-components
- http://www.jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/
Agrupación y Minificación
En los comentarios a continuación, LavaHot recomienda la extensión Bundler & Minifier como reemplazo del paquete predeterminado que eliminé en el paso 2. También recomienda http://www.jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/ sobre el paquete con Gulp.