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:
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 ...":
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" }
?
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
Bower est morte. L'équipe de Bower fait référence à Yarn (un ajout sur NPM).
Étant donné que Visual Studio prend en charge NPM
name__, 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 NPM
name__. 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 wwwroot
name__.
Pour ce faire, nous avons quelques options (je ne lierai que quelques-unes, car cela exploserait le champ de la question):
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
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!