angular-cn/tools/gulp-tasks
Olivier Combe 5e0f982961 feat(ivy): use i18n locale data to determine the plural form of ICU expressions (#29249)
Plural ICU expressions depend on the locale (different languages have different plural forms). Until now the locale was hard coded as `en-US`.
For compatibility reasons, if you use ivy with AOT and bootstrap your app with `bootstrapModule` then the `LOCALE_ID` token will be set automatically for ivy, which is then used to get the correct plural form.
If you use JIT, you need to define the `LOCALE_ID` provider on the module that you bootstrap.
For `TestBed` you can use either `configureTestingModule` or `overrideProvider` to define that provider.
If you don't use the compat mode and start your app with `renderComponent` you need to call `ɵsetLocaleId` manually to define the `LOCALE_ID` before bootstrap. We expect this to change once we start adding the new i18n APIs, so don't rely on this function (there's a reason why it's a private export).
PR Close #29249
2019-05-30 15:09:02 -04:00
..
cldr feat(ivy): use i18n locale data to determine the plural form of ICU expressions (#29249) 2019-05-30 15:09:02 -04:00
README.md build: add the `tslint` gulp task (#14481) 2017-02-14 14:16:50 -08:00
changelog.js build: exclude ivy commit messages from the release notes (#27532) 2018-12-11 11:22:53 -08:00
check-cycle.js ci: move e2e tests from travis to circleci (#27937) 2019-01-07 15:35:09 -08:00
cldr.js build: update npm dependencies (#19328) 2017-09-22 13:20:52 -07:00
format.js style: update gulp task to format untracked and diff files separately (#24969) 2018-09-27 12:09:08 -07:00
lint.js refactor: ensure all 'TODO's are consistent (#23252) 2018-04-13 13:11:01 -07:00
platform-script-path.js build: update npm dependencies (#19328) 2017-09-22 13:20:52 -07:00
serve.js build: switch example e2e tests to bazel (#28402) 2019-01-28 19:21:09 -08:00
source-map-test.js build: update npm dependencies (#19328) 2017-09-22 13:20:52 -07:00
tools-build.js build: update npm dependencies (#19328) 2017-09-22 13:20:52 -07:00
validate-commit-message.js build: fix `validate-commit-message` on Windows (#28780) 2019-02-19 12:37:57 -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 contains 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'));