摘要:今天跟大家分享的是關于目前自己的公司的項目優(yōu)化中所使用到的構建工具。在進行基礎鞏固的基礎上,使用構建工具可以在開發(fā)的過程中進行部分自動化構建,如對頁面的監(jiān)聽,對樣式的編譯,對代碼的壓縮與打包。在使用之前,要先對所需要的依賴進行安裝。
Why?
今天跟大家分享的是關于目前自己的公司的項目優(yōu)化中所使用到的gulp構建工具。目前公司對產品的優(yōu)化決定采用VueJs來進行單頁面開發(fā),無疑這種新的技術框架對一個項目的效率會提升得更快更強。如今前端的發(fā)展速度飛快,仿佛稍微停止學習的腳步就會被時代拋棄,但我們也切忌過于急躁,所謂萬卷不離其宗,打好基礎是關鍵。
What?在進行基礎鞏固的基礎上,使用gulp構建工具可以在開發(fā)的過程中進行部分自動化構建,如對頁面的監(jiān)聽,對樣式的編譯,對代碼的壓縮與打包。
作為一個小型的項目來說,這些基本就足夠了。
搭建gulp最主要的是使用gulp的工作流,通過在gulp中的gulpfile文件編寫我們的工作流,就仿佛一個個車間,在我們一條條命令下,就能完成我們需要的工作。
首先,最基本也最重要的是,我們需要搭建node環(huán)境。訪問http://nodejs.org,下載完成后直接運行程序,就一切準備就緒。npm會隨著安裝包一起安裝。
為了確保Node已經(jīng)正確安裝,我們執(zhí)行幾個命令。
node -v
如果正確安裝的話,你會看到所安裝的Node的版本號,接下來看看npm。
npm -v
這同樣能得到npm的版本號。
如果這兩行命令沒有得到返回,可能node就沒有安裝正確,嘗試重啟下命令行工具,如果還不行的話,只能回到第一步進行重裝。
安裝成功后我們就可以在目標目錄中初始化環(huán)境
npm init
使用上述代碼在項目空間中初始化環(huán)境,按步驟填寫后會生成package.json文件
使用npm工具下載gulp。在命令行中輸入
sudo npm install -g gulp
使用下面的命令查看gulp的版本號以確保gulp已經(jīng)被正確安裝。
gulp -v
接下來,我們需要將gulp安裝到項目本地
npm install —-save-dev gulp
這里,我們使用—-save-dev來更新package.json文件,更新devDependencies值,以表明項目需要依賴gulp。
Dependencies可以向其他參與項目的人指明項目在開發(fā)環(huán)境和生產環(huán)境中的node模塊依懶關系,想要更加深入的了解它可以看看package.json文檔。
在這里使用我在項目中使用的gulpfile文件。
// 引入 gulp var gulp = require("gulp"); // 引入組件 var jshint = require("gulp-jshint"); //語法檢查 var sass = require("gulp-sass"); //sass編譯 var concat = require("gulp-concat"); //合并 var uglify = require("gulp-uglify"); //js壓縮 var rename = require("gulp-rename"); //重命名 var htmlmin = require("gulp-htmlmin"); //頁面壓縮 var minifyCss = require("gulp-minify-css"); //css壓縮 var rev = require("gulp-rev"); //對文件名加MD5后綴 var revCollector = require("gulp-rev-collector"); //路徑替換 var cheerio = require("gulp-cheerio"); //替換引用 // 默認任務 gulp.task("default", ["sass", "lint"]); // 開發(fā)環(huán)境gulp任務 gulp.task("watch", function() { // gulp.watch("./src/index.html", ["sass", "lint"]); gulp.watch("./src/scss/*.scss", ["sass"]); gulp.watch("./src/js/*.js", ["lint"]); }); // 檢查腳本 gulp.task("lint", function() { gulp.src("./src/js/*.js") .pipe(jshint()) .pipe(jshint.reporter("default")); }); // 編譯Sass gulp.task("sass", function() { gulp.src("./src/scss/*.scss") .pipe(sass()) .pipe(gulp.dest("./src/css")); }); // // 生產環(huán)境gulp任務 gulp.task("dev", ["cssConcat", "scripts"]); // js合并,壓縮文件 gulp.task("scripts", function() { gulp.src("./src/js/*.js") .pipe(concat("all.js")) .pipe(gulp.dest("./dist/js")) .pipe(rename("all.min.js")) .pipe(uglify()) .pipe(rev()) .pipe(gulp.dest("./dist/js")) .pipe(rev.manifest({merge: true})) .pipe(gulp.dest("./rev/js/")); }); // css合并壓縮 gulp.task("cssConcat", function() { gulp.src("./src/css/**.css") .pipe(concat("style.min.css")) .pipe(minifyCss()) .pipe(rev()) .pipe(gulp.dest("./dist/css")) .pipe(rev.manifest({merge: true})) .pipe(gulp.dest("./rev/css/")); }); //改變引用文件 gulp.task("rev", function() { gulp.src(["./rev/css/rev-manifest.json", "./rev/js/rev-manifest.json", "./dist/index.html"]) .pipe(revCollector()) .pipe(gulp.dest("./dist/")); }); gulp.task("indexHtml", function() { return gulp.src("index.html") .pipe(cheerio(function ($) { $("script").remove(); $("link").remove(); $("body").append(""); $("head").append(""); })) .pipe(gulp.dest("dist/")); }); //壓縮html文件 gulp.task("minify", function() { return gulp.src("dist/*.html") .pipe(htmlmin({ collapseWhitespace: true })) .pipe(gulp.dest("./dist/")); });
基本上在這樣的工作流程中,代碼的壓縮合并,監(jiān)聽發(fā)布都可以使用gulp流來控制。
在使用gulpfile之前,要先對所需要的依賴進行安裝。使用npm對依賴進行下載,這里下載的就是文件中所require引用的依賴,這里就不將全部寫下來了。
npm i gulp-jshint --save-dev
gulp的工作流程十分簡單,主要用task,run,watch,dest來進行任務搭建。
task主要作為任務的新建,即像我文件中所寫的
run起運行任務的命令
watch起監(jiān)聽命令,作為對工程中文件的變化起監(jiān)聽作用,這一點如果再搭配頁面重加載效果,即gulp-connect依賴,則可以實現(xiàn)頁面無需手動刷新操作
dest主要是對文件的路徑進行更改
更多詳細的可以參考gulp的官網(wǎng)。熟悉了就趕緊嘗試起來吧,趁年輕,大膽試錯。
Next?下一次的分享可能會收集在論壇上所了解到的一些我經(jīng)常在項目中看見的代碼,同時也是作為自己一個技術積累,與大家一起學習。CU tomorrow
Finished我的技術博客主要以github上創(chuàng)建的一個倉庫為主,因為前端論壇太多了,我無從下手,所以一般都會先在github上整理完后再分發(fā)到各個社區(qū),有興趣請戳
? MolyCHNs Blogger
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82469.html
摘要:自動化構建工具使用簡言現(xiàn)在不管是做前端還是后端的,不可避免的是要跟打交道的而且這么容易開發(fā)難道我們不想自己隨手寫點什么這類比較前衛(wèi)的框架早就深度集成了很多前端的東西現(xiàn)在,就讓我們手動為也插上的翅膀吧。 gulp自動化構建工具使用 簡言 現(xiàn)在不管是做前端還是后端的,不可避免的是要跟html打交道的;而且Node這么容易開發(fā)web;難道我們不想自己隨手寫點什么?Express這類比較前衛(wèi)的...
摘要:當然需要的工具不只有這些,其他的一些可選工具還有文件壓縮壓縮時用到的文件重命名檢查一般編輯器自帶校驗提示工具等等,具體根據(jù)項目需要安裝。 gulp 前端自動化構建工具 需要配置nodejs環(huán)境, 利用npm安裝全局gulp,安裝后可以輸入gulp指令。 npm install gulp -g 創(chuàng)建項目目錄、初始化npm包、gulp npm init gulp init 下載gul...
摘要:博主目前的這個項目還不算很大,模塊依賴簡單,但期望完成諸如版本號替換,壓縮代碼,合并文件,發(fā)布到服務器等和模塊化關系不大的工作,所以使用了。同時,對和附加緩存,配合和版本號實現(xiàn)服務器更新,這一部分其實已經(jīng)幫我們實現(xiàn)好了。 經(jīng)常在各種論壇、博客還有 github 上活躍的朋友不難發(fā)現(xiàn),許多大牛都有自己的網(wǎng)站,也多以博客為主。博主作為一個立志前端的大白,難道不應該和大牛學習么?說干就干,前...
摘要:博主目前的這個項目還不算很大,模塊依賴簡單,但期望完成諸如版本號替換,壓縮代碼,合并文件,發(fā)布到服務器等和模塊化關系不大的工作,所以使用了。同時,對和附加緩存,配合和版本號實現(xiàn)服務器更新,這一部分其實已經(jīng)幫我們實現(xiàn)好了。 經(jīng)常在各種論壇、博客還有 github 上活躍的朋友不難發(fā)現(xiàn),許多大牛都有自己的網(wǎng)站,也多以博客為主。博主作為一個立志前端的大白,難道不應該和大牛學習么?說干就干,前...
摘要:通過本文,我們將學習如何使用來改變開發(fā)流程,從而使開發(fā)更加快速高效。中文網(wǎng)站詳細入門教程使用是基于的,需要要安裝為了確保依賴環(huán)境正確,我們先執(zhí)行幾個簡單的命令檢查。詳盡使用參見官方文檔,中文文檔項目地址 為了UED前端團隊更好的協(xié)作開發(fā)同時提高項目編碼質量,我們需要將Web前端使用工程化方式構建; 目前需要一些簡單的功能: 1. 壓縮HTML 2. 檢查JS 3. 編譯SA...
閱讀 890·2023-04-26 03:03
閱讀 2213·2021-10-12 10:12
閱讀 1207·2021-09-24 09:48
閱讀 1655·2021-09-22 15:25
閱讀 3339·2021-09-22 15:15
閱讀 921·2019-08-29 16:21
閱讀 1072·2019-08-28 18:00
閱讀 3432·2019-08-26 13:44