1. src()
gulp模組的src方法,用於產生資料流。它的參數表示所要處理的文件,這些指定的文件會轉換成資料流。
js/app.js 指定确切的文件名 js/*.js 某个目录所有后缀名为js的文件 js/**/*.js 某个目录及其所有子目录中所有后缀名为js的文件 !js/app.js 除了js/app.js以外所有文件 *.+(js css)匹配项目根目录下,所有后缀名为js或css的文件
src方法的參數也可以是數組,用來指定多個成員
gulp.src(['js/**/*.js','!js/**/*.min.js'])
2 dest()
dest方法將管道的輸出寫入文件,同時將這些輸出繼續輸出,所以可以依序呼叫多次dest方法,將輸出寫入多個目錄。如果有目錄不存在,將會重建。
gulp.src('./client/templates/*.jade') .pipe(jade()) .pipe(gulp.dest('./build/template')) .pipe(minify()) .pipe(gulp.dest('./build/minified_templates'));
dest方法也可以接受第二個參數,表示配置物件
gulp.dest('build',{ cwd:'./app', mode:'0644'})
配置物件有兩個欄位。 cwd欄位指定寫入路徑的基準目錄,預設是目前目錄;mode欄位指定寫入檔案的權限,預設是0777.
3.task()
task方法用於定義具體的任務。它的第一個參數是任務名,第二個參數是任務函數。
gulp.task('greet',function(){ console.log('Hello world'); });
task方法也可以指定按順序執行的一組任務
gulp.task('build',['css','js','imgs']);
指定任務build,它由css,js,imgs三個任務所組成。 task方法會並發執行這三個任務。注意,每個任務都是非同步調用,所以沒有辦法保證js任務的開始運行的時間。
如果希望各個任務嚴格按照順序運行,可以把掐一個任務寫成後一個任務的依賴模組。
gulp.task('css',['greet'],function(){ //deal with css here});
css任務依賴greet任務,所以css一定會在greet運行完成後在運行。
task方法的回呼函數,也可以接受一個函數作為參數,這對執行非同步任務非常有用.
//执行shell命令var exec=require('child_process').exec; gulp.task('jekyll',function(cb){//build jekyllexec('jekyll build',function(err){ if(err) return cb(err);//return error cb();//finished task}) })
如果一個任務的名字為default,就表示它是預設任務,在命令列直接輸入gulp命令,就會執行該任務。
gulp.task('default',function(){ //default task})//或者gulp.task('default',['styles','jshint','watch']);
執行的時候,直接使用gulp,就會執行styles,jshint,watch三個任務。
4 watch()
watch方法用來指定需要監視的檔案。一旦這些文件發生變動,就執行指定任務。
gulp.task('watch',function(){ gulp.watch('templates/*.tmpl.html',['build']); });
程式碼指定,一旦templates目錄中的範本檔案發生變化,就會執行build任務。
watch方法也可以用回呼函數,取代指定的任務
gulp.watch('templates/*.tmpl.html',function(event){ console.log('Event type: '+event.type); console.log('Event path: '+event.path); });
另一種寫法是watch方法所監控的檔案發生變化時(修改、增加、刪除檔案),就會觸發change事件,可以對change事件指定回呼函數
var watcher=gulp.watch('templates/*.tmpl.html',['build']); watcher.on('change',function (event){ console.log('Event type: '+event.type); console.log('Event path: '+event.path); });
除了change事件,watch方法還可能觸發以下事件
end 回呼函數運行完畢時觸發
#error 發生錯誤時觸發
ready 當開始監聽檔案時觸發
nomatch 沒有符合的監聽檔案時觸發
watcher對象也包含其他一些方法
watcher.end() 停止watcher對象,不會再呼叫任務或回呼函數
watcher.files() 傳回watcher物件監視的檔案
watcher.add(glob)增加所要監視的文件,它也可以附件第二個參數,表示回呼函數
watcher.remove(filepath) 從watcher物件移除一個監聽的檔案
5.gulp-livereload模組
gulp-livereload模組用於自動刷新瀏覽器,反映原始碼的最新變更。它除了模組以外,還需要在瀏覽器中安裝插件,用於配合原始碼變更。
var gulp=require('gulp'), less=require('gulp-less'), livereload=require('gulp-livereload'), watch=require('gulp-watch'); gulp.task('less',function(){ gulp.src('less/*.less') .pipe(watch("less/*.less") ) .pipe(less()) .pipe(gulp.dest('css')) .pipe(livereload()); })
程式碼用來監視less文件,一旦編譯完成,就會自動刷新瀏覽器。
6 gulp-load-plugins模組
一般情況下,gulpfile.js中的模組需要一個個載入
var gulp=require('gulp'), jshint=require('gulp-jshint'), uglify=require('gulp-uglify'), concat=require('gulp-concat'); gulp.task('js',function(){ return gulp.src('js/*.js') .pipe(jshint()) .pipe(jshint.reporter('default')) .pipe(uglify()) .pipe(concat('app.js')) .pipe(gulp.dest('build')); })
程式碼中除了gulp模組以外,還載入另外三個模組
這種載入的寫法比較麻煩,使用gulp-load-plugins模組,可以載入package.json檔案中所有的gulp模組。
var gulp=require('gulp'), gulpLoadPlugins=require('gulp-load-plugins'), plugins=gulpLoadPlugins(); gulp.task('js',function(){ return gulp.src('js/*.js') .pipe(plugins.jshint()) .pipe(plugins.jshint.reporter('default')) .pipe(plugins.uglify()) .pipe(plugins.concat('app.js')) .pipe(gulp.dest('build')); })
本文說明了gulp模組的方法,更多相關內容請關注php中文網。
相關推薦:
#以上是gulp模組的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器