33 votes

Quelque chose a-t-il remplacé bundleconfig.json dans ASP.NET Core MVC 2.1 ?

Lorsque je crée un nouveau ciblage ASP.NET MVC Core 2.1 RC1, il ne crée pas le fichier bundleconfig.json qui est utilisé pour le regroupement et la minification. Ce fichier est créé si je cible 2.0.

Voici un exemple, la solution contient un nouveau projet ciblant 2.0 et un autre ciblant 2.1 : enter image description here

Est-ce que quelque chose a remplacé le regroupement et la minification intégrés, ou est-ce simplement un bogue de la RC1 ?

29voto

natemcmaster Points 13402

Bundleconfig.json a été supprimé des modèles 2.1 car il reposait sur un outil qui n'a pas été créé ou pris en charge par Microsoft. Voir https://github.com/aspnet/templating/issues/326 .

Ce fichier [bundleconfig.json] sert à configurer les diverses incantations de l'outil BundlerMinifier, qui n'est pas réellement fourni dans les modèles, ni pris en charge par Microsoft.

L'équipe ASP.NET Core a remplacé bundleconfig par "libman". Faites un clic droit sur le projet --> Ajouter --> Bibliothèque côté client et ajoutez les paquets dont vous avez besoin.

1 votes

Merci, j'ai remarqué que BundlerMinifier nécessite l'installation d'un paquet Nuget pour fonctionner. J'ai joué avec LibMan la semaine dernière, je n'avais pas réalisé qu'il gérait le bundling et la minifiction, la documentation et les exemples sont légers. De plus, il n'a pas été retenu pour la version 15.7, vous devez installer la version 15.8 Preview pour l'utiliser. Je comprends la logique de cette suppression, mais comme LibMan a été supprimé de la 15.7, il y aura un vide avec les modèles puisque .NET Core 2.1 sera RTM avant la sortie de la 15.8. Bien que j'aime ASP.NET Core, il y a trop de flux et de confusion avec la gestion des paquets côté client.

1 votes

Bien que Nuget ait ses limites, il avait suffisamment bien fonctionné pour beaucoup d'entre nous pour la gestion des bibliothèques client-sde. J'aurais souhaité que davantage d'efforts soient déployés pour le faire fonctionner avec ASP.NET Core, ce qui nous aurait évité d'avoir à chercher quelle combinaison de Bower, npm, glup, grunt, webpack et LibMan utiliser.

0 votes

Je n'avais pas réalisé qu'il avait été supprimé de VS 15.7. J'utilise toujours des versions préliminaires de VS et je pensais qu'il avait été publié dans le canal stable.

7voto

Andy Weston Points 137

J'ai eu le même problème, j'ai pu copier un fichier bundle existant dans le projet et cela a fonctionné pour moi. Vous devez suivez ces conseils et installez l'extension Bundle & Minifier assurez-vous également que vous utilisez VS 15.7.

Il semble que le fichier bundle ne soit pas inclus dans le dernier modèle de projet.

0 votes

J'utilise la version 15.7.1. J'ai réussi à le faire fonctionner en ajoutant le fichier manuellement, mais je me demande pourquoi ils l'ont supprimé. Je me demande si quelque chose ne le remplace pas.

4voto

mcNux Points 417

Notez que cela fonctionne pour net core 2.2, je ne suis pas sûr pour 2.1. Notez également qu'à partir de net core 3, il semble que "local tools" doive (doit ?) être utilisé à la place : https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#local-tools .

J'ai finalement réussi à configurer le regroupement pré-build en utilisant la méthode recommandée (au moment de l'écriture) BundlerMinifier.Core paquet.

Ajoutez les éléments suivants à votre fichier .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>

Notez que cela devrait être todo dont vous avez besoin ; vous ne devriez pas avoir besoin de l'extension VS "Bundler & Minifier", ni du paquet "BuildBundlerMinifier".

Tentez une construction et vous verrez, avec un peu de chance, en Output que le regroupement et la réduction sont terminés, conformément à votre demande. bundleConfig.json .

3voto

Thiago Silva Points 985

En outre, à partir de 2021, veuillez prendre en compte ma réponse à une question similaire sur les SO ici : https://stackoverflow.com/a/66659756/5101

TL;DR ; - Utilisez le paquet nuget WebOptimizer Core, par Mads Kristensen, pour .NET Core 3+ et .NET 5+.

1voto

An Anita Points 73

Il suffit d'ajouter BuildBundlerMinifier Nuget au projet et de le reconstruire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X