1. ホーム
  2. node.js

[解決済み】特定のバージョンでGitからnpm installする。

2022-04-17 19:45:48

質問

Node.jsのモジュールで、非公開にしたいものを書いたとします。私は行を追加することができる(べきである)ことを知っています。

"private": "true"

から package.json ファイルができることも知っています。 npm install このモジュールは、ファイルシステムのパスまたは GitHub などの git リポジトリへのリンクを使用しています。

また、このようなファイルシステムのパスやgit repoへのリンクを package.json というように dependencies の部分は、次のような感じです。

"dependencies": {
  "myprivatemodule": "[email protected]:..."
}

私が今欲しいのは、最新バージョンへのリンクではなく、特定のバージョンへのリンクです。私が知っている唯一の可能性は、そのIDを使って特定のコミットにリンクすることです。しかし、これは次のようなバージョン番号を使用するよりも可読性が低く、保守性も悪くなります。 0.3.1 .

そこで質問なのですが、とにかくこのようなバージョン番号を指定して、npmがgitリポジトリを検索して、このバージョンを含む最新のコミットを探すことは可能でしょうか?

そうでない場合、あなたのプロジェクトでは、この問題をどのように解決していますか?コミットIDと共存しているのか、それとももっと良い解決策があるのでしょうか?

解決方法は?

A 依存関係 から利用できる必要があります。 registry をインストールするだけで を指定することで version 記述子 .

あなたは確かに 独自のレジストリを作成し、使用することができます。 の代わりに registry.npmjs.org プロジェクトが公開されるべきでない場合。

しかし、レジストリに登録されていない場合は、それを参照するために URL または GitのURL . Git の URL でバージョンを指定するには、適切な <commit-ish> タグのようなもので、最後に URL フラグメント .

0.3.1 :

"dependencies": {
  "myprivatemodule": "[email protected]:...#0.3.1"
}

備考 : 上記のスニペットは、質問で投稿されたものと同じベースURLを示しています。

切り取られた部分( ... ) を埋める必要があります。

"myprivatemodule": "[email protected]:{owner}/{project}.git#0.3.1"

また、SSHアクセスができない場合は、別のアドレス形式が必要になります。

"myprivatemodule": "git://github.com/{owner}/{project}.git#0.3.1"


お使いのOSによっては link を、Github からクローンした別のフォルダの依存関係に追加します。