mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
fix(webpack): support angular 15.x (#10106)
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user