package.json 中带有版本的私有 bitbucket 存储库

Posted

技术标签:

【中文标题】package.json 中带有版本的私有 bitbucket 存储库【英文标题】:Private bitbucket repository in package.json with version 【发布时间】:2017-10-09 07:55:32 【问题描述】:

我正在尝试在我的 package.json 中包含一个私有 BitBucket 存储库,但我也想将版本作为普通模块进行管理。 目前我正在使用这个

"package-name": "git+https://<user>:<password>@<url-repository>.git"

我已经试过了,但是没用。

"package-name": "git+https://<user>:<password>@<url-repository>.git#v1.0"

有什么想法吗?

【问题讨论】:

【参考方案1】:

你必须在模块 repo 中标记你想要安装的版本。 repo url 可以在模块的package.json 文件中找到,例如

"repository": 
    "type": "git",
    "url": "git+https://github.com/repo-owner-name/my-module.git" // <-- This line!
,

当您向版本添加标签(例如git tag -a 0.0.1 -m "auto release")后,可以使用以下方式安装它:

"my-module": "git+https://bitbucket.org/repo-owner-name/my-module.git#0.0.1"

【讨论】:

【参考方案2】:

    登录您的 bitbucket 帐户并在用户设置下添加应用密码:

    将包依赖项添加到您的package.json 为:

"dependencies": 
"my-module": "git+https://Xaqron:pwd@bitbucket.org/Xaqron/my-module.git#*"

Xaqron 替换为您自己的用户名,将pwd 替换为第一步中的应用密码。

要安装特定版本,请将 #v.v.v(即#1.0.0)添加到依赖 URL 的末尾。

【讨论】:

那个版本是分支实际上只是为了清楚 注意:您必须使用您的主 Bitbucket 用户名,而不是您在第一步中创建的应用密码的“标签”。 @AdamGerthel 您可以通过在 URL 末尾添加 #semver:whatever 来使用版本范围。示例:my-module.git#semver:^1.5.2. 但这会将我的 bitbucket 密码留在 package.json 中,我很可能会使用 git 进行跟踪。不是一个非常安全的解决方案。 @wolfson109 改用git+ssh【参考方案3】:

我目前正在使用它并且它有效:


  "dependencies": 
    "package-name": "git+ssh://git@<url-repository>.git#v0.1.0"
  

我正在使用npm 版本4.1.2 和自托管bitbucket 版本4.14.6

【讨论】:

以上是关于package.json 中带有版本的私有 bitbucket 存储库的主要内容,如果未能解决你的问题,请参考以下文章

在 package.json 中使用 * 而不是版本号时如何始终获取最新版本? [复制]

在 package.json 中定义私有注册表

在 package.json 中隐藏私有仓库的令牌

在 Github Actions 上从 package.json 安装私有 github 包

从模块导入“私有”TypeScript 声明而不通过 package.json 公开它

将私有 github 存储库设置为 docker 中 package.json 中的依赖项在 github 操作中生成失败