packaged development-tool
This repo is for distribution on npm
. The source for this module is in the
main repo.
Please file issues and pull requests against that repo.
This package use to develop kit for project development via gulp tasks.
Development tool can load task from module, directory, object or dynamic tasks.
dynamic load task and run task by command evn:
gulp [build] [--build] [--test] [--e2e] [--release] [--depoly] [--server] [--watch]
Install
You can install this package either with npm
.
npm
npm install development-tool
You can import
modules:
import module
import * as gulp from 'gulp';
import { Development } from 'development-tool';
Create development tool
import * as gulp from 'gulp';
import { Development } from 'development-tool';
Development.create(gulp, __dirname, {
tasks{src: 'src', dist: 'lib', loader: 'development-tool-*' }
});
Development.create(gulp, __dirname, {
tasks[
{src: 'src/client', dist: 'public', loader: 'development-tool-web', asserts:{...}, tasks:[...] },
{src: 'src/server', dist: 'lib', loader: 'development-tool-node', asserts:{...}, tasks:[...] }
...
]
});
import * as gulp from 'gulp';
import { Development, Asserts, TaskOption } from 'development-tool';
Development.create(gulp, __dirname, {
tasks:[
{
src: 'src',
dist: 'lib',
asserts:{
json: '',
jpeg: ['src/apath/**/*.jpeg', 'src/bpath/**/*.jpeg'],
moduleBcss: 'src/moduleB/**/*.css',
ts:<Asserts>{...},
less:<TaskOption>{...},
html:{loader: <DynamicTask[]>[}
...
},
loader: 'development-tool-node'
}
]
});
Create development tool with addation sub tasks
Development.create(gulp, __dirname, {
tasks:{
src: 'src',
dist: 'lib',
loader: 'development-tool-web',
tasks:[
{
src: 'files be dealt with',
dist: 'dist path',
loader:'development-tool-*'
},
{
src: ['src/apath/**/*.css', 'src/bpath/**/*.css'],
dist: 'dist path',
loader: {
configModule: path.join(__dirname, './src/task.ts'),
dir: [path.join(__dirname, './src/mytasks')]
},
tasks: [
{
src: 'files be dealt with',
dist: 'dist path',
loader: {
dir: path.join(__dirname, './src/mytasks')
}
},
{
src: 'files be dealt with',
dist: 'dist path',
loader: {
module: path.join(__dirname, './src/mytasks/dosomething'),
configModule: path.join(__dirname, './src/mytasks/config')
}
}
]
}
...
]
}
});
Create development tool with dynamic tasks
import * as gulp from 'gulp';
import { Development, Operation, TaskConfig, DynamicTask } from 'development-tool';
const del = require('del');
const cache = require('gulp-cached');
const ts = require('gulp-typescript');
const sourcemaps = require('gulp-sourcemaps');
let tsProject = ts.createProject('tsconfig.json');
Development.create(gulp, __dirname, {
tasks: {
src: 'src/**/*.ts',
dist: 'lib',
loader: <DynamicTask[]>[
{
name: 'clean',
//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: [
() => 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 only for --watch env.
watch: ['tscompile']
}
]
}
});
// or with task from module and asserts.
Development.create(gulp, __dirname, {
tasks: {
src: 'src/**/*.ts',
dist: 'lib',
asserts:{
//default copy 'src/**/*.json' to dist. auto create json task and json-watch task.
json: '',
//default copy to dist. auto create jpeg task and jpeg-watch task.
jpeg: ['src/apath/**/*.jpeg', 'src/bpath/**/*.jpeg'],
//default copy to dist. auto create moduleBcss task and moduleBcss-watch task.
moduleBcss: 'src/moduleB/**/*.css',
// use Asserts task to deal with ts file, if src not setting, use src/**/*.ts
ts:<Asserts>{...},
// use default task to deal with ts file, if src must setting.
less:<TaskOption>{...},
// use dynamic task to deal with html file, if src not setting, use src/**/*.html
html:{loader: <DynamicTask[]>[}
...
},
loader: {
module:'module name',
dynamicTasks:[
{
name: 'clean',
task: (config) => del(config.getDist())
},
{
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']
}
]
}
}
});
https://github.com/zhouhoujun/development-tool.git
The mocks are then available at jspm_components/development-tool/development-tool.js
.
Documentation
Documentation is available on the
development-tool docs site.
License
MIT © Houjun