`
kuyuyingzi
  • 浏览: 53560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

grunt学习(三)——实现JavaScript资源的合并

 
阅读更多

前一篇记录了Grunt的安装,这篇介绍下怎么使用Gruntjs来搭建一个前端项目,然后使用grunt合并,压缩JS文件。

大概有如下步骤

1新建项目Bejs

2新建文件package.json

3新建文件Gruntfile.js

4命令行执行grunt任务

一、新建项目Bejs

源码放在src下,该目录有两个js文件,selector.jsajax.js。编译后代码放在dest,这个grunt会自动生成。

二、新建package.json

package.json放在根目录下,它包含了该项目的一些元信息,如项目名称、描述、版本号,依赖包等。它应该和源码一样被提交到svngit。现在的项目结构如下

package.json内容需符合JSON语法规范,如下

2
3
4
5
6
7
8
9
10
{
"name":"Bejs",
"version":"0.1.0",
"devDependencies": {
"grunt":"~0.4.0",
"grunt-contrib-jshint":"~0.1.1",
"grunt-contrib-uglify":"~0.1.2",
"grunt-contrib-concat":"~0.1.1"
}
}

·grunt-contrib-jshintjs语法检查devDependencies中的grunt在前一篇已经安装了,grunt-contrib-jshint/grunt-contrib-uglify/grunt-contrib-concat则没有安装。三个分别对于三个任务(task

·grunt-contrib-uglify压缩,采用UglifyJS

·grunt-contrib-concat合并文件

此时,打开命令行工具进入到项目根目录,敲如下命令:npminstall


再查看根目录,发现多了个node_modules目录,包含了四个子目录,见图

三、新建文件Gruntfile.js

Gruntfile.js也是放在项目根目录下,几乎所有的任务都定义在该文件中,它就是一个普通的js文件,里面可以写任意js代码而不仅局限于JSON。和package.json一样它也要和源码一样被提交到svngit

Gruntfile.js由以下内容组成

5wrapper函数,结构如下,这是Node.js典型写法,使用exports公开API

1
2
3
module.exports =function(grunt) {
// Do grunt-related things in here
};

6项目和任务配置

7载入grunt插件和任务

8定制执行任务

该示例完成以下任务

9合并src下的文件(ajax.js/selector.js)为domop.js

10压缩domop.jsdomop.min.js

11这两个文件都放在dest目录下

最终的Gruntfile.js如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module.exports =function(grunt) {
// 配置
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
concat : {
domop : {
src: ['src/ajax.js','src/selector.js'],
dest:'dest/domop.js'
}
},
uglify : {
options : {
banner :'/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build : {
src :'dest/domop.js',
dest :'dest/domop.min.js'
}
}
});
// 载入concat和uglify插件,分别对于合并和压缩
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
// 注册任务
grunt.registerTask('default', ['concat','uglify']);
};

四、执行grunt任务

打开命令行,进入到项目根目录,敲grunt

从打印信息看出成功的合并和压缩并生成了dest目录及期望的文件,这时的项目目录下多了dest,如下

ok,这里介绍了2个常见任务concatuglifyjshint等没有介绍。Gruntfile.js里的代码也没有一一解读,感兴趣的同学可在gruntjs官方文档找到。

相关:

Bejs

https://npmjs.org/doc/json.html


原文链接:http://www.cnblogs.com/snandy/archive/2013/03/11/2949177.html

分享到:
评论

相关推荐

    grunt压缩、合并js/css

    grunt压缩、合并js/css

    grunt学习笔记

    这是一个grunt学习笔记,来源于个人博客,仅供学习参考

    Grunt一个实现批量处理的JavaScript任务自动构建工具

    Grunt是第一个实现批量处理的JavaScript任务自动构建工具之一,但是他的构建速度的瓶颈和复杂的JSON配置导致了Gulp的快速发展。现在最糟糕的问题已经被解决了,Grunt仍然是一个很好的工具可供选择。

    Getting Started with Grunt: The JavaScript Task Runner

    Getting Started with Grunt: The JavaScript Task Runner will enable you to create your very own Grunt environments from scratch and fully utilize Grunt's large feature set to effectively solve your ...

    Grunt-JavaScript世界的构建工具

    简述关于Grunt依赖node的安装使用和功能

    grunt学习资料

    写wangEditor那个大神写的关于grunt使用的教程,写的非常用心,我就跟着学习了一下,顺便把配置打了个包保存了,需要的同学自取。不是我非要资源积分啊,现在csdn上传资源至少要选择2个积分。

    node+seajs+grunt标准资源

    主要是做了一个基于node环境中,seajs的配置以及一些实例和利用grunt进行资源的打包压缩合并的构建

    学习使用grunt来打包JavaScript和CSS程序的教程

    Grunt.js天然适合前端应用程序的构建——不仅限于JavaScript项目,同样可以用于其他语言的应用程序构建。越来越多的JavaScript项目已经在使用Grunt,其中最大的使用者包括著名的jQuery项目。 Grunt的生态系统在迅速...

    JavaScript构建工具 Grunt.zip

    JavaScript构建工具 Grunt ,Grunt 是一个基于任务的JavaScript工程命令行构建工具

    grunt项目构建样例

    grunt项目构建样例,实现js文件css文件等的压缩和合并

    Grunt前端开发工具部署

    grunt工具实现前端代码检测,JS文件压缩合并等.

    grunt-complexity, 一个JavaScript复杂度分析.zip

    grunt-complexity, 一个JavaScript复杂度分析 复杂的复杂性 利用复杂性报告( ) 来评估代码的复杂性和可维护性的一个 grunt任务。版本对 Grunt 0.3使用 0.0.7版本使用版本 0.1. x 进行 Grunt 0.4. 用法npm insta

    grunt-demo:苦读

    contrib-uglify——压缩javascript代码contrib-copy——复制文件、文件夹contrib-concat——合并多个文件的代码到一个文件中karma——前端自动化测试工具--registry=http://npm.internal.baidu.com npm 安装代理基本...

    grunt-coverjs:检测 JavaScript 文件的 Grunt 任务

    使用 coverjs 检测 JavaScript 文件的 Grunt 任务。 入门 在项目的旁边安装这个 grunt 插件: npm install grunt-coverjs 然后将此行添加到您项目的grunt.js gruntfile 中: grunt . loadNpmTasks ( 'grunt-...

    前端js和css的压缩合并之grunt

    此课程讲解grunt 实现对JS和CSS文件内容进行压缩处理。 Grunt 是一种自动化任务处理工具,它就是一个工具框架,有很多插件扩展它的功能。一般用于: ① 压缩文件 ② 合并文件 ③ 简单语法检查

    grunt-cli模块

    grunt运行的命令行 放在C:\Users\Administrator\AppData\Roaming\npm\node_modules\grunt-cli下的

    利用grunt合并压缩文件

    利用grunt合并、压缩js、css文件,简单罗列步骤,初学者易学

    Grunt安装与使用

    包括Grunt软件的安装、使用方法以及nodejs安装和使用,下载本资源,不需要下载额外的资源,就可以完成Javascript功能

    grunt-export:导入 javascript 依赖项并导出到文件。 像 concat,但它接受内联文件

    咕噜出口使用NodeImport导入 javascript 依赖项并导出到文件。 就像一个 concat 插件,但它接受内联文件。 所以我们不需要在 grunt config 中定义所有文件,也不只是将下一个脚本附加到以前的脚本中。 即使 import ...

    grunt-fontello-merge:合并多个 fontello 配置文件

    grunt-fontello-merge 合并多个 fontello 配置文件入门这个插件需要 Grunt ~0.4.5 如果您以前没有使用过 ,请务必查看指南,因为它解释了如何创建以及安装和使用 Grunt 插件。 熟悉该过程后,您可以使用以下命令安装...

Global site tag (gtag.js) - Google Analytics