grunt 打包 分解(并非原创)

Posted on 2018-05-21 15:39  陈小鑫  阅读(455)  评论(0编辑  收藏  举报

1. require('time-grunt')(grunt);

Time how long tasks take. Can help when optimizing build times任务执行时间方便时间上的优化
2. require('jit-grunt')(grunt, {
useminPrepare: 'grunt-usemin',
ngtemplates: 'grunt-angular-templates',
cdnify: 'grunt-google-cdn'
});
自动加载所需任务
 
3. useminPrepare
useminPrepare: {
html: ['<%= yeoman.app %>/{,**/}*.html'],
options: {
dest: '<%= yeoman.dist %>',
flow: {
html: {
steps: {
js: ['concat', 'uglifyjs'], //用UglifyJS方式压缩JS文件
css: ['cssmin']
},
post: {}
}
}
}
}
根据 <%= yeoman.app %>/index.html 中的 usemin 块生成 JS 和 CSS 的压缩配置,并指定输出路径为 <%= yeoman.dist %> 。
 
4. ngtemplates
配置模板(template)到$tempalteCach, angular 直接在cache中读取,加快前端的速度。
5. cdnify
将本地路径改成cdn路劲
6. watch
监听文件的变化
7. wiredep
用来根据 bower.json 在指定文件的占位符中注入 JavaScript 或者 CSS 依赖。 
8. filerev
重命名
9. usemin
基于被压缩和重命名过的文件重写html,link路径
10. jshint/jscs
js语法检测/js代码风格检测
11. clean
清除模块 .tmp文件
12. postcss
css前缀自动补全
13. ngAnnotate
annotate()方法可以帮助$injector判断哪些服务会在函数被调用时注入进去
14. concurrent
用于运行并行任务。对于耗时的任务(如 Coffee and Sass)或者运行 多个阻塞任务 (如 nodemon and watch ) 时很有用。