一、新建package.json,配置完成后,使用npm install安装。
使用 npm init 创建 package.json
package.json放在根目录下,它包含了该项目的一些元信息,如项目名称、描述、版本号,插件等。它应该和源码一样被提交到svn或git。
例:
{
"name": "cyjs",
"version": "0.1.0",
"description": "js for k68.org",
"homepage": "http://www.k68.org/",
"author": "firebaby",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-jshint": "~0.3.0",
"grunt-contrib-concat": "~0.1.1",
"grunt-contrib-uglify": "~0.1.2",
"grunt-contrib-cssmin": "~0.5.0",
"grunt-htmlhint": "~0.9.2"
}
}
- grunt-contrib-jshint(js语法检查)
- grunt-contrib-concat(js合并)
- grunt-contrib-uglify(采用UglifyJS压缩js)
- grunt-contrib-cssmin(Css压缩合并)
- grunt-htmlhint(html语法验查)
以上都是常用的插件。更多插件,请访问:http://gruntjs.com/plugins
在项目目录下安装插件也可采用如下方式安装:
安装:uglify
安装:cssmin
插件安装完成后,查看根目录,会发现node_modules目录,包含了相应的插件目录。
二、新建Gruntfile.js
Gruntfile.js由以下内容组成
1、wrapper函数,结构如下,这是Node.js的典型写法,使用exports公开API
module.exports = function(grunt) {
// Do grunt-related things in here
}
2、项目和任务配置
3、载入grunt插件和任务
4、定制执行任务
例:
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"
]
}
}
}
});
//载入concat和uglify插件,分别对于合并和压缩
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
//注册任务
grunt.registerTask('default', ['concat', 'uglify', 'cssmin']);
}
grunt api文档: http://gruntjs.com/api/grunt
三、命令行执行grunt任务
进入到项目根目录,敲:
就会按Gruntfile配置的文件进行压缩合并。
也可以单独执行,例执行js压缩命令:
css压缩命令
参考:
http://www.cnblogs.com/snandy/archive/2013/03/11/2949177.html
http://my.oschina.net/smeite/blog/119351
手机扫描下方二维码,关注官方微信。