定制凉亭包

Customizing bower packages

我在我的项目中使用了几个开源js库。我最近开始使用 Bower 来处理所有的前端依赖项。我喜欢只提供 github url 而不是正确的包名称。

我定制了几个库。因此,为了使用 Bower 管理它们,我在 Github 上的组织帐户中创建了一个名为 myLibs 的私有存储库。

我正在为每个自定义库创建分支。例如,定制的 angular-bootstrap 库将在 angular-bootstrap 分支中,定制的 angular-material 库将在 angular-material 分支中。

现在我正在为每个库中的每个版本创建标签。我使用的命名约定是 branch-name/x.y.z 例如,我有 angular-bootstrap/1.0.0angular-material/1.1.1 标签。

这很好,直到我不得不使用 Bower 安装这些库。要安装自定义库,我调用了以下命令(这是一个虚拟 url,请勿尝试)

bower install --save-exact library-patch=https://github.com/test_org/myLibs.git#branch-name/1.0.0

库已安装,我也可以在 bower_components 中看到它,但在我的 bower.json 中,依赖项条目是这样的 -

"library-patch":"https://github.com/test_org/myLibs.git#undefined"

这不是我想要的。我想保存正确的标签名称。我不想每次添加自定义库时都手动更改 bower.json 文件。

我的第一个想法是标签的命名约定会是个问题。因此,我将其从依赖项末尾的 branch-name/x.y.z which allowed me to have the exact version in the bower.json to install it properly, but when trying to install the libraries using the terminal, instead of using bower.json, I am getting the#undefined` 标记更改为 branch-name-x.y.z

这是我从终端安装库时得到的日志。

bower install --save-exact library-patch=https://github.com/test_org/myLibs.git#branch-name-1.0.0
bower not-cached    https://github.com/test_org/myLibs.git#branch-name-1.0.0
bower resolve       https://github.com/test_org/myLibs.git#branch-name-1.0.0
bower download      https://github.com/test_org/myLibs/archive/branch-name-1.0.0.tar.gz
bower retry         Download of https://github.com/test_org/myLibs/archive/branch-name-1.0.0.tar.gz failed with EHTTP, trying with git..
bower checkout      library-patch#branch-name-1.0.0
bower resolved      https://github.com/test_org/myLibs.git#branch-name-1.0.0
bower install       library-patch#branch-name-1.0.0

library-patch#branch-name-1.0.0 bower_components/library-patch
└── angular#1.4.8

为什么我在 release/tag 名称中未定义?我在命名标签时犯了什么错误吗?有什么方法可以从终端安装这些自定义库并将确切的标签保存在 bower.json?

问题的解决方案是使用 --save 而不是 --save-exact。我现在没有相同的解释,但我会尽快更新答案。

据我所知,这是因为软件包是直接从 github 安装的,而不是从 bower 注册表安装的。