需要了解的知识:1、nodejs的安装与命令行使用2、nodejs安装应用3、grunt的初步了解
本文已假定读者已经熟悉以上知识。
好,我们继续:
任务1:将src目录下的所有zepto及插件合并,并压缩。
--src/ajax.jsassets.jscallbacks.jsdata.jsdeferred.jsdetect.jsevent.jsform.jsfx.jsfx_methods.jsgesture.jsie.jsios3.jsselector.jsstack.jstouch.jszepto.js
目录结构:
dist/node_modules/src/Gruntfile.jspackage.json
package.json是依赖库文件
Gruntfile.js是执行步骤程序
一、js合并压缩
第一次需要先安装grunt。执行npm install -g grunt-cli进行安装。如果已经安装,可以忽略。
1.package.json文件
{"name": "demo","file": "zepto","version": "0.1.0","description": "demo","license": "MIT","devDependencies": {"grunt": "~0.4.1","grunt-contrib-jshint": "~0.6.3","grunt-contrib-concat": "~0.5.0","grunt-contrib-uglify": "~0.2.1","grunt-contrib-requirejs": "~0.4.1","grunt-contrib-copy": "~0.4.1","grunt-contrib-clean": "~0.5.0","grunt-strip": "~0.2.1"},"dependencies": {"express": "3.x"}}
2.Gruntfile.js
module.exports = function (grunt) {grunt.initConfig({concat: {options: {},dist: {src: ['src/**/*.js'],//src文件夹下包括子文件夹下的所有文件dest: 'dist/built.js'//合并文件在dist下名为built.js的文件}},uglify: {build: {src: 'dist/built.js',//压缩源文件是之前合并的buildt.js文件dest: 'dist/built.min.js'//压缩文件为built.min.js}}});grunt.loadNpmTasks('grunt-contrib-uglify');grunt.loadNpmTasks('grunt-contrib-concat');grunt.registerTask('default', ['concat','uglify']);}
执行步骤:
(1)安装依赖,已安装可以忽略:npm install。将会下载依赖的文件到node_modules目录。
(2)执行合并压缩:grunt
>gruntRunning "concat:dist" (concat) taskFile dist/built.js created.Running "uglify:build" (uglify) taskFile "dist/built.min.js" created.Done, without errors.
将会在dist目录生成
built.jsbuilt.min.js
任务2:将src/css目录下的所有css文件合并,并压缩。
二、对CSS进行合并压缩
需要安装grunt-css。执行npm install grunt-css安装。安装成功,下载到node_modules/grunt-css。如果已经安装,可以忽略。
1、package.json同上;
2、Gruntfile.js如下:
module.exports = function (grunt) {grunt.initConfig({concat: {//css文件合并css: {src: ['src/css/*.css'],//当前grunt项目中路径下的src/css目录下的所有css文件dest: 'dist/all.css' //生成到grunt项目路径下的dist文件夹下为all.css}},cssmin: { //css文件压缩css: {src: 'dist/all.css',//将之前的all.cssdest: 'dist/all.min.css' //压缩}}});grunt.loadNpmTasks('grunt-css');grunt.loadNpmTasks('grunt-contrib-concat');grunt.registerTask('default', ['concat','cssmin']);}