前端自動化工具|gulp新手入門

? ? ? ?gulp是前端自動化工具,它可以進行html壓縮、css壓縮合并、js檢查壓縮、圖片壓縮、編譯less、編譯sass等,還可以自動完成開發過程中一些重復的的任務,使我們的工作效率大大的提高呀!那具體如何配置以及使用gulp呢??


1.安裝node.js

?1.1 ? 因為gulp是基于node,所以首先我們需要搭建node環境。

? ? ? ? ?這一步非常簡單,進入node.js官網下載所對應的版本。

? ? ? ? 下載后傻瓜式安裝即可。

1.2? 打開命令行(window + r)

? ?node -v ? ?查看安裝的nodejs版本,出現版本號,說明剛剛已正確安裝nodejs


2.安裝npm

2.1 ?npm是nodejs的包管理器,用于node插件管理(包括安裝、卸載、管理依賴等)。

? npm -v ? ? 查看npm版本號

2.2 ?使用npm安裝插件

?npm install gulp-less --save-dev ? ? ? ? ?以安裝less為例

2.3 ?由于npm安裝插件是從國外服務器下載,可能出現異常,所以可以直接選擇安裝cnpm!

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

? ? ? cnpm與npm的用法完全一致,執行命令時可以將npm用cnpm代替。


3.全局安裝gulp

3.1 安裝命令

? cnpm install gulp -g

3.2 查看版本

? gulp -v


4.新建pakage.json文件

4.1 ?package.json是基于nodejs項目必不可少的配置文件,存放在項目根目錄下。

4.2 定位到項目文件

cd ?項目文件位置

4.2 新建命令

?cnpm init

然后一直回車,package.json就新建完成了。不過要注意的是此文件不能添加任何注釋哦~


5.本地安裝gulp

5.1 本地安裝gulp(定位到項目文件)

?cnpm install gulp --save-dev

在這里要跟大家說明的是全局安裝gulp是為了執行gulp任務,本地安裝gulp則是為了調用gulp的插件。

5.2 安裝插件

?cnpm install gulp-sass --save-dev ? ? ? ? ?以安裝sass插件為例

cnpm install gulp-jshint gulp-sass gulp-concat gulp-uglify gulp-rename gulp-jshint-html-reporter --save-dev ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 常用插件


6.新建gulpfile.js文件

6.1 gulpfile.js是gulp項目的配置文件, 基本如下:

//導入工具包 require('node_modules里對應模塊')

var gulp = require('gulp');

var less = require('gulp-less'); ? ? ? ? ? ? ? ? ? ? ? ? //編譯less

var sass = require('gulp-sass'); ? ? ? ? ? ? ? ? ? ?? //編譯sass

var htmlmin = require('gulp-htmlmin'); ? ? ? ? ?? //html壓縮

var minifycss = require('gulp-minify-css'); ? ?? //css壓縮

var concat = require('gulp-concat'); ? ? ? ? ? ? ? //文件合并

var uglify = require('gulp-uglify'); ? ? ? ? ? ? ? ? ? ? //js壓縮

var rename = require('gulp-rename'); ? ? ? ? ? ?//重命名

var jshint = require('gulp-jshint'); ? ? ? ? ? ? ? ? ? ?//js檢查

var imagemin = require('gulp-imagemin'); ? ? //壓縮圖片

var cache = require('gulp-cache'); ? ? ? ? ? ? ? ? //圖片壓縮緩存

var clean = require('gulp-clean'); ? ? ? ? ? ? ? ? ?//清空文件夾

var rev = require('gulp-rev'); ? ? ? ? ? ? ? ? ? ? ? ? //更改版本號


//定義一個less任務(自定義任務名稱)

gulp.task('less', function () {

? ? return gulp.src('./src/style.less') ? ? ? ? ? ? ?//需要操作的文件

? ? ? ? .pipe(less()) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//該任務調用的模塊

? ? ? ? .pipe(gulp.dest('./dest')) ? ? ? ? ? ? ? ? ? ? ? //文件導出的位置

})

//定義一個sass任務(自定義任務名稱)

gulp.task('sass', function () {

? ? return gulp.src('./src/style2.scss')

? ? ? ? .pipe(sass())

? ? ? ? .pipe(gulp.dest('./dest'))

})

//語法檢查

gulp.task('jshint', function () {

? ? return gulp.src('./src/js/*.js')

? ? ? ? .pipe(jshint())

? ? ? ? .pipe(jshint.reporter('default'));

});

//壓縮html

gulp.task('htmlmin', function () {

? ? var options = {

? ? ? ? collapseWhitespace: true,

? ? ? ? collapseBooleanAttributes: true,

? ? ? ? removeComments: true,

? ? ? ? removeEmptyAttributes: true,

? ? ? ? removeScriptTypeAttributes: true,

? ? ? ? removeStyleLinkTypeAttributes: true,

? ? ? ? minifyJS: true,

? ? ? ? minifyCSS: true

? ? };

? ? gulp.src('./src/html/*.html')

? ? ? ? .pipe(htmlmin(options))

? ? ? ? .pipe(gulp.dest('html'));

});

//壓縮css

gulp.task('minifycss', function () {

? ? return gulp.src('./src/css/*.css')

? ? ? ? .pipe(concat('main.css')) ? ? //合并所有css到all.css

? ? ? ? .pipe(gulp.dest('css')) ? //輸出文件夾

? ? ? ? .pipe(rename({suffix: '.min'})) ? //rename壓縮后的文件名

? ? ? ? .pipe(minifycss()) ? //執行壓縮

? ? ? ? .pipe(gulp.dest('css')); ? //輸出文件夾

});

//壓縮,合并 js

gulp.task('minifyjs', function () {

? ? return gulp.src('./src/js/*.js')

? ? ? ? .pipe(concat('event.js')) ? ? //合并所有js到main.js

? ? ? ? .pipe(gulp.dest('js')) ? ? ? ? ?//輸出到文件夾

? ? ? ? .pipe(rename({suffix: '.min'})) ? ? //rename壓縮后的文件名

? ? ? ? .pipe(uglify()) ? ? //壓縮

? ? ? ? .pipe(gulp.dest('js')); ? //輸出

});

//壓縮圖片

gulp.task('minifyImg', function () {

? ? return gulp.src('./src/img/*')

? ? ? ? .pipe(imagemin())

? ? ? ? .pipe(gulp.dest('image'));

})

//文件清理

//執行壓縮前,先刪除以前壓縮的文件

gulp.task('clean', function () {

? ? return del(['./css/all.css', './css/all.min.css', './lib/all.js', './lib/all.min.js'])

});

//定義默認任務

//壓縮js需要在檢查js之后操作

gulp.task('default', ['less', 'sass', 'jshint'], function () {

? ? gulp.start('minifycss', 'minifyjs', 'minifyImg', 'htmlmin');

});

7.運行gulp

? ? ?最后回到命令行,直接輸入gulp即可運行!

?gulp?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容