为什么 npm 安装 git+ssh 安装与 https 不同?

Why does npm install with git+ssh install differently than https?

通过 https 和 ssh 安装 npm 包有什么区别?我的期望是下载的包是相同的,但事实并非如此。例如:

// package.json
"dependencies": {
    "lodash": "^4.17.19"
    // vs
    "lodash": "git@github.com:lodash/lodash.git#semver:^4.17.19"
}

当我使用第一个选项时,安装了实际的 npm 包。 当我通过第二个选项安装时,我只得到了从 repo 中列入白名单的文件,而不是实际的包本身。

我在 npm 文档中没有看到很好的解释。为什么这些安装的不是同一个东西?有没有办法通过 ssh 而不是提交本身来安装实际的包?

两种安装依赖的方式

  1. 来自 NPM 存储库本身(指定版本)
  2. 来自 github(指定分支或提交和标记)

除非有必要,否则建议将 minified/compiled 版本的库发布到注册表而不是源代码。因此,您从 NPM 获得的内容可能与源存储库本身不同。

与方法(http 或 ssh)相比,这确实是“位置”(npm 或 github)的问题