前端工程自动化构建(一)— gulp

目录

一、gulp简介和安装
二、开始使用gulp
三、gulp常用Api
四、gulp常用插件
五、附demo源码

更多资源请移步https://www.uplusmeta.com/M!1044693/

一、gulp简介和安装

gulp是一个自动化构建工具,基于 node 强大的流(stream)能力,拥有丰富和精简的API和插件。gulp 将开发流程中让人痛苦或耗时的任务自动化,从而减少你所浪费的时间、创造更大价值。
废话不多说,让我们开始领略gulp的强大之处。

首先确保你已经正确安装了nodejs环境。
关于怎么安装nodejs,请移步https://blog.csdn.net/qq_39425927/article/details/103214779
1、全局安装

npm install --global gulp

2、打开你所在的项目,作为项目得开发依赖安装

npm install --save-dev gulp

二、开始使用gulp

在项目根目录下创建一个名为 gulpfile.js 的文件:
在这里插入图片描述
开始编写gulpfile.js,使用require引入模块

var gulp = require('gulp');

gulp.task('taskname', function() {
  // 将你的默认的任务代码放在这
});

执行任务
到对应项目的下 使用gulp命令执行任务
例如:gulp taskname

三、gulp常用Api

1、task(name,function(){}):定义gulp任务。

gulp.task('task1', function(done){                 //定义了一个task1的任务
    done()
});

2、src() :创建一个流,gulp是基于流的,这个流用于从文件中读取一个虚拟对象。

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

3、dest() :也是用于创建一个流,不过该流用于将虚拟对象写入文件系统的流。

 gulp.src('./js/main.js')                  //读取了一个main.js存为虚拟对象
       .pipe(gulp.dest('./dist/js/'));         //将这个虚拟对象写入dist的js文件中

4、watch():用于监听文件的变化

gulp.watch('Resource/Sinotsing/js/*.js', gulp.series(['masterScripts', 'Scripts']));

注意:gulp 4.0以上版本,使用gulp.series执行多个任务

四、gulp常用插件

1、压缩js
安装gulp-uglify

npm install gulp-uglify --save-dev

创建压缩任务

var uglify = require("gulp-uglify");
gulp.task('scripts',function(done){
	gulp.src('./main.js')
	    .pipe(uglify())                 // 直接压缩main.js
	    .pipe(gulp.dest('./dist'))
	done()
})

2、合并文件
安装gulp-concat

npm install gulp-concat  --save-dev

创建合并任务

var gulp_concat = require("gulp-uglify");
gulp.task('concatfile',function(done){
	gulp.src('[./main.jsrename,./script2.js]')
	   .pipe(gulp_concat('main..min.js'))                 // 合并main.js 和 script2 为 main.min.js
	    .pipe(gulp.dest('./dist'))
	done()
})

3、重命名文件。
安装gulp_rename

npm install gulp-rename --save-dev

对文件重命名

var rename = require("gulp-rename");
gulp.task('resetname',function(done){
gulp.src('./main.js')
    .pipe(uglify())    
    .pipe(({ suffix: '.min' }))             // 重名名文件,输出为main.min.js
    .pipe(gulp.dest('./dist'))
})

4、压缩css文件。
安装gulp-minify-css

npm install gulp-minify-css --save-dev

压缩css文件

var mincss = require("gulp-minify-css");
gulp.task('styles',function(done){
gulp.src('./style.js')
    .pipe(mincss())          // 压缩style.css
    .pipe(gulp.dest('./dist/css'))
})

5、压缩图片。
安装gulp-imagemin

npm insatall gulp-imagemin --save=dev

压缩图片

gulp.task('image', function (done) {
    gulp.src('Resource/Sinotsing/Images/*') //压缩image里的所有图片
        .pipe(imagemin())
        .pipe(gulp.dest('Resource/dist/images'))
    done();
})

6、less转css
安装gulp-less

npm insatall gulp-less --save-dev

使用gulp-less将less 文件输出为css

var less = require("gulp-less");
gulp.task('styles',function(done){
gulp.src('./style.less')
    .pipe(less())          // 压缩style.less 转为style.css
    .pipe(gulp.dest('./dist/css'))
})

由于篇幅原因,其他还有插件不相近列出,请移步gulp手册https://www.gulpjs.com.cn/docs/getting-started/quick-start/

五、demo源码

var gulp = require('gulp');
//压缩模块
var gulp_uglify = require('gulp-uglify');
//检查错误模块
var gulp_util = require('gulp-util');
//合并模块
var gulp_concat = require('gulp-concat');
//重命名模块
var rename = require('gulp-rename');
//gulp_sourcemaps模块
var gulp_sourcemaps = require('gulp-sourcemaps');
//less转css模块
var gulp_less = require('gulp-less');
//css压缩模块
var gulp_minify = require('gulp-minify-css');
//压缩图片模块
var imagemin = require('gulp-imagemin');

//压缩mater js
gulp.task('masterScripts', function (done) {
    gulp.src(['Resource/Js/jquery.1.12.3min.js', 'Resource/Sinotsing/JS/velocity.js', 'Resource/Sinotsing/JS/shutter.js', 'Resource/Sinotsing/JS/master.js'])
        .pipe(gulp_sourcemaps.init())
        .pipe(gulp_concat('main..min.js'))
        .pipe(gulp_uglify(
            {
                compress: {
                    drop_console: true,
                    drop_debugger: true
                }
            }
        ))
        .on('error', function (err) {
            gulp_util.log(gulp_util.colors.red('[Error]'), err.toString());
        })
        .pipe(gulp_sourcemaps.write('.'))
        .pipe(gulp.dest('Resource/dist/js'));
    done();
})

