Javascript 高級(jí) 自動(dòng)化1

Gulp 是前端開發(fā)過程中對(duì)代碼進(jìn)行構(gòu)建的工具金抡,是自動(dòng)化項(xiàng)目的構(gòu)建利器

它不僅能對(duì)網(wǎng)站資源進(jìn)行優(yōu)化沪羔,而且在開發(fā)過程中很多重復(fù)任務(wù)能夠使用正確的

工具自動(dòng)完成臣镣,使用它谣膳,不僅可以很愉快的編寫代碼净神,而且能大大提升開發(fā)效率


下載安裝使用 gulp

首先安裝 nodejs何吝,通過 nodejs 的 npm 全局安裝和項(xiàng)目安裝 gulp 全局插件,

其次在項(xiàng)目里安裝所需要的 gulp 插件鹃唯,然后新建 gulp 的配 置文件

gulpfile.js 配置文件定制 gulp 任務(wù)爱榕,通過命令行運(yùn)行 gulp 任務(wù)即可。

安裝 nodeJS

? 全局安裝 gulp

? 項(xiàng)目中安裝 gulp 以及 gulp 插件

? 配置 gulpfile.js

? 運(yùn)行任務(wù)

安裝 nodeJS: https://nodejs.org/en/

下載安裝包坡慌,安裝黔酥。

命令行運(yùn)行 node –v 測(cè)試安裝

安裝 gulp 插件

>> npm install gulp –g // 全局安裝 gulp 插件


npm:node package manager,nodejs 包管理器,用于 node 插件管理(安裝洪橘、卸載跪者、管理依賴)npm 安裝插件:npm install[-g] [--save-dev]?:插件的名稱? -g:全局安裝,將會(huì)安裝在 C:\Users\Administrator\AppData\Roaming\npm熄求,并且寫入系統(tǒng)環(huán)境變量渣玲。非全局安裝,就會(huì)安裝在當(dāng)前目錄下 node_module/下弟晚,通過 require 引入? --save:將配置信息保存到 package.json 文件中【package.json 是 Node 項(xiàng)目配置文件】? -dev:保存配置到 devDependencies 節(jié)點(diǎn)忘衍,不指定就會(huì)保存 dependencies 節(jié)點(diǎn)node 插件比較大,不方便加入版本管理中卿城,于是將依賴插件的信息保存在 package.json 文件中枚钓,這個(gè)文件可以交給版本管理,其他人只需要獲取 package.json,就可以在自己本地通過 npm install命令根據(jù) package.json 中的依賴信息藻雪,自行下載引入插件秘噪。卸載插件:npm uninstall[-g] [--save-dev]刪除全部插件:npm install rimraf –g | rimraf node_modules更新插件:npm update[--save-dev]

更新全部插件:npm update [--save-dev]

查看 npm 幫助:npm help

查看已安裝列表:npm list


完成一個(gè)自動(dòng)對(duì)項(xiàng)目 js 打包的任務(wù)配置,整合文件到一個(gè)文件中

css/:樣式開發(fā)目錄

js/:腳本開發(fā)目錄

images/:開發(fā)中圖片目錄

disk/:編譯后的文件存放目錄勉耀,gulp 運(yùn)行后的所有文件會(huì)存放在這里


第二步:進(jìn)入項(xiàng)目文件夾指煎,初始化項(xiàng)目蹋偏,自動(dòng)生成 package.json 文件

打開命令行窗口,進(jìn)入目標(biāo)文件夾至壤,鍵入 npm init 初始化項(xiàng)目

name:(gulp_pro) 輸入項(xiàng)目名稱(不輸入就使用當(dāng)前目錄名稱)

version:(1.0.0)輸入版本號(hào)威始,默認(rèn)是括號(hào)中的版本號(hào)

description:項(xiàng)目描述信息

entry point:(index.js) 目標(biāo)文件

test command:測(cè)試命令,可以直接回車表示忽略

git repository:git 倉(cāng)庫(kù)像街,可以忽略

keyword:關(guān)鍵詞

author:作者

license:授權(quán)信息

第三步:安裝 gulp 插件黎棠,安裝文件合并 gulp-concat 插件

執(zhí)行名命令:npm install gulp --save-dev

未完成后再 package.json 中,就會(huì)出現(xiàn) devDenpendencies 配置項(xiàng)

