@taskfr/build
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0-beta2 • Public • Published

    packaged @taskfr/build

    @taskfr type task framework, base on AOP, Ioc container, via @ts-ioc. file stream pipes activities.

    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.

    @taskfr/build nodejs activities.

    Install

    1. install modules:
    npm install @taskfr/build
    1. install cli:
    npm install -g @taskfr/pack

    use command: tkf [task names] [--param param]

    taskname: decorator class with @Task('taskname') or @TaskModule({name:'taskname'}).

    You can import modules:

    Doc

    Define Task

    • Single task
    @Task('test')
    class SimpleTask extends AbstractTask implements ITask {
     
        constructor(name: string) {
            super(name);
        }
     
        run(): Promise<any> {
            // console.log('before simple activity:', this.name);
            return Promise.resolve('simple task')
                .then(val => {
                    console.log('return simple activity:', val);
                    return val;
                });
        }
    }
     
    • control flow activities.

    see control flow codes

    • Task module
     
     

    Run task

    1.
    let container = new TaskContainer(__dirname, moudles)
    2.
    TaskContainer.create(__dirname, moudles)
        .bootstrap(<IConfigure>{
            ...
            activity:...
        });
    3.
    TaskContainer.create(__dirname, moudles)
        .bootstrap(TestTask);
    4.
    TaskContainer.create(__dirname)
        .bootstrap([TestTask, TsCompile, <IConfigure>{
            ...
            activity...
        }]);
     

    Simples

    import { PipeModule, PackageTask, AssetActivity, IPackageConfigure, IAssetConfigure } from '@taskfr/build';
    import { TaskContainer } from '@taskfr/platform-server';
    const rename = require('gulp-rename');
    const rollup = require('gulp-rollup');
    const resolve = require('rollup-plugin-node-resolve');
    const rollupSourcemaps = require('rollup-plugin-sourcemaps');
    const commonjs = require('rollup-plugin-commonjs');
    const builtins = require('rollup-plugin-node-builtins');
     
    //demo1
    @Package({
        src: 'src',
        clean: 'lib',
        test: 'test/**/*.spec.ts',
        assets: {
            ts: { dest: 'lib', uglify: true, activity: 'ts' }
        }
    })
    export class Builder {
    }
     
    TaskContainer.create(__dirname)
        .use(PipeModule)
        .bootstrap(Builder);
     
    //demo2
     
    TaskContainer.create(__dirname)
        .use(PipeModule)
        .bootstrap(
            <IPackageConfigure>{
                test: 'test/**/*.spec.ts',
                clean: 'lib',
                src: 'src',
                assets: {
                    ts: { src: 'src/**/*.ts', dest: 'lib', /*uglify: true*/ }
                },
                activity: PackageTask
            },
            <IAssetConfigure>{
                src: 'lib/**/*.js',
                pipes: [
                    (ctx: TransformContext) => rollup({
                        name: 'core.umd.js',
                        format: 'umd',
                        plugins: [
                            resolve(),
                            commonjs(),
                            builtins(),
                            rollupSourcemaps()
                        ],
                        external: [
                            'reflect-metadata',
                            'tslib',
                            '@ts-ioc/core',
                            '@ts-ioc/aop',
                            '@ts-ioc/logs'
                        ],
                        globals: {
                            'reflect-metadata': 'Reflect'
                        },
                        input: ctx.toRootPath('lib/index.js')
                    }),
                    () => rename('core.umd.js')
                ],
                dest: 'bundles',
                activity: AssetActivity
            });
     

    Documentation github

    Documentation is available on the type-task docs site.

    License

    MIT © Houjun

    Install

    npm i @taskfr/build

    DownloadsWeekly Downloads

    2

    Version

    3.0.0-beta2

    License

    MIT

    Unpacked Size

    953 kB

    Total Files

    191

    Last publish

    Collaborators

    • houjun