Before it would try to load the package from the CLI project, as a
regular require() call, now it adds a check to see if it can be resolved
from the process.cwd(), before doing the previous behaviour.
Also adding a new package, webpack, which is a plugin and loader for
webpack that adds support for AoT.
It is behind a `--aot` flag in the CLI that is supported by build and
serve.
Moving Angular-CLI into `packages/` and building the angular-cli.
The published packages will now have JavaScript only (with their d.ts), instead of being a mix of TypeScript and JavaScript, and it won't have the hacks of having a custom require extension to load the TypeScript.
Our development flow will be more streamlined, tools are going to be better (no more undefined symbols that are actually defined), and the npm packages will boot up way faster (since there's no more compilation during runtime).
Locally nothing changes, use `npm link` and run your local `ng`. Using the `npm` releases though it should be all javascript from the release.
The E2E tests also now uses the `dist` folder output to install in the new E2E app, making sure the process works for an app published to npm.
Note: Even though we're following the lerna structure, we won't be using their tool anytime soon.
before: `ng g c member-list` output `create src/app/ng-list/ng-list.component.scss`.
after: `ng g c member-list` output ` create src/app/member-list/member-list.component.scss`.
Close#1405Close#1829
This also will load angular-cli.json in the HOME directory as a fallback, supports more stuff from the JSON Schema (like default values) than the old one, and actually verify that what you inputs is the right thing.
This will be its own NPM package at some point, as other people will probably be interested in having a JSON Schema loader that gives type safety and provides fallbacks and metadata.
Closes#1763
* build: use webpack for building apps.
This pull request replaces the underlying broccoli build system and then
replaces it with webpack as the build and bundler.
This will affect the following commands (however the user-level)
functionality should go unchanged (besides unimplemented flags which
will come after this PR.):
ng build (with --env flag and --watch flag supported)
ng serve (with --port flag supported)
ng test / ng e2e
The webpack configuration is blackboxed, and therefore users will not
see a webpack.config.js file in their repository.
Also this PR will bump the typescript version to 2.0 (beta).
Fixes#909#1155#882
* chore(lint) Corrected any eslint errors and cleaned up unused files
* chore(cleanup) additional cleanup tasks performed. Removed unneeded code, indentation causing linting errors, add back tsconfig sourcemapping, removed console logs, deleted material unused files.
* chore: remove bind from serve command
* chore: simplify test command
* chore: fix test warnings
* chore: revert whitespace changes
* chore: re-add mapRoot to tsconfig
* chore: remove unused import
* bugfix: fix broken tests
* fix: fix mobile-specific feature test
* bugfix: fix public folder test
* fix: fixes for path mappings, tests, and coverage (#1359)
* fix(): Multiple fixes for path mappings:
* Removed invalid test case that was throwing path mappings tests because of a typescript bug.
* Readded PathsPlugin for Path Mappings
* Removed coverage preprocessor which was throwing bad type errors against ts code when it shouldn't be.
* Added sourcemap support for istanbul instrumenter. Coverage files are still being generated.
* fix: fix the way the build command runs for mobile tests
* fix: fix the way the build command runs for mobile tests
* fix: replaced promise based ng command with sh.exec to allow mappings test to run correctly against mobile
* fix: replaced promise based ng command with sh.exec to allow mappings test to run correctly against mobile
* fix: add environment configuration replacement (#1364)
* fix: add environment configuration replacement
* remove debuggers
* fix: move mobile test above config test because it relies on prod build from previous step
* fix: removed unneeded interface moved config paths
* fix(tests): re-enable sass/less/stylus tests (#1363)
* chore: remove systemjs (#1376)
* chore: remove vendor.ts (#1383)
* chore: remove material2 test option (#1385)
* fix(build): re-add support for sourceDir (#1378)
* chore(build): remove broccoli (#1386)
* chore: remove windows elevation check (#1384)
* fix(test): add missing sourceDir (#1387)
* fix: update node polyfill support properties for prod config to allow dev-server (aka ng serve) (#1395)
* chore(tests): add prod env e2e test (#1394)
* chore: cleanup of new files (#1388)
* fix(serve): disable HMR (#1402)
* chore: review docs (#1407)
* feat(env): decouple build from env file (#1404)
* fix: fix tsconfig for editors (#1420)
* chore: fix webpack branch after merge conflicts (#1423)
* fix: update to awesome-typescript-loader 2.1.0 (#1425)
* fix: update to awesome-typescript-loader 2.1.0 which fixes a few issues shimming typings libs in tsconfig.json
* fix: forgot to set libs in tsconfig blueprint
* chore(blueprints): remove module.id (#1426)
* feat: add host flag support for ng serve (#1442)
* feat(test): add karma plugin (#1437)
* chore(blueprints): re-add outDir (#1428)
* feat: use @types instead of typings (#1449)
* fix: make sourcemaps work in test (#1447)
* feat: add utilities for typescript ast (#1159) (#1453)
'ast-utils.ts' provides typescript ast utility functions
Currently, when building for production with --mobile, there
is a runtime error because require is being called. This is
because the app/index.js file is being concatenated into the
final script, in addition to having already been processed
by System bundler. Since it's already included in the bundle,
it shouldn't be explicitly added to the concatenated JS file.
Motivation: allow angular-cli builds to take advantage of other brocolli plugins that do double duty as ember-cli addons. Specifically, `broccoli-asset-rev`
Expose the `_options` property as a public getter through `options` to allow the ember addon to query for options without throwing fatal build errors
Closes#1226
Allow passing in cacheInclude and cacheExclude as options to the SASSPlugin, primarily so that filenames beginning with an underscore can be ignored during SASS/SCSS compilation, which is generally accepted to be a standard in SASS (http://sass-lang.com/guide#topic-4). These config values can be set in angular-cli-build.js thus:
"sassCompiler": {
"cacheExclude": [/\/_[^\/]+$/]
}
This arguably closes issue #558 (https://github.com/angular/angular-cli/issues/558)
Previously, the settings in tsconfig would be ignored by
the broccoli-typescript plugin, because the whole config's
JSON was being provided to `convertCompilerOptionsFromJson()`
instead of just the expected `compilerOptions`.
For projects that use the --mobile flag, this will cause all
third-party polyfills and the system-loader script to be
concatenated into a single file that can be loaded via
an async script tag. This is necessary for App Shell to work
properly, so that rendering won't be blocked on synchronous
script loading.
Note: this change still loads app and library files individually.
Follow-up work should be done to further improve loading
performance.