gulp--gulp-concat

插件地址: https://github.com/contra/gulp-concat

插件安装: 

npm install --save-dev gulp-concat

插件使用

var concat = require('gulp-concat');

gulp.task('scripts', function() {
  return gulp.src('./lib/*.js')
    .pipe(concat('all.js'))  //all.js 指代合并后的文件,合并后的内容会覆盖all.js 原有内容。
    .pipe(gulp.dest('./dist/'));
});

此外,在文件内容合并过程中,会根据glup.src函数中 获取到 的文件的顺序来合并文件,如下例子,file3.js 的文件 会在 file1.js 文件内容之前,file1也会在file2之前。

var concat = require('gulp-concat');

gulp.task('scripts', function() {
  return gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js'])
    .pipe(concat('all.js'))
    .pipe(gulp.dest('./dist/'));
});



如果想修改Newline;可以给concat添加第二个参数,例子如下;

.pipe(concat('main.js', {newLine:';'}))


如果想指定 新的工作目录(CWD) , 文件路径(path) ,文件描述器(vinyl) ,你可以指定第一个参数为一个对象;

注释:Vinyl 可以看做一个文件描述器,通过它可以轻松构建单个文件的元数据(metadata object)描述对象。依旧是来个例子简洁明了:



//ch2-demom1
var Vinyl = require('vinyl');var jsFile = new Vinyl({ cwd:
cwd:'/', base:
base:'/test/', path:
path:'/test/file.js', contents:
contents:new Buffer('abc')});
});

示例如下:

gulp.task('scripts', function() {
  return gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js'])
    .pipe(concat({ path: 'new.js', stat: { mode: 0666 }})) // stat 参数是用来设置 concat() 之后的文件的权限的,mode后面的数值就是权限代码。
    .pipe(gulp.dest('./dist'));
});

Source maps



var gulp = require('gulp');
var concat = require('gulp-concat');
var sourcemaps = require('gulp-sourcemaps');

gulp.task('javascript', function() {
  return gulp.src('src/**/*.js')
    .pipe(sourcemaps.init()) //初始化sourcemap
      .pipe(concat('all.js'))
    .pipe(sourcemaps.write())  //all.js 内写入sourcemap文件内容 如果要在 .map.js中写入,则为:sourcemaps.write("./")
.pipe(gulp.dest('dist'));
});




 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值