web-dev-qa-db-fra.com

Remplacement de Bower dans le modèle principal Visual Studio 2017 ASP.NET MVC

Dernièrement, j'ai créé un projet ASP.NET MVC Core à partir de rien avec Visual Studio 2017 (15.6.3). J'ai découvert les frameworks JavaScript habituels:

  • bootstrap
  • jquery
  • jquery-validation
  • jquery-validation-discret

Mais malheureusement, tout le support de Bower est parti! Il n'y a plus ni bower.json, ni .bowerrc ni "Gérer les packages Bower ...":

 enter image description here

Quel est le problème avec le modèle ASP.NET MVC Core de Visual Studio? Bower est-il devenu obsolète?

Ne dupliquez pas cette question pour Comment utiliser les packages Bower dans Visual Studio 2017 si Bower est obsolète! Je n'aime pas un correctif pointant vers des technologies obsolètes.

J'aimerais préciser la question: Quel est le moyen le plus simple (le plus intuitif) de remplacer Bower par NPM? Comme Bower l’a fait avec son .bowerrc: { "directory": "wwwroot/lib" }?

18
Marcel

Bower est réellement mort.

Microsoft propose une solution légère et actuellement sous le radar appelée Library Manager (LibMan) .

C'est une solution simplifiée basée sur JSON, avec une interface utilisateur très simple, qui vous permet de contrôler les fichiers à télécharger (ne téléchargez plus des centaines de fichiers lorsque vous en avez juste besoin 1).

Mads Kristensen a fait une excellente petite introduction à l'aperçu de Build 2017. (La vidéo devrait commencer au bon endroit environ 43 minutes).

Au moment de la rédaction de ce document, il est toujours en version préliminaire - mais il devrait être publié avec Visual Studio 15.8.

Si vous souhaitez l'essayer avant cela, vous pouvez le récupérer dans le GitHub Repo ou Visual Studio Marketplace - dans la solution de cette question

Vous pouvez toujours utiliser npm, etc. - bien que voici les raisons pour lesquelles Microsoft l’utilise à la place (ou aussi bien) - à partir de Visual Studio Marketplace:

Raisons d'utiliser cette extension

  • Pour les applications n'utilisant pas actuellement un autre gestionnaire de paquets
  • Pour les projets où vous pensez que Bower et NPM sont excessifs
  • Pour les développeurs qui ne veulent pas utiliser Bower ou npm
  • Pour les développeurs qui privilégient la simplicité dans leurs outils
  • Pour utiliser des packages/fichiers personnalisés ou privés
  • Pour les applications ASP.NET Core dans lesquelles NuGet ne peut pas installer les packages de contenu
11
niico

Bower est morte. L'équipe de Bower fait référence à Yarn (un ajout sur NPM).

Étant donné que Visual Studio prend en charge NPMname__, je l’accepterai.

Créez un package.json à la racine de votre projet (c.-à-d., Cliquez avec le bouton droit de la souris sur votre projet, ajoutez un élément et recherchez NPMname__. Vous trouverez un npm Configuration File):

{
  "name": "SomeName",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "bootstrap": "3.3.7",
    "jquery": "3.3.1",
    "jquery-validation": "1.17.0",
    "jquery-validation-unobtrusive": "3.2.10",
    "jquery-ajax-unobtrusive": "3.2.4",
  }
}

Chaque fois que vous apportez des modifications au fichier JSON, il suffit d'appuyer CTRL + S. Visual Studio appelle automatiquement NPM et restaure les packages. Notez également que vous avez une intelligence pour les noms de paquet et les numéros de version.

Après avoir migré moi-même, je ne me souviens pas de ne pas trouver un paquet sur npm. Mais si c'est le cas pour vous, notez vous pouvez référencer directement un dépôt github .

Les dépendances sont enregistrées dans le dossier node_modules. C'est pour le nouveau gestionnaire de paquets.

Maintenant, vous avez le problème que vous devez regrouper pour la publication (ce que vous auriez dû faire avec bower aussi). Le regroupement consiste à combiner vos ressources Javascript/CSS/Image en un seul bundle.js, bundle.css, Sprite.svg. Ceux-ci doivent être copiés dans le dossier wwwrootname__.

Pour ce faire, nous avons quelques options (je ne lierai que quelques-unes, car cela exploserait le champ de la question):

3
Christian Gollhardt

Je suggérerais simplement de rester avec npm et d’oublier bower pour les projets principaux asp.net, j’ai posté un moyen d’utiliser npm dans le lien ci-dessous,

Comment utiliser du fil dans le noyau ASP.Net MVC pour installer bootstrap dans le dossier wwwroot

1
Eniola.A

Le blog suivant a fonctionné pour moi, bien qu'il prétende que le problème serait résolu en 15.8, ce qui est le contraire de ce problème:

https://blogs.msdn.Microsoft.com/webdev/2018/07/05/workaround-for-bower-version-deprecation/

J'ai mis à jour le fichier .bowerrc pour inclure:

"registry": "https://registry.bower.io"

J'ai ensuite cliqué avec le bouton droit sur les packages bower.json et Restore. Alors voila!

0
Michael Armitage