Node.js 如何从git repo获取通过NPM安装的包的提交哈希?

Node.js 如何从git repo获取通过NPM安装的包的提交哈希?,node.js,git,github,npm,npm-install,Node.js,Git,Github,Npm,Npm Install,在my package.json中,我有如下行: "dependencies": { "my-library": ""git+ssh://git@github.com/my_org/my-library.git" } 这将始终安装github上my library的master分支的最新版本。我希望能够在安装此依赖项时获得提交哈希。这是可能的吗?npm list my library在您的包中会给出如下所示的提交散列 sample-project@0.0.1 /.../sample-p

在my package.json中,我有如下行:

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

这将始终安装github上my library的
master
分支的最新版本。我希望能够在安装此依赖项时获得提交哈希。这是可能的吗?

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安装时,
node\u modules/my library/package.json
将具有一个密钥
\u resolved
,该密钥将为您提供安装模块的提交哈希

它看起来像这样

"_resolved": "git+https://git@github.com/mylibrary/mylibrary.git#fadsf8972qrjafds76d7aa30ee4d7671c" 

只需将
#commit_id
添加到git url…@n00dl3,这将导致我在提交时安装该版本。我不在乎我安装了什么commit,我只想安装最新的commit,但是能够在事后获取commit散列。看起来你应该能够手动获取树的散列,然后通过commit进行线性搜索以找到匹配的树散列。但我不知道自动执行此操作的方法。可能需要将更多元数据放入my-library.git本身。你可以看看