Skip to content

Commit

Permalink
Docs: Add "Project structure" section to CONTRIBUTING.md (#1859)
Browse files Browse the repository at this point in the history
  • Loading branch information
callumacrae authored and phated committed Dec 31, 2017
1 parent 723cbc4 commit 0ac9e04
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,53 @@ of the content
- formatting: help keep content easy to read with consistent formatting
- code: Fix issues or contribute new features to this or any related projects

# Project structure

Gulp itself is tiny: index.js contains [very few lines of code](https://github.com/gulpjs/gulp/blob/4.0/index.js).
It is powered by a few other libraries which each handle a few specific tasks
each.

You can view all issues with the "help wanted" label across all gulp projects
here: https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+user%3Agulpjs+label%3A%22help+wanted%22+

## Undertaker: task management

Undertaker handles task management in Gulp: the `gulp.task()`, `gulp.series()`
and `gulp.parallel()` functions. `gulp.series()` and `gulp.parallel()` are in
turn powered by Bach.

- https://github.com/gulpjs/undertaker
- https://github.com/gulpjs/bach

## vinyl-fs: file streams

vinyl-fs powers the `gulp.src()` and `gulp.dest()` functions: they take files
and globs specified by the user, turns them into a stream of file objects,
and then puts them back into the filesystem when `gulp.dest()` is called.

The file objects themselves are vinyl objects: that's another library (a simple
one!)

- https://github.com/gulpjs/vinyl-fs
- https://github.com/gulpjs/vinyl

## chokidar: file watching

`gulp.watch()` is using chokidar for file watching. It's actually wrapped in a
small library on the gulp organization, glob-watcher.

- https://github.com/paulmillr/chokidar
- https://github.com/gulpjs/glob-watcher

## gulp-cli: running gulp

Finally, we have gulp-cli. This uses liftoff to take what people run in the
command line and run the correct tasks. It works with both gulp 4 and older
versions of gulp.

- https://github.com/gulpjs/gulp-cli
- https://github.com/js-cli/js-liftoff

# Conduct

We are committed to providing a friendly, safe and welcoming environment for
Expand Down

0 comments on commit 0ac9e04

Please sign in to comment.