從GitHub克隆後,有沒有辦法讓涼亭運行一個軟件包咕嚕聲?如何讓涼亭建立包裝?
我正在嘗試使用Bower,但我使用的軟件包之一是Bootstrap擴展,x-editable。 問題是,雖然其他軟件包將完整的內置版本推送到github,所以當由Bower安裝時,您有一個內置版本x-editable,希望您運行一個grunt文件來構建軟件包。
這是其他包管理器中的常見做法,例如npm,但我可以找到如何讓Bower在安裝時進行構建。這意味着我需要另一種機制來完成軟件包的安裝。
從GitHub克隆後,有沒有辦法讓涼亭運行一個軟件包咕嚕聲?如何讓涼亭建立包裝?
我正在嘗試使用Bower,但我使用的軟件包之一是Bootstrap擴展,x-editable。 問題是,雖然其他軟件包將完整的內置版本推送到github,所以當由Bower安裝時,您有一個內置版本x-editable,希望您運行一個grunt文件來構建軟件包。
這是其他包管理器中的常見做法,例如npm,但我可以找到如何讓Bower在安裝時進行構建。這意味着我需要另一種機制來完成軟件包的安裝。
建立在安裝上是一種反模式,強烈建議在Node中禁止。像Node一樣,Bower軟件包應該是預先構建的。這是因爲最終用戶不必關心軟件包需要什麼預處理器或構建系統。
你最好的選擇是說服作者預先構建,分叉並自己做,或者在安裝組件後手動構建。
Bower團隊計劃添加發布軟件包到服務器的能力,類似於它在npm中的工作方式。這對於需要構建步驟的包來說會更好。
你可以使用作曲家處理後安裝:
bower.json:
{
"dependencies": {
"bootstrap": "*"
}
}
composer.json:
{
"scripts" : {
"post-install-cmd" : [
"bower install --no-color",
"lessc bower_components/bootstrap/less/bootstrap.less public/script/bootstrap.css"
]
}
}
然後我跑composer install
:
Loading composer repositories with package information
Installing dependencies (including require-dev)
Nothing to install or update
Generating autoload files
bower warn Package bootstrap is still using the deprecated "component.json" file
bower cloning git://github.com/twitter/bootstrap.git
bower cached git://github.com/twitter/bootstrap.git
bower fetching bootstrap
bower checking out bootstrap#v2.3.2
bower warn Package jquery is still using the deprecated "component.json" file
bower copying C:\Users\renadm\AppData\Roaming\bower\cache\bootstrap\9d49e0aedf207bebd028e26cc86a9e58
bower cloning git://github.com/components/jquery.git
bower cached git://github.com/components/jquery.git
bower fetching jquery
bower checking out jquery#1.8.3
bower copying C:\Users\renadm\AppData\Roaming\bower\cache\jquery\29cb4373d29144ca260ac7c3997f4381
bower installing bootstrap#2.3.2
bower installing jquery#1.8.3
在Bower完成安裝後,LESS編譯器會處理.less文件,並在我的公用文件夾中放置一個不錯的bootstrap.css
。使用Closure Compiler可以爲JavaScript文件做類似的事情。
與使用其他構建工具有何不同?像咕嚕? –
有3個掛鉤,安裝後可以解決你的問題,如果由於任何原因你不能像@Sindre Sorhus指出的那樣預建。
在.bowerrc做:
{
"scripts": {
"preinstall": "<your command here>",
"postinstall": "<your command here>",
"preuninstall": "<your command here>"
}
}
在1.3.12中不起作用 – dopatraman
大多數NPM 「重」 包我使用有一定的構建階段後安裝的。提交預構建的跨平臺(通常是本機)代碼似乎更糟糕的選擇。儘管如此,即使Bower不鼓勵它的最佳做法,我認爲這種選擇應該適用於特殊情況。 –
本機擴展是Node中的例外,因爲它們沒有預編譯的基礎結構,但正在考慮中。一個選項已經可用。鮑爾有一個API。所以你可以自由地破解你自己的解決方案,但對於普通用戶來說,這不是一個好的選擇,也不會在Bower中被推薦或支持。 –
@Sinder我的問題是我是否可以強制一個未發佈的包的構建階段?例如x-editable,它在Bower倉庫上,但爲了使用它,你需要運行它的grunt文件。 –