BREAKING CHANGE: we no longer use `node-sass` by default, instead we use `sass` (dart-sass).
While in most cases this should not have an impact the generated code, dart sass has some differences from Ruby Sass. See https://github.com/sass/dart-sass#behavioral-differences-from-ruby-sass for more details
If you wish to use `node-sass` instead of `sass` you need to install node-sass as a dev dependency.
npm users
```
npm install node-sass --save-dev
```
yarn users
```
yarn add node-sass --dev
```
**Note:** for larger Sass projects to avoid this performance hit you might want to install `fibers`. See: https://www.npmjs.com/package/fibers
Ref: TOOL-748
The `getNonAotConfig` and `getNonAotTestConfig` functions are equivalent in regards to behavior. The `extract` optional parameter for `_createAotPlugin` is false by default.
For runtime i18n with ivy we generate code for both Closure compiler (used at Google) and for external people that don't use Closure compiler.
We added a new global flag named `ngI18nClosureMode` that allows uglify (and Closure compiler) to effectively tree-shake all of the code that isn't used in the current setup.
By default we remove all of the Closure compiler code because we assume that it won't be used.
At the moment when `font` shorthand property is used a warning is emitted when using this syntax
```
font: 10px "Font Awesome";
```
This should be addressed by clean-css
Fixes#9648
This changes fixes `Error: You must pass in a NgModule or NgModuleFactory to be bootstrapped`.
At the moment the check for absolute path is not correct for windows.
Fixes#13865 and fixes https://github.com/angular/universal/issues/1139
Tslint 5.13+ introduced an addition parameter for the format method, mainly used for check-style formatter.
During runtime users using an older version of tslint that doesn't expose this it is not a problem as this parameter will be ignored.
See: 9000479b69
With directTemplateLoading enabled, components
can now use .svg files as templates. For AOT builds,
the Angular compiler host now reads .svg files
directly when reading component templates.
For JIT builds, replaceResources creates a require call
that directly uses raw-loader instead of using the
loader provided by the current webpack configuration.
Closes#10567
Remove the manually maintained schema.d.ts from the browser builder, and use
the Schema JSON file to generate it. This had a lot of repercussions around
the whole build-angular code base and the different interfaces that were
manually kept.
Previously, all loaders either needed to be in the workspace's node modules directory or a node modules directory directly within the build angular package. A package manager can potentially hoist a loader to a node modules location inbetween the two and causing loader resolution to fail. This change causes webpack to check all intermediate node modules directories in addition to the initial two locations.
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.
* refactor(@ngtools/webpack): support import-based loader resolution
* fix(@angular-devkit/build-angular): ensure correct ngtools loader version
By using the the direct import approach, the loader will be guaranteed to originate from the same package version/location as the other `@ngtools/webpack` imports.
Fixes#13539
At the moment, if a user provides multiple tsconfig, a file needs to be part of all compilations as otherwise it will fail.
This PR changes this behavour and as long as it's in one of the compilations it will not error out.
Fixes#13399