需要了解的知识: 1、nodejs的安装与命令行使用 2、nodejs安装应用 3、grunt的初步了解
本文已假定读者已经熟悉以上知识。
好,我们继续:
任务1:将src目录下的所有zepto及插件合并,并压缩。
--src/
ajax.js
assets.js
callbacks.js
data.js
deferred.js
detect.js
event.js
form.js
fx.js
fx_methods.js
gesture.js
ie.js
ios3.js
selector.js
stack.js
touch.js
zepto.js
目录结构:
dist/
node_modules/
src/
Gruntfile.js
package.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
>grunt
Running "concat:dist" (concat) task
File dist/built.js created. Running "uglify:build" (uglify) task
File "dist/built.min.js" created. Done, without errors.
将会在dist目录生成
built.js
built.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.css
dest: 'dist/all.min.css' //压缩
}
}
});
grunt.loadNpmTasks('grunt-css');
grunt.loadNpmTasks('grunt-contrib-concat'); grunt.registerTask('default', ['concat','cssmin']);
}
参考:
1、 Grunt中文网
http://www.gruntjs.net/getting-started
(完结)