FEZ 是面向前端模块化工程的开发框架。主要目的是统一前端开发模式和项目开发结构,自动化前端工做流,提升开发效率和开发质量。使用持续集成等软件工程的架构模式,集成众多业界先进的解决方案,让研发人员更专一于业务逻辑的实现。核心包括功能模块化、结构规范化、及开发自动化。css
FEZ 支持使用ES6 Module来组织前端代码,支持使用ES5/ES6/ES7等标准特性开发项目,经过Babel编译完美运行在浏览器中。能够整合如Vue、React等MVVM框架实现单文件组件形式的高效开发体验。html
模块化是一种处理复杂系统分解为更好的可管理模块的方式。每一个模块完成一个特定的子功能,全部的模块再进行统一的拼装和加载,成为一个总体,完成整个系统所要求的功能。 有关模块化的更多知识请参考:【github.com/fouber/blog】【www.zhihu.com/question/37…】前端
FEZ 将复杂的系统划分为功能页面(组件),将复杂的页面(组件)划分为若干个模块,将模块分为:获取数据、渲染显示、交互操做,而且都有统一的文件结构。vue
统一的项目开发结构node
.
├── fez.config.js
├── gulpfile.babel.js
├── package.json
└── src
├── lib
├── static
│ ├── fonts
│ ├── images
│ └── styles
│ ├── page1.scss
│ └── page2.scss
└── views
├── page1
│ ├── index.html
│ ├── index.js
│ ├── service.js
│ └── module
│ ├── mod1
│ │ └── index.js
│ └── mod2
│ └── index.js
├── page2
│ ├── index.html
│ ├── index.js
│ └── module
│ ├── mod1
│ │ ├── index.js
│ │ └── service.js
│ └── mod2
│ └── index.js
│ └── service.js
└── public
├── module
└── utils
复制代码
FEZ 集成了大量自动化前端工做流。任何机械的重复性的工做都应该交给 FEZ 来完成。react
1. 安装 Node 和 NPMwebpack
apt-get
安装 node 后,安装的程序名叫 nodejs
,须要软链成 node
。FEZ不能保证全部 window系统 下默认的 Nodejs 环境都能正常运行。能够尝试安装nodejs的windows开发工具集git
2. 全局安装 Gulp4.0es6
任意目录执行github
npm install gulp@next -g
复制代码
详情请参考 Github 社区 Gulp
目前Gulp发行版本是3.9.1,若是安装过全局的非4.0版本 gulp 请先卸载
npm uninstall gulp -g
3. 全局安装 Bower (可选安装)
任意目录执行
npm install bower -g
复制代码
使用Bower主要是为了方便管理基于浏览器的第三方框架库,经过页面自动化注入技术解决页面框架库的引入和管理问题,若是您使用node_module资源、或用固定的CDN资源、或手动在页面引入第三方框架库,能够选择不安装。
git clone git@github.com:furic-zhao/fez.git
复制代码
将https://github.com/furic-zhao/fez/archive/master.zip
下载解压到任意目录。
1. 安装FEZ的NPM依赖包(在FEZ工程目录执行)
npm install
复制代码
2. 建立项目 (在 FEZ 工程目录执行)
gulp project --dir=demozhj
复制代码
在FEZ工程目录下会自动建立结构化的 demozhj
项目
demozhj
├── fez.config.js // FEZ功能配置文件
├── package.json // 项目npm配置文件
├── gulpfile.babel.js // gulp入口文件
└── src // 源码目录
├── lib // JS公共库文件目录
├── static // 静态资源目录
│ ├── fonts // 字体目录
│ ├── images // 图片目录
│ └── styles // 样式目录
│ └── index.scss // 首页样式文件
└── views // 业务逻辑存放目录
├── index // 首页目录
│ ├── index.html // 首页Html文件
│ ├── index.js // 首页业务逻辑脚本文件
│ └── module // 首页模块目录
└── public // 业务逻辑公共文件目录
├── module // 公共模块目录
└── utils // 公共工具类库目录
复制代码
建立项目会默认建立
index
页面。
3. 运行项目
进入 demozhj
项目目录 执行
gulp
复制代码
FEZ 会自动打开默认浏览器进入研发环境,项目任意文件的更改都会自动刷新浏览器,请尽情享用FEZ为你带来的愉悦开发体验!
gulp
复制代码
FEZ 会自动打开系统默认浏览器进入研发环境,您能够打开多个不一样终端和不一样类型的浏览器访问同一开发页面,开发过程当中任何文件的更改,或是在任何一个终端的浏览器中的操做行为,都会同步到每一个终端界面,实时查看在每一个终端的修改效果。
gulp dist
复制代码
FEZ 会自动化编译源码目录中的全部文件(js、sass、less、html、图片、字体等),自动化生成md5版本号,并将编译后的上线代码发布到
dist
目录。以后经过其它途径、或流程工具发布dist
目录到线上服务器。
gulp test
复制代码
FEZ 会自动化构建本地测试环境,并自动打开系统默认浏览器对
dist
上线目录中的代码真实性的模拟服务器上的操做效果,可让测试人员打开多个不一样终端和不一样类型的浏览器一次性测试全部平台、全部浏览器中的最终产品的交互和操做。
gulp sftp
复制代码
FEZ 会调用项目目录中
fez.config.js
的sftp
配置信息,经过SSH方式快速部署dist
中的上线代码,或是部署dist
目录中的静态资源。
gulp zip
复制代码
FEZ 会自动化将
dist
目录中全部上线代码打包成dist.zip
文件,用于经过其它流程工具部署上线。
gulp svg2icon
复制代码
FEZ 会调用项目目录中
fez.config.js
的svgIcons
配置信息,自动化转换svg图标为icon字体文件并生成对应的样式文件。
gulp sprite
复制代码
FEZ 会调用项目目录中
fez.config.js
的sprites
配置信息,自动化合并slice
目录中的小图标为雪碧图并生成sprite.png图片到images/sprite/
目录,同时生成对应的样式文件(可配置生成css/less/sass/scss)到styles/sprite/
目录
gulp page --dir=demopage
复制代码
demopage 页面结构
.
└── src
├── static
│ └── styles
│ └── demopage.scss // demopage 页面样式文件
└── views
└── demopage // demopage 页面目录
├── index.html // demopage HTML页面
├── index.js // demopage 业务逻辑脚本文件
└── module // demopage 模块目录
复制代码
gulp fontmin
复制代码
FEZ 会调用项目目录中
fez.config.js
的minfonts
设置的网页中要显示的文本信息,将src/static/ttf/
目录中存放的普通大文件ttf字体生成网页字体(eot,svg,ttf,woff,woff2),并将生成后的小文件网页字体格式存放在src/static/fonts/
目录下,同时生成对应的@font-face
样式文件(css,less,sass,scss),可在页面样式中直接引用。FEZ让你在网页中大量的使用特殊字体成为可能,请尽情发挥设计师的想象力。
gulp imagemin
复制代码
FEZ 会对
src/static/images
目录中的图片(png,jpg,jpeg,gif)进行压缩。能够配置JPG图片质量压缩比。
gulp tinypic
复制代码
FEZ 会调用tinypngAPI对
src/static/tinypic
目录中的图片(png,jpg,jpeg)深度无损压缩,将压缩后的图片输出到src/static/images
,压缩率达到50%以上,压缩先后的图片质量几乎看不出来差异,请尽情享用FEZ为你带来的图片极致性能优化。
若是你是经过Git下载FEZ工程,在FEZ工程目录里面执行git pull
,而后执行npm install
。
下载FEZ工程目录中的全部文件,覆盖本地的FEZ工程目录中的全部文件,而后执行npm install
。
每次升级请确保在FEZ工程目录执行
npm install
。
FEZB分支是FEZ的Browserify版本,FEZ自4.0起使用webpack做为FEZ底层模块打包工具,此分支再也不作大的功能升级。
FEZUI 是一套基于 Vue 的支持多终端的用户界面交互组件库,致力于积木式的快速构建项目,自动适配PC端、手机端、Ipad端以及微信端,或内嵌各类第三方Android、IOS的APP中使用,提高产品体验和开发效率、下降开发和维护成本。
FEZ Layout 是基于vue、vuex、vue-router的现代响应式多终端UI布局框架,旨在帮助团队快于构建多终端兼容的中后台产品的界面布局。
FEZMOCK 是一套前端数据模拟开发框架,让前端工程师再也不依赖服务端环境和接口数据而独立进行开发。增长单元测试的真实性,经过随机数据,模拟各类数据场景。
API文档、技术文档协做开发平台。帮助团队先后端分离并行工做,提升团队研发效率。