Хотя ответ Ливиу Костя правильный, мне все же потребовалось некоторое время, чтобы понять, как это делается на самом деле. Итак, вот мое пошаговое руководство, начиная с нового проекта ASP.NET 4.5.2 MVC. Это руководство включает в себя управление пакетами на стороне клиента с помощью bower, но (пока) не охватывает пакет / grunt / gulp.
Шаг 1 (Создать проект)
Создайте новый проект ASP.NET 4.5.2 (шаблон MVC) с помощью Visual Studio 2015.
Шаг 2 (Удаление пакета / оптимизации из проекта)
Шаг 2.1
Удалите следующие пакеты Nuget:
- бутстрап
- Microsoft.jQuery.Unobstrusive.Validation
- jQuery.Validation
- jQuery
- Microsoft.AspNet.Web.Optimization
- WebGrease
- Antlr
- 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
Добавить bootstrap
, jquery-validation-unobtrusive
, modernizr
и 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 рекомендует расширение Bundler & Minifier в качестве замены сборщика по умолчанию, который я удаляю на шаге 2. Он также рекомендует эту статью о сборке с Gulp.
bower.json
файл в Visual Studio 2015, он также автоматически создаетbowerrc
файл, который переопределяет местоположение по умолчанию для установки bower сbower_components
вwwwroot/lib
На самом деле это не так уж и сложно. Просто внутри Visual Studio есть лучшая поддержка для всех этих вещей, например, когда вы добавляете новые элементы, у вас есть шаблоны для файлов конфигурации bower или npm. Также у вас есть шаблоны для файлов конфигурации gulp или grunt.
Но на самом деле вызов задач grunt / gulp и их привязка к событиям сборки по-прежнему выполняется с помощью Task Runner Explorer, как и в VS 2013.
источник