Utiliser l’interface CLI LibMan avec ASP.NET Core

Le Gestionnaire de bibliothèque (LibMan) est un outil allégé d’acquisition de bibliothèque côté client. LibMan télécharge des bibliothèques et infrastructures populaires à partir du système de fichiers ou d’un réseau de distribution de contenu (CDN). Parmi les réseaux de distribution de contenu pris en charge, on trouve entre autres CDNJS, jsDelivr et unpkg. Les fichiers de bibliothèque sélectionnés sont récupérés et placés à l’emplacement approprié dans le projet ASP.NET Core.

Prérequis

Installation

La commande suivante permet d’installer LibMan :

dotnet tool install -g Microsoft.Web.LibraryManager.Cli

Remarque

Par défaut, l’architecture des fichiers binaires .NET à installer représente l’architecture du système d’exploitation en cours d’exécution. Pour spécifier une architecture de système d’exploitation différente, consultez dotnet tool install, --arch option. Pour plus d'informations, consultez le problème GitHub dotnet/AspNetCore.Docs n° 29262.

Un outil global .NET Core est installé à partir du package NuGet Microsoft.Web.LibraryManager.Cli.

Utilisation

libman

Pour afficher la version LibMan installée :

libman --version

Pour afficher les commandes de l’interface CLI disponibles :

libman --help

La commande précédente affiche une sortie similaire à ce qui suit :

 1.0.163+g45474d37ed

Usage: libman [options] [command]

Options:
  --help|-h  Show help information
  --version  Show version information

Commands:
  cache      List or clean libman cache contents
  clean      Deletes all library files defined in libman.json from the project
  init       Create a new libman.json
  install    Add a library definition to the libman.json file, and download the 
             library to the specified location
  restore    Downloads all files from provider and saves them to specified 
             destination
  uninstall  Deletes all files for the specified library from their specified 
             destination, then removes the specified library definition from 
             libman.json
  update     Updates the specified library

Use "libman [command] --help" for more information about a command.

Les sections suivantes décrivent les commandes CLI disponibles.

Initialiser LibMan dans le projet

La libman init commande crée un libman.json fichier s’il n’en existe pas. Le fichier est créé avec le contenu du modèle d’élément par défaut.

Synopsis

libman init [-d|--default-destination] [-p|--default-provider] [--verbosity]
libman init [-h|--help]

Options

Les options suivantes sont disponibles pour la commande libman init :

  • -d|--default-destination <PATH>

    Un chemin d’accès relatif au dossier actuel. Les fichiers de bibliothèque sont installés à cet emplacement si aucune destination propriété n’est définie pour une bibliothèque dans libman.json. La valeur <PATH> est écrite dans la propriété defaultDestination de libman.json.

  • -p|--default-provider <PROVIDER>

    Le fournisseur à utiliser si aucun fournisseur n'est défini pour une bibliothèque donnée. La valeur <PROVIDER> est écrite dans la propriété defaultProvider de libman.json. Remplacez <PROVIDER> par l’une des valeurs suivantes :

    • cdnjs
    • filesystem
    • jsdelivr
    • unpkg
  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

Pour créer un fichier libman.json dans un projet ASP.NET Core :

  • Accédez à la racine du projet.

  • Exécutez la commande suivante :

    libman init
    
  • Tapez le nom du fournisseur par défaut ou appuyez sur Enter pour utiliser le fournisseur CDNJS par défaut. Les valeurs valides sont les suivantes :

    • cdnjs
    • filesystem
    • jsdelivr
    • unpkg

    libman init command - default provider

Un fichier libman.json est ajouté à la racine du projet avec le contenu suivant :

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": []
}

Ajouter des fichiers de bibliothèque

La commande libman install télécharge et installe les fichiers de bibliothèque dans le projet. Un fichier libman.json est ajouté s’il n’en existe pas. Le fichier libman.json est modifié pour stocker les détails de configuration des fichiers de bibliothèque.

Synopsis

libman install <LIBRARY> [-d|--destination] [--files] [-p|--provider] [--verbosity]
libman install [-h|--help]

Arguments

LIBRARY

Nom de la bibliothèque à installer. Ce nom peut inclure la notation de numéro de version (par exemple, @1.2.0).

Options

