From e5be44eb4b4653716d39f967173e7aa745ea9d49 Mon Sep 17 00:00:00 2001 From: zengyanling <939184663@qq.com> Date: Thu, 4 May 2017 14:44:40 +0800 Subject: [PATCH] update: version --- README.md | 228 ++++++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 163 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 3ded0b3b..2bff6f60 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,47 @@ # olo - 基于`scrat`及类似框架开发的一个自动化前端工程流的框架。通过`olo`能够一键初始化并快速开发web端项目、基于node服务端渲染的项目、vue项目。并且是组件化的方式进行开发,特别有利于团队合作开发。生成的项目还提供服务、热加载功能、生产环境、优化产出环境。 +olo 是一个前端自动化工程流框架。 + +通过 olo 能够一键初始化并快速开发web端项目、基于node服务端渲染的项目、vue项目。整个框架项目是以组件化的方式进行开发,提供服务、热加载功能、生产环境、优化产出环境。有利于团队合作开发。olo 中采用的构建工具是fis3、webpack,可以根据项目需要进行选择。 + +olo里面包括**seo**、**seo-php**、**vue**模式。 + +#### seo、seo-php + +1. _共同点_:都是具有PC端SEO优化的工作流程。都采用了node服务,通过fis3进行资源定位及优化。 + +2. _区别_: + + a. **seo-php**用的是generator-biketo的开发流程,模版渲染部分由PHP负责。最后产出在后台的服务上运行项目。 + + b. **seo**采用了node服务,以handlebars为模版引擎,实现了页面的自动路由功能。最后产出在node服务上运行。是一种前后端分离的开发模式。 + +#### vue + +vue模式下提供fis3、webpack2两种构建工具,其中webpack2对es6的编译速度相比于fis3会快一些。 - olo里面包括**seo**、**seo-php**、**vue**模式。 - > _共同点_:都是具有PC端SEO优化的工作流程。都采用了node服务,通过fis3进行资源定位及优化。 - > _区别_: - **seo-php**用的是generator-biketo的开发流程,模版渲染部分由PHP负责。最后产出在后台的服务上运行项目。 - **seo**采用了node服务,以handlebars为模版引擎,实现了页面的自动路由功能。最后产出在node服务上运行。是一种前后端分离的开发模式。 ## 安装 + +通过npm进行安装 + npm i olo -g + ## 基本命令 -> 所有命令的参数都可以通过`olo ** -h`查看 + +> 所有命令的参数都可以通过`olo -h`、`olo ** -h`查看。 #### 初始化 ```javascript olo init -olo init -c // 初始化项目的时候同时清楚本地缓存模版 +olo init -c // 初始化项目的时候从远端拉取所选择的模版,清除本地缓存模版 ``` +> 初始化项目后,项目启动、监听、产出的脚本命令在 `package.json` 中的 script 中。 + #### 生成视图 + ```javascript olo v view-name ``` @@ -31,7 +52,9 @@ olo v view-name olo install component-name #### 增加第三方包 olo f lib-name -> olo f jq | jquery | ejs | throttle | zepto +> 现在olo中有的第三方包有 jquery、ejs、throttle、zepto,运行命令后会将相应的第三方包存放在项目libs文件夹下。 +> +> 可以运行这些命令: olo f jq | jquery | ejs | throttle | zepto #### 监听项目 olo w @@ -41,7 +64,10 @@ olo v view-name olo s #### 发布 olo r + + ## 新建项目 + ``` mkdir my-project cd my-project @@ -51,35 +77,39 @@ olo v view-name olo s (或者) npm start olo w (或者) npm run watch ``` -#### 一. seo + + +## 模式说明 + +### 一. seo ##### 1. 目录结构 ``` -|---- assets # 静态文件目录 - |---- images # 图片文件 - |---- scss # 通用样式文件 -|---- components/ # 页面组件文件 -|---- views/ # 前端页面渲染 -|---- libs/ # 前端辅助类或工具类文件 - |---- common.js # 在此文件引入的第三方插件不会模块化(例:jquery),项目中可以直接用($) - |---- statistics.js #统计数据,放在html的最后。 -|---- mock/ # 模拟数据文件 -|---- routes/ # Node路由 - |---- _conf.json # 路由配置文件 - |---- init.js # 路由派发规则解析文件 -|---- controllers/ # 前端页面渲染路由文件 -|---- service/ # 前端接口路由文件 -|---- middleware/ # 路由中间件 -|---- utils/ # 后端辅助类或工具类文件 -|---- app.js # 系统启动文件 -|---- config.json # 系统环境配置文件 -|---- fis-conf.js # fis3 配置文件 -|---- pm2.json # pm2 配置文件 -|---- package.json # 管理项⽬的依赖 -|---- .editorconfig # ediforconfig 代码书写配置文件 -|---- .eslintrc # eslint 代码规范性检查配置文件 -|---- .gitignore # git 仓库文件忽略配置 +|-- assets # 静态文件目录 + |-- images # 图片文件 + |-- scss # 通用样式文件 +|-- components/ # 页面组件文件 +|-- views/ # 前端页面渲染 +|-- libs/ # 前端辅助类或工具类文件 + |-- common.js # 在此文件引入的第三方插件不会模块化(例:jquery),项目中可以直接用($) + |-- statistics.js #统计数据,放在html的最后。 +|-- mock/ # 模拟数据文件 +|-- routes/ # Node路由 + |-- _conf.json # 路由配置文件 + |-- init.js # 路由派发规则解析文件 +|-- controllers/ # 前端页面渲染路由文件 +|-- service/ # 前端接口路由文件 +|-- middleware/ # 路由中间件 +|-- utils/ # 后端辅助类或工具类文件 +|-- app.js # 系统启动文件 +|-- config.json # 系统环境配置文件 +|-- fis-conf.js # fis3 配置文件 +|-- pm2.json # pm2 配置文件 +|-- package.json # 管理项⽬的依赖 +|-- .editorconfig # ediforconfig 代码书写配置文件 +|-- .eslintrc # eslint 代码规范性检查配置文件 +|-- .gitignore # git 仓库文件忽略配置 ``` ##### 2. 数据模拟 mock数据功能内嵌在node服务中,功能用法和fis文档上说明的一样。[http://fis.baidu.com/fis3/docs/node-mock.html][1] @@ -105,20 +135,21 @@ module.exports = { 二级路由/三级路由: 接口名称 二级路由:{ 三级路由:接口名称 -``` } } + (或) + 一级路由/二级路由: 接口名称 一级路由/二级路由/```: 接口名称 - 路由函数名|一级路由:接口名称 + ``` ->*1、一级路由默认对应‘路由函数名称’,即:所有路由对应`一级路由.js`的路由函数。* ->*2、如果需要自定义路由函数可以借助分隔符`|`,即:`路由函数名|一级路由`。* ->*3、controllers中路由方式默认是GET。* +>1、一级路由默认对应‘路由函数名称’,即:所有路由对应`一级路由.js`的路由函数。 +>2、如果需要自定义路由函数可以借助分隔符`|`,即:`路由函数名|一级路由`。 +>3、controllers中路由方式默认是GET。 -​```javascript +``` "controllers": { "root": "../controllers", "map":{ @@ -155,9 +186,9 @@ module.exports = { 一级路由:[请求方式,接口名称] ``` ->*1、一级路由默认对应‘路由函数名称’,即:所有路由对应`一级路由.js`的路由函数。* ->*2、如果需要自定义路由函数可以借助分隔符`|`,即:`路由函数名|一级路由`。* ->*3、service中路由方式默认是POST,如果需要get方式,可用:`["get","接口名"]`。* +> 1、一级路由默认对应‘路由函数名称’,即:所有路由对应`一级路由.js`的路由函数。 +> 2、如果需要自定义路由函数可以借助分隔符`|`,即:`路由函数名|一级路由`。 +> 3、service中路由方式默认是POST,如果需要get方式,可用:`["get","接口名"]`。 ```javascript "service": { @@ -175,46 +206,111 @@ module.exports = { ##### 目录结构 ``` -|---- assets # 静态文件目录 - |---- images # 图片文件 - |---- scss # 通用样式文件 -|---- components/ # 页面组件文件 -|---- views/ # 前端页面渲染 -|---- libs/ # 前端辅助类或工具类文件 - |---- common.js # 在此文件引入的第三方插件不会模块化(例:jquery),项目中可以直接用($) - |---- statistics.js #统计数据,放在html的最后。 -|---- mock/ # 模拟数据文件 -|---- controllers/ # 前端页面渲染路由文件 -|---- service/ # 前端接口路由文件 -|---- utils/ # 后端辅助类或工具类文件 -|---- app.js # 系统启动文件 -|---- config.json # 系统环境配置文件 -|---- fis-conf.js # fis3 配置文件 -|---- package.json # 管理项⽬的依赖 -|---- .editorconfig # ediforconfig 代码书写配置文件 -|---- .eslintrc # eslint 代码规范性检查配置文件 -|---- .gitignore # git 仓库文件忽略配置 +|-- assets # 静态文件目录 + |-- images # 图片文件 + |-- scss # 通用样式文件 +|-- components/ # 页面组件文件 +|-- views/ # 前端页面渲染 +|-- libs/ # 前端辅助类或工具类文件 + |-- common.js # 在此文件引入的第三方插件不会模块化(例:jquery),项目中可以直接用($) + |-- statistics.js #统计数据,放在html的最后。 +|-- mock/ # 模拟数据文件 +|-- controllers/ # 前端页面渲染路由文件 +|-- service/ # 前端接口路由文件 +|-- utils/ # 后端辅助类或工具类文件 +|-- app.js # 系统启动文件 +|-- config.json # 系统环境配置文件 +|-- fis-conf.js # fis3 配置文件 +|-- package.json # 管理项⽬的依赖 +|-- .editorconfig # ediforconfig 代码书写配置文件 +|-- .eslintrc # eslint 代码规范性检查配置文件 +|-- .gitignore # git 仓库文件忽略配置 ``` ##### 注意事项 1. `{{#if dev}}`*handlebars*语法区分纯前端开发和后台模板开发; + 2. `{{> cmp}}`引入组件; + 3. 可以自行加入`helper`并在 _conf.js_ 中的 *handlebars* 配置项中配置; + ​ + -#### 三. vue +### 三. vue 快速初始化 vue 项目框架, 加入了 **vuex** 进行数据管理。这个模块提供了两种构建工具 **fis3**、**webpack 2**, 可根据编码习惯进行选择。两种构建工具都加入了 **es6** 编译,只是**webpack 2** 编译速度更快。 +#### vue-webpack + +目录结构 + +``` +|-- assets # 静态文件目录 + |-- images # 图片文件 + |-- scss # 通用样式文件 +|-- build/ # webpack2 编译配置 +|-- config/ # 项目配置 +|-- components/ # 页面组件文件 + |-- component/ + |-- page/ + |-- main.js # 页面入口文件 +|-- libs/ # 前端辅助类或工具类文件 + |-- flexible.js +|-- mock/ # 模拟数据文件 +|-- service/ # 前端接口路由文件 +|-- index.hbs # 页面入口 +|-- package.json # 管理项⽬的依赖 +|-- .bowerrc +|-- .editorconfig # ediforconfig 代码书写配置文件 +|-- .eslintrc # eslint 代码规范性检查配置文件 +|-- .eslintignore +|-- .gitignore # git 仓库文件忽略配置 +``` + +#### vue-fis3 +这个模式采用的是fis3进行构建 + +目录结构 + +``` +|-- assets # 静态文件目录 + |-- images # 图片文件 + |-- scss # 通用样式文件 +|-- components/ # 页面组件文件 + |-- component/ + |-- page/ + |-- main.js # 页面入口文件 +|-- libs/ # 前端辅助类或工具类文件 + |-- flexible.js +|-- mock/ # 模拟数据文件 +|-- store/ # vuex文件 + |-- modules/ + |-- commonHandlers.js + |-- mutation-types.js + |-- index.js # vuex入口文件 +|-- index.html # 页面入口 +|-- config.json # 系统环境配置文件 +|-- package.json # 管理项⽬的依赖 +|-- fis-conf.js # fis3 配置文件 +|-- .bowerrc +|-- .editorconfig # ediforconfig 代码书写配置文件 +|-- .eslintrc # eslint 代码规范性检查配置文件 +|-- .eslintignore +|-- .gitignore # git 仓库文件忽略配置 +``` + + ## 更新 -**v3.1.0** +**v3.1.1** +1. `vue-webpack模式`relative path、 source map 、free config -1. 添加`vue模式` **webpack 2** 构建 +**v3.1.0** +1. 添加`vue-webpack模式` 构建 2. 修复其它模块的BUG **v3.0.0** - 1. 添加`vue模式`工程流 2. olo模版`本地直接拷贝`方式改成`远程获取并缓存` 3. 添加`olo init -c`清楚模版缓存初始化项目 diff --git a/package.json b/package.json index 29d044ce..8912c41c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "olo", - "version": "3.1.0", + "version": "3.1.1", "description": "基于fis3、webpack2的前端工程流", "main": "index.js", "bin": {