我正在尝试安装我们私人仓库中存在的软件包。目标是与合作伙伴共享该存储库,但我需要确保他们可以安装它。从理论上讲,它应该可以工作,但是没有文件记录的解决方案对我有用。
我尝试将软件包添加到package.json文件
"dependencies": {
"package_name": "git+https://<deploy-token-name>:<deploy-token>@gitlab.domain.com/group/repo.git"
}
然后使用npm安装,但似乎在部署令牌上失败,但是很难说,因为日志不是很有帮助,然后整个gitlab部署暂时停顿了#fun
29 error
29 error undefined
29 error exited with error code: 128
我也尝试过使用私人访问令牌
"package-name": "https://oauth2:<access-token>@gitlab.domain.com/group/repo.git"
这会导致我可以理解的实际错误,除了错误是说存储库中没有package.json,但最肯定的是
npm ERR! package.json Non-registry package missing package.json: package-name@https://oauth2:<access-token>@gitlab.domain.com/group/repo.git.
npm ERR! package.json npm can't find a package.json file in your current directory.
我已经尝试过ssh(使用适用于提交的ssh密钥设置)
git+ssh://git@my-domain.com:my-project/my-repo#my-branch
这会导致错误
npm ERR! premature close
我已经阅读了许多相关的问题和文章,但是没有任何帮助
答案 0 :(得分:0)
如果要安装私有npm软件包,则应使用“作用域”。
您可以在存储库的.npmrc文件中定义范围。
示例.npmrc在您的应用程序存储库中:
@scopeName:registry=http://private-npm-registry/
always-auth=true
因此npm可以处理类似的依赖项: @ scopeName / yourprivateModule @ version
访问此存储库的令牌不应包含在您的存储库中,而应在主文件夹.npmrc中进行配置。 Npm将首先在当前文件夹中查找.npmrc,然后在您的主文件夹中查找。配置的选项将被合并。
但是,仅当您将软件包发布到私有npm注册表时,此方法才对您有用。 https://docs.gitlab.com/ee/user/project/packages/npm_registry.html#authenticating-with-an-oauth-token
所以总结一下:
向您的package.json添加范围依赖
例如
npm i @scopeName/yourprivateModule@version
答案 1 :(得分:0)
我遇到了同样的问题,并且设法解决了。
我要安装的gitlab存储库没有package.json
文件。