Что-то заменило bundleconfig.json в ASP.NET Core MVC 2.1?

Когда я создаю новый ASP.NET MVC Core с таргетингом на 2.1 RC1, он не создает файл bundleconfig.json, который используется для объединения и минификации. Этот файл создается, если я нацелен на 2.0.

Вот пример, решение содержит новый проект с таргетингом на 2.0 и другой таргетинг на 2.1: Что-то заменило bundleconfig.json в ASP.NET Core MVC 2.1?

Что-то заменило встроенное объединение и минификацию, или это просто ошибка в RC1?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
31
0
13 214
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

У меня была та же проблема, я смог скопировать существующий файл пакета в проект, и это сработало для меня. Вам нужно следуйте этому руководству и установить расширение Bundle & Minifier… также убедитесь, что вы используете VS 15.7.

Похоже, что файл пакета не включен в последний шаблон проекта.

Я использую 15.7.1. Я заставил его работать, добавив файл вручную, но мне интересно, почему они удалили его. Интересно, заменяет ли что-нибудь.

Josh 22.05.2018 01:03
Ответ принят как подходящий

bundleconfig.json был удален из шаблонов 2.1, поскольку он полагался на инструмент, не созданный и не поддерживаемый Microsoft. См. https://github.com/aspnet/templating/issues/326.

This file [bundleconfig.json] is for configuring the various incantations of the BundlerMinifier tool, which isn't actually shipped in the templates, or supported by Microsoft.

Команда ASP.NET Core заменила bundleconfig на «libman». Щелкните правой кнопкой мыши проект -> Добавить -> Клиентская библиотека и добавьте нужные пакеты.

Спасибо, я заметил, что для работы BundlerMinifier требуется установка пакета Nuget. Я играл с LibMan на прошлой неделе, я не понимал, что он справляется с объединением и минификацией, документы и примеры легкие. Кроме того, он не был окончательно вырезан для 15.7, вы должны установить 15.8 Preview для использования. Я понимаю логику удаления, но, поскольку LibMan был удален из 15.7, возникнет пробел с шаблонами, поскольку .NET Core 2.1 будет RTM перед выпуском 15.8. Как бы мне ни нравился ASP.NET Core, с управлением пакетами на стороне клиента слишком много беспорядка и путаницы.

Josh 26.05.2018 22:54

Хотя у Nuget были свои ограничения, для многих из нас он работал достаточно хорошо для управления библиотекой client-sde. Я бы хотел, чтобы было приложено больше усилий, чтобы заставить его работать с ASP.NET Core, что избавило бы нас от попыток выяснить, какую комбинацию Bower, npm, glup, grunt, webpack и LibMan использовать.

Josh 26.05.2018 23:03

Не понимал, что он был вырезан из VS 15.7. Я всегда использую предварительные версии VS, поэтому думал, что он выпущен на стабильный канал.

natemcmaster 27.05.2018 03:43

Кроме того, да, NuGet был не очень хорошо разработан для управления библиотекой на стороне клиента. Я использовал пряжу и веб-пакет с aspnetcore, и это хорошо работает для моей команды

natemcmaster 27.05.2018 03:47

Проблема заключается в текущем состоянии ASP.NET Core 2.1 и VS 2017 15.8 (предварительная версия), у нас нет встроенного управления пакетами на стороне клиента, объединения или минификации. Для разработчика, пришедшего из ASP.NET MVC 5, неутешительно использовать шаблон по умолчанию и осознавать, что файлы JavaScript статичны, и остается досадно тратить время на исследование управления библиотекой на стороне клиента. Опять же, я знаю, что на стороне клиента NuGet были ограничения, но этого было достаточно для приложений с небольшим количеством библиотек, но хотелось иметь возможность управлять зависимостями и централизовать управление обновлениями.

Josh 27.05.2018 16:20

Вы используете установщик пряжи (marketplace.visualstudio.com/…) для VS?

Josh 27.05.2018 16:29

Я использую пакет Yarn.MSBuild, который вызывает команды пряжи в качестве целей MSBuild. Однако это в основном для сборок CI. В основном с использованием VS Code, поэтому легко запускать команды из интегрированной командной строки, такие как запускать 'webpack --watch', для создания клиентских ресурсов отдельно от .NET.

natemcmaster 28.05.2018 02:58

Я только что установил Bundler и Minifier в свой проект ASP.NET Core MVC. Когда я щелкнул правой кнопкой мыши Bundler и Minifier> Bundle File, он создал для меня bundleconfig.json, который я мог затем настроить для объединения в каждую сборку. При публикации моего веб-приложения в Azure были отправлены правильные миниатюрные файлы CSS и JS.

Одним из недостатков является то, что вам нужно минимизировать каждый файл, что для меня не имеет значения, поскольку у меня их два, но я думаю, что в большинстве реальных проектов будет намного больше.

Обратите внимание, что это работает для net core 2.2, не уверен насчет 2.1. Также обратите внимание, что в net core 3 вместо него должны (должны?) Использоваться «локальные инструменты»: https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#local-tools.

Наконец-то удалось успешно настроить предварительную сборку с использованием рекомендованного (на момент написания) пакета BundlerMinifier.Core.

Добавьте в файл .csproj следующее:

  <!-- 
       WARNING: don't update to latest version of BundlerMinifier.Core (as of 3.2.435)! 
         3.0.415 is the latest version that appears to work with this method of
         automating bundling/minification 
  -->
  <ItemGroup>
    <PackageReference Include = "BundlerMinifier.Core" Version = "3.0.415" />
    <DotNetCliToolReference Include = "BundlerMinifier.Core" Version = "3.0.415" />
  </ItemGroup>
  <Target Name = "RestoreToolsAndBundle" BeforeTargets = "Build">
    <Exec Command = "dotnet tool restore" />
    <Exec Command = "dotnet bundle" WorkingDirectory = "$(ProjectDir)" />
  </Target>

Обратите внимание, что это должен быть все, который вам нужен; вам не нужно ни расширение VS Bundler & Minifier, ни пакет BuildBundlerMinifier.

Попробуйте выполнить сборку, и вы, надеюсь, увидите в Output, что объединение и минификация завершены в соответствии с вашим bundleConfig.json.

Спасибо! Это решение буквально единственный, которое, как я обнаружил, действительно работает.

Erik Töyrä Silfverswärd 04.06.2020 15:29

Просто добавьте BuildBundlerMinifier Nuget в проект и перестройте его.

Опция 1

Установите пакет BuildBundlerMinifier из NuGet, а затем, как только вы соберете проект, будут созданы пакеты.

Вариант 2

Установить расширение Бандлер и минификатор Visual Studio

Вариант 3

Вы можете использовать средства запуска задач, такие как Gulp, Grunt или Webpack, для более продвинутых сценариев объединения и минификации.

Вы можете прочитать My Пошаговое руководство по объединению и минификации в ASP.NET Core, который научит вас следующему:

  • Введение в объединение и минификацию
  • Стратегии объединения и минификации в ASP.NET Core
  • Настроить пакеты с помощью файла bundleconfig.json
  • Сборка и минификация с использованием пакета BuildBundlerMinifier
  • Объединение и минификация на основе среды
  • Использование Bundler и Minifier Extension для Visual Studio

Кроме того, с 2021 года, пожалуйста, рассмотрите мой ответ на аналогичный вопрос SO здесь: https://stackoverflow.com/a/66659756/5101

TL; DR; - Используйте пакет nuget WebOptimizer Core от Мадса Кристенсена для .NET Core 3+ и .NET 5+.

Другие вопросы по теме