# load-gulp-config

> Allows you to break up your Gulpfile config by task

Latest version **1.3.0** (published 2016-06-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install load-gulp-config
pnpm add load-gulp-config
yarn add load-gulp-config
bun add load-gulp-config
```

## 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 | 1.3.0 |
| Published | 2016-06-04 |
| First published | 2016-05-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Adrian C. Miranda |
| Maintainers | adriancmiranda |
| Keywords | gulp, gulpfile, gulpfile.js, break, external, gruntplugin, config, tasks, load-gulp-config |

## Links

- npm: https://www.npmjs.com/package/load-gulp-config
- Repository: https://github.com/adriancmiranda/load-gulp-config
- Issues: https://github.com/adriancmiranda/load-gulp-config/issues
- npm.io page: https://npm.io/package/load-gulp-config

## Dependencies (2)

- [glob](https://npm.io/package/glob.md) latest
- [js-yaml](https://npm.io/package/js-yaml.md) latest

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 1.3.0 (latest) — 2016-06-04
- 1.2.2 — 2016-06-04
- 1.2.1 — 2016-06-03
- 1.2.0 — 2016-06-03
- 1.1.0 — 2016-06-02
- 1.0.3 — 2016-06-01
- 1.0.2 — 2016-05-30
- 1.0.1 — 2016-05-28
- 0.0.1 — 2016-05-28

## README

# load-gulp-config
> Allows you to break up your Gulpfile config by task

[![dependencies status][david_dependencies_status_image]][david_dependencies_status_url]
[![devDependency status][david_devdependencies_status_image]][david_devdependencies_status_url]

<!-- david dependencies -->
[david_dependencies_status_image]: https://david-dm.org/adriancmiranda/load-gulp-config.png?theme=shields.io
[david_dependencies_status_url]: https://david-dm.org/adriancmiranda/load-gulp-config "dependencies status"

<!-- david devDependencies -->
[david_devdependencies_status_image]: https://david-dm.org/adriancmiranda/load-gulp-config/dev-status.png?theme=shields.io
[david_devdependencies_status_url]: https://david-dm.org/adriancmiranda/load-gulp-config#info=devDependencies "devDependencies status"

<!-- sourcegraph - views -->
[sourcegraph_views_image]: https://sourcegraph.com/api/repos/github.com/adriancmiranda/load-gulp-config/counters/views.png
[sourcegraph_views_url]: https://sourcegraph.com/github.com/adriancmiranda/load-gulp-config "views"


## Features
- Each task has its own config file e.g. `tasks/git.js`, `tasks/styles.js`, `tasks/scripts.js`, ...
- Easily register task aliases with aliases `YAML` file.


## Installation

from [github](https://github.com/adriancmiranda/load-gulp-config "Github"):

```terminal
npm i -D adriancmiranda/load-gulp-config
````

from [npmjs](https://www.npmjs.com/package/load-gulp-config "NPM"):

```terminal
npm i -D load-gulp-config
````

## Usage

```javascript
// The streaming build system.
// @see https://www.npmjs.com/package/gulp
var gulp = require('gulp');

// Load multiple gulp tasks using globbing patterns.
// @see https://github.com/adriancmiranda/load-gulp-config
var config = require('load-gulp-config');

// Specifics of npm's package.json handling.
// @see https://docs.npmjs.com/files/package.json
var pack = config.util.readJSON('package.json');

config(gulp, {
  // path to task's files, defaults to gulp dir.
  configPath: config.util.path.join('tasks', '*.{js,json,yml,yaml}'),

  // data passed into config task.
  data:Object.assign({ someCfg:{}, anyValue:1, anyParams:[] }, pack)
});
```

### Task file examples

Creating tasks internally:

```javascript
module.exports = function(gulp, data, util, taskName){
	'use strict';

	gulp.task(taskName, ['anotherTask:method'], function(callback){
		// return gulp.src(util.path.join(data.appDirs.scripts, '**/*.js'));
	});

	gulp.task(taskName +':method', function(callback){
		// return gulp.src(util.path.join('files/', '**/*.*'));
	});
};
```

Returning a function:

```javascript
module.exports = function(gulp, data, util){
	'use strict';

	console.log([
		'\t- someCfg:'+ data.someCfg,
		'\t- anyValue:'+ data.anyValue,
		'\t- anyParams:'+ data.anyParams,
		'\t- package.version:'+ data.version
	].join('\n'));

	return function(callback){
		// return gulp.src(util.path.join(data.someCfg.dir, '**/*.js'));
	};
};
```


Returning a object:

```javascript
module.exports = function(gulp, data, util, taskName){
	'use strict';

	return {
		default:['test:'+ taskName, 'lint:'+ taskName, function(callback){
			// return gulp.src(...);
		}],
		cmd:function(callback){
			// ...
		}
	};
};
```

### Aliases files (optional)

If your gulp/ folder contains an `.json`, `.yml` or `.yaml` file `load-gulp-config` will use that to define your tasks aliases (like `gulp.task('default', ['task1', 'task2']);`).

The following examples show the same aliases definition written in various formats

#### Examples

YAML file:

```yaml
---
default:
  - 'build'
  - 'task2'

build:
  - 'task1:method'
  - 'task2'
  - 'task3'
```


JSON file:

```json
{
  "default": ["build", "task2"],
  "build": ["task1:method", "task2", "task3"]
}
```

Thank's to the [`load-grunt-config`](https://www.npmjs.com/package/load-grunt-config "Load multiple grunt tasks using globbing patterns") task idea and following modules, that make this one possible.
- [js-yaml](https://www.npmjs.com/package/js-yaml "YAML 1.2 parser and serializer")
- [glob](https://www.npmjs.com/package/glob "A little globber")

## License
[MIT](https://github.com/adriancmiranda/load-gulp-config/blob/master/LICENSE "MIT LICENSE")

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