Поделиться через


Использование интерфейса командной строки 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 init — поставщик по умолчанию

Файл 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 install — назначение

После принятия назначения 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)
    

Дополнительные ресурсы