成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

享受 Grunt

Sike / 1851人閱讀

摘要:這些任務(wù)包括但不限于將源代碼編譯為二進制文件打包二進制文件運行測試用例發(fā)布到線上環(huán)境添加文檔或發(fā)行注釋為什么很重要呢,因為它能節(jié)省程序員的時間。

Update: 別用 Grunt 了,用 Gulp !拜拜。

(原文發(fā)表于我的個人博客 http://frankfang.com/2013/12/29/grunt-is-awesome/ ,如有錯
誤,還請賜教)

在生產(chǎn)環(huán)境中使用 Grunt 已經(jīng)有兩個多月了,是時候?qū)懸恍w會了。目前能在網(wǎng)上搜到不少入門教程,我這篇就不再贅述 使用 Grunt 的目的、安裝過程和配置方法等了,主要講一些實際工作時的思考。另外還涉及到 Bower 和 Yeoman。

Build Automation

Build Automation 就是「構(gòu)建自動化」,Wiki 上的解釋是

  

構(gòu)建自動化是將軟件開發(fā)人員日常工作中的一系列任務(wù)自動執(zhí)行。這些任務(wù)包括但不限于

將源代碼編譯為二進制文件

打包二進制文件

運行測試用例

發(fā)布到線上環(huán)境

添加文檔或發(fā)行注釋

為什么 BA 很重要呢,因為它能節(jié)省程序員的時間。重復(fù)性、可執(zhí)行的任務(wù),本應(yīng)交給機器來完成。省時省力,多好。

P.S. 其實 BA 不一定總是好的,見下圖

用 Grunt 之前

BA 具體到前端開發(fā),就包括但不限于以下任務(wù)

將 LESS/SCSS 和 CoffeeScript 編譯為 CSS 和 JS

將源代碼(JS、CSS、HTML)和圖片壓縮(以節(jié)省用戶帶寬)

打包或合并資源文件

對資源文件做版本控制

運行測試用例

發(fā)布到線上環(huán)境

在 Grunt 之前,我們一般是怎么完成這些任務(wù)的呢?我們用了類似的自動構(gòu)建工具,如 Ant 或 Make。說實話,Grunt 跟這些工具的區(qū)別可能僅僅是語言的選擇不同,但這正是吸引我們前端開發(fā)者的一點——使用 JS 作為開發(fā)語言。

Ant 我真是從沒用過, 因為我真的看不懂 XML(其實我是忠實的 Java 黑你應(yīng)該知道吧)。Makefile,總感覺是 C/C++ 程序員用的東西,也無愛。

感謝 Grunt,我不用去學習 Ant 和 Make,就可以按我的想法來做自動構(gòu)建了。

Yeoman 和 Bower

一般來說,用 Grunt 的同時都會配合著 Yeoman 和 Bower 來用。我先吐槽下這倆貨。

Bower 很好用,能節(jié)省我們寶貴的人生。不過 bower list --path 有時候不能把文件的路徑打印完整,每次都要我費勁去翻目錄,因為這些組件的開發(fā)者沒有在 .bower.json 里添加 main 文件的配置,差評。

Yeoman 一般,能幫你寫好初始模板、Gruntfile 和 Bower,但是有兩個缺點

一、臃腫

流行的 generator 添加了過多的任務(wù)而顯得十分臃腫!以 generator-backbone 為例,它添加了 25 項 Grunt 任務(wù),其中 9 項我不怎么想用,最氣人的是它還有一個 compass 任務(wù),要運行這個任務(wù)我需要事先安裝 ruby!你敢再多依賴點兒別的東西嗎?。?/p>

二、可定制化差

我想改變一下 generator-backbone 里面的目錄結(jié)構(gòu),廢老大力氣了。牽一發(fā)而動全身,而且有些任務(wù)插件又沒有文檔,改起來提心吊膽的。

所以目前我還是沒有直接使用 Yeoman,只是借鑒了里面的 Gruntfile 的寫法。并且在嘗試寫自己的 generator。

用 Grunt 之后

