摘要:是業(yè)界使用率比較高的前端組件管理工具,基本上類似于,但解決了項目中同一個庫的引入多個版本的問題。然后覺得的這個是有問題的,沒有接受,于是很可能后面從新拉的不包含這部分接口。
bower是業(yè)界使用率比較高的前端組件管理工具,基本上類似于npm,但解決了項目中同一個庫的引入多個版本的問題。大家知道,同一個庫版本并存這對于node來說很正常,但對于瀏覽器來說幾乎是不可接受的。以下是我們使用bower遇到的5個問題和我們的取舍與選擇。
一、組件版本用master 還是 tag?新組件在快速迭代、小范圍使用的情況下推薦用master
其他情況使用tag,上面代碼段里的v0.0.5就是tag的版本號。
{ ... "dependencies": { "pop": "git@git.qima-inc.com:bower_components/pop.git#v0.0.5", "loader": "git@git.qima-inc.com:bower_components/loader.git#v1.1.0", "youzanjsbridge": "git@git.qima-inc.com:bower_components/youzanjsbridge.git#v0.0.3" ... } ... }二、我要穩(wěn)定:發(fā)現(xiàn)版本不一致怎么辦?
可以在數(shù)字前面加!,讓這個選擇固定到bower.json里,下次別人執(zhí)行bower update 就會直接選擇你選定的版本了。
如下圖:再一次執(zhí)行bower udpate 就自動選擇了之前固定下來的版本了。
三、如何把所有組件更新到最新版?可以安裝個工具 bower-update:
npm install bower-update -g
在工程目錄里執(zhí)行bower-update后會挨個讓你確認要不要把某個組件升級到最新版本,最后你的選擇會被寫到bower.json里。
四、版本號必須以 v 打頭么?經(jīng)測試,bower對tag的版本號里開頭的 v 是做了自適應的,比如:
五、bower組件代碼的升級迭代如何管理假設
遠程服務器上有2個版本的tag,分布是 v0.0.1 和 0.0.2
那么本地bower.json里
如果要使用0.0.1版本,無論指定版本號為“#0.0.1” 還是 “#v0.0.1”
如果要使用0.0.2版本,無論指定版本號為“#0.0.2” 還是 “#v0.0.2”
都是可以的并且能下到正確的代碼
我們的經(jīng)驗是:
1、組件盡量拆分地細粒度,一個組件或者一類組件放在一個git倉庫里
2、相近范疇和功能的組件在一個git倉庫里
3、每個git倉庫由一兩個人主要維護(在gitlab里的話就是給他設master權(quán)限),其他人要改代碼,需要提交pull request,由負責維護的人審查代碼,合并代碼并拉新的tag出來
我們發(fā)現(xiàn) gitlab 里 develop 權(quán)限的用戶也能自己拉 tag(要命的是我們還沒發(fā)現(xiàn)如何禁止這個操作),解決有人提了一個分支上來,沒等維護的人合并就基于這個分支拉了個tag出來,自己很歡快的用起來了。實際上這么玩會有很大的坑的,所以需要團隊內(nèi)部需要做一個約定:只有維護的人才可以拉tag。
補充下為什么說隨便拉tag會有坑——舉個例子:項目X是A在維護的,B提交了一個分支并發(fā)起一個pull request,沒等A接受這個pull request拉出新tag,B直接基于自己的hotfix拉的tag,其他人依賴這個新tag提供的接口寫了些代碼。然后A覺得B的這個pull request是有問題的,沒有接受,于是很可能后面從master新拉的 tag 不包含這部分接口。于是就出現(xiàn)了 0.1.2 版本不兼容 0.1.1 版本的情形。
本文首發(fā)于我的
SegmentFault專欄:http://segmentfault.com/a/1190000004189341
個人技術(shù)博客:http://delai.me/code/bower/
轉(zhuǎn)載請注明出處
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/78358.html
摘要:問題一在中配置開發(fā)測試時用得庫,無法在運行時注入。解決辦法分如下幾步,在自己的里直接將變量重寫,指向正確的相對位置即可。 問題一、在bower中配置開發(fā)測試時用得庫,無法在運行時注入。首先是打算有一些測試時候用到的庫,放到bower.json文件的devDependencies里面,但是運行之后怎么也找不到對應的文件,也就是gulp無法進行注入,而加到正式的庫里面就能找到解決辦法參看了...
并發(fā)活性 并發(fā)應用程序及時執(zhí)行的能力被稱為其活性,本節(jié)描述了最常見的活性問題,死鎖,并繼續(xù)簡要描述其他兩個活性問題,饑餓和活鎖。 死鎖 死鎖描述了兩個或多個線程永遠被阻塞,等待彼此的情況,這是一個例子。 Alphonse和Gaston是朋友,是禮貌的忠實信徒,禮貌的一個嚴格規(guī)則是,當你向朋友鞠躬時,你必須一直鞠躬,直到你的朋友有機會還禮,不幸的是,這條規(guī)則沒有考慮到兩個朋友可能同時互相鞠躬的可能性...
摘要:感謝使用框架本文檔涵蓋構(gòu)建應用所需的基礎知識。用于數(shù)據(jù)校驗的組件及相關(guān)文件在此目錄進行管理。除了自定義中間件外,還是用了諸多第三方的中間件,它們是五測試我們使用組件對服務端代碼進行測試。識別當前導航從已有導航中刪除給定標識的導航配置。 本文同步至個人博客 MEAN.js 文檔,轉(zhuǎn)載請注明出處。 Overview 感謝使用 MEAN.js 框架! 本文檔涵蓋構(gòu)建 MEAN 應用所需的基礎...
摘要:前端開發(fā)涉及多種工具,這里將常用工具的安裝和配置進行說明,提供了詳細的說明,為后繼的開發(fā)創(chuàng)建一個堅實的基礎。是目前最為流行的源代碼管理網(wǎng)站。安裝在繼續(xù)學習前,你需要先將命令行安裝到全局環(huán)境中。 Web 前端開發(fā)涉及多種工具,這里將常用工具的安裝和配置進行說明,提供了詳細的說明,為后繼的開發(fā)創(chuàng)建一個堅實的基礎。 本文介紹的工具有:NodeJS, NPM, Bower, Git 和 Gru...
摘要:前端開發(fā)涉及多種工具,這里將常用工具的安裝和配置進行說明,提供了詳細的說明,為后繼的開發(fā)創(chuàng)建一個堅實的基礎。是目前最為流行的源代碼管理網(wǎng)站。安裝在繼續(xù)學習前,你需要先將命令行安裝到全局環(huán)境中。 Web 前端開發(fā)涉及多種工具,這里將常用工具的安裝和配置進行說明,提供了詳細的說明,為后繼的開發(fā)創(chuàng)建一個堅實的基礎。 本文介紹的工具有:NodeJS, NPM, Bower, Git 和 Gru...
閱讀 1681·2021-11-23 09:51
閱讀 2691·2021-11-22 09:34
閱讀 1327·2021-10-14 09:43
閱讀 3668·2021-09-08 09:36
閱讀 3214·2019-08-30 12:57
閱讀 2035·2019-08-30 12:44
閱讀 2524·2019-08-29 17:15
閱讀 3021·2019-08-29 16:08