使用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 相关文章推荐
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
javascript之函数直接量(function(){})()
Jun 29 Javascript
JQery jstree 大数据量问题解决方法
Mar 09 Javascript
html+css+js实现xp window界面及有关功能
Mar 26 Javascript
js表单元素checked、radio被选中的几种方法(详解)
Aug 22 Javascript
如何在AngularJs中调用第三方插件库
May 21 Javascript
Vue.js在数组中插入重复数据的实现代码
Nov 17 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
vue实现计步器功能
Nov 01 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 Javascript
vue 判断页面是首次进入还是再次刷新的实例
Nov 05 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 强制下载文件代码
2010/10/24 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Django中的文件的上传的几种方式
2018/07/23 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python标准库os库的函数介绍
2020/02/12 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
安全生产检讨书
2014/01/21 职场文书
小学生优秀评语大全
2014/04/22 职场文书
警察群众路线整改措施
2014/09/26 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
体育教师研修感悟
2015/11/18 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
python基础之文件操作
2021/10/24 Python
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
python turtle绘图
2022/05/04 Python