* fix(core): resolve webpack loaders with `require.resolve()`
With strict package managers such as pnpm or Yarn PnP, transitive
dependencies are *not* hoisted to the root node_modules folder. This
means that a webpack config defined within a package like
'@nrwl/cypress' cannot resolve loaders like 'ts-loader', unless
'ts-loader' is declared in the workspace's own package.json.
This is a problem because the workspace might define a different version
of 'ts-loader', incompatible with the version declared by
'@nrwl/cypress/package.json'. The workspace should not need to declare
a dependency on 'ts-loader' anyway.
See also:
* https://github.com/pnpm/pnpm/issues/801
* https://github.com/webpack/webpack/issues/5087
* fix(core): resolve absolute 'raw-loader' path
When replacing the 'raw-loader' rule in the `getStylesPartial` function,
check for the absolute path of 'raw-loader' rather than just the name.
With strict package managers such as pnpm or Yarn PnP, transitive
dependencies are *not* hoisted to the root node_modules folder. This
means that a webpack config defined within a package like
'@nrwl/cypress' cannot resolve loaders like 'ts-loader', unless
'ts-loader' is declared in the workspace's own package.json.
This is a problem because the workspace might define a different version
of 'ts-loader', incompatible with the version declared by
'@nrwl/cypress/package.json'. The workspace should not need to declare
a dependency on 'ts-loader' anyway.
See also:
* https://github.com/pnpm/pnpm/issues/801
* https://github.com/webpack/webpack/issues/5087
- removes the `differentialLoading` build option
- differential loading is always enabled for prod builds
BEFORE (without ESM):
Benchmark #1: nx build demo --prod
Time (mean ± σ): 13.834 s ± 1.731 s [User: 11.817 s, System: 1.352 s]
Range (min … max): 11.947 s … 16.015 s 10 runs
AFTER (with ESM):
Benchmark #1: nx build demo --prod
Time (mean ± σ): 18.711 s ± 1.310 s [User: 12.172 s, System: 1.394 s]
Range (min … max): 17.232 s … 20.770 s 10 runs