何为 grunt?
Grunt 是一个基于任务的 JavaScript 项目命令行构建工具。
为何创建 grunt?
创建一个主要的或单文件 repo 是相当容易的,你会承诺在不久后将会添加 linting 和单元测试。使用 grunt,你曾经所有的推迟的借口将因此消失。创建一个新的项目总是会要做一些必要而繁琐并重复的工作例如 linting,单元测试,连接以及细化文件等,grunt 使得这些琐碎的事更加简单。
在许多的实验与失败尝试后,我发现在一个巨大的 Makefile / Jakefile / Cakefile / Rakefile / ?akefile 中编写与维护一整套“ JavaScript 构建过程”任务是压倒性的,特别是考虑到我有多少个这样的工程的时候。这种方式是没法满足我现行的需求的。
最后我意识到,一个带有内建的常用任务的基于任务的构建工具对于我来说是最好的方式了。不幸的是,我没有找到一个能够真正满足我要求的构建工具,所以我自己构建了一个。
我如何构建 grunt ?
首先作为一个 JavaScript 开发者,我决定使用 Node.js 和 npm 是因为我关心的依赖组件(JSHint 和 UglifyJS)已经有 npm 模块了。也就是说,当 Node.js 被设计用来处理高并发异步 IO 驱动的网络服务时,它就注定不是设计用来当命令行构建工具的。但是没关系,因为 grunt 能够在 OS X,Linux 与 Windows 下良好工作。
只需要使用 npm install -g grunt 安装就行。
内建任务处理
到现在为止,grunt 拥有一下预定义的任务:
concat - Concatenate files.
init - Generate project scaffolding from a predefined template.
lint - Validate files with JSHint.
min - Minify files with UglifyJS.
qunit - Run QUnit unit tests in a headless PhantomJS instance.
server - Start a static web server.
test - Run unit tests with nodeunit.
watch - Run predefined tasks whenever watched files change.
自定义任务
除了使用内建任务之外,你也能够创建自己的任务,与内建任务默认行为不同?重写一遍就好了。检出 grunt API documentation 和 内建任务源码 ,这些能够给你所有用来创建自定义任务的信息。
同时,创建 grunt 插件允许你将关联的任务轻松打包成 npm 模块以便安装。Backbone Boilerplate 便是一个很好的 grunt 插件演示示例。
初始化新项目
这也许是我最喜欢的grunt特性,该 init task 初始化一个新项目,基于当前的环境以及一些问题的答案。一旦完成初始化,将会在生成一个带有完整目录结构的 grunt.js 配置文件,包括基本的readme,license,package.json,示例源文件以及单元测试(等)。这些文件以及内容依赖于被选择的模版。
现在,我可以在10秒钟内为整个项目创建整体框架,而不是一点点勾画出一个一次性的主体。“填空”,然后运行 grunt 用来 lint , concat , minify 我的代码。如果一切都通过了,我便可以提交以及增进我的代码。任何希望为该项目贡献代码的人都可以安装 grunt 来做同样的事。
当前还只有少量的内建初始化模版,包括一个 “jquery” 模版,它用来设计基本的 jQuery 插件以适应即将到来的 jQuery 插件站,还有一个一般的 “gruntfile” 模版用来快速的添加 grunt.js gruntfile 到一个已存在的项目中。你可以重写初始化模版文件,如果你想要自定义内建的初始化模版或者创建一个你自己的。你的模版不需要是与 grunt 关联。你可以创建一个初始化模版用来构建模型或者视图或者 package.js 文件,做任何你想做的。
分享到:
相关推荐
**grunt-transport-pas** 是一个前端开发工具,它基于 **Grunt**,这是一个流行的JavaScript任务运行器。Grunt提供了一种自动化的方式来执行常见的前端开发任务,如编译、压缩、测试等。在本例中,`grunt-transport-...
总结来说,grunt-cli是Grunt的命令行接口,使得开发者能够方便地在命令行中执行自动化任务,结合Gruntfile.js配置文件和各种Grunt插件,可以实现项目构建的自动化,提升开发效率。同时,lessc命令则提供了对LESS预...
Grunt是基于Node.js的一个任务运行器,它允许开发者通过编写配置文件(Gruntfile.js)来定义一系列的任务,这些任务可以包括文件的复制、清理、编译、测试、压缩等。通过Grunt,开发者能够构建一套符合项目需求的...
`grunt-jsdoc-to-markdown`是基于Grunt的任务插件,Grunt是JavaScript的构建工具,用于自动化各种开发任务,如编译、测试、压缩等。这个插件将Grunt的构建流程与JSDoc结合,实现了将JSDoc注释转换成Markdown文档的...
首先,`Grunt.js` 是一个基于 Node.js 的自动化工具,用于构建前端项目,包括编译预处理器语言(如 Sass 或 Less)、压缩代码、合并文件、执行测试等多种任务。开发者可以自定义一系列的任务,通过配置文件 `...
Grunt是一个基于Node.js的任务自动化构建工具,它可以帮助开发者执行一系列预定义的任务,如编译、测试、压缩等。"grunt-react-seajs"就是基于Grunt的插件,它的核心功能是将React组件转换为可由SeaJS加载的模块格式...
这个库是基于Grunt构建工具的插件,它集成了GetText工具,GetText是一个广泛用于多语言项目中的文本提取和翻译框架。 `grunt-angular-gettext`的主要功能包括: 1. **文本提取**:它能够自动从AngularJS应用中的...
`grunt-maven-plugin` 是一个将 Grunt.js 工具集成到 Maven 构建流程中的插件,而 `grunt-maven-plugin-sandbox` 是一个专为测试和实验 `grunt-maven-plugin` 功能而设计的沙箱项目。这个项目为开发者提供了一个安全...
Grunt作为一款强大的自动化构建工具,在前端开发中扮演着重要的角色。它通过一系列可扩展的任务帮助开发者自动化常见的重复性工作流程,比如编译、测试、优化等。对于前端工程师来说,使用Grunt可以显著提高开发效率...
Grunt是由Tyler Kellen于2012年创建的,它是一个基于Node.js的任务自动化工具,主要用于构建工作流程中的编译、压缩、测试等重复性任务。Grunt的核心理念是通过配置JSON格式的Gruntfile来定义任务,使得开发者能够...
在当今前端开发的自动化构建领域,Node.js催生了诸多工具来简化开发流程,而gulp就是其中一个流行的JavaScript项目构建工具。与grunt等构建工具相比,gulp更注重于代码质量,拥有易学易用和高效处理的特点。本文将...
Grunt是基于JavaScript的构建工具,它允许开发者定义一系列的任务来自动化常见的Web开发工作流程,如编译、压缩、测试、部署等。通过Grunt,我们可以大大提高工作效率,减少手动操作的时间和错误。 **项目配置与...
Grunt是基于Node.js的一个自动化工具,主要用来处理前端开发中的构建任务,如编译、压缩、合并等。其管理和安装是通过Node.js的包管理器npm(Node Package Manager)进行的。为了使用Grunt,首先需要确保你的系统中...
在命令行中,进入项目目录并运行`grunt`或者`grunt default`,Grunt将按照`Gruntfile.js`中的配置执行任务。完成后,你将在`build`目录下找到打包和压缩后的文件。 Grunt的优势: 1. 自动化:Grunt可以自动化处理...
Grunt是基于Node.js的构建工具,主要用于自动化前端项目中的任务,如编译Sass或Less到CSS,压缩JavaScript和CSS,图片优化,合并文件,测试等。Grunt通过配置文件gruntfile.js来定义任务,使得开发者可以自定义工作...
Grunt是JavaScript世界中的一款任务自动化工具,它允许开发者通过配置文件定义一系列的任务,实现代码的编译、压缩、测试、部署等自动化工作流程。Grunt依赖于Node.js环境,因此在使用Grunt之前,我们需要先安装Node...
Grunt 是一个基于任务的命令行工具,主要用于构建JavaScript项目,它在前端开发中扮演着重要的角色。通过配置一系列的任务,Grunt 可以帮助开发者实现自动化工作流,包括代码编译、压缩、合并、测试等,极大地提升了...
Grunt是JavaScript的一个构建工具,它允许开发者通过配置任务来实现自动化工作流程。在这个“Grunt自动化加密js环境”中,我们将深入探讨如何利用Grunt进行JavaScript文件的处理,特别是加密过程。 首先,Grunt基于...
"grunt-simple-app" 是一个基于JavaScript的项目,它利用了Grunt工具来构建一个简单的待办事项(Todo)应用程序。Grunt是JavaScript的世界里广泛使用的自动化工具,它可以帮助开发者执行各种重复性的任务,如编译、...