# Grunt 快速入门

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

内容简介: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 快速入门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Head First HTML5 Programming

Head First HTML5 Programming

Eric Freeman、Elisabeth Robson / O'Reilly Media / 2011-10-18 / USD 49.99

What can HTML5 do for you? If you're a web developer looking to use this new version of HTML, you might be wondering how much has really changed. Head First HTML5 Programming introduces the key featur......一起来看看 《Head First HTML5 Programming》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器