你的位置:首页 > 软件开发 > Java > Gulp快速入门

Gulp快速入门

发布时间:2015-12-10 01:00:10
gulp用来优化我们的workflow。全局安装:npm install --global gulp项目安装:npm install --save-dev gulp运行gulp:gulp引用使用:gulpfile.js放在项目根目录下var gulp = require(gul ...

 

gulp用来优化我们的workflow。var gulp = require('gulp');});

搭建Gulp

→ 全局安装:npm install -g gulpvar gulp = require('gulp');

开始使用

→ 在项目根目录下创建src文件夹a.js:b.js:c.js:→ npm install gulp-concat在项目根目录下多了dist文件夹,里面有一个all.js文件:console.log('a.js');console.log('b.js');console.log('c.js');

任务依赖

→ 在gulpfile.js中增加一个任务

 

var gulp = require('gulp');var concat = require('gulp-concat');gulp.task('js', function(){  gulp.src('src/*.js')    .pipe(concat('all.js')) //合并的文件名    .pipe(gulp.dest('dist')); //合并后文件所在的目录});gulp.task('other-js', function(){  gulp.src(['src/a.js', 'src/b.js']) //源头文件,以数组形式    .pipe(concat('two.js'))    .pipe(gulp.dest('dist'));});
在dist下多了two.js文件:console.log('a.js');console.log('b.js');→ 在gulpfile.js中再增加一个任务,依赖前面的两个任务

 

var gulp = require('gulp');var concat = require('gulp-concat');gulp.task('js', function(){  gulp.src('src/*.js')    .pipe(concat('all.js')) //合并的文件名    .pipe(gulp.dest('dist')); //合并后文件所在的目录});gulp.task('other-js', function(){  gulp.src(['src/a.js', 'src/b.js']) //源头文件,以数组形式    .pipe(concat('two.js'))    .pipe(gulp.dest('dist'));});gulp.task('default',['js', 'other-js'], function(){  console.log('hello');});
dist文件夹下又多了all.js和two.js文件,说明js和other-js两个任务已经被运行。

 监控文件变化,实现自动化

→ 修改gulpfile.js,增加一个任务,监控src中的文件变化,一旦有变化执行default任务

 

var gulp = require('gulp');var concat = require('gulp-concat');gulp.task('js', function(){  gulp.src('src/*.js')    .pipe(concat('all.js')) //合并的文件名    .pipe(gulp.dest('dist')); //合并后文件所在的目录});gulp.task('other-js', function(){  gulp.src(['src/a.js', 'src/b.js']) //源头文件,以数组形式    .pipe(concat('two.js'))    .pipe(gulp.dest('dist'));});gulp.task('default',['js', 'other-js'], function(){  console.log('hello');});gulp.task('watch', function(){  gulp.watch('src/*',['default']);});
控制台提示正在watching→ 打开a.js文件修改并保存console.log('a.js');在all.js中也有了相应的变化:console.log('a.js');console.log('c.js');→ 先终止监控进入到dist文件夹下的所有js, css, image文件都是经过压缩的。

同时输出压缩和未压缩js文件

→ 修改gulpfile.js文件

 

var gulp = require('gulp');var concat = require('gulp-concat');var uglify = require('gulp-uglify');gulp.task('js', function(){  gulp.src('src/*.js')    .pipe(concat('all.js'))//导出一个没有压缩的文件    .pipe(gulp.dest('dist'))    .pipe(uglify()) //压缩    .pipe(concat('all.min.js'))//导出一个压缩文件    .pipe(gulp.dest('dist'));});
在dis下同时输出all.js和all.min.js文件。

使用gulp-htmlbuild替代html中的某个部分

→ npm install gulp-htmlbuild→ 修改gulpfile.js文件

 

var gulp = require('gulp');var htmlbuild = require('gulp-htmlbuild');gulp.task('html', function(){  gulp.src('src/index.html')    .pipe(htmlbuild({      js: htmlbuild.preprocess.js(function(block){        block.write('hello.js');        block.end();      })    }))    .pipe(gulp.dest('dist'));});
在dis下多了一个index.html文件如下:

 

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title></head><body> <script src='/images/loading.gif' data-original="hello.js"></script></body></html>
控制台显示:1 spec, 0 failures→ 在src下添加一个app.coffee文件

 

add = (a, b) -> a + b;result = add 2,2console.log result
在dist文件夹下多了app.js和style.css文件

搭建本地服务器→ npm install gulp-connect→ 控制台运行:gulp可以看到页面内容。→ 修改src下的index.html内容,并保存http://localhost:8000/中的页面内容也有相应的变化。

文件流

→ 在项目根目录下创建doc.txt在根目录下多了一个doc-uppercase.txt文件,里面的内容大写。

捕获异常

→ 修改gulpfile.js文件

 

var gulp = require('gulp');var coffee = require('gulp-coffee');var concat = require('gulp-concat');function handleError(error){  console.log(error);  this.emit('end');}gulp.task('coffee', function(){  return gulp.src('src/*.coffee')    .pipe(coffee())    .on('error', handleError)    .pipe(concat('all.js'))    .pipe(gulp.dest('dist/'));});gulp.task('watch',['coffee'], function(){  gulp.watch('src/*.coffee',['coffee']);});
→ 在src下的app.coffee文件中故意制造错误在控制台出现错误提示

自写一个插件

→ npm install through2在src下多了txt后缀的文件,并且内容都为大写。

 


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Gulp快速入门

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录