88 Commits

Author SHA1 Message Date
Alan Agius
cad8154ba3 feat(@angular-devkit/build-angular): change tslint default formatter to stylish
Change the default tslint formatter  to stylish as offers a better output
2020-03-23 17:27:35 -07:00
Alan Agius
ea11c5549a feat(@angular-devkit/build-angular): show warnings when depending on CommonJS.
Depending on CommonJS modules is know to cause optimization bailouts. With this change when running a browser build and scripts optimization is enabled we display a warning.

To suppress the warning for a particular package, users can use the `allowedCommonJsDepedencies` builder options.

Example:
```
"build": {
  "builder": "@angular-devkit/build-angular:browser",
  "options": {
    ...
    "allowedCommonJsDepedencies": ["bootstrap"]
  },
}
```

Reference: TOOL-1328
2020-03-23 14:20:21 -07:00
Fabian Wiles
bc5ce395e5
Merge pull request #16648 from Toxicable/preserve-symlink-nodejs
feat(@angular-devkit/build-angular): default to NodeJS value for pres…
2020-03-23 14:18:27 -07:00
Charles Lyding
f0bada1925 fix(@angular/cli): allow for private use language subtags
Fixes:  #17163
2020-03-16 21:44:42 -07:00
Sachin Grover
764b977de4 fix(@angular/cli): expand locale pattern in all schemas for all cases
Fixes: #17032
2020-02-24 12:39:35 -08:00
Charles Lyding
e221c9a147 fix(@angular/cli): directly remove ansi color codes when no color support
Third party libraries can attempt to write color codes to the output even though the CLI has already determined that color should not be used.  The previously implemented color removal code is no longer functional since the update of ansi-colors to 4.1.0.  While this appears to be a defect in the aforementioned package, the new CLI removal method not only bypasses the defect but also unneeded execution logic that the CLI does not need in this case.

Fixes: #17053
2020-02-24 12:39:15 -08:00
Alan Agius
66b218c5f6 fix(@angular/cli): print ng update errors stack to log file
When an error occurs during ng update we currently discard the stack trace which in some cases made it hard to identify the cause of the error.

Now, we print the stack trace to a log file similarly to unhandled exceptions.

Example of CMD output;
```cmd
** Executing migrations of package '@angular/core' **

> Static flag migration.
  Removes the `static` flag from dynamic queries.
  As of Angular 9, the "static" flag defaults to false and is no longer required for your view and content queries.
  Read more about this here: https://v9.angular.io/guide/migration-dynamic-flag
× Migration failed: x
  See "C:\Users\alag\AppData\Local\Temp\ng-NgmC1G\angular-errors.log" for further details.
```

Example of log file contents:
```txt
[error] Error: x
    at UpdateCommand.executeSchematic (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:98:19)
    at UpdateCommand.executePackageMigrations (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:167:39)
    at UpdateCommand.executeMigrations (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:161:21)
    at UpdateCommand.run (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:394:38)
    at async UpdateCommand.validateAndRun (C:\git\angular-cli\test\node_modules\@angular\cli\models\command.js:134:28)
    at async Object.runCommand (C:\git\angular-cli\test\node_modules\@angular\cli\models\command-runner.js:201:24)
    at async default_1 (C:\git\angular-cli\test\node_modules\@angular\cli\lib\cli\index.js:62:31)
```
2020-02-18 12:43:35 -08:00
Jonathan Garvey
d6c9693952 feat(@angular-devkit/build-angular): pass "grep" and "invertGrep"
Pass the "grep" and "invertGrep" flags through to the Angular Protractor
builder as "jasmineNodeOpts" so that individual specs within an E2E test
file can be targeted.

Fixes #13020
2020-02-18 10:53:27 -08:00
Ivan
8deb4cbd1b fix(@angular/cli): add skipTests to @schematics/angular:component in config schema 2020-02-12 12:00:58 -08:00
Charles Lyding
7b54164e48 fix(@angular/cli): expand locale pattern in workspace schema
Fixes: #16935
2020-02-11 08:45:36 -08:00
Reto Ryter
d6fa2bde93 feat(@schematics/angular): add opt in option 'displayBlock' 2020-02-05 10:30:15 -08:00
Alan Agius
344ec857ce style: add tslint:disable-next-line no-console 2020-01-08 10:24:40 -08:00
Alan Agius
7d9c0c7227 fix(@angular/cli): disable Browserslist old data warning
Set the `BROWSERSLIST_IGNORE_OLD_DATA` enviorment variable to disable Browserslist old data warning

