2014-03-30 86 views
4

網絡充滿了如何通過涼亭消費包的例子,但它缺少一個簡單的演練如何註冊/部署/發佈(無論你喜歡的任何術語)包。發佈涼亭包(帶涼亭?)

假設我正在開發我自己的js包,我該如何將它部署到專用存儲庫/文件夾? 我應該爲此目的使用涼亭嗎?或者我應該使用grunt任務?

讓我更準確地知道我需要什麼: 我想創建一個js項目,它會使用其他的bower包。 我想將幾十個js文件連接成一個或幾個js文件(每個js文件都是一個涼亭軟件包),將它們細化,縮小它們,測試它們並粉碎它們的骨骼,而不是簡單地部署每個最終的js文件存入一個存儲庫(在我的情況下 - SVN,因爲這是我們公司使用的)。

就像我挖掘網絡一樣,在我看來,這不是一個涼亭的任務,這是一個咕嚕/螞蟻的任務。 我對不對?

回答

2

我在過去的幾個星期裏取得了很多進展,我很樂意將我的發現分享給像我這樣的咕嚕+涼亭新手。

看來,鮑爾默認註冊到http://bower.herokuapp.com註冊表,它只支持git協議(因爲它意味着服務器公共庫)。

因此,如果您想在私人存儲庫中發佈自己的js庫,使用默認註冊表不是一種好的做法。那裏有許多涼亭註冊表實現。就我個人而言,我是一個java傢伙,所以在我的操場上我使用https://github.com/Softpagehomeware/bower-java-registry,但也有npm,python和其他註冊表實現。

當你想消耗你的包在另一個項目中,只定義到哪裏尋找它在你.bowerrc文件:

{ 
    "registry": { 
     "register": "http://myhost/bower-java-server", 
     "publish": "http://myhost/bower-java-server", 

     "search": [ 
      "http://myhost/bower-java-server" 
      , "https://bower.herokuapp.com" 
     ] 
    }, 

    "directory": "bower_components" 
} 

這樣,當你有一個涼亭的依賴,它首先在您的私人註冊表,如果它沒有找到它,它會搜索herokuapp註冊表。

至於在我的私人git存儲庫託管分發包,我已經使用grunt-build-control,它可以把你dist文件夾,並推送到您的可分發的存儲庫(這是註冊在您的涼亭註冊表)。

4

有點晚了,但我目前正試圖找出許多相同的事情。這是我迄今爲止所瞭解的。

  • 你會用grunt構建你的庫,把它們放到一個分發文件夾中。這將處理所有的linting /縮小/連接等。
  • 準備好黃金時間後,在svn中爲它創建一個標籤。 (見下面...這有點奇怪)。
  • 你做不是需要註冊任何東西。只需使用安裝和存儲庫的路徑即可。

    涼亭安裝SVN + https://svn.mycompany.com/myproject

  • 使用--save或--save-dev的相關選項,將其保存在您的bower.json文件。

  • 你可以打SVN幾個方面:

    • 公共遠程端點顛覆,例如,SVN + http://package.googlecode.com/svn/
    • 私有Subversion存儲庫,例如svn + ssh://package.googlecode.com/svn/。
    • 本地端點,即Subversion存儲庫的文件夾,例如svn + file:/// path/to/svn /。

這是從Bower Home Page

當然,這並不是那麼容易。我發現了更多:

什麼是你放入的SVN倉庫的路徑必須有三個文件夾下:trunk,branches和tags。所以,指向一些子文件夾是完全正確的,但在這之下,你必須有這三個文件夾。即假設你的主文件夾下有一個分發文件夾(即/ trunk/dist)。你有咕嚕把最終產品放入這個文件夾。然後你對它進行標記(將標籤複製到標籤)。所以,你的目錄結構看起來是這樣的:

myproject\tags\REL-1.0\dist\my-library.js 

通過這種結構,涼亭是嘔吐物,如果你試圖做類似

bower install https://svn.mycompany.com/myproject/tags/REL-1.0/dist 

現在,如果你讓下DIST它將這三個文件夾工作。即如果文件夾結構看起來像:

myproject\tabs\REL-1.0\dist\tags\my-library.js 

上述鮑爾命令將工作(但這真的很醜)。

因此,您可能需要爲您的軟件包提供單獨的存儲庫。哦,無論路徑中的最後一個文件夾是什麼,在bower安裝之後,這將是vendor文件夾中的文件夾。即在上面的示例中,庫將位於vendors \ dist文件夾中....並不理想。所以,我正在看這樣的事情:

mypackages/MyLibrary/tags/REL-1.0 

因此,存儲庫是mypackages,每個庫都有一個文件夾。在那之下是三個必需的文件夾(中繼線等)。然後我有每個版本的標籤下的文件夾。

你可以注意到這樣的文件夾:

bower install svn+https://svn.mycompany.com/mypackages/MyLibrary#REL-1.0 

你也可以使用#trunk得到樹幹。有點奇怪。如果您沒有提供任何版本(文件夾),它會從標籤中獲取最新文件夾(不確定是通過排序順序還是在提交日期完成的)。如果標籤中沒有文件夾,它將變爲中繼。不知道如何去分支機構。另外,如果你的存儲庫有安全性,如果你保存了認證信息,它就會正常工作。如果您沒有保存認證信息,不知道該如何工作。

我希望這有助於!我仍然在想象自己......

+0

哇,非常感謝! 我會試一試。關於SVN回購結構的提示非常重要。 所以基本上你說運行「涼亭安裝」會註冊我的項目分發?我認爲bower install僅用於獲取工作區中的bower組件的依賴關係。 –