Skip to content

Commit

Permalink
v2.0.13
Browse files Browse the repository at this point in the history
  • Loading branch information
woshi82 committed Sep 4, 2016
1 parent 2fa7e48 commit 43f685e
Show file tree
Hide file tree
Showing 13 changed files with 136 additions and 56 deletions.
117 changes: 78 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,18 @@
> _共同点_:都是具有PC端SEO优化的工作流程。都采用了node服务,通过fis3进行资源定位及优化。
> _区别_
**seo-php**用的是generator-biketo的开发流程,模版渲染部分由PHP负责。最后产出在后台的服务上运行项目。
**seo**采用了node服务,以handlebars为模版引擎,实现了页面的自动路由功能。最后产出在node服务上运行。
**seo**采用了node服务,以handlebars为模版引擎,实现了页面的自动路由功能。最后产出在node服务上运行。是一种前后端分离的开发模式。

## 更新
**v2.0.13**

1. 支持node 6.x。
2. 在生产环境下给产出目录添加项目名,方便在fis3自带服务下启动多个项目。
3. `seo-php模式`添加common.js。
4. `seo-php模式`html的charset改为utf-8。
5. 添加`olo f 框架名`,可快速添加常用包。
6. `common.js`ajax错误提示更改成console形式。

**v2.0.8**

