2015-01-11 63 views
0

我正在創建一個JavaScript客戶端庫,我將通過Bower使其可用,並依賴於另外兩個庫,一個通過Bower(https://github.com/abritinthebay/datejs)可用,另一個僅通過npm提供(https://github.com/fent/randexp.js )。我很擔心我的圖書館的用戶如何使用它。我的疑惑和恐懼是:創建具有依賴性的涼亭項目

  • 如何聲明第二個庫作爲我的庫的依賴關係時,它只能通過npm?

  • 用戶安裝我的庫之後,他/她是否必須意識到依賴關係並手動在其index.html中包含相應的javascript文件?我意識到grunt-bower-install可以解決這個問題,但是我擔心甚至根本不會使用grunt的人。

  • 如果我放棄了所有這些,並將所述庫的代碼包含在我自己的代碼中,它會如此糟糕嗎?

  • (獎金輪):我希望我的圖書館可以作爲AngularJS服務,作爲node.js模塊以及作爲「普通」javascript函數使用。有沒有辦法讓我只用一個倉庫來實現這個目標,還是我必須創建3個獨立的項目?

+1

bower可以通過git解決依賴關係,您應該查看一下。換句話說,你可以聲明一個github項目,或者如果它不是一個涼亭項目作爲依賴項 – neo

回答

1

1)如果希望bower軟件包管理系統可用,則需要將第二個庫打包到bower軟件包中。 npm是完全不同的東西,你不會直接在兩者之間共享。

2)是的,用戶需要確保在每個頁面上按照正確的順序加載依賴關係。 Bower只是確保您的依賴關係已安裝並且版本正確。

3)通常,我會避免這種情況。他們是與正交關注的單獨項目。這就是爲什麼我們一開始就創建了像鮑爾一樣的軟件包管理器。

獎勵:

4)是的,你可以用一個存儲庫實現這一目標。每個軟件包管理服務都需要他們自己的配置文件 - 但是,將bower.jsonpackage.json都放在版本庫的根目錄中沒有任何問題。您只需分別使用npmbower發佈到每個系統。

PS。這應該是超過1個問題。

+0

我通過在我的bower.json中添加minified js文件的url作爲bower依賴項來解決randexp.js依賴項問題。我將爲角模塊提供一個bower.json,爲節點模塊提供一個package.json,並在瀏覽器中提供一個獨立的js文件。 – Tavio