# Grunt 快速入门

栏目: 编程工具 · 发布时间: 4年前

内容简介:Grunt 是JS的任务自动化工具。假设我们使用它来做js文件的混淆,我们需要如下组件:首先安装在继续学习前,你需要先将Grunt命令行(CLI)安装到全局环境中,把另外两个加入到本地开发依赖中:假定你有一个项目,应该有一个配置好

Grunt 是JS的任务自动化工具。假设我们使用它来做js文件的混淆,我们需要如下组件:

grunt-cli 命令行
grunt     grunt组件
grunt-contrib-uglify-es 代码混淆组件
复制代码

首先安装在继续学习前,你需要先将Grunt命令行(CLI)安装到全局环境中,把另外两个加入到本地开发依赖中:

npm install -g grunt-cli
npm install grunt  --save-dev
npm install grunt-contrib-uglify-es --save-dev
复制代码

项目练手

假定你有一个项目,应该有一个配置好 package.json ,我们可以使用如下命令生成此文件:

npm init -y
复制代码

假设一个 action.js 文件,内容如下:

console.log(`42`)
复制代码

Gruntfile文件案例

想要把任务自动化跑起来,还需要一个Grunt配置文件:

touch Gruntfile.js
复制代码

Grunt 配置中, grunt-contrib-uglify 插件中的uglify 任务:

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: 'action.js',
                dest: 'action.min.js'
            }
        }
    });
    // 加载包含 "uglify" 任务的插件。
    grunt.loadNpmTasks('grunt-contrib-uglify-es');
    // 默认被执行的任务列表。
    grunt.registerTask('default', ['uglify']);
};
复制代码

前面已经向你展示了整个 Gruntfile,接下来将详细解释其中的每一部分。

现在可以指定grunt命令了:

grunt
复制代码

你可以在当前目录内发现生成的 action.min.js 文件。它是 action.js 的混淆版本。你可以试试:

node action.min.js
复制代码

和: node action.js

你会发现它们的执行效果是一样的。

包装函数

你所书写的作为配置的代码,都必须放在此函数内:

module.exports = function(grunt) {
    // 你的代码
};
复制代码

###项目和任务配置

如果任务需要引用 package.json 的话,可以使用:

grunt.file.readJSON('package.json')
复制代码

将存储在package.json文件中配置引入进来。然后就可以通过形如 <% %> 的模板字符串来引用配置属性:

banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
复制代码

与大多数task一样,grunt-contrib-uglify-es 插件中的uglify 任务要求它的配置被指定在一个同名属性中。也就是 uglify

build: {
            src: 'src/<%= pkg.name %>.js',
            dest: 'build/<%= pkg.name %>.min.js'
        }
    }
复制代码

build 内的 src 指定了 uglify 任务的源文件, dest 指定 uglify 的目的文件。

加载 Grunt 插件和任务

只要在 package.json 文件中被列为依赖包,并通过npm install安装之后,都可以在Gruntfile中以简单命令的形式使用:

// 加载能够提供"uglify"任务的插件。
grunt.loadNpmTasks('grunt-contrib-uglify-es');
复制代码

自定义任务

通过定义 default 任务,可以让Grunt默认执行一个或多个任务:

// Default task(s).
grunt.registerTask('default', ['uglify']);
复制代码

更多插件

类似 grunt-contrib-uglify 这些常用的任务,都已经以grunt插件的形式被开发出来了:

concatenation 文件连接工具
minification  文件压缩工具
linting       代码规范工具
复制代码

用法都是类似的。


以上所述就是小编给大家介绍的《# Grunt 快速入门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript设计模式

JavaScript设计模式

Ross Harmes、Dustin Diaz / 谢廷晟 / 人民邮电出版社 / 2008 / 45.00元

本书共有两部分。第一部分给出了实现具体设计模式所需要的面向对象特性的基础知识,主要包括接口、封装和信息隐藏、继承、单体模式等内容。第二部分则专注于各种具体的设计模式及其在JavaScript语言中的应用,主要介绍了工厂模式、桥接模式、组合模式、门面模式等几种常见的模式。为了让每一章中的示例都尽可能地贴近实际应用,书中同时列举了一些JavaScript 程序员最常见的任务,然后运用设计模式使其解决方......一起来看看 《JavaScript设计模式》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具