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]);
grunt-contrib-concat 合并任意文件的更多相关文章
- 我的Grunt之旅-初识gruntfile文件
时间:2018-03-06 18:23 事件:配置 gruntfile.js文件 首先,回忆一下之前的点,grunt项目下面必须有两个文件 ,第一个 package.json ,第二个 Gru ...
- grunt自定义任务——合并压缩css和js
npm文档:www.npmjs.com grunt基础教程:http://www.gruntjs.net/docs/getting-started/ http://www.w3cplus.com/to ...
- FFmpeg任意文件读取漏洞分析
这次的漏洞实际上与之前曝出的一个 CVE 非常之类似,可以说是旧瓶装新酒,老树开新花. 之前漏洞的一篇分析文章: SSRF 和本地文件泄露(CVE-2016-1897/8)http://static. ...
- 使用ffmpeg批量合并flv文件
title: 使用ffmpeg批量合并flv文件 toc: false date: 2018-10-14 16:08:19 categories: methods tags: ffmpeg flv 使 ...
- PHP:网展cms后台任意文件删除和sql注入
0x01:目录结构 可以发现Frameword是框架的文件 install安装 public公共文件 uploads储存上传之类的文件 webuser后台文件 Home前台文件 0x02.csrf漏洞 ...
- Java 合并PDF文件
处理PDF文档时,我们可以通过合并的方式,来任意合并几个不同的PDF文件,使我们方便的存储和管理文档.例如,在做毕业设计的时候,封面和论文正文往往是两个PDF文档,但是,上交电子档的时候,需要合二为一 ...
- ImageMagick convert多张照片JPG转成pdf格式,pdfunite合并PDF文件
在认识ImageMagick之前,我***的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用起来也是蛮方便的.在一次偶然的机会中,我遇到了Imag ...
- 压缩/批量压缩/合并js文件
写在前面 如果文件少的话,直接去网站转化一下就行. http://tool.oschina.net/jscompress?type=3 1.压缩单个js文件 cnpm install uglify-j ...
- 【原创】JEECMS v6~v7任意文件上传漏洞(1)
文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...
随机推荐
- selenium—显示等待中期望的场景语句
① alert_is_present() 判断页面是否出现alert框 wait = WebDriverWait(driver,10) alert = wait.until(EC.alert_is_p ...
- DNS 域名系统与邮件服务器
目录 DNS 域名系统 定义 域名分类 解析流程 DNS分类 资源记录 格式 资源记录类型 用bind搭建一台DNS服务器 安装bind 创建自己的zone文件 在主配置文件中,增加自己的zone 检 ...
- cm日志的清理
#过一段时间后,cm server的空间越来越大 #删除日志/bin/rm /var/lib/cloudera-host-monitor/ts/*/partition*/* -rf/bin/rm /v ...
- [c++] WINAPI
int WINAPI WINMain 中,WINAPI含义 在windef.h头文件中有如下定义: #define WINAPI __stdcall #define APIENTRY WINAPI 函 ...
- [Python3] 036 函数式编程 返回函数
目录 函数式编程 之 返回函数 1. 引子 2. 闭包 closure 函数式编程 之 返回函数 函数可以返回具体的值 也可以返回一个函数作为结果 1. 引子 1.1 定义一个普通函数 >> ...
- sql server2012中使用convert来取得datetime数据类型样式(全)
一.日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONV ...
- Postgresql 监控sql之 pg_stat_statements模块
postgresql.confpg_stat_statements.max = 1000000pg_stat_statements.track = allpg_stat_statements.trac ...
- python-day10(正式学习)
目录 字符编码 计算机基础 文本编辑器存取文件的原理 python解释器执行py文件的原理 python解释器与文本编辑的异同 字符编码介绍 字符编码的分类 乱码分析 总结 文件操作 三种基本操作 文 ...
- 面试之什么是java虚拟机
java虚拟机体系结构 方法区 堆 java虚拟机栈 本地方法栈 方法区 java虚拟机编译的class文件中二进制数据类型解析数据存在方法区中 是所有线程共享 和存在数据的线程安全问题 当二个线程使 ...
- 获取iframe中的tree
window.frames["iframe_name"].document.getElementById("..."); 或者 window.frames['i ...