1. `seo模式`解决.gitignore被NPM改变文件名BUG
Expand All @@ -32,7 +41,10 @@
#### 生成视图
olo v view-name
#### 生成组件
olo c component-name
olo c component-name
#### 增加第三方包
olo f lib-name
> olo f jq | jquery | ejs | throttle | zepto
#### 监听项目
olo w
> 启动项目中包括清空本地fis3服务文件的`server clean`,清空编译缓存、自动刷新、实时监听`release -clw`
Expand All @@ -52,38 +64,54 @@
olo w (或者) npm run watch
```
#### 一. 公用配置
![config配置](assets/config.jpg)

```
{
"dev": {
"ENV": "DEV",
"PORT": 8000,
"ROOT": "good",
"APIDOMAIN": "http://127.0.0.1:8000/good"
},
"prod": {
"ENV": "PROD",
"PORT": 8000,
"ROOT": "good",
"APIDOMAIN": "http://127.0.0.1:8000/good"
}
}
```
#### 二. seo

##### 目录结构
![seo目录结构](assets/seo.png)

```
|---- assets # 静态文件目录
|---- images # 图片文件
|---- scss # 通用样式文件
|---- components/ # 页面组件文件
|---- views/ # 前端页面渲染
|---- libs/ # 前端辅助类或工具类文件
|---- 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 仓库文件忽略配置
```
##### 数据模拟
mock数据功能内嵌在node服务中,功能用法和fis文档上说明的一样。`http://fis.baidu.com/fis3/docs/node-mock.html`
mock数据功能内嵌在node服务中,功能用法和fis文档上说明的一样。[http://fis.baidu.com/fis3/docs/node-mock.html][1]
##### 注意事项
1、 页面路由 **controllers>index.js**
```javascript
Expand Down Expand Up @@ -175,17 +203,28 @@ module.exports = {
> 功能、用法与`generator-biketo`相类似。
##### 目录结构
![seo-php目录结构](assets/seo-php.jpg)
**assets** 静态文件,包括图片和初始化css;
**c** 组件;
**libs** 公用类库;
**server** node服务;
**views** 页面视图;
**config.json** 发布产出、接口配置;
**fis-conf.js** fis 配置;
**package.json** 项目包配置.
```
|---- 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*配置项中配置;

3. 可以自行加入`helper`并在 _conf.js_ 中的 *handlebars* 配置项中配置;
1 change: 0 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ olo
.option('--child-flag', 'hack fis3-release-watch --child-flag')
.action(function () {
// server.clean();

release({
// c: true,
w: true,
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "olo",
"version": "2.0.12",
"version": "2.0.13",
"description": "基于fis3的前端工程流",
"main": "index.js",
"bin": {
Expand Down
1 change: 0 additions & 1 deletion src/generator-olo/app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ module.exports = generators.Base.extend({
value: 'seo-php'
}]
}]).then(function(answers) {
this.log(answers);

this.actName = answers.name;
this.oloType = answers.type;
Expand Down
1 change: 1 addition & 0 deletions src/generator-olo/seo-php/app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ module.exports = generators.Base.extend({
this.copy('.bowerrc', '.bowerrc');
this.copy('.eslintrc', '.eslintrc');
this.copy('.editorconfig', '.editorconfig');
this.copy('gitignore', '.gitignore');

this.directory('server', 'server');
this.directory('libs', 'libs');
Expand Down
8 changes: 4 additions & 4 deletions src/generator-olo/seo-php/app/templates/_config.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"dev": {
"dev": true,
"root": ""
"dev": true,
"root": "<%= actName %>"
},
"prod": {
"dev": false,
"dev": false,
"root": "<%= actName %>"
},
"port": 2000
}
}
5 changes: 2 additions & 3 deletions src/generator-olo/seo-php/app/templates/fis-conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,8 @@ fis.match(/^\/assets\/scss\/(.*)$/, {
fis.match(/^\/(([^\/]+)\/)*images\/(.*)$/, {
release: '/${base.static}/images/$3'
});
fis.match(/^\/libs\/((jquery).*)\.js$/, {
release: '/${base.static}/$1.js',
// url: '.${base.static}/jquery.js'
fis.match(/^\/libs\/((common).*)\.js$/, {
release: '/${base.static}/$1.js'
});

fis.match(/^\/views\/([^\/]+)\/(.*)$/, {
Expand Down
4 changes: 4 additions & 0 deletions src/generator-olo/seo-php/app/templates/gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules/
.DS_Store
.idea/
.vscode/
40 changes: 40 additions & 0 deletions src/generator-olo/seo-php/app/templates/libs/common.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
'use strict';
/**
* common.js
* @version 1.0
* @description 共用初始化
* @author Xxx
*/
__inline('./jquery.min.js');

/**
* IE console兼容
*/
if (!window.console && !console.firebug){
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {};
}
/**
* AJAX错误处理
*/
$(document).ajaxError(function(event,xhr,options,exc){
switch (xhr.status){
case(500):
alert('服务器系统内部错误。');
break;
// case(401):
// alert("未登录");
// break;
// case(403):
// alert("无权限执行此操作");
// break;
case(408):
alert('网络不给力,再试一次。');
break;
default:
console.log('[ajax]未知错误。');
}
});
1 change: 0 additions & 1 deletion src/generator-olo/seo-php/c/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ module.exports = generators.Base.extend({
this.bowerInstall(cmpnt, {
save: true
},function(e){
console.log(e);
console.log('OK');
});
},
Expand Down
4 changes: 2 additions & 2 deletions src/generator-olo/seo-php/view/templates/_index.handlebars
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="GBK">
<meta charset="utf-8">
<title>view - <%= viewName %></title>
<link type="image/x-icon" href="../../assets/images/favicon.ico" rel="shortcut icon">
<link rel="stylesheet" type="text/css" href="./<%= viewName %>.scss">
Expand All @@ -11,7 +11,7 @@
<body>
{{!-- {{> cmpName}} --}}
</body>
<script type="text/javascript" src="../../libs/jquery.min.js"></script>
<script type="text/javascript" src="../../libs/common.js"></script>
<script type="text/javascript" src="./<%= viewName %>.js"></script>

</html>
6 changes: 3 additions & 3 deletions src/generator-olo/seo/app/templates/_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"dev": {
"ENV": "DEV",
"PORT": 8000,
"ROOT": "",
"APIDOMAIN": "http://127.0.0.1:8000"
"ROOT": "<%= actName %>",
"APIDOMAIN": "http://127.0.0.1:8000/<%= actName %>"
},
"prod": {
"ENV": "PROD",
"PORT": 8000,
"ROOT": "<%= actName %>",
"APIDOMAIN": "http://127.0.0.1:8000"
"APIDOMAIN": "http://127.0.0.1:8000/<%= actName %>"

}
}
2 changes: 1 addition & 1 deletion src/generator-olo/seo/app/templates/libs/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ $(document).ajaxError(function(event,xhr,options,exc){
alert('网络不给力,再试一次。');
break;
default:
alert('未知错误。');
console.log('[ajax]未知错误。');
}
});

0 comments on commit 43f685e

Please sign in to comment.