node.js - 从 Gitlab 私有(private)存储库导入 Node 模块时出错

标签 node.js git npm gitlab node-modules

场景:

  • 我开发了某种 Node 模块。
  • 后来我发现,我可以使用自己的 Gitlab 存储库将其用作 Node 模块,而不是将 Node 模块发布到 npm 存储库。

限制是:

  • 我必须使用私有(private)存储库来执行此事件
  • 我必须使用 https url 来获取存储库

因此,在谷歌搜索了几个小时后,我找到了一个解决方案,其中涉及直接从 git 存储库包含依赖项。

因此我的依赖关系如下:

    "my-module": "git+https://myusername:myaccesstoken@gitlab.com:Organization/Project.git#develop"

如果我执行npm install,则会导致:

npm 错误!执行时出错: npm 错误!/usr/bin/git ls-remote -h -t ssh://git@gitlab.com/organization/project.git npm 错误! npm 错误!权限被拒绝(公钥)。 npm 错误!致命:无法从远程存储库读取。 npm 错误! npm 错误!请确保您拥有正确的访问权限 npm 错误!并且存储库存在。 npm 错误! npm 错误!退出并显示错误代码:128 npm 错误!此运行的完整日志可以在以下位置找到: npm 错误!/home/username/.npm/_logs/2018-05-16T13_25_37_053Z-debug.log

最佳答案

假设您按照此 SO answer 中提到的步骤设置访问 token

您可以尝试删除项目 URL 末尾的 .git 扩展名吗,这样它看起来应该像这样

"my-module": "git+https://myusername:myaccesstoken@gitlab.com:organization/project#develop"

所以 @ 之后的所有内容都应该是 gitlab 上项目的确切 URL,如您在地址栏中看到的那样

关于node.js - 从 Gitlab 私有(private)存储库导入 Node 模块时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50373296/

相关文章:

javascript - 如果我将函数体而不是函数名传递给 setTimeout 会发生什么?

git - 未找到模式 : ^M however it shows in git diff

node.js - npm 找不到 package.json

Node.js 收缩的 package.json 会导致 npm install 更新新版本

git - 在 github 上管理发布

node.js - NPM : checkPermissions Missing write access to/. ../node_modules/is

node.js - Mailjet v3.1 邮件发送失败并出现错误代码

javascript - 打开新窗口并在该新窗口上运行 javascript

node.js - MongoDB - $merge 可在 Compass 中运行,但不能在 Node.js Lambda 中运行

git - git clone --mirror 和 git clone --bare 有什么区别