我正在尝试安装一个存在于我们的私有仓库中的包。目标是与合作伙伴共享 repo,但我需要确保他们可以安装它。从理论上讲,它应该可以工作,但是没有任何记录在案的解决方案对我有用
我试过将包添加到 package.json 文件
"dependencies": {
"package_name": "git+https://<deploy-token-name>:<deploy-token>@gitlab.domain.com/group/repo.git"
}
Run Code Online (Sandbox Code Playgroud)
然后用 npm 安装,但它似乎在部署令牌上失败,但很难说,因为日志不是很有帮助,然后我们的整个 gitlab 部署会暂时停止#fun
29 error
29 error undefined
29 error exited with error code: 128
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用私有访问令牌
"package-name": "https://oauth2:<access-token>@gitlab.domain.com/group/repo.git"
Run Code Online (Sandbox Code Playgroud)
这导致了我可以理解的实际错误,除了错误是说存储库中没有 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.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用 ssh(使用适用于提交等的 ssh 密钥设置)
git+ssh://git@my-domain.com:my-project/my-repo#my-branch
Run Code Online (Sandbox Code Playgroud)
这会导致错误
npm ERR! premature close
Run Code Online (Sandbox Code Playgroud)
我已经阅读了十几篇相关的问题和文章,但没有什么对我有用
str*_*ger -1
如果你想安装私有 npm 包,你应该使用 Scopes。
您可以在存储库的 .npmrc 文件中定义范围。
应用程序存储库中的示例 .npmrc:
@scopeName:registry=http://private-npm-registry/
always-auth=true
Run Code Online (Sandbox Code Playgroud)
因此 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
归档时间: |
|
查看次数: |
3933 次 |
最近记录: |