使用Grunt进行js、css压缩合并

来源:互联网 发布:金山打字软件 编辑:程序博客网 时间:2024/05/20 02:56

一、新建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

npm install grunt-contrib-uglify

安装:cssmin

npm install grunt-contrib-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任务

进入到项目根目录,敲:

grunt

就会按Gruntfile配置的文件进行压缩合并。

也可以单独执行,例执行js压缩命令:

grunt uglify

css压缩命令

 grunt cssmin

参考:
http://www.cnblogs.com/snandy/archive/2013/03/11/2949177.html
http://my.oschina.net/smeite/blog/119351

手机扫描下方二维码,关注官方微信。