こんにちは、Unityエンジニアのオオバです。
UnityのPackageManagerプライベートリポジトリの調査
前回からの続きで、プライベートリポジトリをUnity PackageManagerで使うためにnpmサーバーをローカルに立ててみます。
GitHub - verdaccio/verdaccio: 📦🔐A lightweight private proxy registry build in Node.js
有名なVerdaccioを使います。Verdaccioは無料でnpmサーバーを作ることが出来ます。
※nodejs、npmのインストールについては割愛します。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
Verdaccioのインストールからnpmサーバー起動まで
手順はとても簡単です。
まずは以下のinstallコマンドでVerdaccioをインストールします。
$ npm install -g verdaccio

こんな感じでnpmが古いと言われたら以下のコマンドで最新化します。
$ npm install -g npm
最新化してnpmはバージョン6.14.6を使用することになりました。

npmサーバーを起動
verdaccioコマンドでnpmローカルサーバーが起動します。
$ verdaccio
https://localhost:4873/
にブラウザからアクセスします。

このような画面が表示されたら成功です。
パッケージの用意とレジストリ登録
これからパッケージをレジストリに登録していくわけですが、その前にユーザーの作成をします。
npm adduser --registry https://localhost:4873
上記のコマンドを叩くと
- ユーザー名
- パスワード
- メアド
入力を求められます。全て入力するとユーザーが作成されます。
ログアウトする時は以下のコマンド。
npm logout --registry https://localhost:4873
ログインする時は以下のコマンドです。
npm login --registry https://localhost:4873
話を戻してパッケージを登録していきます。ここでは前回作成した、テスト用リポジトリを登録していきます。
ちなみに以下のようなファイル構成です
├── LICENSE
├── README.md
└── hoge
├── aaaaa.txt
├── hoge.txt
└── package.json
※本来はC#ファイルとAssemblyDefinitionが必要
package.json
が配置されているhogeディレクトリをカレントディレクトリにして、以下のコマンドを実行します。
npm publish --registry https://localhost:4873
すると【※サイトがクローズ済み】 (Verdaccioトップページ)に登録されました。

登録されたパッケージをUnityPackageManagerを通してUnityで使っていきます。
UnityPackageManagerで使ってみる
manifest.jsonの一部を編集します。
~~~略~~~
"scopedRegistries": [
{
"name": "今回作ったプライベートパッケージ",
"url": "https://localhost:4873/",
"scopes": [
"info.shibuya24"
]
}
]
manifest.jsonの末尾辺りにscopedRegistriesを追加します。すでに存在するなら、中身の配列に要素を追加してください。
url
は今回起動したVerdaccioのURL(https://localhost:4873/
ですね)、scopesにはPackageManagerに表示させるパッケージ名(一部でOK)です。
すると、このようにUnityPackageManagerにリストアップされるようになり、ここからインストールと削除ができるようになります。

scopesの補足
ここに列挙した名前のパッケージをPackageManagerは指定されたURLから検索することになります。
"scopes": [
"info.shibuya24"
]
今回は上記のように記載したので、以下のパッケージを登録したら、
- info.shibuya24.hoge
- info.shibuya24.piyo
- info.aaaaaa.shibuya24.fuga
PackageManagerには、
- info.shibuya24.hoge
- info.shibuya24.piyo
上記の2つがリストアップされることになります。
npmパッケージの更新方法
ソースコードを修正してpublishするだけです。
npm publish --registry https://localhost:4873

このタイミングのpackage.jsonのバージョンが表示されます。
最後に
これでプライベートリポジトリもUnityPackageManagerで使えるようにはなりました。
参考
- プライベートnpmレジストリを無料で作る——「Verdaccio」という選択肢 – WPJ
- UnityPackageManagerのレジストリサーバーを立てる話 – 10ANTZ Developers Blog

この記事が気に入ったらフォローしよう