| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | # Angular Template Compiler
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Angular applications are built with templates, which may be `.html` or `.css` files, | 
					
						
							|  |  |  | or may be inline `template` attributes on Decorators like `@Component`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | These templates are compiled into executable JS at application runtime (except in `interpretation` mode). | 
					
						
							|  |  |  | This compilation can occur on the client, but it results in slower bootstrap time, and also | 
					
						
							|  |  |  | requires that the compiler be included in the code downloaded to the client. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You can produce smaller, faster applications by running Angular's compiler as a build step, | 
					
						
							|  |  |  | and then downloading only the executable JS to the client. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | ## Install and use
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2016-05-03 13:26:59 -06:00
										 |  |  | # First install angular, see https://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc0-2016-05-02
 | 
					
						
							|  |  |  | $ npm install @angular/compiler-cli typescript@next @angular/platform-server @angular/compiler | 
					
						
							|  |  |  | # Optional sanity check, make sure TypeScript can compile.
 | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | $ ./node_modules/.bin/tsc -p path/to/project | 
					
						
							| 
									
										
										
										
											2016-05-03 13:26:59 -06:00
										 |  |  | # ngc is a drop-in replacement for tsc.
 | 
					
						
							|  |  |  | $ ./node_modules/.bin/ngc -p path/to/project | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In order to write a `bootstrap` that imports the generated code, you should first write your | 
					
						
							| 
									
										
										
										
											2016-05-03 13:26:59 -06:00
										 |  |  | top-level component, and run `ngc` once to produce a generated `.ngfactory.ts` file. | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | Then you can add an import statement in the `bootstrap` allowing you to bootstrap off the | 
					
						
							| 
									
										
										
										
											2016-06-10 17:35:06 -07:00
										 |  |  | generated code: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```typescript | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | main_module.ts | 
					
						
							|  |  |  | ------------- | 
					
						
							|  |  |  | import {BrowserModule} from '@angular/platform-browser'; | 
					
						
							|  |  |  | import {Component, AppModule, ApplicationRef} from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2016-06-10 17:35:06 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | @Component(...) | 
					
						
							|  |  |  | export class MyComponent {} | 
					
						
							| 
									
										
										
										
											2016-06-10 17:35:06 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | @AppModule({ | 
					
						
							|  |  |  |   modules: [BrowserModule], | 
					
						
							|  |  |  |   precompile: [MyComponent] | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | export class MainModule { | 
					
						
							|  |  |  |   constructor(appRef: ApplicationRef) { | 
					
						
							|  |  |  |     appRef.bootstrap(MyComponent); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bootstrap.ts | 
					
						
							|  |  |  | ------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import {MainModuleNgFactory} from './main_module.ngfactory'; | 
					
						
							| 
									
										
											  
											
												refactor(core): clean up platform bootstrap and initTestEnvironment
- Introduces `CompilerFactory` which can be part of a `PlatformRef`.
- Introduces `WorkerAppModule`, `WorkerUiModule`, `ServerModule`
- Introduces `serverDynamicPlatform` for applications using runtime compilation
  on the server.
- Changes browser bootstrap for runtime and offline compilation (see below for an example).
  * introduces `bootstrapModule` and `bootstrapModuleFactory` in `@angular/core`
  * introduces new `browserDynamicPlatform` in `@angular/platform-browser-dynamic
- Changes `initTestEnvironment` (which used to be `setBaseTestProviders`) to not take a compiler factory any more (see below for an example).
BREAKING CHANGE:
## Migration from `setBaseTestProviders` to `initTestEnvironment`:
- For the browser platform:
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS} from ‘@angular/platform-browser-dynamic/testing’;
  setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);
  ```
  AFTER:
  ```
  import {initTestEnvironment} from ‘@angular/core/testing’;
  import {browserDynamicTestPlatform,
      BrowserDynamicTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  initTestEnvironment(
      BrowserDynamicTestModule,
      browserDynamicTestPlatform());
  ```
- For the server platform:
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS} from ‘@angular/platform-server/testing/server’;
  setBaseTestProviders(TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS);
  ```
  AFTER:
  ```
  import {initTestEnvironment} from ‘@angular/core/testing’;
  import {serverTestPlatform,
      ServerTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  initTestEnvironment(
      ServerTestModule,
      serverTestPlatform());
  ```
## Bootstrap changes
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {browserPlatform} from ‘@angular/platform-browser’;
import {bootstrapModuleFactory} from ‘@angular/core’;
bootstrapModuleFactory(MyModuleNgFactory, browserPlatform());
// runtime compile long form
import {browserDynamicPlatform} from ‘@angular/platform-browser-dynamic’;
import {bootstrapModule} from ‘@angular/core’;
bootstrapModule(MyModule, browserDynamicPlatform());
```
Closes #9922
Part of #9726
											
										 
											2016-07-08 10:47:17 -07:00
										 |  |  | import {bootstrapModuleFactory} from '@angular/core'; | 
					
						
							|  |  |  | import {browserPlatform} from '@angular/platform-browser'; | 
					
						
							| 
									
										
											  
											
												feat(browser): use AppModules for bootstrap in the browser
This introduces the `BrowserModule` to be used for long form
bootstrap and offline compile bootstrap:
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {bootstrapModuleFactory} from ‘@angular/platform-browser’;
bootstrapModuleFactory(MyModuleNgFactory);
// runtime compile long form
import {bootstrapModule} from ‘@angular/platform-browser-dynamic’;
bootstrapModule(MyModule);
```
The short form, `bootstrap(...)`, can now creates a module on the fly,
given `directives`, `pipes, `providers`, `precompile` and `modules`
properties.
Related changes:
- make `SanitizationService`, `SecurityContext` public in `@angular/core` so that the offline compiler can resolve the token
- move `AnimationDriver` to `platform-browser` and make it
  public so that the offline compiler can resolve the token
BREAKING CHANGES:
- short form bootstrap does no longer allow
  to inject compiler internals (i.e. everything 
  from `@angular/compiler). Inject `Compiler` instead.
  To provide custom providers for the compiler,
  create a custom compiler via `browserCompiler({providers: [...]})`
  and pass that into the `bootstrap` method.
											
										 
											2016-06-30 13:07:17 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												refactor(core): clean up platform bootstrap and initTestEnvironment
