日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

我爱工程化 之 gulp 使用(一)

發布時間:2025/3/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我爱工程化 之 gulp 使用(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介

? ? ?gulp是前端自動化工具,壓縮、合并、預編譯檢查等等,它與grunt頻繁IO操作來消耗內存相比,它是使用的流的方式,我們可以簡稱為管道流(一端入,一端出,3通水,一個大桶,第一通在管道里面流吧,那邊大桶接著,第一桶流完,第二桶水馬上接上,直至三桶水全流完

? ? ?功能:

? ? ? ? ? ?1、圖片(壓縮圖片支持jpg、pnggif

? ? ? ? ? ?2、樣式 (支持sass 同時支持合并、壓縮、重命名)

? ? ? ? ? ?3、javascript (檢查、合并、壓縮、重命名)
? ? ? ? ? ?4、html (壓縮)
? ? ? ? ? ?5、客戶端同步刷新顯示修改
? ? ? ? ? ?6、構建項目前清除發布環境下的文件(保持發布環境的清潔)

? ? 為什么使用gulp比使用grunt快?? ? ? ?

? ? ? ? Grunt主要是以文件為媒介來運行它的工作流的,比如在Grunt中執行完一項任務后,會把結果寫入到一個臨時文件中,然后可以在這個臨時文件內容的基礎上執行其它任 ? ? ? ?務,執行完成后又把結果寫入到臨時文件中,然后又以這個為基礎繼續執行其它任務...就這樣反復下去。? ? ? ?

? ? ? ? Gulp是以stream為媒介的,它不需要頻繁的生成臨時文件,但要注意這個流里的內容不是原始的文件流,而是一個虛擬文件對象流(Vinyl files),這個虛擬文件對象中存儲原始文件的路徑、文件名、內容等信息,

二、步驟說明

? ? 1、安裝nodejs;
? ? 2、基于node.js安裝并使用gulp
? ? ? ? * 全局安裝gulp
? ? ? ? * 在項目的根目錄下新建 package.json 文件
? ? ? ? * 在項目的根目錄下安裝gulp及相關需要的插件
? ? ? ? * 在項目根目錄下新建gulpfile.js
? ? ? ? * 運行gulp任務(兩種)

三、安裝Node及簡單命令介紹

? ? ?1.安裝node.js ? ? ?http://nodejs.org/

? ? ? ?* 命令: cmd:
? ? ? ? ?* node -v查看安裝的nodejs版本
? ? ? ? ?* npm ?-v查看npm的版本號

? ? ? ? ?* 使用npm安裝插件
? ? ? ? ? ?* npm install <name> [-g] [--save-dev]
? ? ? ? ? ? ?* <name>:node插件名稱。例:npm install gulp-less --save-dev
? ? ? ? ? ? ?* -g:全局安裝:將會安裝在C:\Users\Administrator\AppData\Roaming\npm,并且寫入系統環境變量;
? ? ? ? ? ? ? ? ? ? ? 非全局安裝:將會安裝在當前定位目錄全局安裝可以通過命令行在任何地方調用它,本地安裝將安裝在定位目錄的node_modules文件夾下,通過require()調用;
? ? ? ? ? ? ?* --save:將保存配置信息至package.json(package.json是nodejs項目配置文件);
? ? ? ? ? ? ?* -dev:保存至package.json的devDependencies節點,不指定-dev將保存至dependencies節點;

? ? ? ? * 思考:為什么要保存至package.json?
? ? ? ? ? ?因為node插件包相對來說非常龐大,所以不加入版本管理,
? ? ? ? ? ?將配置信息寫入package.json并將其加入版本管理,
? ? ? ? ? ?其他開發者對應下載即可(命令提示符執行npm install,則會根據package.json下載所有需要的包)。

? ? ? ? *使用npm卸載插件:npm uninstall <name> [-g] [--save-dev] PS:不要直接刪除本地插件包

? ? ? ? *使用npm更新插件:npm update <name> [-g] [--save-dev]

? ? ? ? *查看npm幫助:npm help

? ? ? ? * 當前目錄已安裝插件:npm list

? ? ? ? * npm安裝插件過程:從國外網站下載對應的插件包,有時候會很慢
? ? ? ? ? ?解決辦法用cnpm 鏡像安裝,用法同npm

? ? ? ? ? ?npm install cnpm -g --registry=https://registry.npm.taobao.org

四、安裝gulp

? ? ? 1.:全局安裝

? ? ? ??* 運行node命令: npm install -g gulp 或 cnpm install gulp –g ??

? ? ? ? * 說明: 全局安裝gulp目的是為了通過她執行gulp任務

? ? ? ? * 查看是否正確安裝(命令: gulp –v 【出現版本號即為正確安裝】)

?

? ? ? 2.在項目的根目錄下新建 package.json 文件

? ? ? ? ?方式一:命令式

? ? ? ? ?* 命令: npm init?

? ? ? ? ?* 說明: 會在根目錄下,自動生成一個package.json文件,它是基于nodejs項目必不可少的配置文件,它是存放在項目根目錄的普通json文件

? ? ? ? ? ? ? ? ? 它是這樣一個json文件(注意:json文件內是不能寫注釋的,復制下列內容請刪除注釋):

? ? ? ? ? ??

? ? ? ? ?方式二:手動式

? ? ? ? ? 手動創建一個package.json文件,注意:json文件內是不能寫注釋的,復制下列內容請刪除注釋

{"name": "test", //項目名稱(必須)"version": "1.0.0", //項目版本(必須)"description": "This is for study gulp project !", //項目描述(必須)"homepage": "", //項目主頁"repository": { //項目資源庫"type": "git","url": "https://git.oschina.net/xxxx"},"author": { //項目作者信息"name": "surging","email": "surging2@qq.com"},"license": "ISC", //項目許可協議"devDependencies": { //項目依賴的插件"gulp": "^3.8.11","gulp-less": "^3.0.0"} }

? ? ?? 3.本地安裝(即在項目的根目錄下安裝)

? ? ? ? ?* 進入項目根目錄,

? ? ? ? ?* 輸入命令:?npm install gulp --save-dev? ? ? ?

? ? ? ? ?* 說明: 全局安裝gulp是為了執行gulp任務,項目安裝gulp是為了調用gulp插件的功能。

? ? ? ?4.在項目根目錄下新建gulpfile.js 文件

? ? ? ? ?* 說明: gulpfile.js是gulp項目的配置文件,它是gulp的主文件,在gulpfile.js文件中定義相關任務。

? ? ? ? ?* 1.引入gulp及組件

? ? ? ? ?* 2.配置開發和發布路徑
? ? ? ? ?* 3.為每個插件的運行編寫一個task
? ? ? ? ?* 4.建立默認task(將所有插件任務引入)
? ? ? ? ?* 5.建立監聽(監聽所有任務)
? ? ? ? ?* 6.執行任務
? ? ? ? ?* 默認:執行所有任務 命令: gulp
? ? ? ? ?* 單個:例如清空文件夾任務 命令: gulp clean

? ? ? ? !!!!注意:根據需要配置要清空的文件夾及文件的相關路徑 !!!!

? ? ? ? ?簡單的示例

//導入工具包 require('node_modules里對應模塊') var gulp = require('gulp'), //本地安裝gulp所用到的地方 less = require('gulp-less'); //定義一個testLess任務(自定義任務名稱) gulp.task('testLess', function () { gulp.src('src/less/index.less') //該任務針對的文件 .pipe(less()) //該任務調用的模塊 .pipe(gulp.dest('src/css')); //將會在src/css下生成index.css }); gulp.task('default',['testLess', 'elseTask']); //定義默認任務 //gulp.task(name[, deps], fn) 定義任務 name:任務名稱 deps:依賴任務名稱 fn:回調函數 //gulp.src(globs[, options]) 執行任務處理的文件 globs:處理的文件路徑(字符串或者字符串數組) //gulp.dest(path[, options]) 處理完后文件生成路徑

? ? ? ?5運行gulp任務

? ? ? ?* 命令: gulp default或gulp ??

? ? ? ?* Webstrom: 右鍵gulpfile.js 選擇”Show Gulp Tasks”打開Gulp窗口,若出現”No task found”,選擇右鍵”Reload tasks”,雙擊運行即可。
? ? ? ?* 說明: 要運行gulp任務,只需切換到存放gulpfile.js文件的目錄
? ? ? ? ? ? ? ? ? gulp后面可以加上要執行的任務名,例如gulp task1,如果沒有指定任務名,則會執行任務名為default的默認任務。

五、根據需求下載相應的插件包

? ? ? 安裝命令:

? ? ? ? ? ?npm install gulp-util gulp-imagemin gulp-ruby-sass gulp-minify-css gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean gulp-livereload tiny-lr ? ? ? ? ? ?--save-dev ? ? ? ? ??

? ? ??1.Css類

? ? ? ? ?* gulp-minify-css : 壓縮css

? ? ? ? ?* gulp-less : 支持less
? ? ? ? ?* css文件引用URL圖片加版本號(gulp-make-css-url-version);
? ? ? ? ?* 編譯Sass,生成雪碧圖(gulp-compass);
? ? ? ? ?* 編譯sass(gulp-sass);
? ? ? ? ?* sass瀏覽器地圖(gulp-sourcemaps);
? ? ?2.圖片類
? ? ? ? ?* 圖片壓縮(gulp-imagemin);
? ? ? ? ?* 緩存通知(gulp-cache);
? ? ?3.JS類
? ? ? ? ?* JS語法檢測(gulp-jshint);
? ? ? ? ?* JS丑化(gulp-uglify);
? ? ?4.html類
? ? ? ? ?* 壓縮html(gulp-htmlmin)
? ? ? ? ?* html文件引用加版本號(gulp-rev-append);
? ? ?5.文件類
? ? ? ? ?* 文件合并(gulp-concat);
? ? ? ? ?* 重命名文件(gulp-rename);
? ? ? ? ?* 清空文件夾(gulp-clean);
? ? ? ? ?* 更新通知(gulp-notify);
? ? ?6.web服務類
? ? ? ? ?* gulp-connect
? ? ? ? ?* gulp-livereload: 服務器控制客戶端同步刷新(需配合chrome插件LiveReload及tiny-lr)

六、gulp API

? ? ?使用gulp,僅需知道4個API即可:gulp.task(), ?gulp.src(), ?gulp.dest(), ?gulp.watch()

? ? ?* gulp.src()
? ? ? ? * 用來獲取需要操作的文件流
? ? ? ? * 使用Nodejs中的stream(流),首先獲取到需要的stream,然后通過stream的pipe()方法把流導入到你想要的地方,
? ? ?*?gulp.src(globs[, options])

? ? ? ? * 輸出(Emits)符合所提供的匹配模式(glob)或者匹配模式的數組(array of globs)的文件。?將返回一個 Vinyl files 的 stream 它可以被 piped 到別的插件中

? ? ? ?例:
? ? ? ? ? ?gulp.src('client/templates/*.jade')
? ? ? ? ? ? ? ? ?.pipe(jade())
? ? ? ? ? ? ? ? ?.pipe(minify())
? ? ? ? ? ? ? ? ?.pipe(gulp.dest('build/minified_templates'));

?

? ? ?這一邊主要是講解用法,下一篇,直接上project,更直觀。

?

轉載于:https://www.cnblogs.com/xfz1987/p/5688794.html

總結

以上是生活随笔為你收集整理的我爱工程化 之 gulp 使用(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区在线免费 | 中文成人无字幕乱码精品区 | 日本高清视频一区二区三区 | 双性尿奴穿贞c带憋尿 | 欧美精品第二页 | 热久久久久久久 | 日日干夜夜撸 | 吻胸摸激情床激烈视频大胸 | 日韩精品1区2区3区 欧美一本 | 777色婷婷| 岛国av免费在线 | 成人影| 毛片基地在线观看 | av福利影院 | 人人射人人爱 | 国产精品国产三级国产 | 亚洲一区二区黄片 | 一级大片网站 | 一二三区视频 | 久久久电影 | 无码人妻丰满熟妇区五十路 | 九九九九色 | 欧美人与动牲交xxxxbbbb | 欧美毛片在线 | 黄色一级国产 | 日韩一及片 | 黄网在线观看视频 | 捆绑无遮挡打光屁股调教女仆 | 男女无套免费视频网站动漫 | 182午夜视频 | 99re在线视频播放 | 黄色片视频免费在线观看 | 女人被灌满精子 | 91精品久久久久久 | 成人av手机在线 | 日韩第一视频 | 日韩免费观看视频 | 中文字幕精品国产 | xxx性日本| 无码国产精品高潮久久99 | 日本高清不卡在线 | 依人在线 | 一级小毛片 | 久久r视频 | sao浪受的饥渴日常 91免费入口 | 五月天狠狠干 | 国产亚洲精品成人 | 黑料视频在线观看 | 日韩视频在线观看一区二区三区 | 超碰人人人人人 | jizz日本在线观看 | 黄a免费网络 | 午夜日韩| av免费大片 | 久久精品一区二区在线观看 | 一吻定情2013日剧 | 成人图片小说 | 妺妺窝人体色www在线小说 | 少妇久久久久久久久久 | 91精品国产91久久久久久黑人 | 欧美三区四区 | 伊人久久久久久久久久 | 黄瓜污视频 | 二区三区偷拍浴室洗澡视频 | 亚洲国产成人精品视频 | 四虎精品永久在线 | 国产美女91 | 国产人妖ts | 蝌蚪网在线视频 | 欧美日韩国产免费 | 亚洲视频免费播放 | 欧美黑人一级 | 天天干天天舔天天操 | 日韩视频一区 | 网站av在线 | 久久夜夜夜 | 天堂中文在线资源 | 青青操免费在线视频 | 中文字幕一区二区三区人妻四季 | www国产亚洲精品久久网站 | 欧美成人做爰大片免费看黄石 | 日韩少妇| 欧美打屁股 | 四季av一区二区凹凸精品 | 欧美久久久一区二区三区 | 日本高清视频www夜色资源 | 色吧五月天 | 免费看黄在线 | 风间由美在线视频 | 天天碰天天 | 日韩精品一区二区三区不卡在线 | 黄色成年人网站 | 国产无限资源 | 韩国美女毛片 | 无人码人妻一区二区三区免费 | 免费黄色一级 | 亚洲精品国产精品乱码不卡√香蕉 | 欧美高清二区 | 亚洲一区欧美二区 |