Go to file
Tobias Bosch edd5f5a333 perf(compiler): make the creation of `ts.Program` faster. (#19275)
We now create 2 programs with exactly the same fileNames and
exactly the same `import` / `export` declarations,
allowing TS to reuse the structure of first program
completely. When passing in an oldProgram and the files didn’t change,
TS can also reuse the old program completely.

This is possible buy adding generated files to TS
in `host.geSourceFile` via `ts.SourceFile.referencedFiles`.

This commit also:
- has a minor side effect on how we generate shared stylesheets:
  - previously every import in a stylesheet would generate a new
    `.ngstyles.ts` file.
  - now, we only generate 1 `.ngstyles.ts` file per entry in `@Component.styleUrls`.
  This was required as we need to be able to determine the program files
  without loading the resources (which can be async).
- makes all angular related methods in `CompilerHost`
  optional, allowing to just use a regular `ts.CompilerHost` as `CompilerHost`.
- simplifies the logic around `Compiler.analyzeNgModules` by introducing `NgAnalyzedFile`.

Perf impact: 1.5s improvement in compiling angular io
PR Close #19275
2017-09-19 16:55:23 -07:00
.circleci build: upgrade to latest bazel rules (#18733) 2017-08-23 11:34:52 -05:00
.github docs: does please -> does (#18044) 2017-07-11 11:46:57 -07:00
aio ci: update yarn to 1.0.2 (#19270) 2017-09-19 16:08:04 -07:00
docs docs: Update release schedule for v5 (#19186) 2017-09-14 13:36:45 -04:00
integration perf(compiler): make the creation of `ts.Program` faster. (#19275) 2017-09-19 16:55:23 -07:00
modules refactor: update angular to support TypeScript 2.4 2017-09-12 10:31:30 -07:00
packages perf(compiler): make the creation of `ts.Program` faster. (#19275) 2017-09-19 16:55:23 -07:00
scripts ci: update yarn to 1.0.2 (#19270) 2017-09-19 16:08:04 -07:00
tools refactor: core, http & platform-webworker to remove public private class separation (#19143) 2017-09-14 13:38:06 -04:00
.bazelrc build: ngc-wrapped as a bazel worker (#18960) 2017-09-01 12:23:11 -05:00
.bowerrc chore(dgeni): clean up legacy typings bundle creation 2015-10-29 21:19:59 +00:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig chore(.editorconfig): include markdown config 2015-01-27 00:14:48 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build(common): extract i18n locale data from cldr (#18284) 2017-08-22 15:43:04 -05:00
.nvmrc ci: bump node version to 6.9.5 and npm to 3.10.7 2017-02-02 23:28:00 -08:00
.pullapprove.yml refactor(compiler-cli): move ngc-wrapped to packages/bazel (#18733) 2017-08-23 11:34:51 -05:00
.travis.yml ci(aio): compute AIO deployment mode 2017-08-04 09:14:18 -07:00
BUILD.bazel build: ngc-wrapped as a bazel worker (#18960) 2017-09-01 12:23:11 -05:00
CHANGELOG.md docs: cherry-pick changelog for 4.4.2 and 4.4.3 2017-09-19 15:39:08 -07:00
CONTRIBUTING.md docs: improve grammar and wording on CONTRIBUTING.md (#17855) 2017-07-11 12:40:30 -07:00
LICENSE style(docs): update copyright years (#13736) 2017-01-27 20:47:14 -08:00
README.md docs: Unbreak README Formatting (#18043) 2017-07-11 11:48:37 -07:00
WORKSPACE build: upgrade to latest bazel rules (#18733) 2017-08-23 11:34:52 -05:00
bower.json docs: branding fixes (#14132) 2017-01-27 15:03:11 -06:00
browser-providers.conf.js ci: disable Android 4.1, 4.2 and 4.3 in SauceLabs (#14461) 2017-03-16 09:13:07 -07:00
build.sh build: publish tree of files rather than FESMs (#18541) 2017-08-31 15:34:50 -07:00
gulpfile.js test(packaging): added test for source map correctness 2017-09-12 16:59:32 -04:00
karma-js.conf.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
npm-shrinkwrap.clean.json refactor: update angular to support TypeScript 2.4 2017-09-12 10:31:30 -07:00
npm-shrinkwrap.json refactor: update angular to support TypeScript 2.4 2017-09-12 10:31:30 -07:00
npm-shrinkwrap.readme.md chore(lint): replace gulp check-task with tslint no-jasmine-focus rule 2016-10-28 15:53:15 -07:00
package.json ci: update yarn to 1.0.2 (#19270) 2017-09-19 16:08:04 -07:00
protractor-e2e.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
protractor-examples-e2e.conf.js refactor: format and lint code 2016-12-12 11:30:25 -08:00
protractor-perf.conf.js refactor: add license header to JS files & format files (#12081) 2016-10-04 20:39:20 -07:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js feat(platform-server): provide a DOM implementation on the server 2017-08-30 17:46:16 -07:00
test.sh test: support debugging unit tests in node (#18987) 2017-09-01 15:06:40 -05:00
tslint.json build(tslint): enable no-inner-declarations (#13316) 2016-12-08 13:46:08 -08:00

README.md

Build Status CircleCI Join the chat at https://gitter.im/angular/angular Issue Stats Issue Stats npm version

Sauce Test Status

Safari (7+), iOS (7+), Edge (14) and IE mobile (11) are tested on BrowserStack.

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.