`Browserslist: caniuse-lite is outdated. Please run next command `npm update`

See: 819c433745/node.js (L324)
2020-01-08 10:24:40 -08:00
Alan Agius
0659cf09e3 fix(@angular-devkit/build-angular): add externalDependencies to server builders
Certain node packages depend on native bindings which cannot be bundled, with this fix we add a way to exclude these from being processed by the bundler.

Closes: #16348
2019-12-05 18:53:08 -08:00
Alan Agius
0a7ace3595 fix(@angular-devkit/build-angular): allow bundleDependencies to be a boolean 2019-12-05 18:53:08 -08:00
Charles Lyding
c37eaeec43 fix(@angular-devkit/build-angular): augment base HREF when localizing
All locale i18n options now support an object form which allows a base HREF to be defined for the locale.  Each locale can now optionally define a custom base HREF that will be combined with the base HREF defined for the build configuration.  By default if the shorthand form for the locale is used or the field is not present in the longhand form, the locale code will be used as the base HREF.  To disable automatic augmentation a base HREF value of an empty string (`""`) can be used.  This will prevent anything from being added to the existing base HREF.

For common scenarios, the shorthand form will result in the preferred and recommended outcome of each built locale variant of the application containing a defined base HREF  containing the locale code.
2019-12-04 08:14:16 -08:00
Charles Lyding
415b966dd4 fix(@angular/cli): improve robustness of Node.js version check
This change ensures that both the global version and the project version Node.js version requirements are met before the CLI executes a command.  Previously an older global version of the CLI would allow a newer project version to execute even if the project version had more strict Node.js version requirements.  The Node.js version is now checked twice.  Once in an ES5 safe script to ensure that ancient Node.js versions are not in use.  And secondly in the CLI entry code that is executed after global/project bootstrapping.
2019-11-21 14:06:21 -08:00
Kayla Altepeter
3100182ab1 fix(@angular/cli): change analytics type to boolean or string 2019-11-04 13:24:15 -08:00
Eusen
31a35ae060 fix(@angular/cli): scoped project names
change projects.patternProperties to npm.name.pattern

Closes #14797
2019-10-28 10:05:43 -07:00
Alan Agius
e92c46a3cf refactor(@schematics/angular): remove deprecated spec and styleext options
BREAKING CHANGE:

Deprecated `styleext` and `spec` options have been removed.  Use `style` and `skipTests` options instead.
2019-10-22 13:27:08 -07:00
Alan Agius
b0dcfd08a0 fix(@angular/cli): logic to determine if the installed CLI is out of date
With this change we now check if the current CLI version is the latest published version. If it is not, we install a temporary version to run the `ng update` with.
2019-10-22 13:13:54 -07:00
Alan Agius
c3169ae7d2 New i18n schema (#15760)
* feat(@angular-devkit/core): update schema to support new i18n options

"projects": {
  "my-app": {
    "projectType": "application",
    "schematics": {},
    "root": "",
    "i18n": {
      "sourceLocale": "en-US",
      "locales": {
        "fr": "src/locale/messages.fr.xlf"
      }
    },
    "sourceRoot": "src",
    ...
  }
}

* feat(@angular-devkit/build-angular): add new i18n options to browser and server builders

With this change we add `translateLocales` as new options for i18n in browser and server builders.

We also deprecate the following options;
* i18nLocale
* i18nFormat
* i18nFile

* feat(@angular-devkit/build-angular): deprecate `i18nFormat` and `i18nLocale` options of `extract-i18n` builder

Option `i18nFormat` has been deprecated in favor of `format` and `i18nLocale` option has been deprecated in favor of the `sourceLocale` sub option of the `i18n` project level option.

* feat(@angular/cli): add alias of `i18n-extract` for `x18n` command

* refactor: rename `translateLocales` to `localize`
2019-10-10 12:39:00 -07:00
Charles Lyding
9deaf87754 fix(@angular/cli): add browser builder index option longhand form to schema 2019-09-19 14:39:51 -07:00
noeri
366e51be04 feat(@angular-devkit/build-angular): expose webpack-dev-server's allowedHosts option
Closes #13656
2019-09-09 14:09:58 -07:00
Charles Lyding
b630317b4b refactor(@angular/cli): convert workspace access to async
This is in preparation for conversion from the experimental workspace API to the stable workspace API.
2019-08-16 09:32:04 -07:00
Alan Agius
15ef15e94a style: remove redundant max-line-length disables and fix other lint issues 2019-07-24 19:06:21 -07:00
Alan Agius
f32c9dde1a feat(@angular/cli): add anyComponentStyle budget type 2019-07-24 19:05:00 -07:00
Charles Lyding
762d95741b refactor(@angular/cli): simplify unhandled exception message 2019-07-02 11:36:18 -07:00
Alan
2b367be1c3 feat(@angular-devkit/build-angular): deprecate scripts and styles lazy option in favor ofinject
The lazy option inside the script and style option is confusing as this option doesn't lazy load a bundle but rather it doesn't inject/reference the script in the HTML. While this option is an enabler for lazy loading, the users will still need to handle on how how this bundle will be lazy loaded. There are also potential use cases beyond lazy loading for the option.

Closes #14814
2019-07-02 11:05:51 -07:00
Alan Agius
68227565ce feat(@angular-devkit/build-angular): add crossorigin options
This options allows to define the crossorigin attribute setting of elements that provide CORS support

Closes #14743
2019-06-27 15:12:43 -07:00
Alan
70a4cbe306 style: enable no-debugger and no-console tslint rules 2019-06-27 09:28:35 -07:00
Alan
d7460517cf fix(@angular/cli): log file path normalization
In windows the logfile path in the console will be printed with both back and forward slashes if not normalized.
2019-06-25 13:28:47 -07:00
Charles Lyding
c4313f55e4 refactor(@angular/cli): unify color handling and support 2019-06-24 17:27:59 -07:00
Charles Lyding
3dced5491b feat(@angular/cli): log unhandled exceptions
Whenever an unhandled exception during command processing occurs, the message and stack trace will be saved to a debug log located in a temporary directory.  The user will be informed of the log location as well as the exception message and instructions to file a bug report at the GitHub repository.
2019-06-17 12:14:20 -07:00
Charles Lyding
a70932b1ac refactor(@angular/cli): standardize color handling and support checking
Node.js 10+ provides built-in functionality to test for color support based on chalk's `supports-color` package as well as several others. This alleviates the need for custom code or third-party packages to determine color support.  In addition for this PR, the `ansi-colors` package is added to the CLI which provides color, cross-platform symbol, and style/color removal support.  The package is light-weight, contains typings, and has no dependencies. The removal support is leveraged to remove all styling from logger messages when color is not supported.  This removes a current defect in which color/styling is still displayed if generated manually or via methods that do not perform supportability checks.  Finally, the typically used console functions are overriden to leverage the logger to ensure that the color processing is applied to third-party code (e.g., webpack internally as well as some of its loaders and plugins) which output to the console directly.
2019-06-17 11:03:21 -07:00
Matt Lewis
ef981d63b7 fix(@angular/cli): add analytics option to options schema 2019-06-06 14:16:23 -07:00
Filipe Silva
0f9de92dcb feat(@angular-devkit/build-angular): remove experimentalImportFactories option
It will just be always be used when applicable.

Fix #14218
2019-04-22 16:16:58 -07:00
Filipe Silva
92913e46b1 fix(@angular/cli): add missing experimentalImportFactories to schema 2019-04-12 12:21:13 -07:00
Filipe Silva
e6bba9eaf9 fix(@angular/cli): update config schema for karma webworker 2019-04-10 08:43:14 -07:00
Filipe Silva
ed0e6aab57 feat(@angular-devkit/build-angular): support TS web workers 2019-04-02 04:49:34 -07:00
Jason Miller
c630d5f811 feat(@angular-devkit/build-angular): support module web workers.
Supports new Worker(...,{type:module}) using github.com/googlechromelabs/worker-plugin
2019-04-02 04:49:34 -07:00
Charles Lyding
cfa1649fdd refactor(@angular/cli): use standard node resolution methods where possible 2019-03-30 18:36:22 -07:00
Charles Lyding
be5e2fbfe5 fix(@angular/cli): remove redundant typescript/compiler-cli compatibility check
Angular 5.0+ has a full peer dependencies setup (with 6.0+ also having a configurable runtime error check) to ensure that an appropriate version of typescript is available for compilation.  Angular CLI 8.0+ does not support Angular versions prior to these and therefore the warning is redundant.  For the case where the developer wishes to use an unsupported TypeScript version, the developer would need to adjust two similar but differently name settings in two different configuration files.
2019-02-20 10:36:52 -08:00
Charles Lyding
94b087c9e1 fix(@angular-devkit/build-angular): disable by default stylesheet root relative URL rebasing
BREAKING CHANGE:
Root relative URLs are a standardized method to reference a resource path from the root of a host.  The previous behavior of the Angular CLI prevented this from occuring and resulted in an inability to reference stylesheet assets in this manner.  The initial reason for this behavior is no longer present in the internal implementation of the Angular CLI.  Therefore, this now unnecessary and non-standard behavior is being phased out.  If an application currently relies on this behavior, a compatibility option `rebaseRootRelativeCssUrls` has been provided for the 8.x release cycle to facilitate transition away from this non-standard and limiting behavior.  The recommended method to transition is to use relative paths within the source stylesheet.  This allows the build system to process and generate a full URL for the asset.
2019-02-19 10:14:46 -08:00
Charles Lyding
c4376d067f fix(@angular/cli): explicitly define console color logging 2019-02-15 08:01:41 -08:00
Alan
daab547731 docs: remove analyse link from statsJson description
https://webpack.github.io/analyse has been broken for over a year and it seems that it is no longer maintained.

See  https://github.com/webpack/analyse/issues/30

Closes #10589
2019-02-13 15:26:12 -08:00
Charles Lyding
a6f51f566e feat(@angular/cli): support pnpm as a package manager option 2019-02-08 16:06:11 -08:00
Alan
4718de4dae feat(@schematics/angular): only support known style extentions
Fixes #13149
2019-01-18 11:56:19 -08:00
Charles Lyding
e3a148a74b feat(@angular-devkit/build-angular): conditional ES2015 polyfill loading 2019-01-15 14:17:55 -08:00
Judy Bogart
4729397a68 docs: dev server 2018-12-26 12:31:49 -08:00