56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
# Gulp Tasks folder
|
|
|
|
This folder contains one file for each task (or group of related tasks) for the project's gulpfile.
|
|
The dependencies between the tasks is kept in the gulpfile.
|
|
|
|
## Task File Structure
|
|
Each task is defined by a factory function that accepts `gulp` as a parameter.
|
|
Each file exports either one factory or an object of factories.
|
|
|
|
E.g. The `build.js` file contains only one task:
|
|
|
|
```js
|
|
module.exports = (gulp) => (done) => {
|
|
...
|
|
};
|
|
```
|
|
|
|
E.g. The `format.js` file contains two tasks:
|
|
|
|
```js
|
|
module.exports = {
|
|
// Check source code for formatting errors (clang-format)
|
|
enforce: (gulp) => () => {
|
|
...
|
|
},
|
|
|
|
// Format the source code with clang-format (see .clang-format)
|
|
format: (gulp) => () => {
|
|
...
|
|
}
|
|
};
|
|
|
|
```
|
|
|
|
## Loading Tasks
|
|
|
|
The tasks are loaded in the gulp file, by requiring them. There is a helper called `loadTask(fileName, taskName)`
|
|
will do this for us, where the `taskName` is optional if the file only exports one task.
|
|
|
|
E.g. Loading the task that will run the build, from a task file that contains only one task.
|
|
|
|
```js
|
|
gulp.task('build.sh', loadTask('build'));
|
|
```
|
|
|
|
E.g. Loading the task that will enforce formatting, from a task file that contains more than one task:
|
|
|
|
```js
|
|
gulp.task('format:enforce', loadTask('format', 'enforce'));
|
|
```
|
|
|
|
E.g. Loading a task that has dependencies:
|
|
|
|
```js
|
|
gulp.task('lint', ['format:enforce', 'tools:build'], loadTask('lint'));
|
|
``` |