以構建Bootstrap v4為例練習使用Grunt

1恳啥、學習Sass

至本文撰寫時亏拉,Bootstrap v4還在Alpha階段卵贱,v4采用Sass组力,而v3版本同時有Sass和Less版本惧辈,所以你至少要先學習Sass,另外Less也可以學一學绵跷。下面以v4 Alpha 5版本為例膘螟。

2、升級npm

npm是Nodejs自帶的包管理器碾局,你需要學習它的基本命令荆残,大致就那么幾條:

npm install安裝package.json里面的依賴;
npm install -g moduleName來全局安裝某個包净当;
npm install --save moduleName安裝生產環(huán)境所需的包内斯;
npm install --dev moduleName安裝開發(fā)環(huán)境所需的包;
npm update/uninstall moduleName更新或卸載某個包像啼;
npm list查看當前目錄下已安裝的包俘闯;
npm root -g查看全局安裝的包的路徑;
npm help查看全部命令忽冻;

記得用之前必須先升級到最新版:npm install -g npm@4.0.1真朗,npm最新版的版本號去 https://github.com/npm/npm/releases/ 查。為什么升級到最新版很重要僧诚?因為在Node.js的世界里遮婶,各種包的版本更新會帶來難以想象的重大革新,同時解決一系列的bug湖笨,這些革新一般人根本沒精力去了解旗扑,而且Bootstrap的官方肯定是用最新版本的npm,而你如果不用慈省,就會跟官方出現版本差異臀防,你如果遇到一些莫名其妙的問題可不要怪系統也不要怪官方,所以乖乖升級到最新版吧辫呻。

另外清钥,用淘寶NPM鏡像npm install -g cnpm --registry=https://registry.npm.taobao.org可以極大提升拉包速度,從實踐來看放闺,除非你拉單個包(還必須是依賴不多的包)祟昭,可以用npm,其他的一律用cnpm吧怖侦。

3篡悟、安裝grunt-cli

grunt是Bootstrap使用的構建工具,雖然現在流行的是gulp匾寝,但Bootstrap v4使用的是grunt搬葬,而且我們今天練習的是grunt。

全局安裝grunt:npm install -g grunt-cli

Paste_Image.png

4艳悔、把bootstrap@4.0.0-alpha.5拉下來

新建一個文件夾急凰,比如bs4.0.0,在里面執(zhí)行npm install bootstrap@4.0.0-alpha.5猜年。

Paste_Image.png

5抡锈、局部安裝grunt

拉下bs4.0.0之后疾忍,會發(fā)現里面有一個node_modules文件夾,再里面有三個文件夾床三,進入bootstrap文件夾執(zhí)行npm install grunt一罩。

5、安裝package.json里面的依賴

打開package.json我們會看到很多依賴包撇簿,執(zhí)行npm install把所有的包安裝一遍聂渊。這一步非常耗時,需要耐心的等四瘫。實在不行汉嗽,可以用cnpm。現在我用cnpm命令來替代npm命令莲组,來一次cnpm install诊胞。雖然也需要幾分鐘的時間(視網速而定),但已經是快了很多锹杈∧旃拢總之只要是大規(guī)模下載包,就優(yōu)先考慮cnpm竭望。

到此邪码,所有的準備工作完成,bootstrap文件夾中多了一個node_modules文件夾咬清,含有2萬多個文件闭专,2700多個文件夾。旧烧。影钉。無力吐槽。

6掘剪、準備就緒平委,開工構建一次dist

我們看看bs官方提供的build-tools一頁的文檔,其中提到“grunt dist creates the /dist directory with compiled files. ”夺谁,也就是說grunt dist命令用于生成dist文件夾廉赔,就是distribution(分發(fā))文件夾。

為了測試匾鸥,我先把已有的dist文件夾改名成dist_bak蜡塌,然后執(zhí)行grunt dist

你會發(fā)現到Running "babel:dist" (babel) task時候出錯勿负,提示沖突馏艾。好吧,我修改命令grunt dist --force,再來一次琅摩,剛才的沖突沒了厚者,但又有Running "uglify:core" (uglify) task出錯,而且無法修復迫吐。

