gulp入門詳解(一)

本文主要摘自互聯網博客:http://www.ydcss.com/archives/18
結合筆者的一些安裝使用經驗,總結以下:
分類:構建工具javascript

簡介:

1.爲何要使用gulp
gulp是前端開發過程當中對代碼進行構建的工具,是自動化項目的構建利器;她不只能對網站資源進行優化,並且在開發過程當中不少重複的任務可以使用正確的工具自動完成;使用她,咱們不只能夠很愉快的編寫代碼,並且大大提升咱們的工做效率。
2.gulp可以實現哪些功能
gulp是基於Nodejs的自動任務運行器,她能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查、合併、壓縮、格式化、瀏覽器自動刷新、部署文件生成,並監聽文件在改動後重復指定的這些步驟。在實現上,她借鑑了Unix操做系統的管道(pipe)思想,前一級的輸出,直接變成後一級的輸入,使得在操做上很是簡單。經過本文,咱們將學習如何使用Gulp來改變開發流程,從而使開發更加快速高效。
總結:
gulp功能:
1.自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的
(1)測試
(2)檢查
(3)合併
(4)壓縮
(4)格式化
(5)瀏覽器自動刷新
(6)部署文件生成
注:以上功能能夠經過安裝grup提供插件,而後再配置文件中引用來實現,稍後會有詳細的論述。
2.監聽文件在改動後重復指定
注:該功能能夠在配置文件中聲明,只要修改了相應文件,輸出的壓縮後的文件裏相同名稱的文件也會作一樣改變,省去了重複壓縮處理的步驟。
3.對比grunt,爲何選擇gulp
gulp 和 grunt 很是相似,但相比於 grunt 的頻繁 IO 操做,gulp 的流操做,能更快地更便捷地完成構建工做。
本示例以gulp-less爲例(將less編譯成css的gulp插件)展現gulp的常規用法,只要咱們學會使用一個gulp插件後,其餘插件就差看看其幫助文檔了。讓咱們一塊兒來學習gulp吧!
gulp經常使用地址:
gulp官方網址:http://gulpjs.com
gulp插件地址:http://gulpjs.com/plugins
gulp 官方API:https://github.com/gulpjs/gul...
gulp 中文API:http://www.ydcss.com/archives...css

2.安裝

1.安裝node
因爲gulp是基於Nodejs的運行的,因此在安裝gulp以前要先安裝node。安裝node不是本文的主要內容,讀者能夠查看個人安裝node的文章。
安裝完node後:
打開命令提示符執行下列命令(打開方式:window + r 輸入cmd回車):
(1)cd定位到目錄,用法:cd + 路徑
(2)node -v查看安裝的nodejs版本,出現版本號,說明剛剛已正確安裝nodejs。
(3)npm -v查看npm的版本號,npm是在安裝nodejs時一同安裝的nodejs包管理器
2.npm介紹
注:這裏是npm命令的詳細介紹,能夠做爲參考手冊來用。本文安裝gulp讀者能夠省略閱讀此部分。html

(1)說明:npm(node package manager)nodejs的包管理器,用於node插件管理(包括安裝、卸載、管理依賴等);
(2)使用npm安裝插件:
1)命令提示符執行npm install <name> [-g] [--save-dev];
<name>:node插件名稱。例:npm install gulp-less --save-dev
-g:全局安裝。將會安裝在C:UsersAdministratorAppDataRoamingnpm,而且寫入系統環境變量;
非全局安裝:將會安裝在當前定位目錄;
全局安裝能夠經過命令行在任何地方調用它,本地安裝將安裝在定位目錄的node_modules文件夾下,經過require()調用;
--save:將保存配置信息至package.json(package.json是nodejs項目配置文件);
-dev:保存至package.json的devDependencies節點,不指定-dev將保存至dependencies節點;通常保存在dependencies的像這些express/ejs/body-parser等等。前端

注:爲何要保存至package.json?由於node插件包相對來講很是龐大,因此不加入版本管理,將配置信息寫入package.json並將其加入版本管理,其餘開發者對應下載便可(命令提示符執行npm install,則會根據package.json下載全部須要的包,npm install --production只下載dependencies節點的包)。java

2)使用npm卸載插件:npm uninstall <name> [-g] [--save-dev] PS:不要直接刪除本地插件包
刪除所有插件:npm uninstall gulp-less gulp-uglify gulp-concat ……???太麻煩
藉助rimraf:npm install rimraf -g 用法:rimraf node_modules
使用npm更新插件:npm update <name> [-g] [--save-dev]
更新所有插件:npm update [--save-dev]
查看npm幫助:npm help
當前目錄已安裝插件:npm list
注:npm安裝插件過程:從http://registry.npmjs.org下載對應的插件包(該網站服務器位於國外,因此常常下載緩慢或出現異常),解決辦法往下看↓↓↓↓↓↓
3.選裝cnpmnode

