2017-05-15 174 views
0

我在我的項目中使用幾個開源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 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.zbranch-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`標籤在依賴關係的末尾。

這是我從終端安裝庫時得到的日誌。

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 

爲什麼我在發佈/標籤名稱中獲取未定義?我是否在命名標籤時犯了錯誤?有什麼方法可以從終端安裝這些自定義庫,並將確切標籤保存在bower.json中?

回答

0

問題的解決方案是使用--save而不是--save-exact。我現在沒有解釋同樣的情況,但我會盡快更新答案。

據我所知,這是因爲該軟件包是從github直接安裝的,而不是從註冊表中註冊。