Skip to content

Commit aab1e6e

Browse files
committed
feat(nf): update schematics for using application builder
1 parent d68cb37 commit aab1e6e

File tree

3 files changed

+48
-27
lines changed

3 files changed

+48
-27
lines changed

libs/native-federation/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@angular-architects/native-federation",
3-
"version": "17.0.7",
3+
"version": "17.1.0-beta.1",
44
"main": "src/index.js",
55
"generators": "./collection.json",
66
"builders": "./builders.json",

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

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import * as path from 'path';
2+
import * as fs from 'fs';
3+
import * as mrmime from 'mrmime';
4+
15
import {
26
BuilderContext,
37
BuilderOutput,
@@ -12,11 +16,6 @@ import { serveWithVite } from '@angular-devkit/build-angular/src/builders/dev-se
1216
import { DevServerBuilderOptions } from '@angular-devkit/build-angular/src/builders/dev-server';
1317
import { normalizeOptions } from '@angular-devkit/build-angular/src/builders/dev-server/options';
1418

15-
import * as path from 'path';
16-
import * as fs from 'fs';
17-
18-
import * as mrmime from 'mrmime';
19-
2019
import { setLogLevel, logger } from '@softarc/native-federation/build';
2120

2221
import { FederationOptions } from '@softarc/native-federation/build';
@@ -129,13 +128,15 @@ export async function* runBuilder(
129128
const exists = fs.existsSync(fileName);
130129

131130
if (req.url !== '/' && req.url !== '' && exists) {
132-
console.log('loading from disk', req.url);
133131
const lookup = mrmime.lookup;
134132
const mimeType = lookup(path.extname(fileName)) || 'text/javascript';
135133
const rawBody = fs.readFileSync(fileName, 'utf-8');
136134
const body = addDebugInformation(req.url, rawBody);
137135
res.writeHead(200, {
138136
'Content-Type': mimeType,
137+
'Access-Control-Allow-Origin': '*',
138+
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
139+
'Access-Control-Allow-Headers': 'Content-Type'
139140
});
140141
res.end(body);
141142
} else {
@@ -174,17 +175,17 @@ export async function* runBuilder(
174175

175176
const builderRun = nfOptions.dev
176177
? serveWithVite(
177-
normOuterOptions,
178-
appBuilderName,
179-
context,
180-
{
181-
indexHtml: transformIndexHtml,
182-
},
183-
{
184-
buildPlugins: plugins,
185-
middleware,
186-
}
187-
)
178+
normOuterOptions,
179+
appBuilderName,
180+
context,
181+
{
182+
indexHtml: transformIndexHtml,
183+
},
184+
{
185+
buildPlugins: plugins,
186+
middleware,
187+
}
188+
)
188189
: buildApplication(options, context, plugins);
189190

190191
// builderRun.output.subscribe(async (output) => {

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

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,24 @@ function updateWorkspaceConfig(
101101
const originalBuild = projectConfig.architect.build;
102102

103103
if (
104-
originalBuild.builder !== '@angular-devkit/build-angular:browser-esbuild'
104+
originalBuild.builder !== '@angular-devkit/build-angular:application'
105105
) {
106-
console.log('Switching project to esbuild ...');
107-
originalBuild.builder = '@angular-devkit/build-angular:browser-esbuild';
106+
console.log('Switching project to the application builder using esbuild ...');
107+
originalBuild.builder = '@angular-devkit/build-angular:application';
108+
delete originalBuild.configurations?.development?.buildOptimizer;
109+
delete originalBuild.configurations?.development?.vendorChunk;
108110
}
109111

110-
if (originalBuild.options.browser) {
111-
const browser = originalBuild.options.browser;
112-
delete originalBuild.options.browser;
113-
originalBuild.options.main = browser;
112+
// if (originalBuild.options.browser) {
113+
// const browser = originalBuild.options.browser;
114+
// delete originalBuild.options.browser;
115+
// originalBuild.options.main = browser;
116+
// }
117+
118+
if (originalBuild.options.main) {
119+
const main = originalBuild.options.main;
120+
delete originalBuild.options.main;
121+
originalBuild.options.browser = main;
114122
}
115123

116124
projectConfig.architect.esbuild = originalBuild;
@@ -130,15 +138,27 @@ function updateWorkspaceConfig(
130138
defaultConfiguration: 'production',
131139
};
132140

141+
const serveProd = projectConfig.architect.serve.configurations?.production;
142+
if(serveProd) {
143+
serveProd.buildTarget = `${projectName}:esbuild:production`;
144+
delete serveProd.browserTarget;
145+
}
146+
147+
const serveDev = projectConfig.architect.serve.configurations?.development;
148+
if(serveDev) {
149+
serveDev.buildTarget = `${projectName}:esbuild:development`;
150+
delete serveDev.browserTarget;
151+
}
152+
133153
projectConfig.architect['serve-original'] = projectConfig.architect.serve;
134154

135155
projectConfig.architect.serve = {
136156
builder: '@angular-architects/native-federation:build',
137157
options: {
138-
target: `${projectName}:esbuild:development`,
158+
target: `${projectName}:serve-original:development`,
139159
rebuildDelay: 0,
140160
dev: true,
141-
port: port,
161+
port: 0,
142162
},
143163
};
144164

0 commit comments

Comments
 (0)