使用GruntJS链接与压缩多个JavaScript文件过程详解


Posted in Javascript onAugust 02, 2013

自己写了个简单的HTML5 Canvas的图表库,可以支持饼图,折线图,散点图,盒子图 柱状图,同时支持鼠标提示,绘制过程动画效果等。最终我想把这些多个JS文件变成 一个JS文件发布出去,于是我的问题来啦,怎么把这些JS文件搞成一个啊,群里有个 朋友告诉我,GruntJS ? JavaScript多文件编译,风格检查,链接与压缩神器。Google了一 把终于帮我完成这个任务,算是入门,分享一下过程。

一什么是GruntJS
不想翻译英文,自己看它的网站吧->http://gruntjs.com/
二:安装与运行
它的官方教程说的不是很清楚,有点让第一次看的人云里雾里的。我总结一下,GruntJS
是基于与依赖服务器node.js的。所以首先第一步是下载并安装node.js,下载地址:
http://nodejs.org/download/

第二步:运行安装grunt命令行工具? 目的是为了使用grunt命令
只有在windows的命令行窗口中运行:npm install -g grunt-cli即可。更具体的解释参见这里:http://gruntjs.com/getting-started

第三步:在项目的根目录创建project.json与Gruntfile.js两个文件
因为grunt的task运行要依赖于这两个文件。
其中创建project.json文件方法可以通过命令行实现:nmp init我创建project.json
内容如下:

{ 
"name": "fishchart", 
"version": "0.0.1", 
"description": "html5 canvas chart library", 
"author": "zhigang", 
"license": "BSD", 
"devDependencies": { 
"grunt": "~0.4.1", 
"grunt-contrib-uglify": "~0.2.2", 
"grunt-contrib-jshint": "~0.6.2", 
"grunt-contrib-concat": "~0.3.0" 
} 
}

使用命令创建时候,如果你不知道写什么直接回车跳过即可。

三: 安装与使用Grunt Plug-in完成javascript文件链接与压缩
1. 安装javascript文件链接插件支持
npm install grunt-contrib-concat --save-dev
2. 安装javascript文件压缩插件支持
npm install grunt-contrib-uglify --save-dev
3. 在Gruntfile.js文件中配置选项,加载与定义task

module.exports = function(grunt) { 
grunt.initConfig({ 
//our JSHint options 
jshint: { 
all: ['main.js'] //files to lint 
}, 
//our concat options 
concat: { 
options: { 
separator: ';' //separates scripts 
}, 
dist: { 
src: ['js/*.js', 'js/**/*.js'], //Grunt mini match for your scripts to concatenate 
dest: 'js/fishchart_v0.0.1.js' //where to output the script 
} 
}, 
//our uglify options 
uglify: { 
js: { 
files: { 
'js/fishchart_v0.0.1.js': ['js/fishchart_v0.0.1.js'] //save over the newly created script 
} 
} 
} 
}); 
//load our tasks 
grunt.loadNpmTasks('grunt-contrib-jshint'); 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.loadNpmTasks('grunt-contrib-uglify'); 
// default tasks to run 
// grunt.registerTask('default', ['jshint', 'concat', 'uglify']); 
grunt.registerTask('development', ['jshint']); 
grunt.registerTask('production', ['jshint', 'concat', 'uglify']); 
}

四:运行结果
使用GruntJS链接与压缩多个JavaScript文件过程详解 
最后还想赞一下,这个东西太好用啦!
Javascript 相关文章推荐
一个JavaScript继承的实现
Oct 24 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
如何理解Vue的.sync修饰符的使用
Aug 17 Javascript
详解VUE2.X过滤器的使用方法
Jan 11 Javascript
微信小程序scroll-view组件实现滚动动画
Jan 31 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
JS 创建对象的模式实例小结
Apr 28 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 #Javascript
jquery的相对父元素和相对文档定位示例代码
Aug 02 #Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
Aug 02 #Javascript
JS 获取select(多选下拉)中所选值的示例代码
Aug 02 #Javascript
jQuery在html有效在jsp无效的原因及解决方法
Aug 02 #Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 #Javascript
JS日期和时间选择控件升级版(自写)
Aug 02 #Javascript
You might like
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
Python如何将装饰器定义为类
2020/07/30 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
酒店端午节活动方案
2014/08/26 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
经营场所证明范本
2015/06/19 职场文书
小学教师见习总结
2015/06/23 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
详解Java实践之建造者模式
2021/06/18 Java/Android
Python安装使用Scrapy框架
2022/04/12 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
Linux中sftp常用命令整理
2022/06/28 Servers