【问题标题】:how can I get the commit hash for a package installed via NPM from a git repo?如何从 git repo 获取通过 NPM 安装的包的提交哈希?
【发布时间】:2019-05-23 19:20:00
【问题描述】:

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

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

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

【问题讨论】:

  • 只需将#commit_id 添加到 git url...
  • @n00dl3 这将导致我在该提交处安装该版本。我不在乎我安装了什么提交 - 我只想安装最新的,但能够在事后获得提交哈希。
  • 看来您应该能够获得树的手动哈希,然后通过提交进行线性搜索以找到匹配的树哈希。不过,我不知道有一种方法可以自动执行此操作。
  • 可能希望将更多元数据放入 my-library.git 本身。你可以看看docs.npmjs.com/cli/version

标签: node.js git github npm npm-install


【解决方案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)

npm install 是从依赖于 git 的模块完成时,node_modules/my-library/package.json 将有一个密钥 _resolved,它将为您提供安装模块的提交哈希。

它看起来像这样

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

【讨论】:

    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 2023-03-16
    • 2013-12-26
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多