Grunt
代码校验、编译、压缩、混淆、合并、
Difference between Grunt, NPM and Bower ( package.json vs bower.json )
grunt.file.readJSON()
grunt.loadNpmTask()
<%= %>
task中除了option中的配置外,其他的任意命名的都是该task的target,而task或target的都可以有option配置项
grunt task:target, 不指定target时,会运行task下所有target
Task组合运行,组合后的task可以再次组合
grunt.registerTask(name, fn | array)
grunt.task.run(taskArray)
npm init 生成package.json
许可协议
生活启示录