使用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 相关文章推荐
js中cookie的添加、取值、删除示例代码
Oct 21 Javascript
Jquery getJSON方法详细分析
Dec 26 Javascript
javascript将数字转换整数金额大写的方法
Jan 27 Javascript
javascript实现的简单的表单验证
Jul 10 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
canvas学习之API整理笔记(二)
Dec 29 Javascript
JavaScript纯色二维码变成彩色二维码
Jul 23 Javascript
详解Layer弹出层样式
Aug 21 Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
taro开发微信小程序的实践
May 21 Javascript
layui写后台表格思路和赋值用法详解
Nov 14 Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 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下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
简单解决Python文件中文编码问题
2015/11/22 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
附答案的Java面试题
2012/11/19 面试题
在校大学生自我评价范文
2014/09/12 职场文书
工会积极分子个人总结
2015/03/03 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
python通过新建环境安装tfx的问题
2022/05/20 Python