Embora a resposta de Liviu Costea esteja correta, ainda levei algum tempo para descobrir como isso é realmente feito. Portanto, aqui está meu guia passo a passo começando com um novo projeto ASP.NET 4.5.2 MVC. Este guia inclui o gerenciamento de pacotes do lado do cliente usando bower, mas (ainda) não cobre bundling / grunt / gulp.
Etapa 1 (Criar Projeto)
Crie um novo projeto ASP.NET 4.5.2 (modelo MVC) com o Visual Studio 2015.
Etapa 2 (Remover Empacotamento / Otimização do Projeto)
Etapa 2.1
Desinstale os seguintes pacotes Nuget:
- bootstrap
- Microsoft.jQuery.Unobstrusive.Validation
- jQuery.Validation
- jQuery
- Microsoft.AspNet.Web.Optimization
- WebGrease
- Antlr
- Modernizr
- Responder
Etapa 2.2
Remova App_Start\BundleConfig.csdo projeto.
Etapa 2.3
Remover
using System.Web.Optimization;
e
BundleConfig.RegisterBundles(BundleTable.Bundles);
de Global.asax.cs
Etapa 2.4
Remover
<add namespace="System.Web.Optimization"/>
de Views\Web.config
Etapa 2.5
Remova as amarrações do conjunto para System.Web.Optimizatione WebGreasedeWeb.config
Etapa 3 (adicionar caramanchão ao projeto)
Etapa 3.1
Adicionar novo package.jsonarquivo ao projeto ( NPM configuration filemodelo de item)
Etapa 3.2
Adicionar bowera devDependencies:
{
"version": "1.0.0",
"name": "ASP.NET",
"private": true,
"devDependencies": {
"bower": "1.4.1"
}
}
O pacote bower é instalado automaticamente quando package.jsoné salvo.
Etapa 4 (configurar bower)
Etapa 4.1
Adicionar novo bower.jsonarquivo ao projeto ( Bower Configuration filemodelo de item)
Etapa 4.2
Adicionar bootstrap, jquery-validation-unobtrusive, modernizre responda dependências:
{
"name": "ASP.NET",
"private": true,
"dependencies": {
"bootstrap": "*",
"jquery-validation-unobtrusive": "*",
"modernizr": "*",
"respond": "*"
}
}
Esses pacotes e suas dependências são instalados automaticamente quando bower.jsoné salvo.
Etapa 5 (modificar Views\Shared\_Layout.cshtml)
Etapa 5.1
Substituir
@Styles.Render("~/Content/css")
com
<link rel="stylesheet" href="~/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/Content/Site.css" />
Etapa 5.2
Substituir
@Scripts.Render("~/bundles/modernizr")
com
<script src="~/wwwroot/lib/modernizr/modernizr.js" ></script>
Etapa 5.3
Substituir
@Scripts.Render("~/bundles/jquery")
com
<script src="~/wwwroot/lib/jquery/dist/jquery.min.js"></script>
Etapa 5.4
Substituir
@Scripts.Render("~/bundles/bootstrap")
com
<script src="~/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="~/wwwroot/lib/respond/dest/respond.min.js"></script>
Etapa 6 (modificar outras fontes)
Em todas as outras visualizações, substitua
@Scripts.Render("~/bundles/jqueryval")
com
<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>
Links Úteis
Empacotamento e redução
Nos comentários abaixo, LavaHot recomenda a extensão Bundler & Minifier como um substituto para o bundler padrão, que removo na etapa 2. Ele também recomenda este artigo sobre empacotamento com Gulp.