成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端任務構建利器Gulp.js使用指南

開發 開發工具
對于多數人來講,一直以來都選擇Grunt作為任務運行器。不過最近,因為易于安裝,擁有更加易讀和管理的超級簡單的配置文件,一個叫Gulp.js的工具吸引了大批人的眼球。

在軟件開發中,任務運行器的好處是不言而喻的。它們可以幫助自動運行常見的冗長的任務,讓你可以專注于更重要的事情中,比如敲出很棒的代碼。說的嚴肅點,自動運行一些比如圖片壓縮、代碼壓縮、單元測試以及更多的任務的技能,簡直就是節省時間的利器。

對于很多前端開發者而言,時下使用最多的任務管理器就是Grunt了,一個可以讓你在Gruntfile.js文件中使用JavaScript定義 各種運行任務的工具。基本上,只要你了解JavaScript,創建一個Grunt任務是非常簡單直接的事情。豐富的第三方插件比如 JSHint,Sass還有Uglify等等,讓Grunt成為最易擴展的工具之一。

對于多數人來講,一直以來都選擇Grunt作為任務運行器。不過最近,因為易于安裝,擁有更加易讀和管理的超級簡單的配置文件,一個叫Gulp.js的工具吸引了大批人的眼球。

 

安裝Gulp.js

Gulp.js跟Grunt一樣,都是基于Node的任務運行工具。所以你必須安裝Node來運行它。有幾種不同的方法可以安裝Gulp,取決于你 的操作系統。在OS X中,我用nvm,這是Tim Caswell寫的用于管理多個Node.js版本的很不錯的腳本工具。你也可以直接從Node.js官方網站下載二進制 文件。如果你對Node還一無所知的話,那我建議你最好去Nettuts+series先熟悉一下Node.js。

我們可以用npm(Node包管理器)來快速安裝Gulp。打開你的終端然后輸入:

  1. npm install -g gulp 

這條指令,從npm的注冊機制中獲取gulp并全局安裝到你的系統中,以便你可以直接在命令行中訪問它。

安裝好了gulp,下面我們開始在項目中來使用它。

使用Gulp.js創建你的項目

要在項目中使用Gulp,必須完成下面關鍵幾點:

  • 安裝兩個依賴包

  • 安裝任何你想使用的插件

  • 創建Gulp.js文件然后定義你打算運行的任務

請在項目的路徑下完成以上幾點,這樣Gulp才能使用你的配置文件。

首先,安裝依賴包:

  1. npm install --save-dev gulp gulp-util 

現在我們需要安裝在配置文件中定義好的用來運行指定任務的Gulp插件。這些插件都是Node包,所以我們再次使用npm來安裝它們。

  1. npm install --save-dev gulp-uglify gulp-concat 

我這里安裝兩個插件,讓我可以使用Uglify.js壓縮器來精簡/壓縮JavaScript代碼并且將多個JS文件合并到一個文件中去。

注意,我這里用的—save-dev,這個指令讓我只在當前項目中安裝Gulp依賴包跟插件。這么做可以在package.json中的devDependencies列表中為每個依賴項生成對應的詞條標識。就像下面展示的:

  1.   "devDependencies": { 
  2.     "gulp-util""~2.2.13"
  3.     "gulp""~3.5.0"
  4.     "gulp-uglify""~0.2.0"
  5.     "gulp-concat""~2.1.7" 
  6.   } 

這樣可以確保使用npm為項目安裝任何依賴包和插件。如果在項目中沒有package.json文件,那在命令行輸入npm init或者干脆在編輯器中手動創建一個,寫好對應的卷括號,然后保存命名為”package.json”。在命令行中輸入npm指令來更新它。請注意, 必須要使用卷括號,不然,當你試圖使用—save-dev時,npm會拋出一個錯誤顯示它不是一個合法的JSON文件。

雖然在本篇指南中我只用了兩個插件,不過Gulp提供了超過200個插件來滿足不同的功能需求,包括:

還有好多好多···

Gulpfile.js文件

跟Grunt一樣,Gulp有一個叫做gulpfile.js的同名配置文件,里面定義了運行任務的所有的必須的插件。你要在項目的根目錄下創建這個文件。

簡單直白的語法,讓gulp文件非常易讀能懂:

  1. var gulp    = require('gulp'), 
  2.       gutil    = require('gulp-util'), 
  3.       uglify  = require('gulp-uglify'), 
  4.     concat  = require('gulp-concat'); 

上面代碼簡單告訴gulp需要引用哪些插件來完成既定的任務。

下一步,我們需要定義Gulp運行的任務。我這里,定義兩個:

  • 壓縮圖片

  • 精簡JS文件