//压缩其余的js
gulp.task('Scripts', function (done) {
    gulp.src('Resource/Sinotsing/JS/*.js')
        .pipe(gulp_uglify(
            {
                compress: {
                    drop_console: true,
                    drop_debugger: true
                }
            }
        ))
        .on('error', function (err) {
            gulp_util.log(gulp_util.colors.red('[Error]'), err.toString());
        })
        .pipe(rename({ suffix: '.min' }))
        .pipe(gulp.dest('Resource/dist/js'));
    done();
})

//压缩图片模块
gulp.task('image', function (done) {
    gulp.src('Resource/Sinotsing/Images/*')
        .pipe(imagemin())
        .pipe(gulp.dest('Resource/dist/images'))
    done();
})

//压缩css
gulp.task('css', function (done) {
    gulp.src('Resource/Sinotsing/CSS/*.less')
        .pipe(gulp_sourcemaps.init())
        .pipe(gulp_less())
        .pipe(gulp_minify())
        .on('error', function (err) {
            gulp_util.log(gulp_util.colors.red('[Error]'), err.toString());
        })
        .pipe(rename({ suffix: '.min' }))
        .pipe(gulp_sourcemaps.write('.'))
        .pipe(gulp.dest('Resource/dist/css'));
    done()
})
//默认任务
gulp.task('default',function (done) {
    gulp.watch('Resource/Sinotsing/js/*.js', ['masterScripts', 'Scripts']);
    gulp.watch('RResource/Sinotsing/Images/*', ['image']);
    gulp.watch('Resource/Sinotsing/CSS/*.less', ['css']);
    done();
});
//监听任务
gulp.task('watch', function (done) {
    gulp.watch('Resource/Sinotsing/js/*.js', gulp.series(['masterScripts', 'Scripts']));
    gulp.watch('RResource/Sinotsing/Images/*', gulp.series(['image']));
    gulp.watch('Resource/Sinotsing/CSS/*.less', gulp.series(['css']));
    done();
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Gulp是一种前端自动化工具,它可以帮助前端开发人员自动完成一些重复性工作,例如压缩CSS和JavaScript文件、自动刷新浏览器、合并文件等。 使用Gulp需要先安装Node.js和npm,然后使用npm安装Gulp。安装完成后,可以在项目的根目录下创建一个名为gulpfile.js的文件,该文件中定义了Gulp要执行的任务和任务的具体操作。 在gulpfile.js中,可以使用Gulp提供的API来定义任务。例如,可以使用gulp.task()方法定义一个任务,该方法接受两个参数:任务的名称和任务要执行的操作。可以使用gulp.src()方法指定要处理的文件,然后使用各种Gulp插件来执行各种操作,例如gulp-concat用于合并文件,gulp-uglify用于压缩JavaScript文件等。 最后,可以使用gulp.dest()方法将处理后的文件保存到指定目录。定义好任务后,可以在终端中使用gulp命令来执行任务,Gulp会自动执行任务并输出相关日志信息。 ### 回答2: Gulp是一个前端自动化工具,它通过编写简洁、易于理解的代码来帮助开发者自动化前端开发中的各种任务。 首先,Gulp使用简单且灵活。它使用流的概念,让开发者能够通过将任务连接在一起构建整个开发流程。开发者可以定义各种任务,如压缩文件、合并文件、编译代码等等,然后通过管道将这些任务链接在一起。这种方式使得构建前端项目变得非常容易,同时也让开发者能够根据自己的需求定制任务流程。 其次,Gulp有大量的插件可供选择。Gulp的插件系统非常强大,社区中有数以千计的插件可用。这些插件可以帮助开发者解决各种问题,如自动添加浏览器前缀、压缩文件、优化图片等等。开发者可以根据自己的需求选择合适的插件使用,从而提高工作效率。 另外,Gulp还具有良好的生态系统。无论是官方文档还是社区文档,都非常详细且易于理解。开发者可以很容易地找到所需的信息和教程,学习如何使用Gulp来优化自己的工作流程。 总的来说,Gulp是一个功能强大且易于使用的前端自动化工具。它能够帮助开发者提高工作效率,简化开发流程,同时也具有丰富的插件和优秀的生态系统。无论是小型项目还是大型项目,Gulp都是一个非常好的选择。 ### 回答3: Gulp是一个前端自动化工具,用于简化开发流程和提高工作效率。它基于流(stream)的概念,可以自动化处理和优化前端工作中的许多重复任务。 首先,通过在项目中配置gulpfile.js文件,可以定义各种任务(task)和相应的操作。可以使用Gulp来执行各种编译、压缩、合并、重命名、清理等操作,例如压缩CSS和JavaScript文件、编译Sass或Less、优化图像等等。这些任务可以按照开发者的需求进行自定义配置,满足不同项目的要求。 Gulp的使用也非常简单,只需要通过命令行运行gulp命令并指定要执行的任务即可。当有文件变动时,Gulp可以自动监听文件的变化并重新执行相应的任务,实时更新项目的输出。 此外,Gulp还支持插件生态系统,拥有大量的插件可供开发者选择使用。这些插件可以用于执行各种任务,例如自动生成CSS前缀、合并相同类型的文件、启动本地开发服务器等等。 总的来说,Gulp通过简化和自动化前端开发流程,大大提高了开发效率。它的简单易用和丰富的插件生态系统使得开发者能够根据项目需求快速搭建和优化前端工作流程。使用Gulp可以减少重复劳动,提高代码质量和开发效率,因此成为前端开发中不可或缺的工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值