私有 github repo 作为依赖在 npm install 上是无关的

Posted

技术标签:

【中文标题】私有 github repo 作为依赖在 npm install 上是无关的【英文标题】:Private github repo as dependency is extraneous on npm install 【发布时间】:2017-08-22 05:28:06 【问题描述】:

这是我第一次在另一个项目中使用私有 repo 作为依赖项。我想我做得对,但是安装后新项目中没有依赖项,并且不在node_modules中。

在this post 之后,我可以看到我正确地将它包含在 package.json 中,例如:

"myPackage": "git+https://github.com/myusername/mygitrepository.git"

当我在这个包上运行npm install时,我看到它没有错误,但是在列表中的这个依赖之后,它显示为extraneous(git+https://github.com/myusername/mygitrepository.git)

即使存在无关问题,也没有错误,并且依赖项不可用或在 node_modules 中列出。

更新:repo_A package.json


  "name": "project-name",
  "version": "1.0.0",
  "description": "Backend utility functions",
  "scripts": 
    "test": "mocha"
  ,
  "repository": 
    "type": "git",
    "url": "git+https://github.com/user/repo.git"
  ,
  "author": "me",
  "license": "ISC",
  "bugs": 
    "url": "https://github.com/user/repo/issues"
  ,
  "homepage": "https://github.com/user/repo#readme",
  "dependencies": 
    "lodash": "^4.17.4",
    "mongodb": "^2.2.25",
    "redis": "^2.7.1",
    "winston": "^2.3.1"
  

更新:repo_B package.json


  "name": "main-project-name",
  "version": "1.0.0",
  "description": "",
  "repository": 
    "type": "git",
    "url": "git+https://github.com/user/repo.git"
  ,
  "author": "someone else",
  "homepage": "https://github.com/user/repo.git",
  "dependencies": 
    "async": "2.1.4",
    "chai": "^3.5.0",
    "langs": "1.1.0",
    "lodash": "4.13.1",
    "node-stopwatch": "0.0.1",
    "request": "2.74.0",
    "winston-loggly": "^1.3.1",
    "utils": "user/repo_A.git#master"
  ,
  "scripts": 
    "test": "mocha"
  

更新最新步骤 以下是我现在要测试每个可能的解决方案的步骤,然后是输出:

rm -rf node_modules
npm cache clean
npm install

输出

├─┬ async@2.1.4
│ └── lodash@4.17.4
├─┬ chai@3.5.0
│ ├── assertion-error@1.0.2
│ ├─┬ deep-eql@0.1.3
│ │ └── type-detect@0.1.1
│ └── type-detect@1.0.0
├── util@1.0.0  extraneous (git+ssh://git@github.com/user/repo_A.git#commit-ish)
.......

【问题讨论】:

【参考方案1】:

如果您指定 https,那么它将寻找我相信的登录用户和密码,我认为它不会自动加载。我将它简单地列为“用户/仓库”,并确保机器上有一个 ssh 密钥,它在 github 中,就像帮助中描述的设置一样,如 https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#platform-linux 并且设置了东西,以便拉下该 repo 不会需要用户交互。

编辑:经过测试,我认为问题在于您在 package.json 中的 name 与您在主项目的依赖项中列出的方式不匹配。在我的测试中,这导致安装了模块,但我收到了无关的消息。

【讨论】:

谢谢,我没有考虑过 https 方面。但是,我也尝试过“user/repo”并且得到了相同的最终结果。它仍然显示: extraneous (git+ssh://git@github.com/username/repo.git). 您没有解决我关于 ssh 密钥等的其余回复。 我没有在评论中提到,因为 ssh 密钥已设置,不是问题 extraneous 表示“未在父包的依赖项列表中列出的包”.. 是否有父包?

以上是关于私有 github repo 作为依赖在 npm install 上是无关的的主要内容,如果未能解决你的问题,请参考以下文章

在 github repo 上使用 NPM 安装 React 依赖项

AWS Beanstalk 通过 NPM 安装私有 Github 模块导致身份验证问题

如何通过 https 使用私有 GitLab 存储库作为带有私有令牌的 npm 依赖项

无法使用托管在 GPR 上的私有 NPM 包

私有 Typescript 库作为 npm 依赖项

AWS CodeBuild 和 CodeCommit 存储库作为 npm 依赖项