- Introduces `CompilerFactory` which can be part of a `PlatformRef`.
- Introduces `WorkerAppModule`, `WorkerUiModule`, `ServerModule`
- Introduces `serverDynamicPlatform` for applications using runtime compilation
  on the server.
- Changes browser bootstrap for runtime and offline compilation (see below for an example).
  * introduces `bootstrapModule` and `bootstrapModuleFactory` in `@angular/core`
  * introduces new `browserDynamicPlatform` in `@angular/platform-browser-dynamic
- Changes `initTestEnvironment` (which used to be `setBaseTestProviders`) to not take a compiler factory any more (see below for an example).
BREAKING CHANGE:
## Migration from `setBaseTestProviders` to `initTestEnvironment`:
- For the browser platform:
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS} from ‘@angular/platform-browser-dynamic/testing’;
  setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);
  ```
  AFTER:
  ```
  import {initTestEnvironment} from ‘@angular/core/testing’;
  import {browserDynamicTestPlatform,
      BrowserDynamicTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  initTestEnvironment(
      BrowserDynamicTestModule,
      browserDynamicTestPlatform());
  ```
- For the server platform:
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS} from ‘@angular/platform-server/testing/server’;
  setBaseTestProviders(TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS);
  ```
  AFTER:
  ```
  import {initTestEnvironment} from ‘@angular/core/testing’;
  import {serverTestPlatform,
      ServerTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  initTestEnvironment(
      ServerTestModule,
      serverTestPlatform());
  ```
## Bootstrap changes
```
@AppModule({
  modules: [BrowserModule],
  precompile: [MainComponent],
  providers: […], // additional providers
  directives: […], // additional platform directives
  pipes: […] // additional platform pipes
})
class MyModule {
  constructor(appRef: ApplicationRef) {
    appRef.bootstrap(MainComponent);
  }
}
// offline compile
import {browserPlatform} from ‘@angular/platform-browser’;
import {bootstrapModuleFactory} from ‘@angular/core’;
bootstrapModuleFactory(MyModuleNgFactory, browserPlatform());
// runtime compile long form
import {browserDynamicPlatform} from ‘@angular/platform-browser-dynamic’;
import {bootstrapModule} from ‘@angular/core’;
bootstrapModule(MyModule, browserDynamicPlatform());
```
Closes #9922
Part of #9726
											
										 
											2016-07-08 10:47:17 -07:00
										 |  |  | bootstrapModuleFactory(MainModuleNgFactory, browserPlatform()); | 
					
						
							| 
									
										
										
										
											2016-06-10 17:35:06 -07:00
										 |  |  | ``` | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | ## Configuration
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | The `tsconfig.json` file may contain an additional configuration block: | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  |  "angularCompilerOptions": { | 
					
						
							| 
									
										
										
										
											2016-06-15 14:56:56 -07:00
										 |  |  |    "genDir": ".", | 
					
						
							|  |  |  |    "debug": true | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  |  } | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2016-06-15 14:56:56 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### `genDir`
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | the `genDir` option controls the path (relative to `tsconfig.json`) where the generated file tree | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | will be written. If `genDir` is not set, then the code will be generated in the source tree, next | 
					
						
							|  |  |  | to your original sources. More options may be added as we implement more features. | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | We recommend you avoid checking generated files into version control. This permits a state where | 
					
						
							|  |  |  | the generated files in the repository were created from sources that were never checked in, | 
					
						
							|  |  |  | making it impossible to reproduce the current state. Also, your changes will effectively appear | 
					
						
							|  |  |  | twice in code reviews, with the generated version inscrutible by the reviewer. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In TypeScript 1.8, the generated sources will have to be written alongside your originals, | 
					
						
							|  |  |  | so set `genDir` to the same location as your files (typicially the same as `rootDir`). | 
					
						
							|  |  |  | Add `**/*.ngfactory.ts` to your `.gitignore` or other mechanism for your version control system. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In TypeScript 1.9 and above, you can add a generated folder into your application, | 
					
						
							|  |  |  | such as `codegen`. Using the `rootDirs` option, you can allow relative imports like | 
					
						
							|  |  |  | `import {} from './foo.ngfactory'` even though the `src` and `codegen` trees are distinct. | 
					
						
							|  |  |  | Add `**/codegen` to your `.gitignore` or similar. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Note that in the second option, TypeScript will emit the code into two parallel directories | 
					
						
							|  |  |  | as well. This is by design, see https://github.com/Microsoft/TypeScript/issues/8245. | 
					
						
							|  |  |  | This makes the configuration of your runtime module loader more complex, so we don't recommend | 
					
						
							|  |  |  | this option yet. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-15 14:56:56 -07:00
										 |  |  | ### `debug`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Set the `debug` option to true to generate debug information in the generate files. | 
					
						
							|  |  |  | Default to `false`. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | See the example in the `test/` directory for a working example. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Compiler CLI
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This program mimics the TypeScript tsc command line. It accepts a `-p` flag which points to a | 
					
						
							|  |  |  | `tsconfig.json` file, or a directory containing one. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This CLI is intended for demos, prototyping, or for users with simple build systems | 
					
						
							|  |  |  | that run bare `tsc`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Users with a build system should expect an Angular 2 template plugin. Such a plugin would be | 
					
						
							|  |  |  | based on the `index.ts` in this directory, but should share the TypeScript compiler instance | 
					
						
							|  |  |  | with the one already used in the plugin for TypeScript typechecking and emit. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Design
 | 
					
						
							|  |  |  | At a high level, this program | 
					
						
							| 
									
										
										
										
											2016-05-24 10:53:48 -07:00
										 |  |  | - collects static metadata about the sources using the `tsc-wrapped` package in angular2 | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  | - uses the `OfflineCompiler` from `angular2/src/compiler/compiler` to codegen additional `.ts` files | 
					
						
							|  |  |  | - these `.ts` files are written to the `genDir` path, then compiled together with the application. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## For developers
 | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  | # Build angular2 and the compiler
 | 
					
						
							| 
									
										
										
										
											2016-05-27 16:22:16 -07:00
										 |  |  | ./build.sh | 
					
						
							| 
									
										
										
										
											2016-07-09 10:12:39 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-03 10:27:36 -07:00
										 |  |  | # Copy over the package so we can test the compiler tests
 | 
					
						
							|  |  |  | $ cp tools/@angular/tsc-wrapped/package.json dist/tools/@angular/tsc-wrapped | 
					
						
							| 
									
										
										
										
											2016-07-09 10:12:39 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-27 16:22:16 -07:00
										 |  |  | # Run the test once
 | 
					
						
							|  |  |  | # (First edit the LINKABLE_PKGS to use npm link instead of npm install)
 | 
					
						
							|  |  |  | $ ./scripts/ci-lite/offline_compiler_test.sh | 
					
						
							| 
									
										
										
										
											2016-07-09 10:12:39 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-27 16:22:16 -07:00
										 |  |  | # Keep a package fresh in watch mode
 | 
					
						
							|  |  |  | ./node_modules/.bin/tsc -p modules/@angular/compiler/tsconfig-es5.json -w | 
					
						
							| 
									
										
										
										
											2016-07-09 10:12:39 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-28 09:54:42 -07:00
										 |  |  | # Recompile @angular/core module (needs to use tsc-ext to keep the metadata)
 | 
					
						
							| 
									
										
										
										
											2016-07-09 10:12:39 -07:00
										 |  |  | $ export NODE_PATH=${NODE_PATH}:$(pwd)/dist/all:$(pwd)/dist/tools | 
					
						
							|  |  |  | $ node dist/tools/@angular/tsc-wrapped/src/main -p modules/@angular/core/tsconfig-es5.json | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-27 16:22:16 -07:00
										 |  |  | # Iterate on the test
 | 
					
						
							| 
									
										
										
										
											2016-07-09 10:12:39 -07:00
										 |  |  | $ cd /tmp/wherever/e2e_test.1464388257/ | 
					
						
							|  |  |  | $ ./node_modules/.bin/ngc | 
					
						
							|  |  |  | $ ./node_modules/.bin/jasmine test/*_spec.js | 
					
						
							| 
									
										
										
										
											2016-04-29 10:35:36 -07:00
										 |  |  | ``` |