我该如何从Git仓库中通过NPM安装的软件包获取提交哈希值?

5

在我的package.json文件中,我有以下几行代码:

"dependencies": {
    "my-library": ""git+ssh://git@github.com/my_org/my-library.git"
}

这将始终安装来自Github上的my-library存储库的最新代码。 我想要的是,在安装此依赖项时获取提交哈希值,这可能吗?


只需将 #commit_id 添加到 git url 中即可... - n00dl3
@n00dl3 这将导致我安装该提交版本。我不在乎安装哪个提交 - 我只想安装最新的版本,但事后能够获取提交哈希值。 - tadasajon
看起来你应该能够手动获取树的哈希值,然后通过线性搜索提交来查找匹配的树哈希值。但我不知道有自动执行此操作的方法。 - merlin2011
可能需要将更多元数据放入my-library.git本身。 您可以查看https://docs.npmjs.com/cli/version - Will
1个回答

1
在您的包内运行npm list my-library将会给出如下的提交哈希值。
sample-project@0.0.1 /.../sample-project
└── my-projet@0.8.0  (git+https://git@github.com/mylibrary/mylibrary.git#fadsf8972qrjafds76d7aa30ee4d7671c)

当从具有来自git的依赖项的模块执行npm install时,node_modules/my-library/package.json将具有一个键_resolved,该键将提供安装模块的提交哈希值。
它将看起来像这样:
"_resolved": "git+https://git@github.com/mylibrary/mylibrary.git#fadsf8972qrjafds76d7aa30ee4d7671c" 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接