Skip to content

Commit 757f62d

Browse files
Merge pull request #806 from Nicoss54/feature/implement-@angular-build
feat(nf): compatibility with @angular/build package
2 parents cb32b17 + 894c6da commit 757f62d

File tree

4 files changed

+40
-29
lines changed

4 files changed

+40
-29
lines changed

libs/mf/src/schematics/init-webpack/schematic.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import {
2+
apply,
23
chain,
4+
mergeWith,
5+
move,
36
Rule,
7+
template,
48
Tree,
59
url,
6-
apply,
7-
mergeWith,
8-
template,
9-
move,
1010
} from '@angular-devkit/schematics';
1111

12-
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
1312
import { strings } from '@angular-devkit/core';
13+
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
1414
import * as json5 from 'json5';
1515
import * as semver from 'semver';
1616

@@ -234,7 +234,8 @@ export default function config(options: MfSchematicSchema): Rule {
234234

235235
const buildConfig = projectConfig?.architect?.build;
236236
const isApplicationBuilder =
237-
buildConfig?.builder === '@angular-devkit/build-angular:application';
237+
buildConfig?.builder === '@angular-devkit/build-angular:application' ||
238+
buildConfig?.builder === '@angular/build:application';
238239

239240
if (isApplicationBuilder && !options.skipConfirmation) {
240241
console.warn(

libs/native-federation/src/builders/build/builder.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as fs from 'fs';
2+
import { existsSync, mkdirSync, rmSync } from 'fs';
23
import * as mrmime from 'mrmime';
34
import * as path from 'path';
45

@@ -12,10 +13,12 @@ import {
1213
BuilderContext,
1314
BuilderOutput,
1415
createBuilder,
16+
targetFromTargetString,
1517
} from '@angular-devkit/architect';
1618

1719
import { normalizeOptions } from '@angular-devkit/build-angular/src/builders/dev-server/options';
1820

21+
1922
import { logger, setLogLevel } from '@softarc/native-federation/build';
2023

2124
import { targetFromTargetString } from '@angular-devkit/architect';
@@ -24,13 +27,19 @@ import {
2427
FederationOptions,
2528
getExternals,
2629
loadFederationConfig,
30+
logger,
2731
setBuildAdapter,
32+
setLogLevel,
2833
} from '@softarc/native-federation/build';
2934
import {
3035
createAngularBuildAdapter,
3136
setMemResultHandler,
3237
} from '../../utils/angular-esbuild-adapter';
3338

39+
import { NfBuilderSchema } from './schema';
40+
import { RebuildHubs } from '../../utils/rebuild-events';
41+
import { updateScriptTags } from '../../utils/updateIndexHtml';
42+
import { JsonObject } from '@angular-devkit/core';
3443
import { JsonObject } from '@angular-devkit/core';
3544
import { FederationInfo } from '@softarc/native-federation-runtime';
3645
import { PluginBuild } from 'esbuild';
@@ -42,6 +51,11 @@ import {
4251
MemResults,
4352
NgCliAssetResult,
4453
} from '../../utils/mem-resuts';
54+
import { createSharedMappingsPlugin } from '../../utils/shared-mappings-plugin';
55+
// import { NextHandleFunction } from 'vite';
56+
import { FederationInfo } from '@softarc/native-federation-runtime';
57+
import { PluginBuild } from 'esbuild';
58+
import { getI18nConfig, translateFederationArtefacts } from '../../utils/i18n';
4559
import { RebuildHubs } from '../../utils/rebuild-events';
4660
import { createSharedMappingsPlugin } from '../../utils/shared-mappings-plugin';
4761
import { updateScriptTags } from '../../utils/updateIndexHtml';
@@ -135,10 +149,6 @@ export async function* runBuilder(
135149

136150
setLogLevel(options.verbose ? 'verbose' : 'info');
137151

138-
if (!options.outputPath) {
139-
options.outputPath = `dist/${context.target.project}`;
140-
}
141-
142152
const outputPath = options.outputPath;
143153
const outputOptions: Required<
144154
Exclude<ApplicationBuilderOptions['outputPath'], string>
@@ -283,10 +293,7 @@ export async function* runBuilder(
283293
try {
284294
federationResult = await buildForFederation(config, fedOptions, externals);
285295
} catch (e) {
286-
console.error(e);
287-
if (!watch) {
288-
process.exit(1);
289-
}
296+
process.exit(1);
290297
}
291298

292299
if (activateSsr) {
@@ -305,7 +312,7 @@ export async function* runBuilder(
305312

306313
options.deleteOutputPath = false;
307314

308-
const appBuilderName = '@angular-devkit/build-angular:application';
315+
const appBuilderName = '@angular/build:application';
309316

310317
const builderRun = runServer
311318
? serveWithVite(

libs/native-federation/src/schematics/appbuilder/schematic.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ function updateWorkspaceConfig(
4040
}
4141

4242
if (projectConfig.architect.esbuild) {
43-
projectConfig.architect.esbuild.builder =
44-
'@angular-devkit/build-angular:application';
43+
projectConfig.architect.esbuild.builder = '@angular/build:application';
44+
4545
projectConfig.architect.esbuild.options.browser =
4646
projectConfig.architect.esbuild.options.main;
4747
delete projectConfig.architect.esbuild.options.main;

libs/native-federation/src/schematics/init/schematic.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import {
2-
chain,
3-
Rule,
4-
Tree,
5-
url,
62
apply,
3+
chain,
74
mergeWith,
8-
template,
95
move,
106
noop,
7+
Rule,
8+
template,
9+
Tree,
10+
url,
1111
} from '@angular-devkit/schematics';
1212

13-
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
1413
import { strings } from '@angular-devkit/core';
14+
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
1515
import { MfSchematicSchema } from './schema';
1616

1717
import {
@@ -234,11 +234,14 @@ function updateWorkspaceConfig(
234234

235235
const originalBuild = projectConfig.architect.build;
236236

237-
if (originalBuild.builder !== '@angular-devkit/build-angular:application') {
237+
if (
238+
originalBuild.builder !== '@angular-devkit/build-angular:application' ||
239+
originalBuild.builder !== '@angular/build:application'
240+
) {
238241
console.log(
239242
'Switching project to the application builder using esbuild ...'
240243
);
241-
originalBuild.builder = '@angular-devkit/build-angular:application';
244+
originalBuild.builder = '@angular/build:application';
242245
delete originalBuild.configurations?.development?.buildOptimizer;
243246
delete originalBuild.configurations?.development?.vendorChunk;
244247
}
@@ -524,7 +527,7 @@ function makeServerAsync(
524527

525528
const cors = `import { createRequire } from "module";
526529
const require = createRequire(import.meta.url);
527-
const cors = require("cors");
530+
const cors = require("cors");
528531
`;
529532
const mainContent = tree.read(server).toString('utf8');
530533
const updatedContent = (cors + mainContent)
@@ -553,7 +556,7 @@ console.log('Starting SSR for Shell');
553556
remotesOrManifestUrl: '../browser/federation.manifest.json',
554557
relBundlePath: '../browser/',
555558
});
556-
559+
557560
await import('./bootstrap-server');
558561
559562
})();
@@ -570,7 +573,7 @@ console.log('Starting SSR for Shell');
570573
remotesOrManifestUrl: ${manifest},
571574
relBundlePath: '../browser/',
572575
});
573-
576+
574577
await import('./bootstrap-server');
575578
576579
})();
@@ -583,7 +586,7 @@ console.log('Starting SSR for Shell');
583586
await initNodeFederation({
584587
relBundlePath: '../browser/'
585588
});
586-
589+
587590
await import('./bootstrap-server');
588591
589592
})();

0 commit comments

Comments
 (0)