当前位置: 首页 > 后端技术 > Node.js

如何使用grunt压缩合并js-css

时间:2023-04-04 00:13:24 Node.js

1前提条件:Grunt是基于node环境的,所以首先要搭建node环境(这里不做详细介绍自己查)2简介入门:先安装gruntnpminstall-ggrunt-cli文件介绍:package.json是一个依赖库文件gruntfile.js是一个执行步骤程序package.json放在根目录下,里面包含了一些元信息项目,如项目名称、描述、版本号、插件等{"name":"hlcc","version":"v0.1.0","devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.10.0","grunt-contrib-nodeunit":"~0.4.1","grunt-contrib-uglify":"~0.5.0","grunt-contrib-concat":"~0.5.1","grunt-contrib-cssmin":"~0.12.3","grunt-htmlhint":"~0.9.2"}}grunt-contrib-jshint(js语法check),grunt-contrib-concat(jsmerge),grunt-contrib-uglify(使用UglifyJS压缩js),grunt-contrib-cssmin(Css压缩与合并),grunt-htmlhint(html语法检查)配置包后.json文件,执行npminstall安装这些插件。插件安装完成后,查看根目录,可以找到node_modules目录,里面有对应的插件目录。3测试新建的Gruntfile.js我们需要先创建一些文件夹,把需要压缩的js和css文件放到对应的文件夹中(看下面代码中的说明),注意需要给这些文件可写权限。一般执行chmod-R777assetsdestjs,就可以了。module.exports=function(grunt){grunt.initConfig({pkg:grunt.file.readJSON('package.json'),concat:{options:{separator:';',stripBanners:true},dist:{src:["js/config.js","js/smeite.js","js/index.js"],dest:"assets/js/default.js"}},uglify:{options:{},dist:{files:{'assets/js/default.min.js':'assets/js/default.js'}}},cssmin:{options:{keepSpecialComments:0},compress:{files:{'assets/css/default.css':["css/global.css","css/pops.css","css/index.css"]}}}});grunt.loadNpmTasks('grunt-contrib-concat');grunt.loadNpmTasks('grunt-contrib-uglify');grunt.loadNpmTasks('grunt-contrib-cssmin');grunt.registerTask('default',['concat','uglify','cssmin']);};也可js和css分别压缩,不合并,例如:module.exports=function(grunt){//构建任务配置grunt.initConfig({//读取package.json的内容,形成json数据pkg:grunt.file.readJSON('package.json'),//compressjsuglify:{//文件头输出信息options:{banner:'/*!<%=pkg.name%><%=grunt.template.today("yyyy-mm-dd")%>*/\n'},my_target:{files:[{expand:true,//相对路径cwd:'js/',src:'*.js',//src:['**/*.js','!**/*.min.js'],//不包含某个js,某个文件夹下的jsdest:'dest/js/',rename:function(dest,src){varfolder=src.substring(0,src.lastIndexOf('/'));varfilename=src.substring(src.lastIndexOf('/'),src.length);//varfilename=src;文件名=文件名.subst环(0,文件名.lastIndexOf('。'));varfileresult=dest+文件夹+文件名+'.min.js';grunt.log.writeln("当前处理的文件:"+src+"处理的文件:"+fileresult);返回文件结果;//返回文件名+'.min.js';}}]}},//compresscsscssmin:{//文件头输出信息options:{banner:'/*!<%=pkg.name%><%=grunt.template.today("yyyy-mm-dd")%>*/\n',//美化代码beautify:{//中文ascii,很有用!防止中文乱码的神配置ascii_only:true}},my_target:{files:[{expand:true,//相对路径cwd:'css/',src:'*.css',dest:'dest/css/',重命名:函数(dest,src){varfolder=src.substring(0,src.lastIndexOf('/'));varfilename=src.substring(src.lastIndexOf('/'),src.length);//var文件名=src;filename=filename.substring(0,filename.lastIndexOf('.'));varfileresult=dest+文件夹+文件名+'.min.css';grunt.log.writeln("当前处理文件:"+src+"处理文件:"+fileresult);返回文件结果;//返回文件名+'.min.js';}}]}}});//加载指定的插件任务grunt.loadNpmTasks('grunt-contrib-uglify');咕噜声。loadNpmTasks('grunt-contrib-cssmin');//默认执行的任务grunt.registerTask('default',['uglify','cssmin']);};注意:一些参数的含义:expand:如果设置为true,表示后面的文件名的占位符(即*)必须展开成具体的文件名cwd:要处理的文件(输入)所在的目录位于。src:表示要处理的文件。如果是数组形式,数组的每一项都是一个文件名,可以使用通配符。dest:表示处理后的文件名或目录。ext:表示被处理文件的后缀名。进入项目根目录,执行grunt压缩合并Gruntfile配置的文件,或者单独执行。例如执行js压缩命令:gruntuglifycss压缩命令gruntcssmin有问题请联系1343948033@qq.com