執(zhí)行命令:npm install gulp-concat --save-dev

gulp-concat 合并文件插件


.src():要打包的所有文件列表

.pipe():管道符镰绎,使用.pipe()前面的命令作為參數(shù)執(zhí)行 pipe()后面指定的命令

.dest():打包提交的目標(biāo)文件夾


賴插件來進(jìn)行完成的脓斩。本節(jié)主要從兩方面入手進(jìn)行分析:

第一方面,了解 Gulp 的基本操作 API

第二方面畴栖,了解并掌握 gulp 的常見插件的操作


1) 常規(guī) API

gulp.src(globs [,options])

描述:src 方法是指定需要處理的源文件的路徑随静。

參數(shù):

globs:需要處理的源文件的路徑,必填

src/a.js:指定具體文件

src/*.js:匹配所有文件吗讶,這里匹配 src 下所有的 js 文件

src/**/:匹配 0 個(gè)或者多個(gè)子文件夾燎猛,這里匹配 src 下所有文件夾

src{a,b}.js:匹配多個(gè)屬性,這里匹配 src 下 a.js 和 b.js

!src/a.js:排除文件照皆,這里匹配結(jié)果中排除掉 a.js 文件

options:類型重绷,可選,有 3 個(gè)屬性:buffer膜毁、read昭卓、base

options.buffer:boolean 類型,默認(rèn) true

options.read:boolean 類型爽茴,默認(rèn) true

options.base:string 類型葬凳,設(shè)置輸出路徑以某個(gè)路徑的某個(gè)組成部分為基礎(chǔ)向后拼接

gulp.dest(path [,options])

描述:dest 方法指定處理完成后文件的輸出路徑

參數(shù):

path:指定文件輸出路徑,或者定義函數(shù)返回輸出路徑

options:有兩個(gè)屬性 cwd室奏、mode

options.cwd:string 類型火焰,默認(rèn) process.cwd()前腳本的工作目錄路徑

options.mode:string 類型,默認(rèn) 0777胧沫,指定被創(chuàng)建的文件夾的權(quán)限

gulp.task(name [,deps], fn)

描述:task 定義一個(gè)可執(zhí)行的 gulp 任務(wù)

參數(shù):

name:string 類型昌简,任務(wù)名稱(不能包含空格)

deps:該任務(wù)依賴的任務(wù),是一個(gè) string 類型的數(shù)組绒怨,執(zhí)行完數(shù)組中任務(wù)之后才會(huì)執(zhí)行當(dāng)前任務(wù)

fn:任務(wù)調(diào)用執(zhí)行完成后的回調(diào)函數(shù)

gulp.watch(glob [,opts], tasks)/watch(glob [,opts, cb])

描述:watch 方法用于監(jiān)聽文件變化纯赎,一旦變化就會(huì)執(zhí)行指定任務(wù)

參數(shù):

glob:需要處理的源文件匹配的路徑,可以使一個(gè)字符串表示的路徑也可以使數(shù)組【必填】

tasks:需要執(zhí)行的任務(wù)的名稱數(shù)組【必填】

cb:每個(gè)文件變化執(zhí)行的回調(diào)函數(shù)【可選】


重命名插件——gulp-rename

1) 安裝插件:npm install gulp-rename --save-dev

2) gulpfile.js 中配置任務(wù)

3) 執(zhí)行任務(wù)

4) 結(jié)果查看


樣式壓縮插件——gulp-minify-css

1) 安裝插件:npm install gulp-minify-css

2) 編輯 src/css/main.css

3) gulpfile.js 中配置任務(wù)

4) 執(zhí)行任務(wù):gulp minifycss


圖片壓縮插件——gulp-imagemin

1) 安裝插件:npm install gulp-imagemin

2) 在 images/目錄下存放圖片

3) gulpfile.js 中配置任務(wù)

4) 執(zhí)行任務(wù):gulp imagemin

5) 結(jié)果查看


服務(wù)器插件——gulp-connect

1) 安裝插件:npm install gulp-connect --save-dev

2) gulpfile.js 中配置任務(wù)

3) 執(zhí)行任務(wù):gulp server

4) 結(jié)果查看:打開瀏覽器南蹂,訪問 http://localhost:8080


瀏覽器自動(dòng)刷新——gulp-livereload

1) 安裝插件:npm install gulp-livereload --save-dev

