一.实现某个文件夹下的js和html压缩后一一对应
1.压缩前如下左图,压缩后如下有图所示(根据需要可以加上后缀.min进行区分,也就是使用下面Gruntfile.js中的rename方法):
2.Gruntfile.js的配置代码如下:
//包装函数
module.exports = function(grunt){
//任务配置,所有插件的配置信息
grunt.initConfig({
//获取package.json的信息
pkg:grunt.file.readJSON('package.json'),
//uglify插件的配置信息
uglify:{
options:{
stripBanners:true,
banner:'/*!<%=pkg.name%>-<%=pkg.version%>.common <%=grunt.template.today("yyyy-mm-dd")%>*/\n'
},
my_target:{
files:[{
expand:true,
//相对路径
cwd:'src/',
src:'**/*.js',
dest:'minsrc/'
// rename: function (dest, src) {
// var folder = src.substring(0, src.lastIndexOf('/'));
// var filename = src.substring(src.lastIndexOf('/'), src.length);
// // var filename=src;
// filename = filename.substring(0, filename.lastIndexOf('.'));
// var fileresult=dest + folder + filename + '.min.js';
// grunt.log.writeln("现处理文件:"+src+" 处理后文件:"+fileresult);
// return fileresult;
// //return filename + '.min.js';
// }
}]
}
},
//htmlmin插件的配置信息
htmlmin:{
options: {
removeComments: false, //移除注释
removeCommentsFromCDATA: false,//移除来自字符数据的注释
collapseWhitespace: true,//无用空格
collapseBooleanAttributes: false,//失败的布尔属性
removeAttributeQuotes: false,//移除属性引号 有些属性不可移走引号
removeRedundantAttributes: false,//移除多余的属性
useShortDoctype: false,//使用短的跟元素
removeEmptyAttributes: false,//移除空的属性
removeOptionalTags: false//移除可选附加标签
},
my_target:{
files:[{
expand:true,
cwd:'src/',
src:'**/*.html',
dest:'minsrc/'
}]
}
},
//watch插件的配置信息
watch:{
build:{
files:['src/*.js','src/*.html'],
tasks:['uglify','htmlmin'],
options:{spawn:false}
}
}
});
//告诉grunt我们将使用插件
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-htmlmin');
grunt.loadNpmTasks('grunt-contrib-watch');
//告诉grunt当我们在终端中输入grunt时需要做些什么(注意先后顺序)
grunt.registerTask('default',['uglify','htmlmin','watch']);
};
二.简单的grunt安装和常用插件使用方法可参考:https://blog.csdn.net/wangfupeng1988/article/details/46418203/