我用 Grunt 做了哪些事呢?其實主要是兩方面:加快開發(fā)和自動構(gòu)建。

加快開發(fā)

主要使用了 watch 任務(wù)。

由于我們在項目里采用了 LESS,所以我使用 Grunt 對其進行實時編譯。

Live Reload 功能我并沒有使用,它很煩,經(jīng)常在我不想刷新頁面的時候幫我刷新了。而且速度也不夠快。

另外我讓 Grunt 實時運行單元測試。

自動構(gòu)建

這個過程主要交給 usemin 任務(wù)來完成。

它會合并文件、壓縮文件, 以及加版本信息。

我們的 git commit 即可觸發(fā) CI 來執(zhí)行 Grunt 命令,然后將其發(fā)布到線上環(huán)境。

Workflow

這就是傳說中的 Workflow 啊,將我從繁雜的瑣事中解救出來了哇,有一種「世界如此美妙」的感覺!

簡單來說,只要在工作中遇到了 over and over again 的任務(wù),我就會考慮把它放入 Grunt 中,作為 Workflow 的一個步驟。

這樣做的好處是什么呢?只有一個:把本該讓機器去做的事交給機器去做。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/87447.html

相關(guān)文章

  • 切圖崽的自我修養(yǎng)-使用自動化工具

    摘要:前言已爛想來大家對自動化構(gòu)建工具已經(jīng)不陌生了,自動化構(gòu)建工具可以幫開發(fā)者省去很多重復(fù)勞動比如語法糾錯文件打包文件操作,合并壓縮等等常用的自動化構(gòu)建工具有等等,這些構(gòu)建工具核心都是依賴第三方插件,通過顆?;蝿?wù),再將這些任務(wù)按照合適的方式進行 前言 F5已爛 showImg(https://segmentfault.com/img/bVyS47); 想來大家對自動化構(gòu)建工具已經(jīng)不陌生了,...

    jayce 評論0 收藏0
  • 切圖崽的自我修養(yǎng)-使用自動化工具

    摘要:前言已爛想來大家對自動化構(gòu)建工具已經(jīng)不陌生了,自動化構(gòu)建工具可以幫開發(fā)者省去很多重復(fù)勞動比如語法糾錯文件打包文件操作,合并壓縮等等常用的自動化構(gòu)建工具有等等,這些構(gòu)建工具核心都是依賴第三方插件,通過顆?;蝿?wù),再將這些任務(wù)按照合適的方式進行 前言 F5已爛 showImg(https://segmentfault.com/img/bVyS47); 想來大家對自動化構(gòu)建工具已經(jīng)不陌生了,...

    GT 評論0 收藏0
  • 切圖崽的自我修養(yǎng)-使用自動化工具

    摘要:前言已爛想來大家對自動化構(gòu)建工具已經(jīng)不陌生了,自動化構(gòu)建工具可以幫開發(fā)者省去很多重復(fù)勞動比如語法糾錯文件打包文件操作,合并壓縮等等常用的自動化構(gòu)建工具有等等,這些構(gòu)建工具核心都是依賴第三方插件,通過顆?;蝿?wù),再將這些任務(wù)按照合適的方式進行 前言 F5已爛 showImg(https://segmentfault.com/img/bVyS47); 想來大家對自動化構(gòu)建工具已經(jīng)不陌生了,...

    luqiuwen 評論0 收藏0
  • 前端開發(fā)學習-網(wǎng)址記錄

    摘要:不是一下子能看完綜合使用編程是一番怎樣的體驗學習筆記網(wǎng)站前端開發(fā)基礎(chǔ)算法題如何優(yōu)雅地使用如何優(yōu)雅地使用零度博客碼農(nóng)網(wǎng)伯樂在線什么是頁面渲染國外先更到這,還有太多網(wǎng)址,先歸類一下再補充。 最近在復(fù)習JavaScript知識時遇到以前就不懂的閉包、上下文,雖然比以前理解深了一點,但還是懵,想緩一下。。就去看了其他。。把Git、Grunt、Gulp、jQuery、jQuery UI、Reac...

    CatalpaFlat 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<