gruntjs开始使用gruntjs


备注

本节概述了gruntjs是什么,以及开发人员可能想要使用它的原因。

它还应该提到gruntjs中的任何大型主题,并链接到相关主题。由于gruntjs的文档是新的,您可能需要创建这些相关主题的初始版本。

版本

发布日期
0.3.0 2012-07-30
0.4.0 2013年2月17日
0.4.1 2013年3月12日
0.4.2 二〇一三年十一月二十零日
0.4.3 2014年3月6日
0.4.4 2014-03-13
0.4.5 2014年5月11日
1.0.0 2016年4月4日
1.0.1 2016年4月5日

救命

运行grunt -h以查看以下内容:

  • 命令行参数
  • 当前目录的Gruntfile中的所有可用独立任务
  • 当前目录的Gruntfile中每个任务组的所有子任务

安装Grunt

Prerequesites

Grunt需要安装Node.js和npm。如果您的计算机上没有安装Node.js和/或npm,请访问https://nodejs.org并下载适用于您的操作系统的安装程序或软件包。

首次安装

如果您是第一次安装Grunt,则首先必须全局安装Grunt命令行界面包grunt-cli

npm install -g grunt-cli

这将全局安装Grunt的命令行界面,以便您可以在项目中运行本地版本的Grunt。

您可以通过运行以下命令来验证是否已安装grunt-cli 软件包:

grunt --version
 

这应该打印至少当前版本的grunt-cli 包。

在项目中安装Grunt

grunt-cli 启动并运行之后,您可以安装实际的grunt 任务运行器和您的第一个Grunt包grunt-contrib-jshint

npm install grunt --save-dev
npm install grunt-contrib-jshint --save-dev

这将从NPM包管理器下载包,并将它们作为devDependencies 保存到package.json 文件中。

Gruntfile

接下来,您需要在项目根目录中使用Gruntfile.js 作为Grunt任务的配置文件:

module.exports = function(grunt) {

    grunt.initConfig({
        jshint: {
            files: ['Gruntfile.js'],
        }
    });

    grunt.loadNpmTasks('grunt-contrib-jshint');


    grunt.registerTask('default', ['jshint']);
};

这个文件做了三件事:

  1. 它告诉Grunt从NPM包加载grunt-contrib-jshint 任务
  2. 它建议jshint 任务针对文件Gruntfile.js 运行
  3. 它创建一个名为default 的Grunt任务来运行jshint 任务

跑咕噜声

设置项目后,可以通过调用以下命令运行Grunt的default 任务:

grunt

这会激活运行本地grunt grunt-cli ,它会查找名为default 的Grunt任务,该任务被配置为运行名为jshint 的任务。

运行任务

配置中的任务

grunt.initConfig 所有属性都是有效的任务,因此如果您的Gruntfile如下所示:

module.exports = function(grunt) {

    grunt.initConfig({
        jshint: {
            files: ['Gruntfile.js'],
        }
    });

    grunt.loadNpmTasks('grunt-contrib-jshint');


    grunt.registerTask('default', ['jshint']);
};
 

shell命令$ grunt jshint 将运行jshint 任务。

有目标的任务

任务可以有不同的目标。以这段代码为例:

    grunt.initConfig({
        jshint: {
            gruntfile: {
                files: ['Gruntfile.js']
            },
            project: {
                files: 'src/**/*.js'
            }
        }
    });
 

在这里,jshint可以定位项目的gruntfile或所有JavaScript文件。如果我们运行$ grunt jshint ,将使用两个目标,但是如果我们运行$ grunt jshint:gruntfile ,则$ grunt jshint:gruntfile 将仅应用于gruntfile。

注册任务

注册的默认任务如grunt.registerTask('default', ['jshint']); 将使用shell命令$ grunt

新注册的任务将作为命令行参数传递给grunt。例如:

grunt.registerTask('gruntfile', ['jshint:gruntfile']);
 

将与$ grunt gruntfile