基于Node.js的自动化构建工具Grunt.js - 面向对象网,web开发,脚本,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > Web开发 > 脚本语言 > 正文

基于Node.js的自动化构建工具Grunt.js

来源: www.bianceng.cn 阅读:

Java世界里的Maven提供了强大的包依赖管理和构建生命周期管理。在JavaScript的世界 里,随着Node.js的流行,JavaScript原生的构建工具已经成为可能。

Grunt.js是基 于Node.js的自动化任务运行器。Grunt.js结合NPM的包依赖管理,完全可以媲美Maven。 Grunt.js天然适合前端应用程序的构建——不仅限于JavaScript项目,同样可以用于其他语 言的应用程序构建。越来越多的JavaScript项目已经在使用Grunt,其中最大的使用者包括著 名的jQuery项目。

Grunt的生态系统在迅速的成长,目前已经有上百种插件发布在NPM 上可供选择。同时,任何人都可以方便的发布自己的插件到NPM上供其他人使用。

Grunt没有像Maven那样强调构建的生命周期,各种任务的执行顺序可以随意配置。 Grunt本身仅是一个执行器,大量的功能都存在于NPM管理的插件中。特别是以grunt- contrib-开头的核心插件,覆盖了大部分的核心功能,比如handlebars,jade,less, compass,jshint,jasmine,clean,concat,minify,copy,uglify,watch,minify, uglify等。

通过提供通用的接口以进行代码规范检验(Lint)、合并、压缩、测试及 版本控制等任务,Grunt使入门门槛大大降低了。

安装

Grunt目前的最新版本 为v0.4版。相比v0.3版,Grunt本身不再作为一个整体全局模块安装,而是分为了三个部分: grunt,grunt-cli,grunt-init。

grunt-cli用于命令行启动Grunt,必须作为全局模 块安装:

npm install -g grunt-cli

grunt-init是可选的,用于以命令行新 建Grunt项目模板,必须作为全局模块来安装:

npm install -g grunt- init

Grunt核心作为项目或插件的依赖包而单独存在,避免由于不同的插件依赖的 Grunt版本不同而造成的冲突。

新建项目工程

在命令行中执行  grunt init

无论新建项目是应用程序还是一个Grunt插件,Grunt生成的工程都是一个标准的 NPM模块。

新工程目录下有两个文件非常重要:

package.json: NPM的发布配 置文件,包含了包依赖信息和项目工程的元数据。熟悉Node.js的读者应该不陌生。

gruntfile.js: Grunt配置文件,用于配置或定义Grunt任务,以及加载Grunt插件等 。

Grunt任务配置

所有的任务配置都存在gruntfile.js中。作为JavaScript 源文件,其配置信息以JSON对象的方式来存放,并可以使用JS函数来动态生成,比Maven的 XML配置方式更加简洁和富有灵活性。一份典型的gruntfile如下:

module.exports = function(grunt) {
    
    
  // 项目配置信息.
    
  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'
    
      }
    
    }
    
  });
    
    
  // 加载"uglify"插件..
    
  grunt.loadNpmTasks('grunt-contrib-uglify');
    
    
  // 注册默认任务.
    
  grunt.registerTask('default', ['uglify']);
    
    
};

Tags:
相关文章列表: