Я хочу обновить Bootstrap в ASP.NET Core с помощью NuGet. Я использовал это:
Install-Package bootstrap -Version 4.0.0
Он добавил зависимости, но как мне теперь добавить его в свой проект? Каков путь для локальных зависимостей NuGet?
.net
asp.net-core
nuget
bootstrap-4
asp.net-core-2.0
разработчик
источник
источник
Ответы:
Как уже упоминалось, диспетчер пакетов Bower , который обычно использовался для подобных зависимостей в приложении, которое не полагается на тяжелые сценарии на стороне клиента, находится в стадии выхода и активно рекомендует перейти на другие решения:
Поэтому, хотя вы все еще можете использовать его прямо сейчас, Bootstrap также объявил о прекращении его поддержки . В результате встроенные шаблоны ASP.NET Core медленно редактируются, чтобы отойти от них.
К сожалению, четкого пути вперед нет. В основном это связано с тем, что веб-приложения постоянно переходят на клиентскую сторону, требуя сложных систем сборки на стороне клиента и множества зависимостей. Поэтому, если вы создаете что-то подобное, вы, возможно, уже знаете, как решить эту проблему, и вы можете расширить существующий процесс сборки, просто включив туда Bootstrap и jQuery.
Но все еще существует множество веб-приложений, которые не так тяжелы на стороне клиента, где приложение по-прежнему выполняется в основном на сервере, и в результате сервер обслуживает статические представления. Бауэр ранее заполнил это, упростив публикацию зависимостей на стороне клиента без особых усилий.
В мире .NET у нас также есть NuGet, и с предыдущими версиями ASP.NET мы могли бы также использовать NuGet для добавления зависимостей к некоторым зависимостям на стороне клиента, поскольку NuGet просто правильно помещал бы контент в наш проект. К сожалению, в новом
.csproj
формате и новом NuGet установленные пакеты находятся за пределами нашего проекта, поэтому мы не можем просто ссылаться на них.Это оставляет нам несколько вариантов, как добавить наши зависимости:
Одноразовая установка
Это то, что в настоящее время делают шаблоны ASP.NET Core, которые не являются одностраничными приложениями. Когда вы используете их для создания нового приложения,
wwwroot
папка просто содержит папкуlib
, содержащую зависимости:Если вы внимательно посмотрите на файлы в настоящее время, вы увидите, что они изначально были помещены туда вместе с Bower для создания шаблона, но это, вероятно, скоро изменится. Основная идея состоит в том, что файлы копируются в папку один раз,
wwwroot
чтобы вы могли на них положиться.Для этого мы можем просто следовать введению Bootstrap и напрямую загружать скомпилированные файлы . Как упоминалось на сайте загрузки, в него не входит jQuery , поэтому нам также необходимо загрузить его отдельно; он действительно содержит Popper.js, хотя, если мы решим использовать
bootstrap.bundle
файл позже, что мы и сделаем. Для jQuery мы можем просто получить один «сжатый рабочий » файл с сайта загрузки (щелкните ссылку правой кнопкой мыши и выберите в меню «Сохранить ссылку как ...»).Остается несколько файлов, которые мы просто извлечем и скопируем в
wwwroot
папку. Мы также можем сделатьlib
папку, чтобы было понятнее, что это внешние зависимости:Это все, что нам нужно, так что теперь нам просто нужно настроить наш
_Layout.cshtml
файл, чтобы включить эти зависимости. Для этого мы добавляем следующий блок в<head>
:И следующий блок в самом конце
<body>
:Вы также можете просто включить минифицированные версии и пропустить
<environment>
здесь помощников тегов, чтобы упростить задачу . Но это все, что вам нужно сделать, чтобы продолжить.Зависимости от NPM
Более современный способ, даже если вы хотите обновлять свои зависимости, - это получить зависимости из репозитория пакетов NPM. Вы можете использовать для этого NPM или Yarn; в моем примере я буду использовать NPM.
Для начала нам нужно создать
package.json
файл для нашего проекта, чтобы мы могли указать наши зависимости. Для этого мы просто делаем это в диалоговом окне «Добавить новый элемент»:Когда у нас это есть, нам нужно отредактировать его, чтобы включить наши зависимости. Это должно выглядеть примерно так:
При сохранении Visual Studio уже запустит NPM, чтобы установить нам зависимости. Они будут установлены в
node_modules
папку. Итак, что осталось сделать, это загрузить файлы оттуда в нашуwwwroot
папку. Для этого есть несколько вариантов:bundleconfig.json
для объединения и минификацииМы можем использовать один из различных способов использования a
bundleconfig.json
для объединения и минификации, как описано в документации . Очень простой способ - просто использовать NuGet-пакет BuildBundlerMinifier, который автоматически устанавливает для этого задачу сборки.После установки этого пакета нам нужно создать
bundleconfig.json
в корне проекта файл со следующим содержимым:Это в основном настраивает, какие файлы и во что объединять. А когда мы строим, мы видим, что
vendor.min.css
иvendor.js.css
создаются правильно. Итак, все, что нам нужно сделать, это снова настроить нас,_Layouts.html
чтобы включить эти файлы:Использование диспетчера задач, например Gulp
Если мы хотим немного углубиться в разработку на стороне клиента, мы также можем начать использовать инструменты, которые мы бы там использовали. Например, Webpack, который очень часто используется для сборки всего. Но мы также можем начать с более простого диспетчера задач, такого как Gulp, и выполнить несколько необходимых шагов самостоятельно.
Для этого мы добавляем
gulpfile.js
в корень нашего проекта следующее содержимое:Теперь нам также нужно настроить наши
package.json
зависимости отgulp
иgulp-concat
:Наконец, мы редактируем наш,
.csproj
чтобы добавить следующую задачу, которая гарантирует, что наша задача Gulp выполняется при сборке проекта:Теперь, когда мы строим, то
default
задание выполняется глоток, который запускаетbuild-vendor
задачи, которые затем строят нашиvendor.min.css
иvendor.min.js
так же , как мы делали раньше. Итак, после настройки,_Layout.cshtml
как указано выше, мы можем использовать jQuery и Bootstrap.Хотя первоначальная настройка Gulp немного сложнее, чем
bundleconfig.json
описанная выше, теперь мы вошли в Node-мир и можем начать использовать там все остальные классные инструменты. Так что, возможно, стоит начать с этого.Вывод
Хотя это внезапно стало намного сложнее, чем просто использовать Bower, мы также получаем большой контроль с этими новыми параметрами. Например, теперь мы можем решить, какие файлы на самом деле включены в
wwwroot
папку и как они выглядят. И мы также можем использовать это, чтобы сделать первые шаги в мире разработки на стороне клиента с помощью Node, что, по крайней мере, должно немного помочь с кривой обучения.источник
node -v
и получить текущую версию здесь на nodejs.orgГлядя на это, кажется, что подход LibMan лучше всего подходит для моих нужд с добавлением Bootstrap. Мне это нравится, потому что теперь он встроен в Visual Studio 2017 (15.8 или новее) и имеет собственные диалоговые окна.
Обновление 6/11/2020: bootstrap 4.1.3 теперь добавлен по умолчанию в VS-2019.5 (спасибо Харальду С. Ханссену за внимание).
В методе по умолчанию, который VS добавляет в проекты, используется Bower, но похоже, что он скоро исчезнет. В шапке страницы Microsoft bower пишут:
Следующие несколько ссылок ведут к Использованию LibMan с ASP.NET Core в Visual Studio, где показано, как можно добавлять библиотеки с помощью встроенного диалогового окна:
Затем для начальной загрузки просто (1) выберите unpkg, (2) введите «bootstrap @ ..» (3) Установите. После этого вам просто нужно проверить правильность всех включений в _Layout.cshtml или других местах. Это должно быть что-то вроде href = "~ / lib / bootstrap / dist / js / bootstrap ..." )
источник
Попробуйте Libman , это так же просто, как Bower, и вы можете указать wwwroot / lib / в качестве папки для загрузки.
источник
Какая уловка для меня:
1) Щелкните правой кнопкой мыши wwwroot> Добавить> Библиотека на стороне клиента
2) Набрал "bootstrap" в поле поиска.
3) Выберите «Выбрать конкретные файлы».
4) Прокрутите вниз и выберите папку. В моем случае я выбрал "twitter-bootstrap"
5) Отметьте "css" и "js"
6) Нажмите «Установить».
Через несколько секунд у меня все они находятся в папке wwwroot. Сделайте то же самое для всех пакетов на стороне клиента, которые вы хотите добавить.
источник
Похоже, сейчас Microsoft предпочитает Libman. Он интегрирован в Visual Studio 2017 (15.8).
В этой статье описывается, как его использовать и даже как настроить восстановление, выполняемое процессом сборки.
В документации Bootstrap указано, какие файлы вам нужны в вашем проекте.
Следующий пример должен работать как конфигурация для libman.json.
}
источник
Мы используем bootstrap 4 в ядре asp.net, но ссылаемся на библиотеки из «npm» с помощью расширения «Package Installer» и обнаружили, что это лучше, чем Nuget для библиотек Javascript / CSS.
Затем мы используем расширение «Bundler & Minifier», чтобы скопировать соответствующие файлы для распространения (из папки npm node_modules, которая находится вне проекта) в wwwroot, как нам нравится для разработки / развертывания.
источник
К сожалению, вам будет сложно использовать NuGet для установки Bootstrap (или большинства других фреймворков JavaScript / CSS) в проекте .NET Core. Если вы посмотрите на установку NuGet, она сообщит вам, что она несовместима:
Если вы должны знать, где находятся зависимости локальных пакетов, теперь они находятся в каталоге вашего локального профиля. то есть
%userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts
.Однако я предлагаю перейти на npm или bower - как в ответе Сайнешвара.
источник
BS4 теперь доступен в .NET Core 2.2 . На установщик SDK 2.2.105 x64 точно. Я использую Visual Studio 2017 с ним. Пока все хорошо для новых проектов веб-приложений.
источник
Почему бы просто не использовать CDN? Если вам не нужно редактировать код BS, вам просто нужно ссылаться на коды в CDN.
См. BS 4 CDN здесь:
https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp
Внизу страницы.
источник
Используйте файл конфигурации nmp (добавьте его в свой веб-проект), затем добавьте необходимые пакеты так же, как мы это делали с помощью bower.json, и сохраните. Visual studio скачает и установит его. Вы найдете пакет под узлом nmp вашего проекта.
источник