Grunt是一个简单好用的js文件压缩和合并工具,当一个页面须要加载过个js文件时,合并多个js文件能够减小http请求次数,提升页面加载速度。另外,Grunt的uglify功能能够起到混淆和隐藏js代码逻辑做用。node
Grunt运行nodejs环境中,经过npm进行安装。Grunt 0.4.x 须要Node.js 版本 >= 0.8.0。
nodejs的安装这里再也不赘述,能够根据使用的操做系统选择合适的方式进行安装。例如在Centos系统下能够用以下命令安装:正则表达式
yum install -y nodejs
更新npm到最新版本:npm
npm update -g npm
而后安装Grunt命令行环境json
npm install -g grunt-cli
一个Grunt工程环境就是Grunt要在其中工做的目录,配置完毕后能够对该目录下的js进行压缩和合并。
假设咱们的工程目录结构以下:ide
./ ./js ./dist
./ 为咱们的而工程根目录
js 目录下存放须要压缩合并的js文件
dist 目录存放咱们稍后合并输出的文件。grunt
在工程根目录下放置两个文件: package.json
和 Gruntfile.js
。
这是两个必要的文件,也是最重要和容易出错的环节,必定要记着将你最新编辑的文件放置到工程根目录下。工具
package.json用于定义工程的名称、版本和因此来的Grunt插件信息,内容以下:ui
{ "name": "my-project-name", "version": "0.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" } }
name
和 version
能够根据实际状况定义,其余原样保留。
编辑完package.json
后,在工程根目录下运行命令:操作系统
npm install grunt --save-dev
这个命令的目的是安装最新的Grunt命令,并安装package.json
中定义的依赖信息。插件
而后编辑Gruntfile.js 文件,这个文件定义Grunt工做的全部任务细节,格式以下:
module.exports = function(grunt) { //工程配置:输入、输出、选项等 grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { build: { src: 'js/*.js', dest: 'dist/output.min.js' } } }); // 加载 "uglify" 插件. grunt.loadNpmTasks('grunt-contrib-uglify'); // 任务,能够是多项,这里只对代码进行压缩 grunt.registerTask('default', ['uglify']); };
uglify 代码压缩任务入口,能够并行执行多向任务,此文档仅仅演示代码压缩合并。
src 输入文件,支持使用通配符、正则表达式或文件列表,*.js表示压缩合并全部js文件。
dest 压缩后的文件输出位置。
以上工做准备完毕后,在工程根目录下执行Grunt命令:
grunt
若是没有错误,将输出压缩结果文件。
有时候会出现缺乏某些插件的错误,根据错误提示安装便可。例如出现:
Local Npm module "grunt-contrib-uglify" not found. Is it installed?
根据提示安装便可:
npm install grunt-contrib-uglify
...
By 云视睿博王工,转载请注明出处。