我們使用Gulp的方法task()來定義要運行的任務:

  1. gulp.task('js', function () { 
  2.     gulp.src('./js/*.js'
  3.         .pipe(uglify()) 
  4.         .pipe(concat('all.js')) 
  5.         .pipe(gulp.dest('./js')); 
  6. }); 

看看上面的代碼,用的是引用的插件組成的一個混合方法調用。第一個方法task(),使用一個名稱代表當前任務(這里就叫’js’),還有一個匿名方法囊括了實際的操作。我們來拆解一下代碼:

  1. gulp.src('./js/*.js'

src()方法指定了要從哪里找到需要壓縮的JS文件,并且將其轉換成包含文檔結構的數據流以傳入后續運行的插件中。這是Node.js Streams API中的一部分,也正是Gulp擁有簡明API語法的原因之一。

  1. .pipe(uglify()) 

pipe()方法從src()方法中獲得傳過來的數據流,然后傳入指定的插件中。在當前例子中,插件uglify將接收數據流。

  1. .pipe(concat('all.js')) 

像uglify一樣,插件concat通過pipe()接收傳過來的數據流,然后將多個JS文件合并到’all.js’中。

  1. .pipe(gulp.dest('./js')); 

最后,使用Gulp的dest()方法,將all.js寫到指定目錄中,整個過程簡介易讀。

還有最后一個我們要做的事情,就是更改Gulp的默認運行任務為”js”。

  1. gulp.task('default', function(){ 
  2.     gulp.run('js'); 
  3. }); 

返回到命令行,輸入’gulp’,Gulp找到了gulpfile.js文件,加載所有的依賴項跟插件,運行默認任務’js’。你可以在下圖看到最后的運行結果,文件被壓縮合并了:

 

讓我們更近一步吧。Gulp提供了另外一個方法叫watch(),它可以監視指定的資源變更。跟手動輸入’gulp’運行任務不同,這個方法允許根據資源的改變自動運行任務。

  1. gulp.watch('./js/*', function () { 
  2.      gulp.run('js'); 
  3. }); 

當上面的代碼運行的時候,Gulp會繼續保持對指定資源的監視,一旦資源發生變更,就會再次運行’js’方法。這個功能很棒!

向Gulp.js過渡

當我剛聽說Gulp的時候,我第一反應就是“又一個超棒的工具!”。Gulp.js確實擁有著吸引人的語法跟API,它讓構建任務變得輕而易舉。盡管插件沒有Grunt豐富,但是它的插件庫看起來已經在日趨增長,特別是現在擁有著對它感興趣的這么多的開發者。

我已經建議很多開發者讓他們積極地遷移到Gulp中來,現在是加入Gulp.js的大好時機!

譯文鏈接:http://www.codeceo.com/article/gulp-js-guide.html
英文原文:Managing Your Build Tasks With Gulp.js

責任編輯:王雪燕 來源: 碼農網
相關推薦

2022-09-29 09:07:08

DataGrip數據倉庫數據庫

2024-01-30 13:53:40

前端性能Chrome

2012-12-26 12:41:14

Android開發WebView

2010-09-06 14:24:28

ppp authent

2011-07-21 14:57:34

jQuery Mobi

2021-07-27 10:09:27

鴻蒙HarmonyOS應用

2009-12-28 17:40:10

WPF TextBox

2009-12-31 17:17:45

Silverlight

2021-01-12 15:19:23

Kubernetes

2017-01-04 15:22:57

TrimPath模板引擎

2010-06-03 17:27:36

Hadoop命令

2010-08-04 15:37:31

Flex圖表

2010-08-05 15:40:21

FlexBuilder

2024-03-05 10:41:51

Rollup前端開發

2010-08-04 14:28:01

Flex組件

2019-11-13 12:39:26

Python 開發編程語言

2024-02-04 00:00:00

Loki性能查詢

2022-06-23 08:01:36

FlaskSocketIOSwift

2009-11-30 13:15:27

PHP模板Smarty

2011-03-16 10:17:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品无码久久久久 | 99久久精品免费看国产高清 | 黄色av网站在线观看 | 欧洲一区二区三区 | 91xxx在线观看 | 久久男女视频 | 午夜视频一区 | 国产精品国产a级 | 国产一区二区欧美 | 91亚洲国产亚洲国产 | 中文字幕精品一区 | 99精品视频一区二区三区 | 成人午夜电影在线观看 | 久久久国产一区二区三区 | 成人h动漫精品一区二区器材 | 亚洲精品99| 网站黄色在线 | 国产视频中文字幕在线观看 | 国产一区 | 午夜精品一区二区三区在线视频 | 免费久久视频 | 超碰在线播 | 中文一区 | 啪一啪 | 成人在线视频观看 | www.9191.com| 欧美中文在线 | 国产精品一区二区视频 | 狠狠躁躁夜夜躁波多野结依 | 精品自拍视频 | 91国自视频 | 免费一级毛片 | 黄色毛片在线播放 | 亚洲视频自拍 | 一级欧美日韩 | 成人亚洲在线 | 欧美精品第一页 | 精品国产乱码久久久久久丨区2区 | 国产精品一区一区 | 国产精品日韩一区二区 | 国产精品性做久久久久久 |