Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zoubin/gulp-task-directory
build gulp task according to directory structure
https://github.com/zoubin/gulp-task-directory
Last synced: 8 days ago
JSON representation
build gulp task according to directory structure
- Host: GitHub
- URL: https://github.com/zoubin/gulp-task-directory
- Owner: zoubin
- Created: 2015-06-25T08:46:52.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-06-26T07:25:55.000Z (over 9 years ago)
- Last Synced: 2024-10-28T02:36:28.167Z (22 days ago)
- Language: JavaScript
- Size: 129 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# gulp-task-directory
Create gulp task according to directory or object structure## Usage
```javascript
var taskDir = require('gulp-task-directory');
var gulp = require('gulp');
var plugins = require('gulp-load-plugins')();
var root = __dirname;taskDir(__dirname + '/default', gulp, plugins, root);
console.log(gulp.tasks);
```### Structure of `default` directory
```
⌘ tree example/default
example/default
├── 1
│ └── default.js
├── 2
│ └── 3
│ └── default.js
├── 4
│ └── default.js
└── default.js
```### Contents of all `default.js` files
```javascript
module.exports = function (gulp, plugins, root) {
return function (done) {
done()
}
}
```### output
```javascript
⌘ node example/default.js
{ '1': { fn: [Function], dep: [], name: '1' },
'4': { fn: [Function], dep: [], name: '4' },
'2/3': { fn: [Function], dep: [], name: '2/3' },
default: { fn: [Function], dep: [], name: 'default' } }
```## Specify deps
In `default.js`, you can specify more than one tasks, with dependencies.
However, all dependencies must be tasks specified in the current `default.js`.
```javascript
var taskDir = require('gulp-task-directory');
var gulp = require('gulp');taskDir(__dirname + '/deps', gulp);
console.log(gulp.tasks);
```### Structure of `deps` directory
```
⌘ tree example/deps
example/deps
├── 4
│ └── default.js
└── default.js
```### Contents of `4/default.js`
```javascript
module.exports = function (gulp) {
return function (done) {
done()
}
}
```### Contents of `default.js`
* It returns an object rather than a task callback.
* Each key-value specifies a task.
* Task `2` says it depedends on task `3` and `4`, but `4` is not specifed in this `default.js`, so it will be ignored, and the `dep` of task `2` will be `['3']`
* Dependencies are specified using keys of the returned object.```javascript
module.exports = function (gulp) {
return {
default: [[1]],
1: [[2,3], dummy],
2: [[3,4], dummy],
3: dummy,
}
}function dummy(done) {
done()
}
```### Output
```
⌘ node example/deps.js
{ '1': { fn: [Function: dummy], dep: [ '2', '3' ], name: '1' },
'2': { fn: [Function: dummy], dep: [ '3' ], name: '2' },
'3': { fn: [Function: dummy], dep: [], name: '3' },
'4': { fn: [Function], dep: [], name: '4' },
default: { fn: [Function], dep: [ '1' ], name: 'default' } }
```## taskDir(dir, gulp, xarg1, xarg2,...)
* `dir`. Each `default.js` in `dir` will be treated as a task creator, which should return either a callback, or an object specifying gulp tasks through key-value.
* `gulp`. The `gulp` instance
* `xarg1,xarg2,...`. All creator functions will be called using `gulp, xarg1, xarg2, ...`.