使用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 相关文章推荐
JObj预览一个JS的框架
Mar 13 Javascript
JS判断iframe是否加载完成的方法
Aug 03 Javascript
判断js的Array和Object的实现方法
Aug 29 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
微信小程序WebSocket实现聊天对话功能
Jul 06 Javascript
React SSR样式及SEO的实践
Oct 22 Javascript
react 兄弟组件如何调用对方的方法示例
Oct 23 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
把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
我的论坛源代码(五)
2006/10/09 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
Windows下安装python2和python3多版本教程
2017/03/30 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
Python dict的常用方法示例代码
2020/06/23 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
计算机学生求职信范文
2014/01/30 职场文书
客服专员岗位职责
2014/02/28 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
mysql如何查询连续记录
2022/05/11 MySQL