development-tool
Advanced tools
Comparing version 0.3.1 to 0.3.2
// DynamicTask | ||
import * as gulp from 'gulp'; | ||
import { Development, DynamicTask, Pipe } from './src/tools'; | ||
let del = require('del'); | ||
import { Development, DynamicTask } from './src/tools'; | ||
const del = require('del'); | ||
const cache = require('gulp-cached'); | ||
@@ -6,0 +7,0 @@ const ts = require('gulp-typescript'); |
@@ -5,7 +5,7 @@ /// <reference types="gulp" /> | ||
export declare enum Operation { | ||
build = 0, | ||
test = 1, | ||
e2e = 2, | ||
release = 3, | ||
deploy = 4, | ||
build = 1, | ||
test = 2, | ||
e2e = 4, | ||
release = 8, | ||
deploy = 16, | ||
} | ||
@@ -28,7 +28,2 @@ export interface IMap<T> { | ||
config?: string; | ||
key?: number; | ||
value?: number; | ||
csv?: string; | ||
dist?: string; | ||
lang?: string; | ||
publish?: boolean | string; | ||
@@ -76,2 +71,4 @@ grp?: Src; | ||
build?: string; | ||
test?: string; | ||
e2e?: string; | ||
release?: string; | ||
@@ -78,0 +75,0 @@ deploy?: string; |
"use strict"; | ||
(function (Operation) { | ||
Operation[Operation["build"] = 0] = "build"; | ||
Operation[Operation["test"] = 1] = "test"; | ||
Operation[Operation["e2e"] = 2] = "e2e"; | ||
Operation[Operation["release"] = 3] = "release"; | ||
Operation[Operation["deploy"] = 4] = "deploy"; | ||
Operation[Operation["build"] = 1] = "build"; | ||
Operation[Operation["test"] = 2] = "test"; | ||
Operation[Operation["e2e"] = 4] = "e2e"; | ||
Operation[Operation["release"] = 8] = "release"; | ||
Operation[Operation["deploy"] = 16] = "deploy"; | ||
})(exports.Operation || (exports.Operation = {})); | ||
@@ -9,0 +9,0 @@ var Operation = exports.Operation; |
@@ -63,5 +63,9 @@ "use strict"; | ||
case TaskConfig_1.Operation.build: | ||
dist = asserts.build || asserts.dist; | ||
break; | ||
case TaskConfig_1.Operation.test: | ||
dist = asserts.test || asserts.build || asserts.dist; | ||
break; | ||
case TaskConfig_1.Operation.e2e: | ||
dist = asserts.build || asserts.dist; | ||
dist = asserts.e2e || asserts.build || asserts.dist; | ||
break; | ||
@@ -204,16 +208,13 @@ case TaskConfig_1.Operation.release: | ||
/** | ||
* gulp build [--env production|development] [--config name] [--aspnet] [--root rootPath] [--watch] [--test] [--serve] [--release] | ||
* gulp [build] [--env production|development] [--config name] [--root path] [--watch] [--test] [--serve] [--release] [--task taskname] | ||
* @params | ||
* --env development or production; | ||
* --config app setting | ||
* --root rootPath, set relative path of the app root | ||
* --root path, set relative path of the development tool root. | ||
* --watch watch src file change or not. if changed will auto update to node service. | ||
* --release release web app or not. if [--env production], default to release. | ||
* --test need auto load test file to node service. | ||
* --testdata load test data when release. | ||
* --deploy run deploy tasks to deploy project. | ||
* --serve start node web service or not. | ||
* | ||
* gulp test start node auto test. Before test you need start anthor commond to watch file changed, and must with "--test" to load test file. | ||
* gulp language [--localspath language path][--lang en][--csv filepath][--key 0][--value 1] | ||
* auto check and update language config from csv file to json file. | ||
* --task taskname spruce task taskname | ||
**/`); | ||
@@ -224,17 +225,13 @@ } | ||
/** | ||
* gulp build 启动编译工具 [--env production|development] [--config name] [--aspnet] [--root rootPath] [--watch] [--test] [--serve] [--release] | ||
* gulp [build] [--env production|development] [--config name] [--root path] [--watch] [--test] [--serve] [--release] [--task taskname] | ||
* @params | ||
* --env 发布环境 默认开发环境development; | ||
* --config 设置配置文件; | ||
* --root rootPath, 设置前端APP相对站点路径 | ||
* --root path, 设置编译环境相对路径 | ||
* --watch 是否需要动态监听文件变化 | ||
* --release 是否release编译, [--env production] 默认release | ||
* --test 启动自动化测试 | ||
* --testdata 是否release编译加载test data。 | ||
* --deploy 运行加载deploy tasks, 编译发布项目。 | ||
* --serve 是否在开发模式下 开启node web服务 | ||
* | ||
* gulp tools 启动工具集合 | ||
* @params | ||
* --language [--localspath language path][--lang en][--csv filepath][--key 0][--value 1] 设置多语言 | ||
* --publish 发布git npm | ||
* --task taskname 运行单独任务taskname | ||
**/`); | ||
@@ -335,4 +332,3 @@ } | ||
.then(stram => { | ||
psrc = psrc.pipe(stram); | ||
return psrc; | ||
return psrc.pipe(stram); | ||
}); | ||
@@ -360,2 +356,4 @@ }); | ||
}); | ||
}).catch(err => { | ||
reject(err); | ||
}); | ||
@@ -375,3 +373,5 @@ }); | ||
}); | ||
return src; | ||
return src.catch(err => { | ||
console.log(chalk.red(err)); | ||
}); | ||
} | ||
@@ -381,3 +381,3 @@ function dynamicTask(tasks, oper, env) { | ||
_.each(_.isArray(tasks) ? tasks : [tasks], dt => { | ||
if (!(_.isNull(dt.oper) || _.isUndefined(dt.oper)) && dt.oper !== oper) { | ||
if (dt.oper && (dt.oper & oper) <= 0) { | ||
return; | ||
@@ -384,0 +384,0 @@ } |
{ | ||
"name": "development-tool", | ||
"version": "0.3.1", | ||
"version": "0.3.2", | ||
"description": "development build tools.", | ||
@@ -5,0 +5,0 @@ "main": "./lib/tools.js", |
@@ -8,2 +8,11 @@ # packaged development-tool | ||
Development tool can load task from module, directory, object or dynamic tasks. | ||
dynamic load task and run task by command evn: | ||
```shell | ||
gulp [build] [--build] [--test] [--e2e] [--release] [--depoly] [--server] [--watch] | ||
``` | ||
## Install | ||
@@ -28,3 +37,2 @@ | ||
import { Development } from 'development-tool'; | ||
import { NodeBuildOption } from 'development-tool-node'; | ||
@@ -36,3 +44,4 @@ ``` | ||
```ts | ||
import * as gulp from 'gulp'; | ||
import { Development } from 'development-tool'; | ||
Development.create(gulp, __dirname, { | ||
@@ -42,5 +51,17 @@ tasks{src: 'src', dist: 'lib', loader: 'development-tool-*' } // any module implement ITaskDefine | ||
//or create mutil task for web client, node server. | ||
Development.create(gulp, __dirname, { | ||
tasks[ | ||
{src: 'src/client', dist: 'public', loader: 'development-tool-web', tasks:[...] }, // any module implement ITaskDefine | ||
{src: 'src/server', dist: 'lib', loader: 'development-tool-node', tasks:[...] } | ||
... | ||
] | ||
}); | ||
``` | ||
```ts | ||
import * as gulp from 'gulp'; | ||
import { Development } from 'development-tool'; | ||
import { NodeBuildOption } from 'development-tool-node'; | ||
Development.create(gulp, __dirname, { | ||
@@ -135,4 +156,5 @@ tasks:[ | ||
import * as gulp from 'gulp'; | ||
import { IMap, Development, TaskConfig, DynamicTask } from './src/tools'; | ||
let del = require('del'); | ||
import { Development, Operation, TaskConfig, DynamicTask } from 'development-tool'; | ||
const del = require('del'); | ||
const cache = require('gulp-cached'); | ||
@@ -150,6 +172,10 @@ const ts = require('gulp-typescript'); | ||
name: 'clean', | ||
task: (config) => del(config.option.dist) | ||
//the task for Operation type. default for all. | ||
//oper: Operation.release | Operation.depoly | Operation.build | Operation.test | Operation.e2e | ||
task: (config) => del(config.getDist()) | ||
}, | ||
{ | ||
name: 'tscompile', | ||
//the task for Operation type. default for all. | ||
//oper: Operation.release | Operation.depoly | Operation.build | Operation.test | Operation.e2e | ||
pipes: [ | ||
@@ -163,3 +189,3 @@ () => cache('typescript'), | ||
(tsmap, config) => tsmap.dts.pipe(gulp.dest(config.getDist())), | ||
(tsmap, config: TaskConfig) => tsmap.js.pipe(sourcemaps.write('./sourcemaps')).pipe(gulp.dest(config.getDist())) | ||
(tsmap, config) => tsmap.js.pipe(sourcemaps.write('./sourcemaps')).pipe(gulp.dest(config.getDist())) | ||
] | ||
@@ -169,2 +195,3 @@ }, | ||
name: 'watch', | ||
//watch only for --watch env. | ||
watch: ['tscompile'] | ||
@@ -175,2 +202,37 @@ } | ||
}); | ||
// or with task from module | ||
Development.create(gulp, __dirname, { | ||
tasks: { | ||
src: 'src/**/*.ts', | ||
dist: 'lib', | ||
loader: { | ||
module:'module name', | ||
dynamicTasks:[ | ||
{ | ||
name: 'clean', | ||
task: (config) => del(config.option.dist) | ||
}, | ||
{ | ||
name: 'tscompile', | ||
pipes: [ | ||
() => cache('typescript'), | ||
sourcemaps.init, | ||
tsProject | ||
], | ||
// set muti-output. no setting default output default one to "dist: 'lib'" . | ||
output: [ | ||
(tsmap, config) => tsmap.dts.pipe(gulp.dest(config.getDist())), | ||
(tsmap, config) => tsmap.js.pipe(sourcemaps.write('./sourcemaps')).pipe(gulp.dest(config.getDist())) | ||
] | ||
}, | ||
{ | ||
name: 'watch', | ||
watch: ['tscompile'] | ||
} | ||
] | ||
} | ||
} | ||
}); | ||
``` | ||
@@ -177,0 +239,0 @@ |
@@ -5,2 +5,9 @@ // import * as _ from 'lodash'; | ||
/** | ||
* module loader. | ||
* | ||
* @export | ||
* @class ModuleLoader | ||
* @extends {BaseLoader} | ||
*/ | ||
export class ModuleLoader extends BaseLoader { | ||
@@ -7,0 +14,0 @@ |
@@ -13,19 +13,19 @@ import { Gulp, WatchEvent, WatchCallback } from 'gulp'; | ||
*/ | ||
build, | ||
build = 1 << 0, | ||
/** | ||
* test project. | ||
*/ | ||
test, | ||
test = 1 << 1, | ||
/** | ||
* e2e test project. | ||
*/ | ||
e2e, | ||
e2e = 1 << 2, | ||
/** | ||
* release project. | ||
*/ | ||
release, | ||
release = 1 << 3, | ||
/** | ||
* release and deploy project. | ||
*/ | ||
deploy | ||
deploy = 1 << 4 | ||
} | ||
@@ -91,10 +91,16 @@ | ||
key?: number; | ||
value?: number; | ||
csv?: string; | ||
dist?: string; | ||
lang?: string; | ||
// key?: number; | ||
// value?: number; | ||
// csv?: string; | ||
// dist?: string; | ||
// lang?: string; | ||
publish?: boolean | string; | ||
/** | ||
* group bundle. | ||
* | ||
* @type {Src} | ||
* @memberOf EnvOption | ||
*/ | ||
grp?: Src; | ||
@@ -245,3 +251,3 @@ } | ||
/** | ||
* task type. | ||
* task type. default for all Operation. | ||
* | ||
@@ -352,3 +358,3 @@ * @type {Operation} | ||
/** | ||
* release folder. if empty use parent setting, or ues 'dist'. | ||
* test folder. if empty use parent setting, or ues 'dist'. | ||
* | ||
@@ -358,2 +364,16 @@ * @type {string} | ||
*/ | ||
test?: string; | ||
/** | ||
* build folder. if empty use parent setting, or ues 'dist'. | ||
* | ||
* @type {string} | ||
* @memberOf Asserts | ||
*/ | ||
e2e?: string; | ||
/** | ||
* e2e folder. if empty use parent setting, or ues 'dist'. | ||
* | ||
* @type {string} | ||
* @memberOf Asserts | ||
*/ | ||
release?: string; | ||
@@ -360,0 +380,0 @@ /** |
@@ -79,5 +79,9 @@ import * as _ from 'lodash'; | ||
case Operation.build: | ||
dist = asserts.build || asserts.dist; | ||
break; | ||
case Operation.test: | ||
dist = asserts.test || asserts.build || asserts.dist; | ||
break; | ||
case Operation.e2e: | ||
dist = asserts.build || asserts.dist; | ||
dist = asserts.e2e || asserts.build || asserts.dist; | ||
break; | ||
@@ -243,16 +247,13 @@ case Operation.release: | ||
/** | ||
* gulp build [--env production|development] [--config name] [--aspnet] [--root rootPath] [--watch] [--test] [--serve] [--release] | ||
* gulp [build] [--env production|development] [--config name] [--root path] [--watch] [--test] [--serve] [--release] [--task taskname] | ||
* @params | ||
* --env development or production; | ||
* --config app setting | ||
* --root rootPath, set relative path of the app root | ||
* --root path, set relative path of the development tool root. | ||
* --watch watch src file change or not. if changed will auto update to node service. | ||
* --release release web app or not. if [--env production], default to release. | ||
* --test need auto load test file to node service. | ||
* --testdata load test data when release. | ||
* --deploy run deploy tasks to deploy project. | ||
* --serve start node web service or not. | ||
* | ||
* gulp test start node auto test. Before test you need start anthor commond to watch file changed, and must with "--test" to load test file. | ||
* gulp language [--localspath language path][--lang en][--csv filepath][--key 0][--value 1] | ||
* auto check and update language config from csv file to json file. | ||
* --task taskname spruce task taskname | ||
**/`); | ||
@@ -264,17 +265,13 @@ | ||
/** | ||
* gulp build 启动编译工具 [--env production|development] [--config name] [--aspnet] [--root rootPath] [--watch] [--test] [--serve] [--release] | ||
* gulp [build] [--env production|development] [--config name] [--root path] [--watch] [--test] [--serve] [--release] [--task taskname] | ||
* @params | ||
* --env 发布环境 默认开发环境development; | ||
* --config 设置配置文件; | ||
* --root rootPath, 设置前端APP相对站点路径 | ||
* --root path, 设置编译环境相对路径 | ||
* --watch 是否需要动态监听文件变化 | ||
* --release 是否release编译, [--env production] 默认release | ||
* --test 启动自动化测试 | ||
* --testdata 是否release编译加载test data。 | ||
* --deploy 运行加载deploy tasks, 编译发布项目。 | ||
* --serve 是否在开发模式下 开启node web服务 | ||
* | ||
* gulp tools 启动工具集合 | ||
* @params | ||
* --language [--localspath language path][--lang en][--csv filepath][--key 0][--value 1] 设置多语言 | ||
* --publish 发布git npm | ||
* --task taskname 运行单独任务taskname | ||
**/`); | ||
@@ -416,5 +413,4 @@ | ||
.then(stram => { | ||
psrc = psrc.pipe(stram); | ||
return psrc; | ||
}) | ||
return psrc.pipe(stram) | ||
}); | ||
}); | ||
@@ -440,2 +436,4 @@ }) | ||
}); | ||
}).catch(err => { | ||
reject(err); | ||
}) | ||
@@ -457,3 +455,5 @@ | ||
return src; | ||
return src.catch(err => { | ||
console.log(chalk.red(err)); | ||
}); | ||
} | ||
@@ -472,3 +472,3 @@ | ||
_.each(_.isArray(tasks) ? tasks : [tasks], dt => { | ||
if (!(_.isNull(dt.oper) || _.isUndefined(dt.oper)) && dt.oper !== oper) { | ||
if (dt.oper && (dt.oper & oper) <= 0) { | ||
return; | ||
@@ -475,0 +475,0 @@ } |
@@ -19,3 +19,3 @@ { | ||
"no-trailing-whitespace": true, | ||
"no-bitwise": true, | ||
"no-bitwise": false, | ||
"no-shadowed-variable": false, | ||
@@ -22,0 +22,0 @@ "one-line": [ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
137984
2426
241