Использование интерфейса командной строки LibMan с ASP.NET Core
Диспетчер библиотек (LibMan) — это облегченное средство получения библиотек на стороне клиента. LibMan загружает популярные библиотеки и платформы из файловой системы или из сети доставки содержимого (CDN). Поддерживаются сети доставки содержимого CDNJS, jsDelivr и unpkg. Выбранные файлы библиотеки извлекаются и размещаются в соответствующем месте в проекте ASP.NET Core.
Необходимые компоненты
Установка
Следующая команда устанавливает LibMan:
dotnet tool install -g Microsoft.Web.LibraryManager.Cli
Примечание.
По умолчанию архитектура двоичных файлов .NET для установки представляет архитектуру операционной системы. Чтобы указать другую архитектуру ОС, см . параметр dotnet tool install, --arch. Дополнительные сведения см. в статье о проблеме GitHub dotnet/AspNetCore.Docs #29262.
Глобальное средство .NET Core устанавливается из пакета NuGet Microsoft.Web.LibraryManager.Cli.
Использование
libman
Чтобы просмотреть установленную версию LibMan, выполните следующие действия.
libman --version
Чтобы просмотреть доступные команды CLI, выполните следующую команду:
libman --help
Приведенная выше команда выводит результат наподобие следующего:
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.
Доступные команды CLI описываются в следующих разделах.
Инициализация LibMan в проекте
Команда libman init
создает файл libman.json
, если он еще не существует. Файл создается с содержимым шаблона по умолчанию.
Краткие сведения
libman init [-d|--default-destination] [-p|--default-provider] [--verbosity]
libman init [-h|--help]
Параметры
Для команды libman init
доступны следующие параметры:
-d|--default-destination <PATH>
Путь относительно текущей папки. Файлы библиотеки устанавливаются в этом расположении, если в файле
libman.json
свойствоdestination
для библиотеки не задано. Значение<PATH>
записывается вdefaultDestination
свойствоlibman.json
.-p|--default-provider <PROVIDER>
Поставщик, который будет использоваться, если поставщик для данной библиотеки не указан. Значение
<PROVIDER>
записывается вdefaultProvider
свойствоlibman.json
. Замените<PROVIDER>
одним из следующих значений:cdnjs
filesystem
jsdelivr
unpkg
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Чтобы создать файл libman.json
в проекте ASP.NET Core, выполните указанные ниже действия.
Перейдите в корневой каталог проекта.
Выполните следующую команду:
libman init
Введите имя поставщика по умолчанию или нажмите клавишу
Enter
, чтобы использовать поставщик CDNJS по умолчанию. Допустимые значения:cdnjs
filesystem
jsdelivr
unpkg
Файл libman.json
добавляется в корневой каталог проекта со следующим содержимым:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}
Добавление файлов библиотеки
Команда libman install
скачивает и устанавливает файлы библиотеки в проект. Файл libman.json
добавляется, если он не существует. Файл libman.json
изменен для хранения сведений о конфигурации файлов библиотеки.
Краткие сведения
libman install <LIBRARY> [-d|--destination] [--files] [-p|--provider] [--verbosity]
libman install [-h|--help]
Аргументы
LIBRARY
Имя устанавливаемой библиотеки. В имени может использоваться нотация номера версии (например, @1.2.0
).
Параметры
Для команды libman install
доступны следующие параметры:
-d|--destination <PATH>
Расположение для установки библиотеки. Если не указано, используется расположение по умолчанию. Если свойство не
defaultDestination
указано вlibman.json
, этот параметр является обязательным.Примечание. Существуют ограничения для пути назначения. Например, если источник пакета имеет полную структуру проекта, а не только папку распространения, нельзя указать перемещение папки. Дополнительные сведения см. в разделе "Проблема 407 " и "Проблема 702"
--files <FILE>
Укажите имя файла, который необходимо установить из библиотеки. Если не указано, устанавливаются все файлы из библиотеки. Для каждого устанавливаемого файла необходимо задать один параметр
--files
. Также поддерживаются относительные пути. Например:--files dist/browser/signalr.js
.-p|--provider <PROVIDER>
Имя поставщика, используемого для получения библиотеки. Замените
<PROVIDER>
одним из следующих значений:cdnjs
filesystem
jsdelivr
unpkg
Если это не указано,
defaultProvider
используется свойствоlibman.json
. Если свойство неdefaultProvider
указано вlibman.json
, этот параметр является обязательным.
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Рассмотрим следующий файл libman.json
:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}
Чтобы установить файл jQuery версии 3.2.1 jquery.min.js
в папку wwwroot/scripts/jquery с помощью поставщика CDNJS:
libman install jquery@3.2.1 --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js
Содержимое файла libman.json
выглядит примерно так:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.2.1",
"destination": "wwwroot/scripts/jquery",
"files": [
"jquery.min.js"
]
}
]
}
Чтобы установить calendar.js
и файлы из C:\temp\contosoCalendar\ с помощью поставщика calendar.css
файловой системы:
libman install C:\temp\contosoCalendar\ --provider filesystem --files calendar.js --files calendar.css
Приведенный ниже запрос появляется по двум причинам:
- В файле
libman.json
нет свойстваdefaultDestination
. - Команда
libman install
не содержит параметра-d|--destination
.
После принятия назначения libman.json
по умолчанию файл выглядит следующим образом:
{
"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"
]
}
]
}
Восстановление файлов библиотек
Команда libman restore
устанавливает файлы библиотеки, определенные в файле libman.json
. Применяются следующие правила:
- Если файл не
libman.json
существует в корневом каталоге проекта, возвращается ошибка. - Если для библиотеки указан поставщик, свойство
defaultProvider
в файлеlibman.json
игнорируется. - Если для библиотеки указано назначение, свойство
defaultDestination
в файлеlibman.json
игнорируется.
Краткие сведения
libman restore [--verbosity]
libman restore [-h|--help]
Параметры
Для команды libman restore
доступны следующие параметры:
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Восстановление файлов библиотеки, определенных в libman.json
:
libman restore
Удаление файлов библиотек
Команда libman clean
удаляет файлы библиотек, восстановленные ранее с помощью LibMan. Папки, которые становятся пустыми после выполнения этой операции, удаляются. Конфигурации, связанные с файлами библиотек, в свойстве libraries
файла libman.json
не удаляются.
Краткие сведения
libman clean [--verbosity]
libman clean [-h|--help]
Параметры
Для команды libman clean
доступны следующие параметры:
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Чтобы удалить файлы библиотек, установленные с помощью LibMan, выполните следующую команду:
libman clean
Удаление файлов библиотек
Команда libman uninstall
делает следующее:
- Удаляет все файлы, связанные с указанной библиотекой, из назначения.
libman.json
- Удаляет связанную конфигурацию библиотеки из
libman.json
.
В следующих случаях возникает ошибка:
- Файл не
libman.json
существует в корневом каталоге проекта. - указанная библиотека не существует.
Если установлено несколько библиотек с одним и тем же именем, вам будет предложено выбрать одну из них.
Краткие сведения
libman uninstall <LIBRARY> [--verbosity]
libman uninstall [-h|--help]
Аргументы
LIBRARY
Имя удаляемой библиотеки. В имени может использоваться нотация номера версии (например, @1.2.0
).
Параметры
Для команды libman uninstall
доступны следующие параметры:
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Рассмотрим следующий файл 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/"
}
]
}
Для удаления jQuery можно выполнить любую из следующих команд:
libman uninstall jquery
libman uninstall jquery@3.3.1
Чтобы удалить файлы Lodash, установленные с помощью поставщика
filesystem
, выполните следующую команду:libman uninstall C:\temp\lodash\
Обновление версии библиотеки
Команда libman update
обновляет библиотеку, установленную с помощью LibMan, до указанной версии.
В следующих случаях возникает ошибка:
- Файл не
libman.json
существует в корневом каталоге проекта. - указанная библиотека не существует.
Если установлено несколько библиотек с одним и тем же именем, вам будет предложено выбрать одну из них.
Краткие сведения
libman update <LIBRARY> [-pre] [--to] [--verbosity]
libman update [-h|--help]
Аргументы
LIBRARY
Имя обновляемой библиотеки.
Параметры
Для команды libman update
доступны следующие параметры:
-pre
Получение последней предварительной версии библиотеки.
--to <VERSION>
Получение определенной версии библиотеки.
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Чтобы обновить jQuery до последней версии, выполните следующую команду:
libman update jquery
Чтобы обновить jQuery до версии 3.3.1, выполните следующую команду:
libman update jquery --to 3.3.1
Чтобы обновить jQuery до последней предварительной версии, выполните следующую команду:
libman update jquery -pre
Управление кэшем библиотек
Команда libman cache
управляет кэшем библиотек LibMan. Поставщик filesystem
не использует кэш библиотек.
Краткие сведения
libman cache clean [<PROVIDER>] [--verbosity]
libman cache list [--files] [--libraries] [--verbosity]
libman cache [-h|--help]
Аргументы
PROVIDER
Используется только с командой clean
. Указывает кэш поставщика, который нужно очистить. Допустимые значения:
cdnjs
filesystem
jsdelivr
unpkg
Параметры
Для команды libman cache
доступны следующие параметры:
--files
Список кэшируемых файлов.
--libraries
Список кэшируемых библиотек.
-h|--help
Отображение справочных сведений.
--verbosity <LEVEL>
Задание уровня детализации результатов. Замените
<LEVEL>
одним из следующих значений:quiet
normal
detailed
Примеры
Чтобы просмотреть имена кэшируемых библиотек для каждого поставщика, выполните одну из следующих команд:
libman cache list
libman cache list --libraries
Выходные данные должны выглядеть примерно так:
Cache contents: --------------- unpkg: knockout react vue cdnjs: font-awesome jquery knockout lodash.js react
Чтобы просмотреть имена кэшируемых файлов библиотек для каждого поставщика, выполните следующую команду:
libman cache list --files
Выходные данные должны выглядеть примерно так:
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
Обратите внимание, что в представленных выше выходных данных показано, что для поставщика CDNJS кэшируются версии jQuery 3.2.1 и 3.3.1.
Чтобы очистить кэш библиотек для поставщика CDNJS, выполните следующую команду:
libman cache clean cdnjs
После очистки кэша поставщика CDNJS команда
libman cache list
выводит следующее:Cache contents: --------------- unpkg: knockout react vue cdnjs: (empty)
Чтобы очистить кэш для всех поддерживаемых поставщиков, выполните следующую команду:
libman cache clean
После очистки кэша всех поставщиков команда
libman cache list
выводит следующее:Cache contents: --------------- unpkg: (empty) cdnjs: (empty)
Дополнительные ресурсы
ASP.NET Core