使用gulp构建前端项目

前言

在使用了一段时间grunt之后没事突然冒出个想法grunt和gulp到底哪个好?一番百度之后决定放弃使用grunt而使用gulp,为什么呢?发现现在grunt里面的插件什么的都不更新了,还**不能访问了。而gulp的插件库发现比grunt的丰富多了。

自己总结了几点(不好的欢迎补充 adengweb#[@]163.com)

1、书写相对来说比grunt要简洁

2、插件丰富

3、支持htmlMin的压缩

 

那我们来看看怎么用gulp来构建一个项目

 

当然是全局安装gulp

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

 

切换到项目

npm init 初始化项目并创建存放插件的package.json文件

 

项目里面安装gulp

npm install gulp -S // 也可以使用淘宝镜像去安装

 

安装插件

npm install gulp gulp-less gulp-cssmin gulp-imagemin --save-dev  // 可同时安装多个

--save:一个就是普通的项目依赖比如bootstrap,还用一种只是开发阶段需要用的,

--save-dev这种属于开发依赖比如gulp,开发依赖最终记录在devDependencies节点里面

 

项目里面常用gulp插件

var less = require('gulp-less');  // 编译less文件

var sass= require('gulp-sass);  // 编译sass文件

var htmlmin = require('gulp-htmlmin'); // 压缩html

var jsminer = require('gulp-jsminer'); // 压缩js

var imagemin = require('gulp-imagemin'); // 压缩图片

var cssmin = require('gulp-cssmin'); // 压缩css

 

 

完了在项目的根目录新建gulpfile.js配置文件

 

var URL_APP = {

       urlPath: 'src/',

       distPath: 'dist/'

}

 

// 1、引入插件

var gulp = require('gulp');
var less = require('gulp-less');
var htmlmin = require('gulp-htmlmin');
var jsminer = require('gulp-jsminer');

 

// 2、定义任务 less

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

  gulp.src(['src/less/**/*.less', '!src/less/**/_*.less']) //添加less文件路径,并处理为'_'下划线的less不做生成文件处理

    .pipe(less())  // 挂载插件

    .pipe(gulp.dest(URL_APP.distPath +'css'))  // 生成dist路径

});

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

       gulp.src(['src/*.html','src/*.php'])

              .pipe(htmlmin({ collapseWhitespace: true }))

              .pipe(gulp.dest(URL_APP.distPath));

});

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

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

              .pipe(jsminer({ toplevel: true }))

              .pipe(gulp.dest(URL_APP.distPath +'js'));

});

 

// 3、添加默认执行任务 gulp

gulp.task('default',['less', 'minify', 'jsminer', 'watch']);

 

// 4、监听文件变化

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

    gulp.watch(['./src/less/**/*.less'],['less']);

    gulp.watch(['./src/**/*.html','./src/**/*.php'],['minify']);

    gulp.watch(['./src/js/**/*.js'],['jsminer']);

});

 

posted @ 2020-09-06 11:13  蜗牛snail  阅读(192)  评论(0编辑  收藏  举报
蜗牛前端 蜗牛文学