grunt学习笔记(适用初学者)

1、在学习grunt之前,首先要对nodejs有一些简单的理解。安装nodejs的步骤很简单,根据官网的提示安装即可,在此文中将不再累述。

http://www.nodejs.org/

2. Grunt介绍

Grunt是一个自动化的项目构建工具. 如果你需要重复的执行像压缩, 编译, 单元测试, 代码检查以及打包发布的任务. 那么你可以使用Grunt来处理这些任务, 你所需要做的只是配置好Grunt, 这样能很大程度的简化你的工作.

如果在团队中使用Grunt, 你只需要与其他人员约定好使用Grunt应该规避的问题, 就能够很方便的自动化的处理大部分的常见工作任务, 你所付出的努力几乎为0.

3. Grunt安装

Grunt和Grunt插件都是通过npm, Node.js包管理器安装和管理的.

D:\>cd nodeTest1\nodejs-grunt
D:\>cd nodeTest1\nodejs-grunt\npm install -g grunt-cli

这是全局安装。

D:\>cd nodeTest1\nodejs-grunt\grunt

将会出现如下错误:

grunt-cli: The grunt command line interface. (v0.1.9)

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:

http://gruntjs.com/getting-started

执行grunt命令,我们发现系统报错了,提示不能加载本地库。因为,grunt命令执行,是需要当前目录中包括package.json和Gruntfile.js两个文件。

package.json,是npm项目配置文件

Gruntfile.js,是专门用来配置grunt的配置文件

为了做验证,本文做了一个例子:

~ D:\>express -e nodejs-grunt
~ D:\>cd nodejs-grunt && npm install
~ D:\nodejs-grunt>npm install grunt --save-dev

package.json文件中输入如下量:

{
  "name": "nodejs-grunt",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.2.2",
    "ejs": "*"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
  }
}

并在Gruntfile.js文件中输入如下量(需要新建):

module.exports = function(grunt) {
  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });
  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');
  // Default task(s).
  grunt.registerTask('default', ['uglify']);
};

再次编辑package.json, 在devDependencies中增加grunt-contrib-uglify的依赖库

{
  "name": "nodejs-grunt",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.2.2",
    "ejs": "*"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-uglify": "~0.1.1"
  }
}

继而,再在nodejs-grunt目录下创建src和build,和nodejs-grunt.js的文件,其中nodejs-grunt.js

var sayHello=function(name) {
	return "你好 "+ name;
}

为确保依赖库被加载,需要再次执行npm
install
命令

接着执行:

D:\nodejs-grunt>grunt

控制台输入如下:

Running "uglify:build" (uglify) task
File "build/nodejs-grunt.min.js" created.
Uncompressed size: 59 bytes.
Compressed size: 40 bytes gzipped (43 bytes minified).

Done, without errors.

打开nodejs-grunt\build\nodejs-grunt.min.js

/*! nodejs-grunt 2014-09-08 */
var sayHello=function(l){return"hello "+l};

这是一个压缩实例。

Grunt常用插件

  • grunt-contrib-uglify:压缩js代码
  • grunt-contrib-concat:合并js文件
  • grunt-contrib-qunit:单元测试
  • grunt-contrib-jshint:js代码检查
  • grunt-contrib-watch:监控文件修改并重新执行注册的任务

上述已经讲述一个压缩实例。后面几个插件就不再一一介绍。

下面将demo放到资源中供大家免费下载

http://download.csdn.net/detail/zz410675629/7881187

参考文章:http://blog.fens.me/nodejs-grunt-intro/

时间: 2024-10-30 10:48:23

grunt学习笔记(适用初学者)的相关文章

grunt学习笔记1 理论知识

你需要检查js语法错误,然后再去压缩js代码.如果这两步你都去手动操作,会耗费很多成本.Grunt就能让你省去这些手动操作的成本. “—save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项.看到“开发依赖项”这一次,是不是觉得有些眼熟?上文在配置package.json时,其中的“devDependencies”中就会存储开发依赖项. 下面就是一些常有grunt开发依赖插件 Contrib-jshint——javascript语法错误检查:Con