Les options suivantes sont disponibles pour la commande libman install :

  • -d|--destination <PATH>

    Emplacement d’installation de la bibliothèque. S’il n’est pas spécifié, l’emplacement par défaut est utilisé. Si aucune propriété defaultDestination n’est spécifiée dans libman.json, cette option est obligatoire.

    Remarque : il existe des limitations au chemin d’accès de destination. Par exemple, lorsque la source du package présente une structure de projet complète et pas seulement le dossier de distribution, vous ne pouvez pas spécifier le déplacement d’un dossier. Pour plus d’informations, consultez les articles sur le problème n°407 et le problème n°702

  • --files <FILE>

    Spécifiez le nom du fichier à installer à partir de la bibliothèque. S’il n’est pas spécifié, tous les fichiers de la bibliothèque sont installés. Fournissez une option --files par fichier à installer. Les chemins d’accès relatifs sont également pris en charge. Par exemple : --files dist/browser/signalr.js.

  • -p|--provider <PROVIDER>

    Le nom du fournisseur à utiliser pour l’acquisition de la bibliothèque. Remplacez <PROVIDER> par l’une des valeurs suivantes :

    • cdnjs
    • filesystem
    • jsdelivr
    • unpkg

    Si elle n’est pas spécifiée, la propriété defaultProvider dans libman.json est utilisée. Si aucune propriété defaultProvider n’est spécifiée dans libman.json, cette option est obligatoire.

  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

Examinons le fichier libman.json suivant :

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": []
}

Pour installer le fichier jQuery version 3.2.1 jquery.min.js dans le dossier wwwroot/scripts/jquery à l’aide du fournisseur CDNJS :

libman install jquery@3.2.1 --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js

Le fichier libman.json ressemble à ce qui suit :

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "jquery@3.2.1",
      "destination": "wwwroot/scripts/jquery",
      "files": [
        "jquery.min.js"
      ]
    }
  ]
}

Pour installer les fichiers calendar.js et calendar.css à partir de C:\temp\contosoCalendar\ à l’aide du fournisseur de système de fichiers :

libman install C:\temp\contosoCalendar\ --provider filesystem --files calendar.js --files calendar.css

L’invite suivante s’affiche pour deux raisons :

  • Le fichier libman.json ne contient pas de propriété defaultDestination.
  • La commande libman install ne contient pas l’option -d|--destination.

libman install command - destination

Après l’acceptation de la destination par défaut, le fichier libman.json ressemble à ce qui suit :

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "jquery@3.2.1",
      "destination": "wwwroot/scripts/jquery",
      "files": [
        "jquery.min.js"
      ]
    },
    {
      "library": "C:\\temp\\contosoCalendar\\",
      "provider": "filesystem",
      "destination": "wwwroot/lib/contosoCalendar",
      "files": [
        "calendar.js",
        "calendar.css"
      ]
    }
  ]
}

Restaurer des fichiers de bibliothèque

La commande libman restore installe les fichiers de bibliothèque définis dans libman.json. Les règles suivantes s’appliquent :

  • S’il n’existe aucun fichier libman.json à la racine du projet, une erreur est renvoyée.
  • Si une bibliothèque spécifie un fournisseur, la propriété defaultProvider dans libman.json est ignorée.
  • Si une bibliothèque spécifie une destination, la propriété defaultDestination dans libman.json est ignorée.

Synopsis

libman restore [--verbosity]
libman restore [-h|--help]

Options

Les options suivantes sont disponibles pour la commande libman restore :

  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

Pour restaurer les fichiers de bibliothèque définis dans libman.json:

libman restore

Supprimer des fichiers de bibliothèque

La commande libman clean supprime les fichiers de bibliothèque précédemment restaurés via LibMan. Dossiers qui deviennent vides après la suppression de cette opération. Les configurations associées aux fichiers de bibliothèque dans la propriété libraries de libman.json ne sont pas supprimées.

Synopsis

libman clean [--verbosity]
libman clean [-h|--help]

Options

Les options suivantes sont disponibles pour la commande libman clean :

  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

Pour supprimer les fichiers de bibliothèque installés via LibMan :

libman clean

Désinstaller les fichiers de bibliothèque

La commande libman uninstall :

  • Supprime tous les fichiers associés à la bibliothèque spécifiée de la destination dans libman.json.
  • Supprime la configuration de bibliothèque associée de libman.json.

Une erreur se produit dans les cas suivants :

  • Il n’existe aucun fichier libman.json à la racine du projet.
  • La bibliothèque spécifiée n’existe pas.

Si plusieurs bibliothèques portant le même nom sont installées, vous êtes invité à en choisir une.

Synopsis

libman uninstall <LIBRARY> [--verbosity]
libman uninstall [-h|--help]

Arguments

LIBRARY

Nom de la bibliothèque à désinstaller. Ce nom peut inclure la notation de numéro de version (par exemple, @1.2.0).

Options

Les options suivantes sont disponibles pour la commande libman uninstall :

  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

Examinons le fichier libman.json suivant :

{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": [
    {
      "library": "jquery@3.3.1",
      "files": [
        "jquery.min.js",
        "jquery.js",
        "jquery.min.map"
      ],
      "destination": "wwwroot/lib/jquery/"
    },
    {
      "provider": "unpkg",
      "library": "bootstrap@4.1.3",
      "destination": "wwwroot/lib/bootstrap/"
    },
    {
      "provider": "filesystem",
      "library": "C:\\temp\\lodash\\",
      "files": [
        "lodash.js",
        "lodash.min.js"
      ],
      "destination": "wwwroot/lib/lodash/"
    }
  ]
}
  • Pour désinstaller jQuery, l’une des commandes suivantes réussit :

    libman uninstall jquery
    
    libman uninstall jquery@3.3.1
    
  • Pour désinstaller les fichiers Lodash installés via le fournisseur filesystem :

    libman uninstall C:\temp\lodash\
    

