向bootstrap学习前端工程
Posted 性能与架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向bootstrap学习前端工程相关的知识,希望对你有一定的参考价值。
bootstrap是目前最流行的前端开发框架,提供了丰富的前端组件,对于经验丰富的高手来说,其中的每项功能可能并不是太复杂,但由于他功能丰富,已经是一套系统,所以整体开发和组织的过程就不简单了如果你来负责开发bootstrap,你会如何进行整体架构和流程的把控?有时间可以思考下,可以锻炼自己全局思维
通过bootstrap的源码,大概看下bootstrap的工程化开发方式
需求
(1)开发
主要使用css和js开发,js本身就是编程语言,开发环境也很成熟
css麻烦一点,用纯css编写的话效率不高,所以使用css的预处理语言进行开发,bootstrap选择的是less
(2)测试
作为一个产品,质量肯定是非常关键的,就需要做全面的测试,例如代码检查、单元测试、不同浏览器下的测试
(3)编译
用less开发css,就需要把less编译为常规css代码
css和js的文件会有很多,需要把他们合并、压缩
(4)发布
发布后要有说明文档,需要生成一套文档页面,还需要把所有内容打包成zip文件供我们下载
实现
bootstrap使用grunt构建工具,除了代码开发外都使用grunt实现自动化操作
例如 js和less的代码变动后,就会自动进行编译和测试
看下具体使用的grunt插件和任务
less
编译css
autoprefixer
自动处理css属性的前缀,你只需要按照标准css属性进行开发,例如
a{
transition :transform 1s
}
autoprefixer自动提供给你前缀:
a{
-webkit-transition :-webkit-transform 1s;
transition :-ms-transform 1s;
transition :transform 1s
}
jshint
做JS语法检查
jscs
js代码风格检查
concat
合并
uglify
压缩
qunit
基于 phantom.js 做webkit内核浏览器下的测试
phantom.js 可以理解为没有界面的浏览器,基于webkit,提供了一套js api,支持DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG,便于无需浏览器的Web测试
saucelabs-qunit
基于saucelabs做非webkit内核浏览器下的测试
saucelabs是一个自动化跨浏览器测试平台
jade
基于node的页面模板引擎,用来生成页面
htmllint
html代码检查
jekyll
生成静态文档
watch
监控代码的变动,改过后就进行编译、语法检查、单元测试
compress
对整体进行打包,生成我们下载的zip文件
以上是关于向bootstrap学习前端工程的主要内容,如果未能解决你的问题,请参考以下文章