Grunt新手上路

新手上路

Grunt 的安装与管理都是通过 npm,npm 是 Node.js 的包管理器。

Grunt 0.4.x 要求 Node.js 版本 >= 0.8.0

安装 CLI

在全局环境中安装 Grunt 的命令行接口。

npm install -g grunt-cli

安装 grunt-cli 并不等于安装了 Grunt 任务运行器!Grunt CLI 的任务是运行 Gruntfile 指定的 Grunt 版本。 这样就可以在一台电脑上同时安装多个版本的 Grunt。

运行 Grunt 项目

  1. 切换到项目根目录;
  2. 运行 npm install 安装项目依赖库;
  3. 运行 grunt

新建 Grunt 项目

标准配置包含两个文件:

package.json:用于保存项目元数据。

GruntfileGruntfile.js 或 Gruntfile.coffee,用于配置或定义任务、加载 Grunt 插件。

package.json

存放于项目根目录。运行 npm install 会安装指定版本的依赖库。

例子:

{
  "name": "gruntjs.cn",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-jshint": "~0.6.3",
    "grunt-contrib-nodeunit": "~0.2.0",
    "grunt-contrib-uglify": "~0.2.2"
  }
}

安装 Grunt 插件

运行 npm install <module> --save-dev,不仅会安装指定的 <module> 模块,还会自动添加到devDependencies 区域中,且包括 版本范围

例如,安装最新版本的 Grunt:

npm install grunt --save-dev

Gruntfile

存放于项目根目录。

包含四个部分:

  • 包装函数
  • 任务配置
  • 任务加载
  • 自定义任务

Gruntfile 示例

// 包装函数
module.exports = function(grunt) {

  // 任务配置
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });

  // 任务加载
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // 自定义任务
  grunt.registerTask('default', ['uglify']);

};

包装函数

Gruntfile 和 Grunt 插件都使用这种基本格式,所有 Grunt 代码都必须指定在这个函数里面:

module.exports = function(grunt) {
  // 处理 Grunt 相关事务
};

任务配置

Grunt 任务所依赖的配置数据定义在一个对象中,这个对象会被传递给 grunt.initConfig 方法。

grunt.file.readJSON('package.json') 会把保存在 package.json 中的 JSON 元数据导入到 Grunt 配置中。

插件任务的配置需要被指定在一个同名的属性中,比如 grunt-contrib-uglify 任务的配置如下:

// 任务配置
grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  uglify: {
    build: {
      src: 'src/<%= pkg.name %>.js',
      dest: 'build/<%= pkg.name %>.min.js'
    }
  }
});

任务加载

一些任务,比如 合并压缩 和 校验 等都可做为 Grunt 插件。只要插件被指定在 package.json 中,并且已经通过 npm install 安装好,就可以在 Gruntfile 中加载:

// 加载提供 "uglify" 任务的插件
grunt.loadNpmTasks('grunt-contrib-uglify');

自定义任务

可以定义 default 任务来让 Grunt 默认运行一个或者多个任务。在下面的例子中,运行 grunt 将执行uglify 任务。可以在任务数组中指定任意数量的任务。

// 默认任务
grunt.registerTask('default', ['uglify']);

也可以在 Gruntfile 中定义自定义任务:

module.exports = function(grunt) {

  // 自定义任务
  grunt.registerTask('default', 'Log some stuff.', function() {
    grunt.log.write('Logging some stuff...').ok();
  });

};

自定义任务不一定要在 Gruntfile 中,也可以在外部 .js 文件,通过 grunt.loadTasks 方法加载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值