# gulp-add-tasks2

> A tool to add tasks to a passed-in gulp instance, as a task list, or as a map of functions

Latest version **2.0.10** (published 2018-04-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install gulp-add-tasks2
pnpm add gulp-add-tasks2
yarn add gulp-add-tasks2
bun add gulp-add-tasks2
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.10 |
| Published | 2018-04-30 |
| First published | 2017-08-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 19.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Dustin Schau |
| Maintainers | bluelovers |
| Keywords | add, gulp, task list, tasks |

## Links

- npm: https://www.npmjs.com/package/gulp-add-tasks2
- Repository: https://github.com/bluelovers/gulp-add-tasks
- Homepage: https://github.com/bluelovers/gulp-add-tasks#readme
- Issues: https://github.com/bluelovers/gulp-add-tasks/issues
- npm.io page: https://npm.io/package/gulp-add-tasks2

## Dependencies (3)

- [gulp-help](https://npm.io/package/gulp-help.md) ^1.6.1
- [run-sequence](https://npm.io/package/run-sequence.md) ^2.2.1
- [gulp-run-seq-unique](https://npm.io/package/gulp-run-seq-unique.md) ^1.0.4

## Recent versions

- 2.0.10 (latest) — 2018-04-30
- 2.0.9 — 2018-04-30
- 2.0.8 — 2017-11-27
- 2.0.7 — 2017-11-27
- 2.0.6 — 2017-11-27
- 2.0.5 — 2017-11-27
- 2.0.4 — 2017-11-27
- 2.0.3 — 2017-11-01
- 2.0.2 — 2017-10-31
- 2.0.1 — 2017-10-30
- 2.0.0 — 2017-10-30
- 1.3.2 — 2017-08-27
- 1.3.1 — 2017-08-26
- 1.3.0 — 2017-08-25

## README

# `gulp-add-tasks2`

[![npm](https://img.shields.io/npm/v/gulp-add-tasks2.svg?maxAge=2592000)](https://www.npmjs.com/package/gulp-add-tasks2)

A utility to dynamically add tasks based on a specified task structure to a passed-in instance of [`gulp`][gulp].

Integrates with [`gulp-help`][gulp-help] and [`run-sequence`][run-sequence] to provide a more robust user experience, as well as the ability to run tasks synchronously

*this module fork from [`gulp-add-tasks`][gulp-add-tasks]

## Install

`npm i gulp-add-tasks2 --save-dev`

## Usage

```javascript
const gulp = require('gulp');
const addTasks = require('gulp-add-tasks2').init(gulp);

addTasks(...taskLists)
```

### other way import

```
const addTasks = require('gulp-add-tasks2').init(gulp, parentTaskName);
const addTasks = require('gulp-add-tasks2/node')(gulp, parentTaskName);
```

```
import gulpAddTasks from 'gulp-add-tasks2';
import { gulpAddTasks } from 'gulp-add-tasks2';

const addTasks = gulpAddTasks(gulp, parentTaskName);
```

### Task list structure

Task list accepts two object structures, one for "multi-tasks" and one for simple task and function pairs, both of which assume each key in the map as the gulp task name.

#### multi-task structure

|Name|Description|
|:--:|-----------|
|**`tasks`**|An array of tasks, passed directly to [`run-sequence`][run-sequence]|
|`description`|A task description, used by [`gulp-help`][gulp-help]|
|`options`|Programmatic options to be utlized by the tasks, used by [`gulp-help`][gulp-help]|
|`aliases`|An array of aliases that the task can be called with, used by [`gulp-help`][gulp-help]|
|`deps`|An array of tasks to be executed and completed before your task will run.|
|`callback`|The function performs the task's main operations. Generally this takes the form of:|

##### Example

```javascript
const gulp = require('gulp');
const addTasks = require('gulp-add-tasks2').init(gulp);

addTasks({
  build: {
    description: 'Build application for distribution',
    tasks: [
      ['sass', 'babel']
    ],
    options: {
      production: 'Minify assets with this flag'
    }
  }
});
```

`gulp build` will now be a runnable task via the CLI, which will, in turn, call `gulp sass & gulp babel` (async) via [`run-sequence`][run-sequence].

#### single task structure

A simple key/value pair, with the key representing the task name, and the value a reference to a function, can be used to create a simple task. This is particularly useful when used in conjunction with [`require-tasks`][require-tasks], which generates a structure that can be directly passed to `gulp-add-tasks`.

##### Example

```javascript
const gulp = require('gulp');
const addTasks = require('gulp-add-tasks2').init(gulp);

addTasks({
  babel() {
    const babel = require('gulp-babel');

    return gulp.src('src/**/*.js')
      .pipe(babel({
        presets: ['es2015']
      }))
      .pipe(gulp.dest('dist'));
  }
});
```

`gulp babel` will now be a runnable task via the CLI.

## Advanced Usage

`gulp-add-tasks` supports multi-tasks, separating a nested structure via colons (`:`), e.g.

```javascript
const gulp = require('gulp');
const addTasks = require('gulp-add-tasks2').init(gulp);

addTasks({
  copy: {
    css() {
      return gulp.src('src/**/*.css')
        .pipe(gulp.dest('dist/css'));
    },
    js() {
      return gulp.src('src/**/*.js')
        .pipe(gulp.dest('dist/js'));
    }
  }
})
```

gulp will now have the tasks `copy:css` and `copy:js` available for usage from the command line.

[gulp]: http://gulpjs.com
[gulp-help]: https://www.npmjs.com/package/gulp-help
[run-sequence]: https://www.npmjs.com/package/run-sequence
[require-tasks]: https://www.npmjs.com/package/require-tasks
[gulp-add-tasks]: https://www.npmjs.com/package/gulp-add-tasks

---
_Source: https://npm.io/package/gulp-add-tasks2 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