JavaScript 学习笔记(初学者)

Java Script 基础 一. JS的简介     JavaScript是一种网页编程技术,经常用于创建动态交互网页     JavaScript是一种基于对象和事件驱动的解释性脚本语言,类似C语言和Java的语法     事先不编译:逐行执行:无需进行严格的变量声明:内置大量现成对象,编写少量程序可以完成目标     不同的浏览器甚至同一浏览器的不同版本对JavaScript的支持程度都不一样 二. JS的基本语法    0. 有两种JavaScript写法:       a. 直接在 h

php学习笔记(初学者入门)

<?php其他 isset() 变量是否存在 boolean empty() 检查变量是否存在,并判断值是否为非空或非0 void unset() 销毁变量 header('Content-Type: text/html; charset=utf-8'); method_exists($obj, $method) 判断对象的方法是否可用 file_exists($file) 判断文件是否存在 function_exists(); class_exists($class_name); gettyp

初学者的python学习笔记1

推荐一段时间闲的蛋疼,总觉得再堕落下去不太好,便捡起了之前一直想学而没有学的python,以此记录一下学习笔记,同时亦是督促和复习. 学习51cto上的<2016最新Python开发基础课程-2.0版本>的视频版本,之所以看视频是因为视频讲解感觉会比看书清晰一些,不过详细还要找各种资料补充. ------------------------------------------------------------------------------------------------------

LoadRunner学习笔记--未经排版

LoadRunner学习笔记 并发用户数量: 与服务器进行交互的在线用户数量 请求响应时间 从客户端发送请求到得到整个响应的时间 一般包括网络响应时间+server的响应时间 事务相应时间 完成这个事务所用的时间 是性能测试中重点关注的指标 吞吐率 单位时间在网络上传输的数据量(吞吐量:网络上传输的数据总量) 指从server返回客户端的 是衡量网络性能的主要指标 TPS 每秒钟系统能够处理事务的数量 点击率 每秒发送的HTTP请求的数量 点击率越大对server的压力也就越大 资源利用率 对不

Android NDK学习笔记(一) 为什么要用NDK?

NDK是什么 NDK是Native Development Kit的简称,即本地开发工具包.通过NDK,Android允许开发人员使用本地代码语言(例如C/C++)来完成应用的部分(甚至全部)功能.注意:由于翻译原因,有些地方也把Native翻译为"原生". NDK是SDK的一个补充,可以帮助你做这些事情: 生成可以在ARM CPU,Android 1.5(及以上)平台运行的JNI兼容的共享库. 将生成的共享库放置在应用程序项目路径的合适位置,使其能自动地添加进你最终的(和经过签名的)

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

webpack学习笔记一

webpack.gulp.grunt是前端打包功能工具:因为已经学习了gulp,而最近发现webpack很火,于是着手学习webpack.本篇是webpack学习笔记系列的第一篇,欢迎指教. 我是从慕课网以及官网文档相结合的方式学习的,从官方文档学到的第一个知识点是在使用webpack打包过程中,即使没有webpack.config,js这个文件也是可以的. 首先是全局安装webpack,cmd(如果是window系统,在任意位置)执行命令: npm install --g webpack或cn

PHP学习笔记

今天稍微整理一下学习笔记,每次都有整理在index.php中,今天我主要学习了PHP的命名规则,常量和变量以及变量的赋值,得给程序员提一个我发现,我发现每天写150行代码,哪怕是最简单的最入门级别的代码,也会有新发现.希望火星情报局可以通过这个提案也给我们带来点欢乐. PHP中常量和变量以及基础的赋值方法,都还是比较简单,有点js基础的人很容易上手,纯属记忆内容,作为一个初学者必须多加练习,锻炼自己的新语言逻辑处理能力和判断能力.见得多了反应才能迅速,每次学习整理成一份自我的学习教材,隔断时间回