LoginSignup
48
36

More than 5 years have passed since last update.

GitHub 上にある自作の npm パッケージを dependencies に指定する方法

Last updated at Posted at 2019-02-25

はじめに

npm は GitHub や BitBucket を npm パッケージの置き場所に指定できます。
ここではその方法について説明します。

プライベートリポジトリの場合

自作の npm パッケージを開発しているとき、開発したリソースをプライベートな場所に置きたい場合があります。
プライベートリポジトリの場合は認証を通す必要があるのですが、やり方が2通りあって、以下のようにします:

1. SSH config に github.com の接続情報を登録しておく

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

ここでは方法は紹介しませんが、事前に個人認証用のキーペアを生成しておき、秘密鍵を ~/.ssh/id_rsa におきます。
また、 GitHub に public キーを登録しておきます。

2. アクセストークンをつかう

以下の方法で事前にアクセストークンを取得しておきます。
https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line

package.jsondependencies に以下のように指定します:

"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"

たいてい package.json は Git 管理するため、アクセストークンを埋め込みたくないと思うので、1の方法を使うのが一般的だと思います。

GitHubリポジトリを指定する (基本)

package.jsondependencies に以下のように指定します。

git+ssh://git@github.com/<user>/<repo>.git#[branch|tag|commit]

常に最新のmasterを参照させる場合

最新の master に固定されます。
ただし、 package-lock.js にはコミットIDが含まれるので、リモートを更新したら npm update が必要。

  "dependencies": {
    "hikyaku-lib": "git+ssh://git@github.com/<user>/<repo>.git"
  }

タグを指定する場合

v3.0.0 というタグのついたコミットに固定します

  "dependencies": {
    "hikyaku-lib": "git+ssh://git@github.com/<user>/<repo>.git#v3.0.0"
  }

コミットを指定する場合

  "dependencies": {
    "hikyaku-lib": "git+ssh://git@github.com/<user>/<repo>.git#8a9bb6d32a6899ccecd6ba0b6cfff330a37bbbb6"
  }

ブランチを指定する場合

  "dependencies": {
    "hikyaku-lib": "git+ssh://git@github.com/<user>/<repo>.git#dev"
  }

セマンティックバージョニングを指定する場合

  "dependencies": {
    "hikyaku-lib": "git+ssh://git@github.com/<user>/<repo>.git#semver:^2.0.0"
  }

参考

48
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
36