shuhelohelo’s blog

Xamarin.Forms多めです.

Visual StudioでのASP.NET Coreアプリ開発におけるクライアントサイドライブラリの導入はLibManが便利

ウェブアプリケーションのクライアントサイドの開発には様々なライブラリを使用します.

などなど,必要に応じてCDNから取得したりするわけですが,CDNを使わない場合だってあって,その場合はローカルにこれらのライブラリをダウンロードして配置したりします.

これは結構手間がかかる作業です.

Visual StudioはNuGetによる.NETライブラリのインストールだけでなく,Webアプリケーションのクライアントサイドで使用される様々なライブラリの導入を簡単にしてくれる機能が用意されています.

このクライアントサイドライブラリの導入,管理を簡単にしてくれるのがLibManです.

LibManVisual Studioの標準の機能で,何かをインストールや設定する必要なくすぐ使えます.

docs.microsoft.com

環境

ライブラリのインストール

ASP.NET Core WebApplicationのプロジェクトを作成してあることを前提とします.

ソリューションエクスプローラのプロジェクト名の上で右クリックしてコンテキストメニューから追加クライアントサイドライブラリ(Client-Side Library)を選択します.

f:id:shuhelohelo:20191006105405p:plain

以下のウィンドウが表示されます.ここから導入したいライブラリを検索して選択するだけで,プロジェクトにライブラリを導入し,管理することができます.

f:id:shuhelohelo:20191006105453p:plain

試しにグラフを描画するjavascriptライブラリのChart.jsを導入してみましょう.

先程のウィンドウのLibraryの欄にchartとでも入力してみてください.

f:id:shuhelohelo:20191006105913p:plain

このように候補が表示されるので,目的のChart.jsを選択します.

すると,以下のようにインストールするライブラリのバージョン(デフォルトでは最新バージョン)と含まれるファイル群,インストール先のpathが表示されます.

f:id:shuhelohelo:20191006110616p:plain

これでよければInstallボタンを押します.

指定のpathにファイル群が配置されていることがわかります.

f:id:shuhelohelo:20191006110907p:plain

柔軟な指定が可能

最新版ではなく特定のバージョンをインストールしたい場合は,以下のようにLibrary欄のバージョン部分を編集すると候補が表示されるので,そこから選択することができます.

f:id:shuhelohelo:20191006110414p:plain

また,お気づきとは思いますがそのライブラリに含まれるファイル群から特定のファイルだけを選択して導入することもできます.

f:id:shuhelohelo:20191006110616p:plain

このように,とても簡単かつ柔軟に導入することができます.

管理情報と復元,削除

先程のウィンドウ経由で導入したライブラリの情報はソリューションエクスプローラのプロジェクトフォルダの直下に作成されるlibman.jsに記載されます.

f:id:shuhelohelo:20191006111133p:plain

これを開くと,以下のようにVS経由で導入したライブラリの情報がJSON形式で記載されていることがわかります.

f:id:shuhelohelo:20191006111315p:plain

ここに記載されている情報に従ってライブラリをリストアすることができます.

例えば,以下のようにバージョンを変更したい場合,このJSONファイルを直接編集するとしましょう.

f:id:shuhelohelo:20191006111542p:plain

便利なのはここでもバージョンの候補が表示されることです.バージョンどころかライブラリからして候補が表示されます.

f:id:shuhelohelo:20191006111731p:plain

変更したらlibman.jsonを保存します.今回は2.7.0を選択しました.

ソリューションエクスプローラlibman.jsonを右クリックしてコンテキストメニューを表示させます.

f:id:shuhelohelo:20191006111933p:plain

コンテキストメニューにはRestore Client-Side Library,Clean Client-Side Library,Enable Restore Client-Side Library on Buildといった項目が含まれています.

これらの項目を選択することによって,このlibman.jsonの内容に従ってライブラリの復元やクリアなどができます.

Restore Client-Side Libraryを選択してみましょう.Chart.jsファイルを開いてみるとバージョンが2.7.0に変わっていることが確認できます.

f:id:shuhelohelo:20191006112357p:plain

Clean Client-Side Libraryを実行すると,導入したライブラリのファイル群がプロジェクトから削除されます.

Restore Client-Side Libraryすれば元通りです.

不要と判断したライブラリはlibman.jsonから削除してしまえば復元もされません.

npmパッケージの導入・管理もできる

javascriptcssのライブラリだけではなく,npmパッケージの導入・管理も同じようにできます.

先程のウィンドウでProviderの項目でunpkgを選択します.

例えば,SignalRを使う場合にはクライアント側にMicrosoftが提供するsignalrというnpmパッケージが必要なのですが,これをインストールしてみましょう.

@microsoft/signalrと入力すると,先ほどと同じように候補が表示されますね.

f:id:shuhelohelo:20191006113912p:plain

あとは同じように導入・管理することができます.

おわりに

とても便利なクライアントサイドライブラリLibManですが, あまりに便利すぎて更にVisual Studioなしでは生きていけない体になってしまいました.