首页 > 其他 > 详细

用gulp建立自动工具,完成软件的编译、测试、打包和发布流程

时间:2016-03-01 08:30:50      阅读:230      评论:0      收藏:0      [点我收藏+]

gulp以task的形式组织任务。

在每一个任务中,从gulp.src()指定文件源头开始,经过一系列pipe管道处理, 最后结果保存到gulp.dest指定的目录中,(或输出到stream)

任务的顺序用runSequence来组织,把可以并行的的任务放在一个数组里面, 数组之间是串行的
runSequence([‘clean‘], [‘copy-to-one-folder‘], [‘publish‘]);


把需要发布的从多处汇总到一个目录dist/src
gulp.task("copy-to-one-folder", function(){
gulp.src(["c:/labs3/TestLab/NodeServer/routes/**/*"], {base: "c:/labs3/TestLab/"})
.pipe(gulp.dest(‘dist/src‘));

return gulp.src(["c:/labs3/TestLab/HomeFinder/**/*"], {base:"c:/labs3/TestLab/HomeFinder/"})
.pipe(gulp.dest(‘dist/src‘));
});

把汇总后的文件zip到 dist/release目录下

如何需要rename文件的名称,
对于单个文件 .pipe(rename("main/text/ciao/goodbye.md"))
对于模式修改:
.pipe(rename(function (path) {
path.dirname += "/ciao";
path.basename += "-goodbye";
path.extname = ".md"
}))


如何需要replace文件中的字符串,(支持正则表达式),(最好以单个文件作为gulp.src源, 以减少计算量)
.pipe(replace(‘bar‘, ‘foo‘))
.pipe(replace(/foo(.{3})/g, ‘$1foo‘))

用if添加, 限定repalce和rename,会更加有效率
如果是 *.html文件, .pipe(gulpif(‘*.html‘, do-sth, else-do-sth))
.pipe($.if(‘*.html‘, do-sth, else-do-sth))

注意选用 gulp-系列的模块‘gulp-replace‘不是 ‘replace‘, 这是两个不同的模块!!!

var gulpIgnore = require(‘gulp-ignore‘);
.pipe(gulpIgnore.exclude(condition))

加!前缀排除指定的目录
gulp.src([‘./*.js‘, ‘!./node_modules/**‘])

用gulp建立自动工具,完成软件的编译、测试、打包和发布流程

原文:http://www.cnblogs.com/GameEngine/p/5229576.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!