`
2008winstar
  • 浏览: 60850 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • chenke: 写的很好,也可以看看那这个文章,我感觉学的还可以。http:/ ...
    HTML

Grunt

 
阅读更多

       Grunt

 

       1 安装Grunt命令行工具包 grunt-cli

npm install -g grunt-cli

 

       Grunt被分为好几个包,每个包用于特定的目的。grunt-cli包为我们提供了一个命令行界面。但我们还需要安装grunt才能使用该界面。安装grunt-cli时并没有为我们自动安装grunt。

       需要在我们的项目中安装Grunt作为依赖。在一个项目中安装Grunt,可以通过以下步骤实现:

 

       (1)创建一个项目文件夹

       (2)在命令行中浏览到该文件夹,通过以下命令为项目创建一个package.json文件

npm init

       (3) 通过以下命令安装Grunt

npm install grunt --save-dev

       Grunt的运行需要一个名为Gruntfile.js的配置文件支持,在该文件中声明并配置了你想在当前项目中执行的所有任务。

 

       Gruntfile.js文件框架示例:

module.exports = function(grunt) {

}

 

       它其实定义了一个Node.js的模块,在模块中接收一个grunt对象 。

       在grunt上注册一个默认任务:

module.exports = function(grunt){
	grunt.registerTask('default', function(){
		console.log('Hello from Grunt.');
	});
}

 

       通过grunt.registerTask()方法可以创建一个新的Grunt任务,创建时可以传入一个任务名称以及一个回调函数。当触发该任务时就会执行相应的回调函数。

 

       处理参数

module.exports = function(grunt){
	grunt.registerTask('greet', function(name){
		grunt.log.writeln('Hi there, ' + name);
	});
}

 

       执行非default命名任务

grunt greet

       

       在执行任务时提供实际参数

grunt greet:winstar

 

       传多个参数

grunt addNumbers:1:2

 

       处理异常

grunt.warn('warning info.');

 

       强制执行任务

grunt addNumbers:a:2 --force

 

       阻止强制执行

grunt.fatal()

  

       一次注册多个任务

grunt.registerTask('all', ['default', 'greet:Brain', 'addNumbers:2:3']);

 

       registerTask()方法还可以接收第三个参数,在任务名称之后回调函数之前,可以添加对该任务的描述。

 

       配置选项,Grunt提供了grunt.config.inig()方法用于配置Grunt任务。示例如下:

grunt.config.init({
});

 

       创建目录

       Grunt内置的grunt.file.mkdir()方法可用以创建文档目录。 创建文档目录示例如下:

module.exports = function(grunt) {
	grunt.config.init({
		copyFiles: {
			options: {
				workingDirectory: 'working'
			}
		}
	});
	
	grunt.registerTask('createFolder', 'Create the working folder', function(){
		grunt.config.requires('copyFiles.options.workingDirectory');
		grunt.file.mkdir(grunt.config.get('copyFiles.options.workingDirectory'));
	});
}
grunt createFolder

 

       删除目录

       使用grunt.file.delete()方法 

module.exports = function(grunt) {
	grunt.config.init({
		copyFiles: {
			options: {
				workingDirectory: 'working'
			}
		}
	});
	
	grunt.registerTask('clean', 'Deletes the working folder and its contents', function(){
		grunt.config.requires('copyFiles.options.workingDirectory');
		grunt.file.delete(grunt.config.get('copyFiles.options.workingDirectory'));
	});
}

 

       复制文件

       使用grunt.file.copy()方法

module.exports = function(grunt) {
	grunt.config.init({
		copyFiles: {
			options: {
				workingDirectory: 'working',
				manifest: [
					'index.html', 'stylesheets/style.css', 'javascripts/app.js'
				]
			}
		}
	});
	
	grunt.registerTask('copyFiles', function(){
		var files, workingDirectory;
		
		grunt.config.requires('copyFiles.options.manifest');
		grunt.config.requires('copyFiles.options.workingDirectory');
		
		files = grunt.config.get('copyFiles.options.manifest');
		workingDirectory = grunt.config.get('copyFiles.options.workingDirectory');
		
		files.forEach(function(file){
			var destination = workingDirectory + '/' + file;
			grunt.log.writeln('Copying ' + file + ' to ' + destination);
			grunt.file.copy(file, destination);
		});
	});
}

 

       Grunt提供的其他方法

       grunt.file.isDir()    判断是否为目录

       grunt.file.recurse()    文件/目录递归

       grunt.file.read()             读取指定文件内容

       grunt.file.write()            将指定内容写到文件中

       grunt.file.readJSON()    读取JSON数据

       grunt.template.process()   创建一个模板字符串片段,该片段可以用于写进一个文档中

 

       在注册任务时还可以通过this.options()方法获取Grunt的配置对象,如前面的files可以通过以下方式获得:

files = this.options().manifest;

 

       在注册任务时还可以通过this.name方式获取任务名称。

 

分享到:
评论

相关推荐

    grunt-cli模块

    **Grunt CLI模块详解** Grunt CLI(Command Line Interface)是Grunt的命令行界面工具,它是Grunt工作流程中的核心部分,允许开发者在终端中执行自动化任务。Grunt是JavaScript的世界里一个流行的构建工具,它能...

    grunt-cli压缩包-0.1.13版本

    `grunt-cli`是Grunt(一个JavaScript任务运行器)的命令行接口,它允许开发者在命令行中执行Grunt任务。这个压缩包包含了`grunt-cli`的0.1.13版本,这是一个早期但仍然被一些项目依赖的版本。在这个版本中,除了`...

    grunt 打包工具 混淆工具

    **Grunt:JavaScript的世界里的构建大师** 在JavaScript开发领域,自动化工具是不可或缺的一部分,而Grunt就是其中的一款强大且流行的构建工具。Grunt允许开发者通过配置文件定义一系列的任务,包括编译、测试、...

    Grunt入门练习Demo

    **Grunt入门练习Demo** Grunt,作为JavaScript的构建工具,是前端开发中不可或缺的一部分。它通过自动化任务来简化重复性工作,如编译、压缩、测试等,从而提高开发效率。本Demo是基于《用grunt搭建自动化的web前端...

    grunt项目构建样例

    **Grunt项目构建样例详解** 在Web开发中,项目构建是提高开发效率和优化生产环境资源的关键步骤。`Grunt`是一个JavaScript任务运行器,它允许开发者通过配置文件定义一系列自动化任务,如代码编译、文件压缩、单元...

    grunt-contact 模块

    `grunt-contact`模块是Grunt工作流中的一个插件,用于简化前端开发过程中的任务自动化。Grunt是一款基于JavaScript的任务运行器,它可以帮助开发者执行预处理、编译、压缩、测试等一系列构建任务。在这个场景中,`...

    Grunt安装与使用

    **Grunt安装与使用** Grunt是JavaScript世界中的一款任务自动化工具,它允许开发者通过配置文件定义一系列的任务,实现代码的编译、压缩、测试、部署等自动化工作流程。Grunt依赖于Node.js环境,因此在使用Grunt...

    Grunt的实例代码(快速理解Grunt的用法)(内含代码注释)

    Grunt是JavaScript的一个任务运行器,它通过自动化工作流程来提升开发效率,尤其在前端开发领域,如构建、测试、优化等。这个压缩包“GruntStones”可能包含了一系列的示例代码,旨在帮助初学者快速理解Grunt的用法...

    Grunt前端开发工具部署

    **Grunt前端开发工具部署** Grunt 是一个广泛使用的JavaScript任务运行器,它极大地提高了前端开发者的工作效率。Grunt 靠的是配置文件`Gruntfile.js`,在这个文件中,开发者可以定义一系列自动化任务,比如编译...

    grunt.js cookbook

    ### Grunt.js Cookbook知识点概述 #### 一、Grunt.js简介 Grunt.js是一个基于JavaScript的任务运行工具,它能够帮助开发者自动化重复性高的任务,如压缩文件、编译代码、测试等。通过定义一系列的任务(tasks),...

    Grunt+Less+jQuery配置源码

    **Grunt:自动化任务管理器** Grunt是JavaScript的一个任务运行器,它是基于Node.js的。Grunt的主要功能是通过预设的任务来自动化常见的Web开发工作,如编译、压缩、测试、部署等。它通过编写JSON格式的配置文件...

    grunt-cli是grunt的客户端,现提供的是基于redhat7.0_x64的客户端

    **Grunt 和 Grunt-CLI 简介** Grunt 是一个JavaScript任务运行器,它在前端开发领域广泛用于自动化工作流程,如编译、压缩、测试等。它通过配置文件(Gruntfile.js)来定义一系列的任务,使得开发者能够高效地管理...

    Grunt 离线安装包

    **Grunt 离线安装包详解** 在前端开发领域,构建工具的使用越来越普遍,它们可以帮助开发者自动化处理各种任务,比如编译、压缩、测试等。Grunt 就是这样一款基于 Node.js 的任务运行器,它允许我们定义一系列的...

    grunt前端构建工具

    **Grunt 前端构建工具** Grunt 是一个基于任务的JavaScript项目构建工具,它允许开发者通过编写配置文件来自动化一系列的前端开发任务。这个压缩包包含了在执行`npm install grunt --save-dev`命令后安装的所有...

    Grunt自动化加密js环境

    在这个“Grunt自动化加密js环境”中,我们将深入探讨如何利用Grunt进行JavaScript文件的处理,特别是加密过程。 首先,Grunt基于Node.js环境运行,这意味着你需要先安装Node.js,获取npm(Node包管理器)才能继续。...

    grunt-node离线包.zip

    《grunt-node离线包详解与应用实践》 在IT行业中,构建工具的使用至关重要,它们能够自动化执行项目中的各种任务,提高开发效率。本篇文章将详细介绍`grunt-node`离线包,以及如何在项目中有效地使用它。`grunt-...

    安装grunt-cli之后的nodejs

    而`grunt-cli`(Grunt Command Line Interface)是Grunt的命令行工具,它是Grunt工作流程中的重要组成部分,用于在项目中执行Grunt任务。Grunt是一个基于任务的构建工具,广泛应用于自动化JavaScript项目的构建、...

    使用grunt进行前端工程化构建

    ### 使用grunt进行前端工程化构建 #### 一、引言 在前端开发领域,随着项目的复杂度不断提高,传统的手动操作已经难以满足高效开发的需求。此时,自动化构建工具应运而生,其中Grunt作为一款非常受欢迎的任务运行...

    grunt自动化部署 EXE文件

    为了提高效率,开发者通常会采用自动化工具来处理这些任务,而`Grunt`就是其中的一种流行选择。本篇文章将深入探讨如何利用`Grunt`进行EXE文件的自动化部署,并提供基础的解决方案。 `Grunt`是一个基于JavaScript的...

    grunt-1.4.1.tar.gz

    《Grunt:JavaScript任务自动化工具详解》 在前端开发领域,效率是至关重要的。随着项目规模的扩大,手动处理诸如编译、压缩、合并、测试等重复性工作变得越来越繁重。为了解决这一问题,JavaScript社区诞生了众多...

Global site tag (gtag.js) - Google Analytics