Mettre à jour la version de la bibliothèque

La commande libman update met à jour une bibliothèque installée via LibMan vers la version spécifiée.

Une erreur se produit dans les cas suivants :

  • Il n’existe aucun fichier libman.json à la racine du projet.
  • La bibliothèque spécifiée n’existe pas.

Si plusieurs bibliothèques portant le même nom sont installées, vous êtes invité à en choisir une.

Synopsis

libman update <LIBRARY> [-pre] [--to] [--verbosity]
libman update [-h|--help]

Arguments

LIBRARY

Nom de la bibliothèque à mettre à jour.

Options

Les options suivantes sont disponibles pour la commande libman update :

  • -pre

    Obtenez la dernière version préliminaire de la bibliothèque.

  • --to <VERSION>

    Obtenez une version spécifique de la bibliothèque.

  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

  • Pour mettre à jour jQuery vers la dernière version :

    libman update jquery
    
  • Pour mettre à jour jQuery vers la version 3.3.1 :

    libman update jquery --to 3.3.1
    
  • Pour mettre à jour jQuery vers la dernière version préliminaire :

    libman update jquery -pre
    

Gérer le cache de bibliothèque

La commande libman cache gère le cache de bibliothèque LibMan. Le fournisseur filesystem n’utilise pas le cache de bibliothèque.

Synopsis

libman cache clean [<PROVIDER>] [--verbosity]
libman cache list [--files] [--libraries] [--verbosity]
libman cache [-h|--help]

Arguments

PROVIDER

Utilisé uniquement avec la commande clean. Spécifie le cache du fournisseur à nettoyer. Les valeurs valides sont les suivantes :

  • cdnjs
  • filesystem
  • jsdelivr
  • unpkg

Options

Les options suivantes sont disponibles pour la commande libman cache :

  • --files

    Répertoriez les noms des fichiers mis en cache.

  • --libraries

    Répertoriez les noms des bibliothèques mises en cache.

  • -h|--help

    Afficher les informations d’aide.

  • --verbosity <LEVEL>

    Définissez la verbosité de la sortie. Remplacez <LEVEL> par l’une des valeurs suivantes :

    • quiet
    • normal
    • detailed

Exemples

  • Pour afficher les noms des bibliothèques mises en cache par fournisseur, utilisez l’une des commandes suivantes :

    libman cache list
    
    libman cache list --libraries
    

    Une sortie similaire à la suivante s’affiche à l’écran :

    Cache contents:
    ---------------
    unpkg:
        knockout
        react
        vue
    cdnjs:
        font-awesome
        jquery
        knockout
        lodash.js
        react
    
  • Pour afficher les noms des fichiers de bibliothèque mis en cache par fournisseur :

    libman cache list --files
    

    Une sortie similaire à la suivante s’affiche à l’écran :

    Cache contents:
    ---------------
    unpkg:
        knockout:
            <list omitted for brevity>
        react:
            <list omitted for brevity>
        vue:
            <list omitted for brevity>
    cdnjs:
        font-awesome
            metadata.json
        jquery
            metadata.json
            3.2.1\core.js
            3.2.1\jquery.js
            3.2.1\jquery.min.js
            3.2.1\jquery.min.map
            3.2.1\jquery.slim.js
            3.2.1\jquery.slim.min.js
            3.2.1\jquery.slim.min.map
            3.3.1\core.js
            3.3.1\jquery.js
            3.3.1\jquery.min.js
            3.3.1\jquery.min.map
            3.3.1\jquery.slim.js
            3.3.1\jquery.slim.min.js
            3.3.1\jquery.slim.min.map
        knockout
            metadata.json
            3.4.2\knockout-debug.js
            3.4.2\knockout-min.js
        lodash.js
            metadata.json
            4.17.10\lodash.js
            4.17.10\lodash.min.js
        react
            metadata.json
    

    Notez que la sortie précédente indique que les versions jQuery 3.2.1 et 3.3.1 sont mises en cache sous le fournisseur CDNJS.

  • Pour vider le cache de bibliothèque pour le fournisseur CDNJS :

    libman cache clean cdnjs
    

    Après avoir vidé le cache du fournisseur CDNJS, la commande libman cache list affiche les éléments suivants :

    Cache contents:
    ---------------
    unpkg:
        knockout
        react
        vue
    cdnjs:
        (empty)
    
  • Pour vider le cache pour tous les fournisseurs pris en charge :

    libman cache clean
    

    Après avoir vidé tous les caches du fournisseur, la commande libman cache list affiche ce qui suit :

    Cache contents:
    ---------------
    unpkg:
        (empty)
    cdnjs:
        (empty)
    

Ressources supplémentaires