說明:由於npm安裝插件是從國外服務器下載,受網絡影響大,可能出現異常,若是npm的服務器在中國就行了,因此咱們樂於分享的淘寶團隊幹了這事。32個!來自官網:「這是一個完整 npmjs.org 鏡像,你能夠用此代替官方版本(只讀),同步頻率目前爲 10分鐘 一次以保證儘可能與官方服務同步。」;
官方網址:http://npm.taobao.org
安裝:命令提示符執行npm install cnpm -g --registry=https://registry.npm.taobao.org; 注意:安裝完後最好查看其版本號cnpm -v或關閉命令提示符從新打開,安裝完直接使用有可能會出現錯誤;git

注:cnpm跟npm用法徹底一致,只是在執行命令時將npm改成cnpm(如下操做將以cnpm代替npm)。
4.安裝gulp
好了,全部準備工做都作好了,如今開始正式安裝gulp。
(1)全局安裝gulp
說明:全局安裝gulp目的是爲了經過她執行gulp任務;github

1)安裝:命令提示符執行cnpm install gulp -g;express

2)查看是否正確安裝:命令提示符執行gulp -v,出現版本號即爲正確安裝。npm

3)新建package.json文件(此處能夠省略,會在之後項目實例中會有詳細介紹)

說明:package.json是基於nodejs項目必不可少的配置文件,它是存放在項目根目錄的普通json文件;
它是這樣一個json文件(注意:json文件內是不能寫註釋的,複製下列內容請刪除註釋):

{
  "name": "test",   //項目名稱(必須)
  "version": "1.0.0",   //項目版本(必須)
  "description": "This is for study gulp project !",   //項目描述(必須)
  "homepage": "",   //項目主頁
  "repository": {    //項目資源庫
    "type": "git",
    "url": "https://git.oschina.net/xxxx"
  },
  "author": {    //項目做者信息
    "name": "surging",
    "email": "surging2@qq.com"
  },
  "license": "ISC",    //項目許可協議
  "devDependencies": {    //項目依賴的插件
    "gulp": "^3.8.11",
    "gulp-less": "^3.0.0"
  }
}

固然咱們能夠手動新建這個配置文件,可是做爲一名有志青年,咱們應該使用更爲效率的方法:命令提示符執行cnpm init

查看package.json幫助文檔,命令提示符執行cnpm help package.json

特別注意:package.json是一個普通json文件,因此不能添加任何註釋。參看 http://www.zhihu.com/question...

(2)本地安裝gulp插件

1)安裝:定位目錄命令後本地安裝gulp:cnpm install gulp --save-dev;
(注:必定要使用上面介紹的使用命令行命令cd來定位要安裝到的目錄,否則你頗有可能找不到本地gulp安裝到哪裏去了!)

2)安裝插件:本示例以gulp-less爲例(該插件具備編譯less文件的功能),命令提示符執行cnpm install gulp-less --save-dev;
將會安裝在node_modules的gulp-less目錄下,該目錄下有一個gulp-less的使用幫助文檔README.md;

注:細心的你可能會發現,咱們全局安裝了gulp,項目也安裝了gulp,全局安裝gulp是爲了執行gulp任務,本地安裝gulp則是爲了調用gulp插件的功能。
安裝成功,讓咱們開始gulp之旅吧~
接下來引出來一下實力例內容(選擇閱讀):
新建gulpfile.js文件(很是重要,輸入命令後,都是根據這個配置文件來執行相應任務來實現gulp功能的)
說明:gulpfile.js是gulp項目的配置文件,是位於項目根目錄的普通js文件(其實將gulpfile.js放入其餘文件夾下亦可)。
它大概是這樣一個js文件(更多詳細內容會在後來的實例中介紹):

//導入工具包 require('node_modules裏對應模塊')
var gulp = require('gulp'), //本地安裝gulp所用到的地方
    less = require('gulp-less');
 
//定義一個testLess任務(自定義任務名稱)
gulp.task('testLess', function () {
    gulp.src('src/less/index.less') //該任務針對的文件
        .pipe(less()) //該任務調用的模塊
        .pipe(gulp.dest('src/css')); //將會在src/css下生成index.css
});
 
gulp.task('default',['testLess', 'elseTask']); //定義默認任務 elseTask爲其餘任務,該示例沒有定義elseTask任務
 
//gulp.task(name[, deps], fn) 定義任務  name:任務名稱 deps:依賴任務名稱 fn:回調函數
//gulp.src(globs[, options]) 執行任務處理的文件  globs:處理的文件路徑(字符串或者字符串數組) 
//gulp.dest(path[, options]) 處理完後文件生成路徑

運行gulp

總結

一、安裝nodejs;

二、新建package.json文件;

三、全局和本地安裝gulp;

四、安裝gulp插件;

五、新建gulpfile.js文件;

六、經過命令提示符運行gulp任務。

相關文章
相關標籤/搜索