mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 18:12:09 +08:00
feat(webpack): angular 16.1 support (#10317)
This commit is contained in:
@ -206,7 +206,7 @@ exports[`angular configuration for android 1`] = `
|
|||||||
use: [
|
use: [
|
||||||
/* config.module.rule('angular-webpack-loader').use('webpack-loader') */
|
/* config.module.rule('angular-webpack-loader').use('webpack-loader') */
|
||||||
{
|
{
|
||||||
loader: '@angular-devkit/build-angular/src/babel/webpack-loader',
|
loader: '<rootDir>/node_modules/@angular-devkit/build-angular/src/tools/babel/webpack-loader.js',
|
||||||
options: {
|
options: {
|
||||||
aot: true
|
aot: true
|
||||||
}
|
}
|
||||||
@ -632,7 +632,7 @@ exports[`angular configuration for ios 1`] = `
|
|||||||
use: [
|
use: [
|
||||||
/* config.module.rule('angular-webpack-loader').use('webpack-loader') */
|
/* config.module.rule('angular-webpack-loader').use('webpack-loader') */
|
||||||
{
|
{
|
||||||
loader: '@angular-devkit/build-angular/src/babel/webpack-loader',
|
loader: '<rootDir>/node_modules/@angular-devkit/build-angular/src/tools/babel/webpack-loader.js',
|
||||||
options: {
|
options: {
|
||||||
aot: true
|
aot: true
|
||||||
}
|
}
|
||||||
|
@ -13,5 +13,6 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
globals: {
|
globals: {
|
||||||
__TEST__: true,
|
__TEST__: true,
|
||||||
}
|
},
|
||||||
|
resolver: '<rootDir>/scripts/resolver.js',
|
||||||
};
|
};
|
||||||
|
@ -54,19 +54,19 @@
|
|||||||
"webpack-virtual-modules": "^0.4.0"
|
"webpack-virtual-modules": "^0.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "^15.0.1",
|
"@angular-devkit/build-angular": "^16.1.0",
|
||||||
"@types/css": "0.0.33",
|
"@types/css": "0.0.33",
|
||||||
"@types/jest": "29.4.0",
|
"@types/jest": "29.5.2",
|
||||||
"@types/loader-utils": "2.0.3",
|
"@types/loader-utils": "2.0.3",
|
||||||
"@types/lodash.get": "4.4.7",
|
"@types/lodash.get": "4.4.7",
|
||||||
"@types/micromatch": "4.0.2",
|
"@types/micromatch": "4.0.2",
|
||||||
"@types/sax": "1.2.4",
|
"@types/sax": "1.2.4",
|
||||||
"@types/terser-webpack-plugin": "5.2.0",
|
"@types/terser-webpack-plugin": "5.2.0",
|
||||||
"@types/webpack-virtual-modules": "0.1.1",
|
"@types/webpack-virtual-modules": "0.1.1",
|
||||||
"jest": "29.4.1",
|
"jest": "29.5.0",
|
||||||
"jest-matcher-utils": "29.4.1",
|
"jest-matcher-utils": "29.4.1",
|
||||||
"nativescript-vue-template-compiler": "2.9.3",
|
"nativescript-vue-template-compiler": "2.9.3",
|
||||||
"ts-jest": "29.0.5",
|
"ts-jest": "29.1.0",
|
||||||
"typescript": "~4.9.5"
|
"typescript": "~4.9.5"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
16
packages/webpack5/scripts/resolver.js
Normal file
16
packages/webpack5/scripts/resolver.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
const { relative, join } = require('path');
|
||||||
|
|
||||||
|
const packagesToMakeRelative = new Set([
|
||||||
|
'@angular-devkit/build-angular/src/tools/babel/webpack-loader',
|
||||||
|
'@angular-devkit/build-angular/src/babel/webpack-loader',
|
||||||
|
]);
|
||||||
|
|
||||||
|
function resolver(path, options) {
|
||||||
|
const defaultResolver = options.defaultResolver(path, options);
|
||||||
|
if (typeof defaultResolver === 'string' && packagesToMakeRelative.has(path)) {
|
||||||
|
return join('<rootDir>', relative(join(__dirname, '..'), defaultResolver));
|
||||||
|
}
|
||||||
|
return defaultResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = resolver;
|
@ -214,7 +214,7 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
|
|||||||
.end()
|
.end()
|
||||||
.before('angular')
|
.before('angular')
|
||||||
.use('webpack-loader')
|
.use('webpack-loader')
|
||||||
.loader('@angular-devkit/build-angular/src/babel/webpack-loader')
|
.loader(getWebpackLoaderPath())
|
||||||
.options(buildAngularOptions);
|
.options(buildAngularOptions);
|
||||||
} else {
|
} else {
|
||||||
warnOnce(
|
warnOnce(
|
||||||
@ -334,3 +334,24 @@ function getBuildAngularMajorVersion() {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tryRequireResolve(path: string) {
|
||||||
|
try {
|
||||||
|
return require.resolve(path);
|
||||||
|
} catch (err) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWebpackLoaderPath() {
|
||||||
|
return (
|
||||||
|
tryRequireResolve(
|
||||||
|
'@angular-devkit/build-angular/src/babel/webpack-loader'
|
||||||
|
) ||
|
||||||
|
tryRequireResolve(
|
||||||
|
'@angular-devkit/build-angular/src/tools/babel/webpack-loader'
|
||||||
|
) ||
|
||||||
|
// fallback to angular 16.1+
|
||||||
|
'@angular-devkit/build-angular/src/tools/babel/webpack-loader'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user