3c6edcdf93
In production mode, the `ngDevMode` global may not have been declared. This is typically not a problem, as optimizers should have removed all usages of the `ngDevMode` variables. This does however require the bundler/optimizer to have been configured in a certain way, as to allow for `ngDevMode` guarded code to be removed. As an example, Terser can be configured to remove the `ngDevMode` guarded code using the following configuration: ```js const terserOptions = { // ... compress: { // ... global_defs: require('@angular/compiler-cli').GLOBAL_DEFS_FOR_TERSER, } } ``` (Taken from https://github.com/angular/angular/issues/31595#issuecomment-519129090) If this is not done, however, the bundle should still work (albeit with larger code size due to missed tree-shaking opportunities). This commit adds a check for whether `ngDevMode` has been declared, as it is a top-level statement that executes before `ngDevMode` has been initialized. Fixes #31595 PR Close #39415 |
||
---|---|---|
.. | ||
snapshots | ||
.gitignore | ||
README.md | ||
package.json | ||
side-effects.json | ||
yarn.lock |
README.md
This test checks if the side effects for loading Angular packages have changed using https://github.com/filipesilva/check-side-effects.
Running yarn test
will check all ES modules listed in side-effects.json
.
Running yarn update
will update any changed side effects.
To add a new ES module to this test, add a new entry in side-effects.json
.
Usually the ESM and FESM should have the same output, but retained objects that were renamed during the flattening step will leave behind a different name.