其實Node.js這種民間搞的生態(tài)圈就是這個樣子,bs官方用Grunt可能什么問題也沒有账忘,原封不動的拿過來咱們自己用志膀,就各種出錯,原因是每個人的電腦環(huán)境不同鳖擒,比如我是Windows你是Mac溉浙,而且?guī)浊€node模塊都是靠另外下載,結果每個人下載的模塊都可能有幾個包的差異蒋荚,這樣的軟件大合集戳稽,跟大公司開發(fā)的集成軟件在穩(wěn)定性上完全沒法比。

最后我們去dist文件夾看一看期升,發(fā)現了新的dist文件夾已經構建好惊奇,我們拿它對比備份的dist_bak文件夾,發(fā)現里面果然少了一個文件播赁,是js\bootstrap.min.js颂郎,原因就是Running "uglify:core" (uglify) task出錯。其他文件容为,有一些跟備份文件完全相同乓序,有一些有所不同,原因是我們跟bs官方用的模塊版本略有區(qū)別坎背。

至此替劈,Grunt構建Bootstrap分發(fā)包的過程結束,盡管沒有完全成功得滤。

7陨献、grunt watch監(jiān)視Sass文件的修改

根據bs的官方文檔,grunt watch用于監(jiān)視Sass文件的修改耿戚,所以我們測試一下湿故。

先看看備份的bootstrap.css,是127,534 字節(jié)膜蛔。

然后我運行grunt watch坛猪,我在_custom.scss文件新增一行$font-size-h1: 12.5rem;,12.5rem是一個很大的字號了皂股。你會發(fā)現命令行有重新構建的過程墅茉,dist里面的bootstrap.css,是127,535 字節(jié),多了一字節(jié)就斤。不過悍募,構建過程又有報錯(無力吐槽),所以執(zhí)行過程還沒來得及構建js文件就自動退出了洋机,dist文件夾里面連js文件夾都沒有坠宴。

練習到此為止。

結論:

1绷旗、如果你在實踐中沒有發(fā)現報錯喜鼓,那么恭喜你,你可以使用Grunt衔肢。但我仍然建議你改用gulp庄岖,自己寫gulpfile.js,因為gulpfile.js的寫法比Grunt簡單得多角骤,運行起來也快得多隅忿。可以參考我寫的gulp v4編譯Bootstrap-sass v3.3.7邦尊。

2背桐、如果你跟我一樣發(fā)現了報錯,那么還是用gulp吧胳赌。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末牢撼,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子疑苫,更是在濱河造成了極大的恐慌熏版,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捍掺,死亡現場離奇詭異撼短,居然都是意外死亡,警方通過查閱死者的電腦和手機挺勿,發(fā)現死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門曲横,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人不瓶,你說我怎么就攤上這事禾嫉。” “怎么了蚊丐?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵熙参,是天一觀的道長。 經常有香客問我麦备,道長孽椰,這世上最難降的妖魔是什么昭娩? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮黍匾,結果婚禮上栏渺,老公的妹妹穿的比我還像新娘。我一直安慰自己锐涯,他們只是感情好磕诊,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纹腌,像睡著了一般秀仲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上壶笼,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音雁刷,去河邊找鬼覆劈。 笑死,一個胖子當著我的面吹牛沛励,可吹牛的內容都是我干的责语。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼目派,長吁一口氣:“原來是場噩夢啊……” “哼坤候!你這毒婦竟也來了?” 一聲冷哼從身側響起企蹭,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤白筹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谅摄,有當地人在樹林里發(fā)現了一具尸體徒河,經...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年送漠,在試婚紗的時候發(fā)現自己被綠了顽照。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡闽寡,死狀恐怖代兵,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情爷狈,我是刑警寧澤植影,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站淆院,受9級特大地震影響何乎,放射性物質發(fā)生泄漏句惯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一支救、第九天 我趴在偏房一處隱蔽的房頂上張望抢野。 院中可真熱鬧,春花似錦各墨、人聲如沸指孤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恃轩。三九已至,卻和暖如春黎做,著一層夾襖步出監(jiān)牢的瞬間叉跛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工蒸殿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筷厘,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓宏所,卻偏偏與公主長得像酥艳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子爬骤,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內容