三分鐘從零單排gulp-less配置

這周的某個晚上,室友拿著她寫的todolist代碼來找我做review,看到css文件是這個樣子


“為什么不用less呢?”,我心痛的問她。
“不會。”

于是我推薦了一款小白級的less入門神器:Koala - a gui application for LESS, Sass, Compass and CoffeeScript compilation.**

安裝之后,只要監聽指定的文件夾就能做到實時編譯,哪怕完全不會編程的同學也可以輕松搞定,簡直是不要太容易。

如果只用嵌套和變量這些基本功能,less和sass其實并沒有區別。不過對于win的用戶來說,我比較推薦less,配置簡單好用。原來的sass依賴ruby,而后確實出了node-sass,看起來是很美好的,但是要依賴VS2013,還要裝win8.1SDK,新電腦買回來,就為了個sass,一言不合16G硬盤就沒了!

“這個Koala真好用,但是用node控制臺來搞less一定麻煩死了吧?”
“不是呀, 其實只要三分鐘就可以搞定”

這是真的,這不是夢...

三分鐘,從零單排gulp-less


首先是安裝Node.js,現在最新的穩定版本是4.4.4,和安裝一切傳統軟件一樣,一路“下一步“點下來就行了,安裝正確的標志是在控制臺中輸入(以下示例代碼均在cmd控制臺輸入,linux系統自行添加sudo)

  node -v

可以看到正確的版本號

(幾天前重裝的電腦居然已經落后了一個版本...)

然后安裝npm,不好意思,這步不需要,因為npm已經內置在nodejs中了,所以輸入

npm -v

就可以直接看到當前npm的版本



(你知道么,在中文輸入法狀態輸入npm會出現”你配么“,表現出了nodejs高冷的一面...)
突然發現本機的npm版本居然還是2.x,趕緊升級一下,3.x版本的npm目錄變得扁平,更加好用,所以我們輸入代碼

npm i npm -g

其中”i“是”install“的簡寫,”-g“代表全局安裝,第二個”npm“是要安裝的包名字,所以npm安裝自己的時候這個指令看起來就有點奇怪。裝好后我們再檢查一下現在的npm版本號


至此,準備工作全部完成,可以開始配置gulp了。在項目根目錄輸入代碼

npm init

創建一個新的項目


"這些項目都是什么呢?"
”看得懂的就填,看不懂的就回車...“

現在在項目目錄下可以看到一個多出來的package.json文件,我們為項目添加兩個必要的依賴

npm i --save-dev gulp gulp-less

“--save”表示把兩個引入的包存入package.json文件中,而“--save-dev”表示這兩個包是用于開發而不用于產品中。顯然gulp只是開發時的輔助工具,所以我們選擇帶有“-dev”后綴的參數。輸入代碼,然后安靜等待30秒,當代碼執行結束之后,你會發現package.json文件變成了



項目已經引入了對gulp和gulp-less的依賴。
現在在根目錄下新建一個gulpfile.js文件,用來配置gulp

cd. >gulpfile.js

(你可以直接在文件夾右鍵新建文件,也可以像我一樣用控制臺裝一下13...)
在gulpfile.js中寫入如下代碼:

var gulp = require('gulp')
var less = require('gulp-less')
gulp.task('less', function () { 
    return gulp.src('./less/*.less')    
    .pipe(less())
    .pipe(gulp.dest('./css'))
})

gulp.task幫助我們新建一個任務,任務是流式的,從gulp.src的文件開始,到gulp.dest的文件輸出,中間用less()做處理。直白的翻一下就是:
執行一個叫做less的task,讀入./less文件夾下所有less后綴的文件(*.less表示一切以less為后綴的文件),然后用less()進行轉換,然后輸出到./css目錄下。
我們在根目錄下新建一個less文件夾,并且新建一個test.less文件,在其中寫一段測試的less代碼,然后在控制臺執行

gulp less

看看配置是不是生效了



我們看到,在根目錄下的css文件夾內自動生成了對應文件名的css文件。

進階


每次編寫完less文件之后都要手動執行一次“gulp less”指令是不現實的,如何配置自動執行呢?這里要使用"gulp.watch"指令。
可以看到,watch也是gulp自帶的(四個)功能之一(其他三個“task”,“src”,“dest”剛剛已經見過了),它可以監控某個路徑下文件的改變,而自動執行指定的腳本。
看一下稍微改造過的代碼:

var gulp = require('gulp')
var less = require('gulp-less')
var paths = {
  less: ['./less/*.less']
}

gulp.task('less', function () { 
  return gulp.src(paths.less)   
  .pipe(less()) 
  .pipe(gulp.dest('./css'))
})

gulp.task('watch', function() { 
  gulp.watch(paths.less, ['less'])
})

添加paths變量管理路徑(這個并不是必要的,你也可以不使用變量)。

在控制臺輸入

gulp watch

之后每一次修改less文件,gulp都會自動幫你編譯到css文件夾。

gulp還有其他很多豐富的插件,更重要的是,它可以極盡個性化的對開發項目進行配置,從而幫助開發者節約時間,而節約時間就是延長生命。

這一秒我先續為敬

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,732評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,214評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,781評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,588評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,315評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,699評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,698評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,882評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,441評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,189評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,388評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,933評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,613評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,023評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,310評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,112評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,334評論 2 377

推薦閱讀更多精彩內容

  • 在現在的前端開發中,前后端分離、模塊化開發、版本控制、文件合并與壓縮、mock數據等等一些原本后端的思想開始...
    Charlot閱讀 5,467評論 1 32
  • 前言 本文默認你已經安裝好node環境,并且熟悉node命令,和window cd命令。 gulp簡介 基于nod...
    9I閱讀 1,992評論 4 50
  • gulpjs是一個前端構建工具,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數,API也非常簡單,學...
    依依玖玥閱讀 3,171評論 7 55
  • 安裝Gulp首先需要安裝Node.js,并在控制臺輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 938評論 0 1
  • 1、gulp的安裝 首先確保你已經正確安裝了nodejs環境。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,395評論 1 11