angular-cn/tools/gulp-tasks
Pete Bacon Darwin 600402d440 build(aio): big move of docs related files (#14361)
All the docs related files (docs-app, doc-gen, content, etc)
are now to be found inside the `/aio` folder.

The related gulp tasks have been moved from the top level
gulp file to a new one inside the `/aio` folder.

The structure of the `/aio` folder now looks like:

```
/aio/
  build/         # gulp tasks
  content/       #MARKDOWN FILES for devguides, cheatsheet, etc
    devguides/
    cheatsheets/
  transforms/    #dgeni packages, templates, etc
  src/
    app/
    assets/
    content/    #HTML + JSON build artifacts produced by dgeni from /aio/content.
                #This dir is .gitignored-ed
  e2e/           #protractor tests for the doc viewer app
  node_modules/ #dependencies for both the doc viewer builds and the dgeni stuff
                #This dir is .gitignored-ed
  gulpfile.js   #Tasks for generating docs and building & deploying the doc viewer
```

Closes #14361
2017-02-09 11:58:36 -08:00
..
README.md build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
build.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
changelog.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
check-cycle.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
format.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
lint.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
platform-script-path.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
public-api.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
serve.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
tools-build.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00
validate-commit-message.js build: modularize the gulp file to be easier to maintain (#14259) 2017-02-03 00:10:41 -08:00

README.md

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:

module.exports = (gulp) => (done) => {
  ...
};

E.g. The format.js file contains two tasks:

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 contans only one task.

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:

gulp.task('format:enforce', loadTask('format', 'enforce'));

E.g. Loading a task that has dependencies:

gulp.task('lint', ['format:enforce', 'tools:build'], loadTask('lint'));