fix(webpack): support angular 15.x (#10106)

This commit is contained in:
Ruslan Lekhman
2022-11-30 06:51:05 -07:00
committed by GitHub
parent da78e0be3f
commit f100109e2d
4 changed files with 61 additions and 9 deletions

View File

@ -181,15 +181,19 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
.loader('angular-hot-loader');
});
const buildAngularPath = getDependencyPath('@angular-devkit/build-angular');
if (buildAngularPath) {
const tsConfig = readTsConfig(tsConfigPath);
const { ScriptTarget } = getTypescript();
const scriptTarget = tsConfig.options.target ?? ScriptTarget.ESNext;
const buildAngularMajorVersion = getBuildAngularMajorVersion();
if (buildAngularMajorVersion) {
const buildAngularOptions: any = {
scriptTarget,
aot: !disableAOT,
};
if (buildAngularMajorVersion < 15) {
const tsConfig = readTsConfig(tsConfigPath);
const { ScriptTarget } = getTypescript();
buildAngularOptions.scriptTarget =
tsConfig.options.target ?? ScriptTarget.ESNext;
}
if (disableAOT) {
buildAngularOptions.optimize = false;
}
@ -291,3 +295,24 @@ function getAngularWebpackPlugin(): any {
const { AngularWebpackPlugin } = require('@ngtools/webpack');
return AngularWebpackPlugin;
}
const MAJOR_VER_RE = /^(\d+)\./;
function getBuildAngularMajorVersion() {
const buildAngularPath = getDependencyPath('@angular-devkit/build-angular');
if (!buildAngularPath) {
return null;
}
try {
const buildAngularVersion =
require(`${buildAngularPath}/package.json`).version;
const [_, majorStr] = buildAngularVersion.match(MAJOR_VER_RE);
return Number(majorStr);
} catch (err) {
// ignore
}
return null;
}