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

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

Вот пример, решение содержит новый проект с таргетингом на 2.0 и другой таргетинг на 2.1:  введите описание изображения здесь

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


person Josh    schedule 18.05.2018    source источник


Ответы (6)


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

Этот файл [bundleconfig.json] предназначен для настройки различных вариантов инструмента BundlerMinifier, который на самом деле не входит в состав шаблонов и не поддерживается Microsoft.

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

person natemcmaster    schedule 26.05.2018
comment
Спасибо, я заметил, что для работы BundlerMinifier требуется установка пакета Nuget. Я играл с LibMan на прошлой неделе, я не понимал, что он справляется с объединением и минификацией, документы и примеры легкие. Кроме того, он не был окончательно вырезан для 15.7, вы должны установить 15.8 Preview для использования. Я понимаю логику удаления, но поскольку LibMan был удален из 15.7, возникнет пробел с шаблонами, поскольку .NET Core 2.1 будет RTM перед выпуском 15.8. Как бы мне ни нравился ASP.NET Core, с управлением пакетами на стороне клиента слишком много беспорядка и путаницы. - person Josh; 26.05.2018
comment
Хотя у Nuget были свои ограничения, для многих из нас он работал достаточно хорошо для управления библиотекой client-sde. Я бы хотел, чтобы было приложено больше усилий, чтобы заставить его работать с ASP.NET Core, что избавило бы нас от попыток выяснить, какую комбинацию Bower, npm, glup, grunt, webpack и LibMan использовать. - person Josh; 27.05.2018
comment
Не понимал, что он был вырезан из VS 15.7. Я всегда использую предварительные версии VS, поэтому думал, что он выпущен на стабильный канал. - person natemcmaster; 27.05.2018
comment
Кроме того, да, NuGet был не очень хорошо разработан для управления библиотекой на стороне клиента. Я использую пряжу и веб-пакет с aspnetcore, и это хорошо работает для моей команды - person natemcmaster; 27.05.2018
comment
Проблема заключается в текущем состоянии ASP.NET Core 2.1 и VS 2017 15.8 (предварительная версия), у нас нет встроенного управления пакетами на стороне клиента, объединения или минификации. Для разработчика, пришедшего из ASP.NET MVC 5, разочаровывает использование шаблона по умолчанию и осознание того, что файлы JavaScript статичны, и уходит с досадой тратить время на исследование управления библиотекой на стороне клиента. Опять же, я знаю, что на стороне клиента NuGet есть ограничения, но он был достаточно хорош для приложений с небольшим количеством библиотек, но хотел иметь возможность управления зависимостями и централизованного управления обновлениями. - person Josh; 27.05.2018
comment
Вы используете программу установки пряжи (marketplace.visualstudio.com/) для VS? ? - person Josh; 27.05.2018
comment
Я использую пакет Yarn.MSBuild, который вызывает команды пряжи в качестве целей MSBuild. Однако это в основном для сборок CI. В первую очередь с использованием VS Code, поэтому легко запускать команды из интегрированной командной строки, такие как запускать 'webpack --watch', для создания клиентских ресурсов отдельно от .NET. - person natemcmaster; 28.05.2018

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

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

person Andy Weston    schedule 21.05.2018
comment
Пользуюсь 15.7.1. Я заставил его работать, добавив файл вручную, но мне интересно, почему они удалили его. Интересно, заменяет ли что-нибудь. - person Josh; 22.05.2018

Обратите внимание, что это работает для 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.

person mcNux    schedule 16.01.2020
comment
Спасибо! Это буквально единственное решение, которое, как я обнаружил, действительно работает. - person Erik Töyrä Silfverswärd; 04.06.2020

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

person An Anita    schedule 19.05.2020


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

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

person Chris Akridge    schedule 07.12.2018