Uso de la CLI de LibMan con ASP.NET Core
Library Manager (LibMan) es una herramienta ligera para la adquisición de bibliotecas del lado cliente. Asimismo, LibMan permite descargar bibliotecas y marcos populares de sistemas de archivos o redes de entrega de contenido (CDN). Entre las CDN admitidas se incluyen CDNJS, jsDelivr y unpkg. Los archivos de biblioteca seleccionados se capturan y se colocan en la ubicación adecuada dentro del proyecto de ASP.NET Core.
Requisitos previos
Instalación
El siguiente comando instala LibMan:
dotnet tool install -g Microsoft.Web.LibraryManager.Cli
Nota:
De manera predeterminada, la arquitectura de los binarios .NET que se van a instalar representa la arquitectura del sistema operativo que se está ejecutando en ese momento. Para especificar una arquitectura de SO diferente, consulta dotnet tool install, --arch option. Para más información, consulte la incidencia de GitHub dotnet/AspNetCore.Docs #29262.
Se instala una herramienta global de .NET Core desde el paquete NuGet Microsoft.Web.LibraryManager.Cli.
Uso
libman
Para ver la versión de LibMan instalada:
libman --version
Para ver los comandos disponibles de la CLI:
libman --help
El comando anterior muestra una salida similar a la siguiente:
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.
En las secciones siguientes se describen los comandos disponibles de la CLI.
Inicialización de LibMan en el proyecto
El comando libman init
crea un archivo libman.json
si no existe ninguno. El archivo se crea con el contenido de la plantilla de elemento predeterminado.
Sinopsis
libman init [-d|--default-destination] [-p|--default-provider] [--verbosity]
libman init [-h|--help]
Opciones
Las siguientes opciones están disponibles para el comando libman init
:
-d|--default-destination <PATH>
Ruta de acceso relativa a la carpeta actual. Los archivos de biblioteca se instalan en esta ubicación si no se ha definido ninguna propiedad
destination
para una biblioteca enlibman.json
. El valor<PATH>
se escribe en la propiedaddefaultDestination
delibman.json
.-p|--default-provider <PROVIDER>
Proveedor que se va a usar si no hay ninguno definido en una biblioteca dada. El valor
<PROVIDER>
se escribe en la propiedaddefaultProvider
delibman.json
. Reemplace<PROVIDER>
con uno de los siguientes valores:cdnjs
filesystem
jsdelivr
unpkg
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplace
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Para crear un archivo libman.json
en un proyecto de ASP.NET Core:
Vaya a la raíz del proyecto.
Ejecute el siguiente comando:
libman init
Escriba el nombre del proveedor predeterminado o presione
Enter
para usar el proveedor CDNJS predeterminado. Los valores válidos son:cdnjs
filesystem
jsdelivr
unpkg
Se agrega un archivo libman.json
a la raíz del proyecto con el siguiente contenido:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}
Adición de archivos de biblioteca
El comando libman install
descarga e instala los archivos de biblioteca en el proyecto. Se agrega un archivo libman.json
si no existe ninguno. El archivo libman.json
se modifica para almacenar los detalles de configuración de los archivos de biblioteca.
Sinopsis
libman install <LIBRARY> [-d|--destination] [--files] [-p|--provider] [--verbosity]
libman install [-h|--help]
Argumentos
LIBRARY
Nombre de la biblioteca que se va a instalar. Este nombre puede incluir la notación del número de versión (por ejemplo, @1.2.0
).
Opciones
Las siguientes opciones están disponibles para el comando libman install
:
-d|--destination <PATH>
Ubicación en la que se va a instalar la biblioteca. Si no se especifica, se usa la ubicación predeterminada. Si no se especifica ninguna propiedad
defaultDestination
enlibman.json
, esta opción es obligatoria.Nota: existen limitaciones en la ruta de acceso de destino. Por ejemplo, cuando el origen del paquete tiene una estructura de proyecto completa y no solo la carpeta de distribución, no puede especificar mover una carpeta. Para más información, consulta Incidencia n.º 407 e Incidencia n.º 702
--files <FILE>
Especifica el nombre del archivo de la biblioteca que se va a instalar. Si no se especifica, se instalan todos los archivos de la biblioteca. Proporciona una opción
--files
por cada archivo que se va a instalar. También se admiten las rutas de acceso relativas. Por ejemplo:--files dist/browser/signalr.js
.-p|--provider <PROVIDER>
Nombre del proveedor que se va a usar en la adquisición de la biblioteca. Reemplaza
<PROVIDER>
con uno de los siguientes valores:cdnjs
filesystem
jsdelivr
unpkg
Si no se especifica, se usa la propiedad
defaultProvider
delibman.json
. Si no se especifica ninguna propiedaddefaultProvider
enlibman.json
, esta opción es obligatoria.
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplaza
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Fíjate en el siguiente archivo libman.json
:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}
Para instalar el archivo jquery.min.js
de la versión 3.2.1 de jQuery en la carpeta wwwroot/scripts/jquery mediante el proveedor CDNJS:
libman install jquery@3.2.1 --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js
El archivo libman.json
es similar a lo siguiente:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.2.1",
"destination": "wwwroot/scripts/jquery",
"files": [
"jquery.min.js"
]
}
]
}
Para instalar los archivos calendar.js
y calendar.css
desde C:\temp\contosoCalendar\ mediante el proveedor del sistema de archivos:
libman install C:\temp\contosoCalendar\ --provider filesystem --files calendar.js --files calendar.css
El siguiente aviso aparece por dos motivos:
- El archivo
libman.json
no contiene una propiedaddefaultDestination
. - El comando
libman install
no contiene la opción-d|--destination
.
Después de aceptar el destino predeterminado, el archivo libman.json
es similar al siguiente:
{
"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"
]
}
]
}
Restauración de archivos de biblioteca
El comando libman restore
instala los archivos de biblioteca definidos en libman.json
. Se aplican las reglas siguientes:
- Si no existe ningún archivo
libman.json
en la raíz del proyecto, se devuelve un error. - Si una biblioteca especifica un proveedor, se omite la propiedad
defaultProvider
delibman.json
. - Si una biblioteca especifica un destino, se omite la propiedad
defaultDestination
delibman.json
.
Sinopsis
libman restore [--verbosity]
libman restore [-h|--help]
Opciones
Las siguientes opciones están disponibles para el comando libman restore
:
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplaza
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Para restaurar los archivos de biblioteca definidos en libman.json
:
libman restore
Eliminación de archivos de biblioteca
El comando libman clean
elimina los archivos de biblioteca restaurados previamente mediante LibMan. Se eliminan todas las carpetas que queden vacías después de esta operación. No se eliminan las configuraciones asociadas de los archivos de biblioteca de la propiedad libraries
de libman.json
.
Sinopsis
libman clean [--verbosity]
libman clean [-h|--help]
Opciones
Las siguientes opciones están disponibles para el comando libman clean
:
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplace
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Para eliminar archivos de biblioteca instalados mediante LibMan:
libman clean
Desinstalación de archivos de biblioteca
El comando libman uninstall
:
- Elimina todos los archivos asociados a la biblioteca especificada del destino en
libman.json
. - Quita la configuración de biblioteca asociada de
libman.json
.
Se produce un error si:
- No existe ningún archivo
libman.json
en la raíz del proyecto. - La biblioteca especificada no existe.
Si hay más de una biblioteca con el mismo nombre instalada, se le pedirá que elija una.
Sinopsis
libman uninstall <LIBRARY> [--verbosity]
libman uninstall [-h|--help]
Argumentos
LIBRARY
Nombre de la biblioteca que se va a desinstalar. Este nombre puede incluir la notación del número de versión (por ejemplo, @1.2.0
).
Opciones
Las siguientes opciones están disponibles para el comando libman uninstall
:
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplace
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Fíjese en el siguiente archivo libman.json
:
{
"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/"
}
]
}
Para desinstalar jQuery, puede usar cualquiera de los siguientes comandos:
libman uninstall jquery
libman uninstall jquery@3.3.1
Para desinstalar los archivos Lodash instalados mediante el proveedor
filesystem
:libman uninstall C:\temp\lodash\
Actualización de la versión de la biblioteca
El comando libman update
actualiza una biblioteca instalada mediante LibMan a la versión especificada.
Se produce un error si:
- No existe ningún archivo
libman.json
en la raíz del proyecto. - La biblioteca especificada no existe.
Si hay más de una biblioteca con el mismo nombre instalada, se le pedirá que elija una.
Sinopsis
libman update <LIBRARY> [-pre] [--to] [--verbosity]
libman update [-h|--help]
Argumentos
LIBRARY
Nombre de la biblioteca que se va a actualizar.
Opciones
Las siguientes opciones están disponibles para el comando libman update
:
-pre
Obtenga la versión preliminar más reciente de la biblioteca.
--to <VERSION>
Obtenga una versión específica de la biblioteca.
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplace
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Para actualizar jQuery a la versión más reciente:
libman update jquery
Para actualizar JQuery a la versión 3.3.1:
libman update jquery --to 3.3.1
Para actualizar jQuery a la versión preliminar más reciente:
libman update jquery -pre
Administración de la memoria caché de la biblioteca
El comando libman cache
administra la memoria caché de la biblioteca LibMan. El proveedor filesystem
no usa la memoria caché de la biblioteca.
Sinopsis
libman cache clean [<PROVIDER>] [--verbosity]
libman cache list [--files] [--libraries] [--verbosity]
libman cache [-h|--help]
Argumentos
PROVIDER
Solo se usa con el comando clean
. Especifica la memoria caché del proveedor que se va a limpiar. Los valores válidos son:
cdnjs
filesystem
jsdelivr
unpkg
Opciones
Las siguientes opciones están disponibles para el comando libman cache
:
--files
Enumera los nombres de los archivos que se almacenan en la memoria caché.
--libraries
Enumera los nombres de las bibliotecas que se almacenan en la memoria caché.
-h|--help
Muestra información de ayuda.
--verbosity <LEVEL>
Establece el nivel de detalle del resultado. Reemplace
<LEVEL>
con uno de los siguientes valores:quiet
normal
detailed
Ejemplos
Para ver los nombres de las bibliotecas almacenadas en la memoria caché por proveedor, use uno de los siguientes comandos:
libman cache list
libman cache list --libraries
Esto genera una salida similar a la siguiente:
Cache contents: --------------- unpkg: knockout react vue cdnjs: font-awesome jquery knockout lodash.js react
Para ver los nombres de los archivos de biblioteca almacenados en la memoria caché por proveedor:
libman cache list --files
Esto genera una salida similar a la siguiente:
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
Observe que la salida anterior muestra que las versiones 3.2.1 y 3.3.1 de jQuery están almacenadas en la memoria caché en el proveedor CDNJS.
Para vaciar la memoria caché de la biblioteca del proveedor CDNJS:
libman cache clean cdnjs
Después de vaciar la memoria caché del proveedor CDNJS, el comando
libman cache list
muestra lo siguiente:Cache contents: --------------- unpkg: knockout react vue cdnjs: (empty)
Para vaciar la memoria caché de todos los proveedores admitidos:
libman cache clean
Después de vaciar la memoria caché de todos los proveedores, el comando
libman cache list
muestra lo siguiente:Cache contents: --------------- unpkg: (empty) cdnjs: (empty)