摘要:下載打包插件引入引入的插件是個方法,必須記住調用。神來之筆其他的插件不用再引入了使用方法所有的插件用引出,其他插件的方法名統一為插件的功能名字即插件名字的最后一部分如將轉換為將轉換為的文件輸出到下實時刷新
Gulp介紹
中文主頁: http://www.gulpjs.com.cn/
gulp是與grunt功能類似的前端項目構建工具, 也是基于Nodejs的自動任務運行器
能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的
合并、壓縮、檢查、監聽文件變化、瀏覽器自動刷新、測試等任務
gulp更高效(異步多任務), 更易于使用, 插件高質量
安裝 nodejs, 查看版本: node -v
創建一個簡單的應用gulp_test
|- dist |- src |- js |- css |- less |- index.html |- gulpfile.js-----gulp配置文件 |- package.json { "name": "gulp_test", "version": "1.0.0" }
安裝gulp:
全局安裝gulp
npm install gulp -g
局部安裝gulp
npm install gulp --save-dev
配置編碼: gulpfile.js
//引入gulp模塊 var gulp = require("gulp"); //定義默認任務 gulp.task("任務名", function() { // 將你的任務的任務代碼放在這 }); gulp.task("default", ["任務"])//異步執行
構建命令:
gulp
使用gulp插件
相關插件:
gulp-concat : 合并文件(js/css)
gulp-uglify : 壓縮js文件
gulp-rename : 文件重命名
gulp-less : 編譯less
gulp-clean-css : 壓縮css
gulp-livereload : 實時自動編譯刷新
重要API
gulp.src(filePath/pathArr) :
指向指定路徑的所有文件, 返回文件流對象
用于讀取文件
gulp.dest(dirPath/pathArr)
指向指定的所有文件夾
用于向文件夾中輸出文件
gulp.task(name, [deps], fn)
定義一個任務
gulp.watch()
監視文件的變化
處理js
創建js文件
src/js/test1.js
(function () { function add(num1, num2) { var num3 = 0; num1 = num2 + num3; return num1 + num2; } console.log(add(10, 30)); })();
src/js/test2.js
(function () { var arr = [2,3,4].map(function (item, index) { return item+1; }); console.log(arr); })();
下載插件:
npm install gulp-concat gulp-uglify gulp-rename --save-dev
配置編碼
var concat = require("gulp-concat"); var uglify = require("gulp-uglify"); var rename = require("gulp-rename"); gulp.task("minifyjs", function() { return gulp.src("src/js/*.js") //操作的源文件 .pipe(concat("built.js")) //合并到臨時文件 .pipe(gulp.dest("dist/js")) //生成到目標文件夾 .pipe(rename({suffix: ".min"})) //重命名 .pipe(uglify()) //壓縮 .pipe(gulp.dest("dist/js")); }); gulp.task("default", ["minifyjs"]);
頁面引入js瀏覽測試 : index.html
打包測試: gulp
處理css
創建less/css文件
src/css/test1.css
#div1 { width: 100px; height: 100px; background: green; }
src/css/test2.css
#div2 { width: 200px; height: 200px; background: blue; }
src/less/test3.less
@base: yellow; .index1 { color: @base; } .index2 { color: green; }
下載插件:
npm install gulp-less gulp-clean-css --save-dev
配置編碼
var less = require("gulp-less"); var cleanCSS = require("gulp-clean-css"); //less處理任務 gulp.task("lessTask", function () { return gulp.src("src/less/*.less") .pipe(less()) .pipe(gulp.dest("src/css")); }) //css處理任務, 指定依賴的任務 gulp.task("cssTask",["lessTask"], function () { return gulp.src("src/css/*.css") .pipe(concat("built.css")) .pipe(gulp.dest("dist/css")) .pipe(rename({suffix: ".min"})) .pipe(cleanCSS({compatibility: "ie8"})) .pipe(gulp.dest("dist/css")); }); gulp.task("default", ["minifyjs", "cssTask"]);
頁面引入css瀏覽測試 : index.html
div1111111div2222222
打包測試: gulp
處理html
下載插件:
npm install gulp-htmlmin --save-dev
配置編碼
var htmlmin = require("gulp-htmlmin"); //壓縮html任務 gulp.task("htmlMinify", function() { return gulp.src("index.html") .pipe(htmlmin({collapseWhitespace: true})) .pipe(gulp.dest("dist")); }); gulp.task("default", ["minifyjs", "cssTask", "htmlMinify"]);
修改頁面引入
打包測試: gulp
自動編譯
下載插件
npm install gulp-livereload --save-dev
配置編碼:
var livereload = require("gulp-livereload"); //所有的pipe .pipe(livereload()); gulp.task("watch", ["default"], function () { //開啟監視 livereload.listen(); //監視指定的文件, 并指定對應的處理任務 gulp.watch("src/js/*.js", ["minifyjs"]) gulp.watch(["src/css/*.css","src/less/*.less"], ["cssTask","lessTask"]); });
熱加載(實時加載)
下載插件:gulp-connect
1、 npm install gulp-connect --save-dev 2、 注冊 熱加載的任務 server,注意依賴build任務 3、注冊熱加載的任務 //配置加載的選項 connect.server({ root : "dist/",//監視的源目標文件路徑 livereload : true,//是否實時刷新 port : 5000//開啟端口號 }); // 自動開啟鏈接 open("http://localhost:5000");//npm install open --save-dev // 監視目標文件 gulp.watch("src/js/*.js", ["js"]); gulp.watch(["src/css/*.css", "src/css/*.less"], ["cssMin", "less"]);
擴展
打包加載gulp插件
前提:將插件下載好。
下載打包插件: gulp-load-plugins
npm install gulp-load-plugins --save-dev
引入: var $ = require("gulp-load-plugins")();!!!引入的插件是個方法,必須記住調用。
神來之筆:其他的插件不用再引入了
使用方法:
* 所有的插件用 $ 引出,其他插件的方法名統一為插件的功能名字(即插件名字的最后一部分):如:concat,connect,cssmin... gulp.task("less", function () { return gulp.src("src/less/*.less") .pipe($.less())//將less轉換為less .pipe(gulp.dest("src/css/"))//將轉換為less的文件輸出到src下 .pipe($.livereload())//實時刷新 .pipe($.connect.reload()) });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/112277.html
摘要:下載打包插件引入引入的插件是個方法,必須記住調用。神來之筆其他的插件不用再引入了使用方法所有的插件用引出,其他插件的方法名統一為插件的功能名字即插件名字的最后一部分如將轉換為將轉換為的文件輸出到下實時刷新 Gulp介紹 中文主頁: http://www.gulpjs.com.cn/ gulp是與grunt功能類似的前端項目構建工具, 也是基于Nodejs的自動任務運行器 能自動化...
摘要:下載打包插件引入引入的插件是個方法,必須記住調用。神來之筆其他的插件不用再引入了使用方法所有的插件用引出,其他插件的方法名統一為插件的功能名字即插件名字的最后一部分如將轉換為將轉換為的文件輸出到下實時刷新 Gulp介紹 中文主頁: http://www.gulpjs.com.cn/ gulp是與grunt功能類似的前端項目構建工具, 也是基于Nodejs的自動任務運行器 能自動化...
摘要:但是,我們發布之前,需要做一些持續集成和單元測試,用來保證代碼的正確性,穩定性。 Javascript 那么流行,作為一個前端開發者,或者前端入門者,發布一個正式可用的 Javascript 模塊,對于自己來說應該成長很大。下面就以一個簡單的 Javascript 模塊 filesize.js 來介紹 github、travis-ci、npm 這些內容的組合使用。 一、目標概覽 本文將...
摘要:感謝使用框架本文檔涵蓋構建應用所需的基礎知識。用于數據校驗的組件及相關文件在此目錄進行管理。除了自定義中間件外,還是用了諸多第三方的中間件,它們是五測試我們使用組件對服務端代碼進行測試。識別當前導航從已有導航中刪除給定標識的導航配置。 本文同步至個人博客 MEAN.js 文檔,轉載請注明出處。 Overview 感謝使用 MEAN.js 框架! 本文檔涵蓋構建 MEAN 應用所需的基礎...
摘要:結果會被存放到拷貝文件目錄你可以使用方法拷貝文件目錄到新路徑,所有操作都相對于項目根目錄版本號緩存刷新很多開發者會給編譯的前端資源添加時間戳或者唯一令牌后綴以強制瀏覽器加載最新版本而不是代碼的緩存副本。 環境準備 1、安裝 nodejs 和 npm ?如果你使用的是 Laravel 的 Homestead 環境,可以不用安裝了,已自帶。 ?我們來查看下它們的版本: $ node -v ...
閱讀 2851·2021-09-22 15:43
閱讀 4686·2021-09-06 15:02
閱讀 845·2019-08-29 13:55
閱讀 1679·2019-08-29 12:58
閱讀 3061·2019-08-29 12:38
閱讀 1206·2019-08-26 12:20
閱讀 2264·2019-08-26 12:12
閱讀 3311·2019-08-23 18:35