front-build
Advanced tools
Comparing version 0.3.4 to 0.3.5
@@ -151,3 +151,3 @@ var _ = require('underscore'); | ||
path.exists(tPath, function (exist) { | ||
fs.exists(tPath, function (exist) { | ||
if (exist) { | ||
@@ -234,3 +234,3 @@ console.log('directory exist: %s', p); | ||
var target = path.resolve(self.rootDir, pageName); | ||
path.exists(target, function (exist){ | ||
fs.exists(target, function (exist){ | ||
if (!exist) { | ||
@@ -322,3 +322,3 @@ return fs.mkdir(target, onExist); | ||
path.exists(dest, function (exist){ | ||
fs.exists(dest, function (exist){ | ||
@@ -346,3 +346,3 @@ if (exist) { | ||
async.forEach([commonPage.srcDir, commonPage.destDir], function (absdir, callback){ | ||
path.exists(absdir, function(exist) { | ||
fs.exists(absdir, function(exist) { | ||
if (exist) { | ||
@@ -349,0 +349,0 @@ fu.rmTreeSync(absdir); |
@@ -64,3 +64,3 @@ var fs = require('fs'); | ||
/** | ||
* fb build pagenname@pageversion -t 20120555 | ||
* fb build pagenname/pageversion -t 20120555 | ||
*/ | ||
@@ -142,3 +142,3 @@ | ||
async.forEachSeries(jobs, function(job, callback){ | ||
page.build(job.timestamp, callback); | ||
job.page.build(job.timestamp, callback); | ||
}, function (err) { | ||
@@ -145,0 +145,0 @@ if (err) { |
@@ -35,3 +35,3 @@ var path = require('path'); | ||
path.exists(path_name, function (exist) { | ||
fs.exists(path_name, function (exist) { | ||
if(!exist) { | ||
@@ -81,3 +81,3 @@ return callback(new Error('findInDir: path ' + path_name + ' not exist;')); | ||
// while (!path.existsSync(currentDir)) { | ||
// while (!fs.existsSync(currentDir)) { | ||
// ar_p.unshift(currentDir); | ||
@@ -116,7 +116,7 @@ // currentDir = path.dirname(currentDir); | ||
if (!path.existsSync(src_path)) { | ||
if (!fs.existsSync(src_path)) { | ||
throw new Error('copyDirSync: path not exist;'); | ||
} | ||
if (!path.existsSync(target_path)) { | ||
if (!fs.existsSync(target_path)) { | ||
fs.mkdirSync(target_path); | ||
@@ -159,3 +159,3 @@ } | ||
p = path.resolve(p); | ||
if (!path.existsSync(p)) { | ||
if (!fs.existsSync(p)) { | ||
return; | ||
@@ -203,3 +203,3 @@ } | ||
path.exists(dirname, function (exist) { | ||
fs.exists(dirname, function (exist) { | ||
if (!exist) { | ||
@@ -260,7 +260,7 @@ return callback(new Error('writeJSON: path %s not exist', dirname)); | ||
if (!path.existsSync(src_path)) { | ||
if (!fs.existsSync(src_path)) { | ||
throw new Error('iconvDir: path ' + src_path+ ' not exist;'); | ||
} | ||
if (!path.existsSync(target_path)) { | ||
if (!fs.existsSync(target_path)) { | ||
fs.mkdirSync(target_path); | ||
@@ -267,0 +267,0 @@ } |
@@ -46,3 +46,3 @@ var _ = require('underscore'); | ||
parsePageVersion: function (page_version) { | ||
var pvReg = /^(\w[\w\-~]*)[@/\\](\d+(\.\d+)+)$/; | ||
var pvReg = /^(\w[\w\-~]*)[@/\\](\d+(\.\d+)+)[/\\]?$/; | ||
var match = pvReg.exec(page_version); | ||
@@ -93,3 +93,3 @@ | ||
// mkdir pageRoot | ||
path.exists(versionDir, function (exist) { | ||
fs.exists(versionDir, function (exist) { | ||
if (exist) { | ||
@@ -111,3 +111,3 @@ console.log('version directory exist'); | ||
path.exists(jsonfile, function(exist) { | ||
fs.exists(jsonfile, function(exist) { | ||
@@ -142,3 +142,3 @@ if (!exist) { | ||
var template = _.template('#!/bin/sh\nfb build <%= name%>/<%= version%> -t 000000'); | ||
path.exists(filepath, function(exist){ | ||
fs.exists(filepath, function(exist){ | ||
if(exist) { | ||
@@ -163,3 +163,3 @@ console.log('%s exist, passed;', Page.BUILD_SH); | ||
path.exists(filepath, function(exist){ | ||
fs.exists(filepath, function(exist){ | ||
if(exist) { | ||
@@ -193,3 +193,3 @@ console.log('%s exist, passed;', Page.BUILD_BAT); | ||
path.exists(self.versionDir, function(exist){ | ||
fs.exists(self.versionDir, function(exist){ | ||
if (!exist) { | ||
@@ -225,3 +225,3 @@ return callback(new Error('Page#setVersion: ' + self.name + '@' + version +' is not exist')); | ||
var dir = path.resolve(versionDir, name); | ||
path.exists(dir, function (exist) { | ||
fs.exists(dir, function (exist) { | ||
if (exist) { | ||
@@ -341,3 +341,3 @@ console.log('%s exists; passed', name); | ||
async.forEachSeries(timestampDirs, function (p, callback){ | ||
path.exists(p, function (exist){ | ||
fs.exists(p, function (exist){ | ||
if (exist) { | ||
@@ -374,3 +374,3 @@ return callback(); | ||
if (path.existsSync(dir_name)) { | ||
if (fs.existsSync(dir_name)) { | ||
fu.rmTreeSync(dir_name); | ||
@@ -377,0 +377,0 @@ } |
@@ -51,3 +51,3 @@ var compressor = require('../cssmin').compressor; | ||
var destDir = path.resolve(page.destDir); | ||
path.exists(destDir, function (exist) { | ||
fs.exists(destDir, function (exist) { | ||
if (!exist) { | ||
@@ -54,0 +54,0 @@ return next(); |
@@ -5,3 +5,3 @@ { | ||
"description": "build front project", | ||
"version": "0.3.4", | ||
"version": "0.3.5", | ||
"repository": { | ||
@@ -19,3 +19,3 @@ "type": "git", | ||
"engines": { | ||
"node": "~0.6.7" | ||
"node": "~0.8.1" | ||
}, | ||
@@ -22,0 +22,0 @@ "dependencies": { |
@@ -1,2 +0,2 @@ | ||
# Front-Build | ||
# Front-Build(FB) | ||
@@ -7,9 +7,21 @@ - 基于目录规范 | ||
## 快速开始 | ||
## 目录规范 | ||
### 安装 | ||
1. 首先安装nodejs环境 (and npm) http://nodejs.org/#download; | ||
2. npm install front-build -g; | ||
3. done! | ||
### 更新 | ||
1. npm update front-build -g | ||
2. done! | ||
## 目录结构 | ||
```` | ||
- app // root of app | ||
├ common // 通用脚本与样式, 可直接引用,独立打包 | ||
├ utils // 通用组件, 使用时打包入page使用, 一般不单独引用 | ||
├ utils // 通用组件, 使用时打包入Page使用, 一般不单独引用 | ||
│ ├ countdown | ||
@@ -19,10 +31,10 @@ │ │ ├ index.js | ||
│ └ text-formater | ||
├ homepage // page 目录 | ||
│ ├ 1.0 // page 版本 目录 | ||
├ homepage // Page 目录 | ||
│ ├ 1.0 // Page 版本 目录 | ||
│ │ ├ test // 测试用例 目录 | ||
│ │ ├ core // page 的入口文件目录, 打包,引用的入口 | ||
│ │ ├ core // Page 的入口文件目录, 打包,引用的入口 | ||
│ │ │ ├ base.js | ||
│ │ │ ├ style1.css | ||
│ │ │ └ style2.less | ||
│ │ ├ mods // page的模块目录 | ||
│ │ ├ mods // Page的模块目录 | ||
│ │ │ ├ mod1.js | ||
@@ -35,3 +47,3 @@ │ │ │ ├ mod2.js | ||
│ │ ├ fb-build.bat // 打包快捷方式 | ||
│ │ └ fb.page.json // page 相关配置 | ||
│ │ └ fb.page.json // Page 相关配置 | ||
│ └ 20121221 // 打包后的时间戳目录 | ||
@@ -49,15 +61,18 @@ │ ├ build.json // 打包信息 | ||
## 目录结构说明: | ||
- 一个应用包含一个Common, 一个Utils目录,和多个Page。 | ||
- Common 目录是应用通用脚本和样式。 通常被多个Page使用, 使用方式为页面直。 | ||
- Page 是以页面的维度划分的, Page分版本,支持多版本共存;每次打包生成新的时间戳目录;版本目录和时间戳在同一目录下,通过文件名区分。 | ||
- Utils 是应用的通用的工具或组件类脚本和样式, 通常在开发阶段由Page通过Loader加载使用,上线后由FB工具打包入Page的文件中。 | ||
## FB如何构建你的代码 | ||
### 应用的 page 构建 | ||
### 应用的 Page 构建 | ||
#### fb使用以下步骤构建 page | ||
#### fb使用以下步骤构建 Page | ||
特点 | ||
- 发布基于时间戳目录 | ||
- core 目录是编译入口 | ||
- 开发环境与生产环境灵活切换 | ||
1. 创建目录 临时src (page.srcDir); 临时build (page.destDir); timestame目录 | ||
1. 创建目录 临时src (Page.srcDir); 临时build (Page.destDir); timestame目录 | ||
2. 将版本目录里面的文件,转成utf8编码, 并全部拷贝到 src 目录 | ||
@@ -76,2 +91,6 @@ 3. 使用内置插件系统 | ||
特点 | ||
- 发布基于时间戳目录 | ||
- core 目录是编译入口 | ||
- 开发环境与生产环境灵活切换 | ||
@@ -81,5 +100,2 @@ | ||
特点 | ||
- common 根目录下的文件为打包入口 | ||
- 可在 fb.json 里面配置文件编码 | ||
@@ -96,2 +112,6 @@ 1. 创建目录: 临时src (common.srcDir); 临时build (common.destDir); | ||
4. 将临时build 目录下的 **-min.** 等压缩文件从 utf-8 转码到 outputCharset,并复制回 common目录 | ||
特点 | ||
- common 根目录下的文件为打包入口 | ||
- 可在 fb.json 里面配置文件编码 | ||
@@ -105,19 +125,7 @@ #### 注意点 | ||
utils 一般不直接使用, 可打包进page。 | ||
utils 一般不直接使用, 可打包进Page。 | ||
## 快速开始 | ||
### 安装 | ||
1. 首先安装nodejs环境 (and npm) http://nodejs.org/#download; | ||
2. npm install front-build -g; | ||
3. done! | ||
### 更新 | ||
1. npm update front-build -g | ||
2. done! | ||
````sh | ||
@@ -154,3 +162,3 @@ cd dir/to/app | ||
在page文件夹里面执行, 为当前Page 创建一个Version | ||
在Page文件夹里面执行, 为当前Page 创建一个Version | ||
@@ -167,2 +175,3 @@ | ||
````sh | ||
## 同时指定多个page | ||
fb build about@1.0 index@1.0 -t 20120601 | ||
@@ -174,6 +183,10 @@ ```` | ||
````sh | ||
fb group set front-page about@1.0 index@1.0 | ||
fb group build front-page -t 20120601 | ||
# 其它group 命令 | ||
fb group set group1 about@1.0 index@1.0 | ||
fb group build group1 -t 20120601 | ||
```` | ||
其它group 命令 | ||
````sh | ||
fb group | ||
@@ -184,5 +197,5 @@ fb group list ## 列出所有组 | ||
```` | ||
_注意_ 一个组里面只能包含一个Page的一个version; | ||
common 目录构建 | ||
@@ -195,4 +208,5 @@ | ||
## 兼容性 | ||
* window xp + | ||
* linux | ||
* OSX 10.7 + | ||
* window xp + | ||
* linux | ||
* OSX 10.6 + |
@@ -16,3 +16,3 @@ { | ||
}, | ||
"fbversion": "0.3.3" | ||
"fbversion": "0.3.4" | ||
} |
@@ -33,2 +33,16 @@ var Page = require('../lib/page'); | ||
{ | ||
from: 'page\\1.0\\', | ||
parsed: { | ||
pageName: 'page', | ||
version: '1.0' | ||
} | ||
}, | ||
{ | ||
from: 'page/1.0/', | ||
parsed: { | ||
pageName: 'page', | ||
version: '1.0' | ||
} | ||
}, | ||
{ | ||
from: '_~-page/1.0', | ||
@@ -35,0 +49,0 @@ parsed: { |
120690
3220
199