一年半没更新是由于本身转岗了,android framework+system转前端,能够想象过程之苦逼,苦成了一首诗:很烦很烦/很是烦/很是很是十分烦/特别烦特烦/极其烦/贼烦/简直烦死了/啊——。烦之余秉承人丑多看书的古训,啃书无数,成笔记百余篇,不成体系。往往回想,老是忘却了大多数,因而要整理一下,如趁还没有排泄出去要反刍几口,回味一下。css
整理自是从近及远整理,因此随笔内容应该是由难到易,自顾自说,彻底不考虑旁观人士。html
开始。前端
最近在看grunt,说简单点就是个前端管理工具,如maven、ant之于java。放在一年半前,我会说“前端工程还须要管理?”,在经历了对QA无数次“JS没更新、你Ctrl+F5刷新一下嘛”,对运营“又要压缩?我一个一个文件压缩很累的”,对PL“这文件夹下都100多个文件了,没分类,还好多重构后废弃的”以后,我终于感受到,前端仍是须要管理的。java
grunt是什么?是一个运行在node上的插件,因此要运行grunt先要把node的环境搭建好。node
grunt能作什么?合并,压缩,混淆,编码重命名,修改html中的引用,甚至于语法检测、单元测试等等。android
这样说是没有概念的,首先全局安装grunt-clinpm
npm install -g grunt-cli
如今你就可使用grunt这个命令了,但这是米有意义的,由于grunt-cli的功能是调用当前目录下的grunt模块,自己不具有任何功能。也就是说grunt是局部安装的,这样不一样的项目可使用不一样版本的grunt。json
好了,如今要新建一个文件夹,进入而后执行app
npm init //按指示生成package.json,若是单纯测试grunt,这个文件是能够缺失的 npm install grunt --save-dev //安装并保存依赖到package.json
再次执行grunt会提醒Gruntfile.js文件的缺失,这是grunt全部行为的入口,因此要新建Gruntfile.js文件,这个文件的结构分为4部分。maven
module.exports = function(grunt) { // 全部的代码写在这里,注意传入参数grunt };
grunt.initConfig({
concat: {},
cssmin: {},
uglify: {}
});
grunt.loadNpmTasks('grunt-contrib-concat'); //前提是使用npm install grunt-contrib-concat --save-dev grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-uglify');
这个部分可被load-grunt-tasks替代,在wrapper第一行进行配置
require('load-grunt-tasks')(grunt); //速度较慢,一样须要install
grunt.registerTask('default', ['concat', 'cssmin', 'uglify']);
执行grunt时默认执行default任务,若是这个部分缺失,则须要使用下列命令分别执行第2部分中注册的任务
grunt concat
grunt cssmin
grunt uglify
以上是grunt的入门部分,官网相对更加详尽,下一篇简述下Gruntfile.js中task的配置规则。