2) 安裝插件:npm install gulp-watch --save-dev

3) gulpfile.js 中配置任務(wù)


gulp-watch:監(jiān)聽模塊犬金,根據(jù)監(jiān)聽的文件,執(zhí)行指定的任務(wù)列表

? gulp.task(“default”..:default 任務(wù),gulp 中的默認(rèn)任務(wù)


GULP 在 在 WEBSTORM? 中的使用

1) 創(chuàng)建項(xiàng)目

2) 命令行添加 gulp 插件

3) 創(chuàng)建 package.json 文件【命令行創(chuàng)建】

編輯:牟文斌

官方網(wǎng)站:http://gulpjs.com 中文網(wǎng)站:http://www.gulpjs.com.cn

4) 添加插件——gulp,gulp-concat

5) 創(chuàng)建項(xiàng)目任務(wù)文件 gulpfile.js 并定義任務(wù)

6) 查看并執(zhí)行 gulp 任務(wù)

a) 在 gulpfile.js 文件上右鍵點(diǎn)擊

b) 彈出的菜單中選擇 show gulp tasks

c) 項(xiàng)目文件中就會(huì)出來一個(gè) gulp task 窗口晚顷,窗口中是 gulp 任務(wù)列表

d) 在任務(wù)列表上峰伙,右鍵點(diǎn)擊,可以選擇執(zhí)行任務(wù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末该默,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子匣摘,更是在濱河造成了極大的恐慌音榜,老刑警劉巖囊咏,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霜第,死亡現(xiàn)場(chǎng)離奇詭異泌类,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)弹砚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門桌吃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瑟俭,你說我怎么就攤上這事契邀。” “怎么了锐帜?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蛮拔。 經(jīng)常有香客問我建炫,道長(zhǎng)肛跌,這世上最難降的妖魔是什么衍慎? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮乔夯,結(jié)果婚禮上末荐,老公的妹妹穿的比我還像新娘新锈。我一直安慰自己剃幌,他們只是感情好晾浴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布抖棘。 她就那樣靜靜地躺著切省,像睡著了一般朝捆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天蝴乔,我揣著相機(jī)與錄音薇正,去河邊找鬼挖腰。 笑死曙聂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贤姆。 我是一名探鬼主播霞捡,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼砰碴!你這毒婦竟也來了呈枉?” 一聲冷哼從身側(cè)響起猖辫,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤芝囤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后挠轴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岸晦,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溅固。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掠河,死狀恐怖唠摹,靈堂內(nèi)的尸體忽然破棺而出跃闹,到底是詐尸還是另有隱情苛秕,我是刑警寧澤艇劫,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站鸣个,受9級(jí)特大地震影響昼窗,放射性物質(zhì)發(fā)生泄漏涛舍。R本人自食惡果不足惜澄惊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望富雅。 院中可真熱鬧掸驱,春花似錦、人聲如沸没佑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)图筹。三九已至,卻和暖如春让腹,著一層夾襖步出監(jiān)牢的瞬間远剩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工骇窍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓜晤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓腹纳,卻偏偏與公主長(zhǎng)得像痢掠,于是被迫代替她去往敵國(guó)和親驱犹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 什么是GULP? GULP 是前端開發(fā)過程中對(duì)代碼進(jìn)行構(gòu)建的工具足画,是自動(dòng)化項(xiàng)目的構(gòu)建利器雄驹;她不僅能 對(duì)...
    碧玉含香閱讀 653評(píng)論 0 0
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比淹辞,gulpjs無需寫一大堆繁雜的配置參數(shù)医舆,API也非常簡(jiǎn)單,學(xué)...
    井皮皮閱讀 1,292評(píng)論 0 10
  • gulpjs是一個(gè)前端構(gòu)建工具象缀,與gruntjs相比蔬将,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單央星,學(xué)...
    依依玖玥閱讀 3,150評(píng)論 7 55
  • gulpjs是一個(gè)前端構(gòu)建工具霞怀,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數(shù)莉给,API也非常簡(jiǎn)單毙石,學(xué)...
    小裁縫sun閱讀 923評(píng)論 0 3
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比禁谦,gulpjs無需寫一大堆繁雜的配置參數(shù)胁黑,API也非常簡(jiǎn)單,學(xué)...
    build1024閱讀 527評(píng)論 0 0