automating workflow
更新日期:
开发一个web项目可能会。。。
需要掌握的知识越来越复杂。。。
boilerplate abstractions frameworks testing docs workflow dependency management performance optimization build continuous integration
deployment version control
时间是保持效率的关键。。。
怎么做节省你的时间?
自动构建重复的任务让你的工作保持效率!
自动化阐述的不是懒惰,而是效率!
好的工具可以产生巨大的生产力,艺术家or泥瓦工?
对前端攻城狮来说,一般的工作流程是这样的:
初始化一个项目
搭建过程
下载 libraries
下载 templates
下载 frameworks
开发过程
Sass/Less/Stylus
CoffeeScript
Jade/Haml
LiveReload
JS/CSS Linting
部署环节
代码检查
单元测试
编译代码
压缩和合并
生成图片和图标
性能优化
HTTP服务
发布服务
你可能用到一些工具自动构建一些小项目
codekit
hammar
prepros
koala-app
mixture
compass
scout
持续的提升
First Do it.
Then do it right.
Then do it better.
怎样才能更好呢?
所有项目适用的自动化构建流程
Yo 让搭建框架代码更少
Grunt 帮助部署、预览、测试
Brow 帮助管理依赖
根据你的要求弹性地自定义初始化工作
减少写模板的时间
增加开发过程的效率和乐趣
帮助运行重复的任务
Linting
Compiling
Minification
Testing
Conversion
Documentation
Deployment
And More
你可能会选择其他的 Rake/Cake/Make/Ant
Grunt 只需要配置好两个文件 package.json Gruntfile.js
package.json指定插件和元信息。
Gruntfile.js配置任务和加载插件
task tip
grunt-responsive-images
生成多种尺寸的图片
task tip
grunt-contrib-imagemin
优化图片可以让你的页面更”轻”
speed tip
grunt-concurrent
同时跑一些比较慢的任务Sass、Coffee,可以显著的提供你的构建速度。
speed tip
grunt-newer
只有原文件在上一次任务之后改动过才重新运行任务。
你是否遇到类似的情况,使用了bootstropUI框架,实际上你的页面只用了bootstrop不到了10%的css样式。
可以使用devTools分析页面。
grunt-uncss
可以在build的时候去除那些没用到的css。
then,那些几百k的css文件就可以精简为很小的css,提供页面的渲染性能。
web项目的包工具
老旧的方式是怎么管理包的呢
- 上一次升级包是6个月前,要升级下了
- 打开网站
- 下载包
- 复制到自己的项目中
- 然后拼命找项目中用到包的地方,改引用
新的方式
包下载在当前目录/bower_components/包。
安装命令有这几种:
运行基于:
- Git
- HTTP(s)
- Zip
- npm
嘿嘿,从此几行命令,就可以解决依赖问题了,没错
grunt-bower-install