概要
みなさんは個人開発をする時、自分で作った共通で使えそうな便利なライブラリをどのように管理していますか?
簡単なコードなどでは公開せずに自分用のライブラリとして使いたいor使った方がいいような場合もあるかと思います。
今回はそう言った時に、自分のPCにnpmのレジストリを立て、そこに作ったライブラリをpublishする簡単な方法を紹介します。
(npmでのインストール手順もありますが、今回はdockerでの手順です。)
登場人物
verdaccio
verdaccioはprivate npm registryです。自分だけで使えるnpmのregistryです。
docker
dockerは簡単にいうと仮想マシンの1つです。nginxやmysqlがインストールされた仮想環境が、簡単に起動できて簡単に削除できるようなものです。docker hubにはいろんな環境が転がっています。
今回はverdaccio/verdaccioを使って自分のPCにprivate npm registryを立て、自分のパッケージをそこにpublish/unpublishする方法を紹介します。
(dockerのインストール)
dockerのインストール はここを参考にしてください。
僕の $ docker --version
は Docker version 18.09.2, build 6247962
になりました。
verdaccioの起動
$ docker pull verdaccio/verdaccio
→ verdaccioの最新のイメージをダウンロードします。
$ docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
→ verdaccioをdockerで起動します。
Ctrl + Cでプロセスを終了できます。コンテナは --rm
オプションによって自動的に削除されるのでdockerを汚しません。
publishするパッケージの準備
簡単にverdaccioにpublishできることを確認するために、 console.log('this is my package')
だけするパッケージを用意してpublishしてみましょう。
$ mkdir verdaccio-sandbox && cd verdaccio-sandbox && npm init -y && echo "console.log('this is my package')" > index.js
などして、検証に使うnpmパッケージを作成します。
registryの指定
$ echo registry=http://localhost:4873 > .npmrc
.npmrc
があるディレクトリで npm
コマンドを使った場合、このファイルに書かれた設定を読み込んでくれるので、今後このディレクトリでは --registry=http://localhost:4873
が省略できます。上のコマンドを使わない場合は、適宜このオプションを付け加えてください。
verdaccioで使うユーザー作成
$ npm adduser
で、先ほど起動したverdaccioのユーザーを作成します。ユーザー名、パスワード、メールアドレスなどを聞かれるので適宜入力してください。自分だけで使うのであれば適当で構いません。
パッケージの公開
$ npm publish
で、先ほど起動したverdaccioに今回のパッケージを公開します。
パッケージの削除
$ npm unpublish
ログアウト
$ npm logout
確認
別のパッケージから上記手順で publish
したパッケージをインストールするには、 .npmrc
か --registry
を忘れないようにしてください。