ASP.NET Core で LibMan CLI を使用する

ライブラリ マネージャー (LibMan) は、軽量なクライアント側ライブラリ取得ツールです。 LibMan は、人気のあるライブラリとフレームワークをファイル システムまたはコンテンツ配信ネットワーク (CDN) からダウンロードします。 サポートされる CDN には、CDNJSjsDelivr、および unpkg が含まれます。 選択したライブラリ ファイルが取り込まれ、ASP.NET Core プロジェクト内の適切な場所に配置されます。

前提条件

インストール

次のコマンドにより、LibMan がインストールされます。

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

Note

既定では、インストールする .NET バイナリのアーキテクチャは、現在実行中の OS アーキテクチャを表します。 別の OS アーキテクチャを指定するには、「dotnet tool install, --arch option」を参照してください。 詳細については、GitHub イシュー dotnet/AspNetCore.Docs #29262 を参照してください。

.NET Core グローバル ツールは、Microsoft.Web.LibraryManager.Cli NuGet パッケージからインストールされます。

使用方法

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>

    現在のフォルダーを基準とした相対パス。 destination プロパティが libman.json 内のライブラリに対して定義されていない場合、ライブラリ ファイルはこの場所にインストールされます。 <PATH> 値は libman.jsondefaultDestination プロパティに書き込まれます。

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

    指定されたライブラリでプロバイダーが定義されていない場合に使用するプロバイダー。 <PROVIDER> 値は libman.jsondefaultProvider プロパティに書き込まれます。 <PROVIDER> を次のいずれかの値に置き換えます。

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

    ヘルプ情報を表示します。

  • --verbosity <LEVEL>

    出力の詳細度を設定します。 <LEVEL> を次のいずれかの値に置き換えます。

    • quiet
    • normal
    • detailed

使用例

ASP.NET Core プロジェクトで libman.json ファイルを作成するには、次の操作を実行します。

  • プロジェクトのルートに移動します。

  • 次のコマンドを実行します。

    libman init
    
  • 既定のプロバイダーの名前を入力するか、Enter を押して、既定の CDNJS プロバイダーを使用します。 有効な値を次に示します。

    • cdnjs
    • filesystem
    • jsdelivr
    • unpkg

    libman init command - default provider

次の内容の 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>

    ライブラリをインストールする場所。 指定しない場合は、既定の場所が使用されます。 libman.jsondefaultDestination プロパティが指定されていない場合、このオプションは必須です。

    注: 宛先パスには制限があります。 たとえば、パッケージ ソースに配布フォルダーだけでなく完全なプロジェクト構造が含まれている場合、フォルダーの移動を指定することはできません。 詳細については、GitHub.com のイシュー #407イシュー #702 を参照してください

  • --files <FILE>

    ライブラリからインストールするファイルの名前を指定します。 指定しない場合、ライブラリのすべてのファイルがインストールされます。 インストールするファイルごとに 1 つの --files オプションを指定します。 相対パスもサポートされています。 たとえば、--files dist/browser/signalr.js のように指定します。

  • -p|--provider <PROVIDER>

    ライブラリの取得に使用するプロバイダーの名前。 <PROVIDER> を次のいずれかの値に置き換えます。

    • cdnjs
    • filesystem
    • jsdelivr
    • unpkg

    指定しない場合、libman.jsondefaultProvider プロパティが使用されます。 libman.jsondefaultProvider プロパティが指定されていない場合、このオプションは必須です。

  • -h|--help

    ヘルプ情報を表示します。

  • --verbosity <LEVEL>

    出力の詳細度を設定します。 <LEVEL> を次のいずれかの値に置き換えます。

    • quiet
    • normal
    • detailed

使用例

次の libman.json ファイルを考えてみます。

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

CDNJS プロバイダーを使用して jQuery バージョン 3.2.1 の jquery.min.js ファイルを wwwroot/scripts/jquery フォルダーにインストールするには、次のようにします。

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"
      ]
    }
  ]
}

ファイル システム プロバイダーを使用して C:\temp\contosoCalendar\ から calendar.js ファイルと calendar.css ファイルをインストールするには、次のようにします。

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

次のプロンプトは、以下の 2 つの理由で表示されます。

  • libman.json ファイルには、defaultDestination プロパティが含まれていません。
  • libman install コマンドに -d|--destination オプションが含まれていません。

libman install command - 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 ファイルが存在しない場合は、エラーが返されます。
  • ライブラリによってプロバイダーが指定されている場合、libman.jsondefaultProvider プロパティが無視されます。
  • ライブラリがインストール先を指定している場合、libman.jsondefaultDestination プロパティが無視されます。

構文

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

オプション

libman restore コマンドには以下のオプションを使用できます。

  • -h|--help

    ヘルプ情報を表示します。

  • --verbosity <LEVEL>

    出力の詳細度を設定します。 <LEVEL> を次のいずれかの値に置き換えます。

    • quiet
    • normal
    • detailed

使用例

libman.json で定義されているライブラリ ファイルを復元するには、次のようにします。

libman restore

ライブラリ ファイルの削除

libman clean コマンドは、LibMan を使用して以前に復元されたライブラリ ファイルを削除します。 この操作の後、空になったフォルダーがあれば削除されます。 libman.jsonlibraries プロパティ内でライブラリ ファイルに関連付けられている構成は削除されません。

構文

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 ファイルが存在しません。
  • 指定されたライブラリが存在しません。

同じ名前のライブラリが複数インストールされている場合は、1 つを選択するように求められます。

構文

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
    
  • filesystem プロバイダーを使用してインストールされた Lodash ファイルをアンインストールするには、次のようにします。

    libman uninstall C:\temp\lodash\
    

ライブラリ バージョンの更新

libman update コマンドは、LibMan を使用してインストールされたライブラリを指定されたバージョンに更新します。

次の場合、エラーが発生します。

  • プロジェクト ルートに libman.json ファイルが存在しません。
  • 指定されたライブラリが存在しません。

同じ名前のライブラリが複数インストールされている場合は、1 つを選択するように求められます。

構文

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
    

    前の出力から、jQuery バージョン 3.2.1 と 3.3.1 が CDNJS プロバイダーでキャッシュされていることがわかります。

  • 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)
    

その他の技術情報