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.cs
do 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.Optimization
e WebGrease
deWeb.config
Etapa 3 (adicionar caramanchão ao projeto)
Etapa 3.1
Adicionar novo package.json
arquivo ao projeto ( NPM configuration file
modelo de item)
Etapa 3.2
Adicionar bower
a 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.json
arquivo ao projeto ( Bower Configuration file
modelo de item)
Etapa 4.2
Adicionar bootstrap
, jquery-validation-unobtrusive
, modernizr
e respond
a 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.