内容简介: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 快速入门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- TiDB入门(四):从入门到“跑路”
- MyBatis从入门到精通(一):MyBatis入门
- MyBatis从入门到精通(一):MyBatis入门
- Docker入门(一)用hello world入门docker
- 赵童鞋带你入门PHP(六) ThinkPHP框架入门
- 初学者入门 Golang 的学习型项目,go入门项目
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!