是什么时候开始学习gulp了
轉(zhuǎn)自:http://www.ydcss.com/archives/18
簡(jiǎn)介:
gulp是前端開(kāi)發(fā)過(guò)程中對(duì)代碼進(jìn)行構(gòu)建的工具,是自動(dòng)化項(xiàng)目的構(gòu)建利器;她不僅能對(duì)網(wǎng)站資源進(jìn)行優(yōu)化,而且在開(kāi)發(fā)過(guò)程中很多重復(fù)的任務(wù)能夠使用正確的工具自動(dòng)完成;使用她,我們不僅可以很愉快的編寫代碼,而且大大提高我們的工作效率。
gulp是基于Nodejs的自動(dòng)任務(wù)運(yùn)行器, 她能自動(dòng)化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測(cè)試、檢查、合并、壓縮、格式化、瀏覽器自動(dòng)刷新、部署文件生成,并監(jiān)聽(tīng)文件在改動(dòng)后重復(fù)指定的這些步驟。在實(shí)現(xiàn)上,她借鑒了Unix操作系統(tǒng)的管道(pipe)思想,前一級(jí)的輸出,直接變成后一級(jí)的輸入,使得在操作上非常簡(jiǎn)單。通過(guò)本文,我們將學(xué)習(xí)如何使用Gulp來(lái)改變開(kāi)發(fā)流程,從而使開(kāi)發(fā)更加快速高效。
gulp 和 grunt 非常類似,但相比于 grunt 的頻繁 IO 操作,gulp 的流操作,能更快地更便捷地完成構(gòu)建工作。
本示例以gulp-less為例(將less編譯成css的gulp插件)展示gulp的常規(guī)用法,只要我們學(xué)會(huì)使用一個(gè)gulp插件后,其他插件就差看看其幫助文檔了。讓我們一起來(lái)學(xué)習(xí)gulp吧! ^_^
gulp常用地址:
gulp官方網(wǎng)址:http://gulpjs.com
gulp插件地址:http://gulpjs.com/plugins
gulp 官方API:https://github.com/gulpjs/gulp/blob/master/docs/API.md
gulp 中文API:http://www.ydcss.com/archives/424
目錄:
1、安裝nodejs 2、使用命令行 3、npm介紹 4、選裝cnpm 5、全局安裝gulp 6、新建package.json文件 7、本地安裝gulp插件 8、新建gulpfile.js文件 9、運(yùn)行g(shù)ulp 10、使用webstorm運(yùn)行g(shù)ulp任務(wù) 11、總結(jié)在學(xué)習(xí)前,先談?wù)劥笾率褂胓ulp的步驟,給讀者以初步的認(rèn)識(shí)。首先當(dāng)然是安裝nodejs,通過(guò)nodejs的npm全局安裝和項(xiàng)目安裝gulp,其次在項(xiàng)目里安裝所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并寫好配置信息(定義gulp任務(wù)),最后通過(guò)命令提示符運(yùn)行g(shù)ulp任務(wù)即可。
安裝nodejs -> 全局安裝gulp -> 項(xiàng)目安裝gulp以及gulp插件 -> 配置gulpfile.js -> 運(yùn)行任務(wù)
1、安裝nodejs
1.1、說(shuō)明:gulp是基于nodejs,理所當(dāng)然需要安裝nodejs;
1.2、安裝:打開(kāi)nodejs官網(wǎng),點(diǎn)擊碩大的綠色Download按鈕,它會(huì)根據(jù)系統(tǒng)信息選擇對(duì)應(yīng)版本(.msi文件)。然后像安裝QQ一樣安裝它就可以了(安裝路徑隨意)。
2、使用命令行(如果你熟悉命令行,可以直接跳到第3步)
2.1、說(shuō)明:什么是命令行?命令行在OSX是終端(Terminal),在windows是命令提示符(Command Prompt);
2.2、注:之后操作都是在windows系統(tǒng)下;
2.3、簡(jiǎn)單介紹gulp在使用過(guò)程中常用命令,打開(kāi)命令提示符執(zhí)行下列命令(打開(kāi)方式:window?+ r 輸入cmd回車):
node -v查看安裝的nodejs版本,出現(xiàn)版本號(hào),說(shuō)明剛剛已正確安裝nodejs。PS:未能出現(xiàn)版本號(hào),請(qǐng)嘗試注銷電腦重試;
npm -v查看npm的版本號(hào),npm是在安裝nodejs時(shí)一同安裝的nodejs包管理器,那它有什么用呢?稍后解釋;
cd定位到目錄,用法:cd + 路徑 ;
dir列出文件列表;
cls清空命令提示符窗口內(nèi)容。
3、npm介紹
3.1、說(shuō)明:npm(node package manager)nodejs的包管理器,用于node插件管理(包括安裝、卸載、管理依賴等);
3.2、使用npm安裝插件:命令提示符執(zhí)行npm install <name> [-g] [--save-dev];
3.2.1、<name>:node插件名稱。例:npm install gulp-less --save-dev
3.2.2、-g:全局安裝。將會(huì)安裝在C:\Users\Administrator\AppData\Roaming\npm,并且寫入系統(tǒng)環(huán)境變量; ?非全局安裝:將會(huì)安裝在當(dāng)前定位目錄; ?全局安裝可以通過(guò)命令行在任何地方調(diào)用它,本地安裝將安裝在定位目錄的node_modules文件夾下,通過(guò)require()調(diào)用;
3.2.3、--save:將保存配置信息至package.json(package.json是nodejs項(xiàng)目配置文件);
3.2.4、-dev:保存至package.json的devDependencies節(jié)點(diǎn),不指定-dev將保存至dependencies節(jié)點(diǎn);一般保存在dependencies的像這些express/ejs/body-parser等等。
3.2.5、為什么要保存至package.json?因?yàn)閚ode插件包相對(duì)來(lái)說(shuō)非常龐大,所以不加入版本管理,將配置信息寫入package.json并將其加入版本管理,其他開(kāi)發(fā)者對(duì)應(yīng)下載即可(命令提示符執(zhí)行npm install,則會(huì)根據(jù)package.json下載所有需要的包,npm install --production只下載dependencies節(jié)點(diǎn)的包)。
3.3、使用npm卸載插件:npm uninstall <name> [-g] [--save-dev]??PS:不要直接刪除本地插件包
3.3.1、刪除全部插件:npm uninstall gulp-less gulp-uglify gulp-concat ……???太麻煩
3.3.2、借助rimraf:npm install rimraf -g?用法:rimraf node_modules
3.4、使用npm更新插件:npm update <name> [-g]?[--save-dev]
3.4.1、更新全部插件:npm update?[--save-dev]
3.5、查看npm幫助:npm help
3.6、當(dāng)前目錄已安裝插件:npm list
PS:npm安裝插件過(guò)程:從http://registry.npmjs.org下載對(duì)應(yīng)的插件包(該網(wǎng)站服務(wù)器位于國(guó)外,所以經(jīng)常下載緩慢或出現(xiàn)異常),解決辦法往下看↓↓↓↓↓↓。
4、選裝cnpm
4.1、說(shuō)明:因?yàn)閚pm安裝插件是從國(guó)外服務(wù)器下載,受網(wǎng)絡(luò)影響大,可能出現(xiàn)異常,如果npm的服務(wù)器在中國(guó)就好了,所以我們樂(lè)于分享的淘寶團(tuán)隊(duì)干了這事。32個(gè)!來(lái)自官網(wǎng):“這是一個(gè)完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務(wù)同步。”;
4.2、官方網(wǎng)址:http://npm.taobao.org;
4.3、安裝:命令提示符執(zhí)行npm install cnpm -g --registry=https://registry.npm.taobao.org; ?注意:安裝完后最好查看其版本號(hào)cnpm -v或關(guān)閉命令提示符重新打開(kāi),安裝完直接使用有可能會(huì)出現(xiàn)錯(cuò)誤;
注:cnpm跟npm用法完全一致,只是在執(zhí)行命令時(shí)將npm改為cnpm(以下操作將以cnpm代替npm)。
5、全局安裝gulp
5.1、說(shuō)明:全局安裝gulp目的是為了通過(guò)她執(zhí)行g(shù)ulp任務(wù);
5.2、安裝:命令提示符執(zhí)行cnpm install gulp -g;
5.3、查看是否正確安裝:命令提示符執(zhí)行gulp -v,出現(xiàn)版本號(hào)即為正確安裝。
6、新建package.json文件
6.1、說(shuō)明:package.json是基于nodejs項(xiàng)目必不可少的配置文件,它是存放在項(xiàng)目根目錄的普通json文件;
6.2、它是這樣一個(gè)json文件(注意:json文件內(nèi)是不能寫注釋的,復(fù)制下列內(nèi)容請(qǐng)刪除注釋):
JavaScript| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | { ??"name": "test",?? //項(xiàng)目名稱(必須) ??"version": "1.0.0",?? //項(xiàng)目版本(必須) ??"description": "This is for study gulp project !",?? //項(xiàng)目描述(必須) ??"homepage": "",?? //項(xiàng)目主頁(yè) ??"repository": {????//項(xiàng)目資源庫(kù) ????"type": "git", ????"url": "https://git.oschina.net/xxxx" ??}, ??"author": {????//項(xiàng)目作者信息 ????"name": "surging", ????"email": "surging2@qq.com" ??}, ??"license": "ISC",????//項(xiàng)目許可協(xié)議 ??"devDependencies": {????//項(xiàng)目依賴的插件 ????"gulp": "^3.8.11", ????"gulp-less": "^3.0.0" ??} } |
6.3、當(dāng)然我們可以手動(dòng)新建這個(gè)配置文件,但是作為一名有志青年,我們應(yīng)該使用更為效率的方法:命令提示符執(zhí)行cnpm init
6.4、查看package.json幫助文檔,命令提示符執(zhí)行cnpm help package.json
特別注意:package.json是一個(gè)普通json文件,所以不能添加任何注釋。參看?http://www.zhihu.com/question/23004511
7、本地安裝gulp插件
7.1、安裝:定位目錄命令后提示符執(zhí)行cnpm install --save-dev;
7.2、本示例以gulp-less為例(編譯less文件),命令提示符執(zhí)行cnpm install gulp-less --save-dev;
7.3、將會(huì)安裝在node_modules的gulp-less目錄下,該目錄下有一個(gè)gulp-less的使用幫助文檔README.md;
7.4、為了能正常使用,我們還得本地安裝gulp:cnpm install gulp --save-dev;
PS:細(xì)心的你可能會(huì)發(fā)現(xiàn),我們?nèi)职惭b了gulp,項(xiàng)目也安裝了gulp,全局安裝gulp是為了執(zhí)行g(shù)ulp任務(wù),本地安裝gulp則是為了調(diào)用gulp插件的功能。
8、新建gulpfile.js文件(重要)
8.1、說(shuō)明:gulpfile.js是gulp項(xiàng)目的配置文件,是位于項(xiàng)目根目錄的普通js文件(其實(shí)將gulpfile.js放入其他文件夾下亦可)。
8.2、它大概是這樣一個(gè)js文件(更多插件配置請(qǐng)查看這里):
JavaScript| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //導(dǎo)入工具包 require('node_modules里對(duì)應(yīng)模塊') var gulp = require('gulp'), //本地安裝gulp所用到的地方 ????less = require('gulp-less'); //定義一個(gè)testLess任務(wù)(自定義任務(wù)名稱) gulp.task('testLess', function () { ????gulp.src('src/less/index.less') //該任務(wù)針對(duì)的文件 ????????.pipe(less()) //該任務(wù)調(diào)用的模塊 ????????.pipe(gulp.dest('src/css')); //將會(huì)在src/css下生成index.css }); gulp.task('default',['testLess', 'elseTask']); //定義默認(rèn)任務(wù) elseTask為其他任務(wù),該示例沒(méi)有定義elseTask任務(wù) //gulp.task(name[, deps], fn) 定義任務(wù)??name:任務(wù)名稱 deps:依賴任務(wù)名稱 fn:回調(diào)函數(shù) //gulp.src(globs[, options]) 執(zhí)行任務(wù)處理的文件??globs:處理的文件路徑(字符串或者字符串?dāng)?shù)組) //gulp.dest(path[, options]) 處理完后文件生成路徑 |
8.3、該示例文件請(qǐng)下載查看
9、運(yùn)行g(shù)ulp
9.1、說(shuō)明:命令提示符執(zhí)行gulp 任務(wù)名稱;
9.2、編譯less:命令提示符執(zhí)行gulp testLess;
9.3、當(dāng)執(zhí)行gulp default或gulp將會(huì)調(diào)用default任務(wù)里的所有任務(wù)[‘testLess’,’elseTask’]。
10、使用webstorm運(yùn)行g(shù)ulp任務(wù)
10.1、說(shuō)明:使用webstorm可視化運(yùn)行g(shù)ulp任務(wù);
10.2、使用方法:將項(xiàng)目導(dǎo)入webstorm,右鍵gulpfile.js 選擇”Show Gulp Tasks”打開(kāi)Gulp窗口,若出現(xiàn)”No task found”,選擇右鍵”Reload tasks”,雙擊運(yùn)行即可。
11、總結(jié)
11.1、安裝nodejs;
11.2、新建package.json文件;
11.3、全局和本地安裝gulp;
11.4、安裝gulp插件;
11.5、新建gulpfile.js文件;
11.6、通過(guò)命令提示符運(yùn)行g(shù)ulp任務(wù)。
12、結(jié)束語(yǔ)
12.1、本文有任何錯(cuò)誤,或有任何疑問(wèn),歡迎留言說(shuō)明。
轉(zhuǎn)載于:https://www.cnblogs.com/zhangwei595806165/p/5792980.html
總結(jié)
以上是生活随笔為你收集整理的是什么时候开始学习gulp了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQL Server 使用OPENROW
- 下一篇: 卢伟冰:小米MIX Fold 2薄到不可