Have ideas to improve npm?Join in the discussion! ¬Ľ

    expand-task

    0.3.3¬†‚Äʬ†Public¬†‚Äʬ†Published

    expand-task NPM version

    Expand and normalize task definitions in a declarative configuration.

    Table of contents

    (TOC generated by verb using markdown-toc)

    Take a look at the examples

    Install

    Install with npm:

    $ npm i expand-task --save

    Usage

    var Task = require('expand-task');

    Examples

    Write declarative "task" definitions similar to the config-style used by grunt.

    var task = new Task({
      options: {cwd: 'src'},
      site: {
        src: 'templates/*.hbs',
        dest: 'site/'
      },
      blog: {
        src: 'content/*.md',
        dest: 'site/blog/'
      }
    });

    Add targets

    The options object is automatically recognized and will not be turned into a target.

    var task = new Task();
     
    task.addTargets({
      options: {cwd: 'src'},
      site: {
        src: 'templates/*.hbs',
        dest: 'site/'
      },
      blog: {
        src: 'content/*.md',
        dest: 'site/blog/'
      }
    });

    Add a single target

    task.addTarget('docs', {
      options: {
        mapDest: true
      },
      src: ['test/fixtures/a/**/*.txt'],
      dest: 'dest/'
    });

    flattens dest paths:

    task('assemble', {
      site: {
        options: {
          mapDest: true,
          flatten: true
        },
        src: 'test/fixtures/a/**/*.txt',
        dest: 'dest'
      }
    });

    results in

    {
      options: {},
      site: {
        options: {
          mapDest: true,
          flatten: true
        },
        files: [
          {
            src: ['test/fixtures/a/a.txt'],
            dest: 'dest/a.txt'
          },
          {
            src: ['test/fixtures/a/aa/aa.txt'],
            dest: 'dest/aa.txt'
          },
          {
            src: ['test/fixtures/a/aa/aaa/aaa.txt'],
            dest: 'dest/aaa.txt'
          }
        ]
      }
    }

    More info

    Take a look at examples.md, it shows lots of different ways to define tasks.

    Also:

    • Visit expand-target for the full range of target options and documentation.
    • Visit [expand-files][] for the full range of files options and documentation.

    Options

    Any option from [expand-files][] may be used. Please see that project for the full range of options and documentation.

    options properties

    The below "special" properties are fine to use either on an options object or on the root of the object passed to expand-files.

    Either way they will be normalized onto the options object to ensure that [globby][] and consuming libraries are passed the correct arguments.

    special properties

    • base
    • cwd
    • destBase
    • mapDest
    • ext
    • extDot
    • extend
    • flatten
    • rename
    • process
    • srcBase

    example

    Both of the following will result in mapDest being on the options object.

    files({src: '*.js', dest: 'dist/', options: {mapDest: true}});
    files({src: '*.js', dest: 'dist/', mapDest: true});

    Related projects

    Running tests

    Install dev dependencies:

    $ npm i -d && npm test

    Contributing

    Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

    Author

    Jon Schlinkert

    License

    Copyright © 2016 Jon Schlinkert Released under the MIT license.


    This file was generated by verb on January 06, 2016.

    Install

    npm i expand-task

    DownloadsWeekly Downloads

    2

    Version

    0.3.3

    License

    MIT

    Last publish

    Collaborators

    • avatar