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]);

最新文章

  1. python leetcode 1
  2. Windows Server 2008R2服务器安装及设置教程
  3. winform里面网页显示指定内容
  4. Python基础学习笔记(六)常用列表操作函数和方法
  5. js浮点数的计算
  6. 【原创】Linux opensource-src-4.3.2.tar.gz的安装。
  7. 【python】python支持中文变量,醉了
  8. java中文乱码解决之道(四)—–java编码转换过程
  9. 网络资源(7) - JAX-WS视频
  10. VM环境下Linux虚拟机扩展存储空间操作方法总结
  11. Python基础数据类型之int、bool、str
  12. 移动端 input样式在安卓与ios上不同的解决方案
  13. 【移动端】单位em相关资料
  14. CF741 D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
  15. 【.NET架构】BIM软件架构01:Revit插件产品架构梳理
  16. 《Visual C# 从零开始学》
  17. android--------ListView和ExpandableListView的侧滑删除操作
  18. K-means算法(理论+opencv实现)
  19. Use UMDH to identify memory leak problem
  20. 动态SQL中变量赋值

热门文章

  1. Jenkins 远程部署
  2. SpringBoot 启动失败 Failed to determine a suitable driver class 问题解决方案
  3. CodeFoeces GYM 101466A Gaby And Addition (字典树)
  4. Python_4day
  5. MySQL性能优化(一):优化方式
  6. ubuntu 16.04下ssh访问提示错误
  7. HTML和CSS学习
  8. NGINX工作原理(2)
  9. se37 函数中的异常使用
  10. 02:Java基础语法(一)