grunt-contrib-concat 合并任意文件

grunt-contrib-concat可用于合并任意文件(css\js\txt等)

安装插件:npm install grunt-contrib-concat --save-dev

参数:

separator
参数类型:string
默认值:grunt.util.linefeed
可用一切string类型的字符分割,如“;”

banner
参数类型:string
默认值:""(空值)
在输出的文档的头部添加,一般做说明和注释用。参数如:'/*! <%= pkg.name %> <%=
grunt.template.today("yyyy-mm-dd") %> */\n'

footer
与banner相似,但其在输出的文档的底部添加

stripBanners
参数类型:Boolean、Object
默认值:false
为true,去除代码中的块注释。
Object:
block:如果为true,去除所有的块注释
line:如果为true,去除任何连续的//领导的行注释

process
参数类型:Boolean、object、funtion
默认值:false
处理的源文件在连接之前,作为模板或一个自定义函数。
false - 没有要处理的
true - 处理的源文件使用grunt.template.process的默认值
object - 处理的源文件使用grunt.template.process中指定选项
function(src,filepath) - 处理的源文件每个文件都使用被定义的函数处理,返回值将作为源文件使用

实例如下:

1.合并src下的js到bulid目录,合并后文件名为built.js:

concat:{
  options: {
    //文件内容分隔符
    separator: ";",
    stripBanner: true,
    //在文件头部添加
    banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
                 '<%= grunt.template.today("yyyy-mm-dd") %> */',
    //自定义进程函数,比如你需要在合并文件前,对文件名进行处理等
    process: function(src, filepath) {
               return '// Source: ' + filepath + '\n' +
                      src.replace(/(^|\n)[ \t]*('use strict'|"use strict");?\s*/g, '$1');
             }
  },
  dist: {
    src: ['src/*.js'],
    dest: 'build/built.js'
  }
}

2.合并多个目标文件

concat: {
  options: {
    separator: ";"
  },
  basic: {
    src: ['txt/*.txt'],
    dest: 'txt/common.txt'
  },
  extras: {
    src:['src/*.js'],
    dest: "js/common.min.js"
  }
}

concat: {
  options: {
    separator: ";"
  },
  basic: {
    files: {
      'txt/common.txt' : ['txt/*.txt'],
      'js/common.min.js' : ['src/*.js']
    }
  }
}

3.动态的文件名

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  dirs: {
    src: 'src'
  },
  concat: {
    options: {
      separator: ";"
    },
    extras: {
      src:['<%= dirs.src %>/*.js'],
      dest: "js/<%= pkg.name %>.min.js"
    }
  }
});

4.无效或丢失的文件的警告,设置nonull为true

concat: {
  options: {
    separator: ";"
  },
  extras: {
    src:['<%= dirs.src %>/*.js'],
    dest: "js/<%= pkg.name %>.min.js",
    nonull: true
  }
}

当然,除了在grunt.initConfig中配置concat,还需要在Gruntfile.js中添加下面两段代码,那么,这个插件就算配写完成了

//加载指定插件任务
grunt.loadNpmTasks('grunt-contrib-concat');

//注册插件任务
grunt.registerTask('default',['concat]);

 

posted on 2015-09-28 15:03  安蝶 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/cyj7/p/4844015.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值