diff --git a/libs/native-federation-core/src/lib/core/default-skip-list.ts b/libs/native-federation-core/src/lib/core/default-skip-list.ts index 99af344b..2bf99569 100644 --- a/libs/native-federation-core/src/lib/core/default-skip-list.ts +++ b/libs/native-federation-core/src/lib/core/default-skip-list.ts @@ -15,6 +15,10 @@ export const DEFAULT_SKIP_LIST: SkipList = [ '@angular/localize', '@angular/localize/init', '@angular/localize/tools', + '@angular/platform-server', + '@angular/platform-server/init', + '@angular/ssr', + 'express', /\/schematics(\/|$)/, (pkg) => pkg.startsWith('@angular/') && !!pkg.match(/\/testing(\/|$)/), (pkg) => pkg.startsWith('@types/'), diff --git a/libs/native-federation/src/builders/build/builder.ts b/libs/native-federation/src/builders/build/builder.ts index 3f1b8697..eb090124 100644 --- a/libs/native-federation/src/builders/build/builder.ts +++ b/libs/native-federation/src/builders/build/builder.ts @@ -32,7 +32,7 @@ import { } from '../../utils/dev-server'; import { RebuildHubs } from '../../utils/rebuild-events'; import { updateIndexHtml } from '../../utils/updateIndexHtml'; -import { appendFileSync, existsSync, mkdirSync } from 'fs'; +import { existsSync, mkdirSync } from 'fs'; import { EsBuildResult, MemResults, @@ -40,12 +40,6 @@ import { } from '../../utils/mem-resuts'; import { JsonObject } from '@angular-devkit/core'; -function log(...args) { - const msg = args.join(' '); - appendFileSync('c:/temp/log.txt', msg + '\n'); - console.log(args); -} - export async function* runBuilder( nfOptions: NfBuilderSchema, context: BuilderContext @@ -123,7 +117,6 @@ export async function* runBuilder( write, })) { lastResult = output; - yield output; if (!output.success) { setError('Compilation Error'); @@ -159,6 +152,10 @@ export async function* runBuilder( reloadBrowser(); } + if (!runServer) { + yield output; + } + if (!first && watch) { setTimeout(async () => { logger.info('Rebuilding federation artefacts ...'); diff --git a/libs/native-federation/src/utils/angular-esbuild-adapter.ts b/libs/native-federation/src/utils/angular-esbuild-adapter.ts index 478898c3..a76b4de7 100644 --- a/libs/native-federation/src/utils/angular-esbuild-adapter.ts +++ b/libs/native-federation/src/utils/angular-esbuild-adapter.ts @@ -338,6 +338,10 @@ function writeResult( writtenFiles.push(filePath); } + if (!memOnly) { + // for (const asset of result.outputFiles) + } + return writtenFiles; } diff --git a/libs/native-federation/src/utils/dev-server.ts b/libs/native-federation/src/utils/dev-server.ts index c9d214f2..c6b8248e 100644 --- a/libs/native-federation/src/utils/dev-server.ts +++ b/libs/native-federation/src/utils/dev-server.ts @@ -1,19 +1,12 @@ import * as browserSync from 'browser-sync'; import { NfBuilderSchema } from '../builders/build/schema'; import { BuildResult, MemResults } from './mem-resuts'; -import { appendFileSync } from 'fs'; -import { basename, extname } from 'path'; +import { extname } from 'path'; import { lookup } from 'mrmime'; import { updateScriptTags } from './updateIndexHtml'; let server: browserSync.BrowserSyncInstance; -function log(...args) { - const msg = args.join(' '); - appendFileSync('c:/temp/log.txt', msg + '\n'); - console.log(args); -} - export function startServer( options: NfBuilderSchema, path: string, @@ -33,7 +26,7 @@ export function startServer( open: options.open, middleware: [ function (req, res, next) { - const key = basename(req.url || ''); + const key = req.url.startsWith('/') ? req.url.substring(1) : req.url; const result = memResults.get(key); if (result) { diff --git a/libs/native-federation/src/utils/mem-resuts.ts b/libs/native-federation/src/utils/mem-resuts.ts index e43a81db..87e867fd 100644 --- a/libs/native-federation/src/utils/mem-resuts.ts +++ b/libs/native-federation/src/utils/mem-resuts.ts @@ -8,12 +8,12 @@ export interface BuildResult { } export class EsBuildResult implements BuildResult { - public fileName: string; - - constructor(private outputFile: OutputFile) { - this.fileName = outputFile.path; + get fileName() { + return basename(this.outputFile.path); } + constructor(private outputFile: OutputFile) {} + get(): Uint8Array { return this.outputFile.contents; } @@ -26,7 +26,7 @@ export interface NgCliAssetFile { export class NgCliAssetResult implements BuildResult { public get fileName(): string { - return this.file.source; + return unify(this.file.destination); } private file: NgCliAssetFile; @@ -45,7 +45,7 @@ export class MemResults { public add(result: BuildResult[]): void { for (const file of result) { - this.map.set(basename(file.fileName), file); + this.map.set(file.fileName, file); } } @@ -57,3 +57,7 @@ export class MemResults { return [...this.map.keys()]; } } + +function unify(path) { + return path?.replace(/\\/g, '/'); +}