mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
fix(webpack): use existing runtime version to determine the supported browsers
This commit is contained in:
@@ -208,7 +208,10 @@ exports[`angular configuration for android 1`] = `
|
||||
{
|
||||
loader: '@angular-devkit/build-angular/src/babel/webpack-loader',
|
||||
options: {
|
||||
aot: true
|
||||
aot: true,
|
||||
supportedBrowsers: [
|
||||
'chrome 83'
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -634,7 +637,10 @@ exports[`angular configuration for ios 1`] = `
|
||||
{
|
||||
loader: '@angular-devkit/build-angular/src/babel/webpack-loader',
|
||||
options: {
|
||||
aot: true
|
||||
aot: true,
|
||||
supportedBrowsers: [
|
||||
'chrome 103'
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"sass": "^1.0.0",
|
||||
"sass-loader": "^13.0.0",
|
||||
"sax": "^1.0.0",
|
||||
"semver": "^7.5.1",
|
||||
"source-map": "^0.7.0",
|
||||
"terser-webpack-plugin": "^5.0.0",
|
||||
"ts-dedent": "^2.0.0",
|
||||
|
||||
@@ -13,6 +13,7 @@ import {
|
||||
getPlatformName,
|
||||
} from '../helpers/platform';
|
||||
import base from './base';
|
||||
import semver from 'semver';
|
||||
// until we can switch to async/await on the webpack config, copy this from '@angular/compiler-cli'
|
||||
const GLOBAL_DEFS_FOR_TERSER = {
|
||||
ngDevMode: false,
|
||||
@@ -24,6 +25,40 @@ const GLOBAL_DEFS_FOR_TERSER_WITH_AOT = {
|
||||
ngJitMode: false,
|
||||
};
|
||||
|
||||
const CHROME_VERSIONS = {
|
||||
android: {
|
||||
'0.0.0': 'chrome 83',
|
||||
'8.5.0': 'chrome 103',
|
||||
},
|
||||
ios: {
|
||||
'0.0.0': 'chrome 92',
|
||||
'8.5.0': 'chrome 103',
|
||||
},
|
||||
default: 'chrome 103',
|
||||
};
|
||||
|
||||
function getSupportedBrowsers() {
|
||||
const platform = getPlatformName();
|
||||
if (platform === 'android' || platform === 'ios') {
|
||||
try {
|
||||
const version = require(`@nativescript/${platform}/package.json`).version;
|
||||
let parsed = semver.parse(version);
|
||||
if (parsed) {
|
||||
let lastVersion = CHROME_VERSIONS.default;
|
||||
for (const k in CHROME_VERSIONS[platform]) {
|
||||
if (semver.gte(parsed, k)) {
|
||||
lastVersion = CHROME_VERSIONS[platform][k];
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return [lastVersion];
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
return [CHROME_VERSIONS.default];
|
||||
}
|
||||
|
||||
export default function (config: Config, env: IWebpackEnv = _env): Config {
|
||||
base(config, env);
|
||||
|
||||
@@ -197,6 +232,8 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
|
||||
const { ScriptTarget } = getTypescript();
|
||||
buildAngularOptions.scriptTarget =
|
||||
tsConfig.options.target ?? ScriptTarget.ESNext;
|
||||
} else {
|
||||
buildAngularOptions.supportedBrowsers = getSupportedBrowsers();
|
||||
}
|
||||
|
||||
if (disableAOT) {
|
||||
|
||||
Reference in New Issue
Block a user