diff --git a/packages/react/src/generators/remote/remote.rspack.spec.ts b/packages/react/src/generators/remote/remote.rspack.spec.ts index 93893d7be2..13a54fc1fa 100644 --- a/packages/react/src/generators/remote/remote.rspack.spec.ts +++ b/packages/react/src/generators/remote/remote.rspack.spec.ts @@ -1,9 +1,15 @@ import 'nx/src/internal-testing-utils/mock-project-graph'; -import { ProjectGraph, readJson, readNxJson } from '@nx/devkit'; +import { + ProjectGraph, + readJson, + readNxJson, + readProjectConfiguration, +} from '@nx/devkit'; import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; import { Linter } from '@nx/eslint'; import remote from './remote'; +import host from '../host/host'; import { getRootTsConfigPathInTree } from '@nx/js'; jest.mock('@nx/devkit', () => { @@ -100,6 +106,37 @@ describe('remote generator', () => { }); describe('bundler=rspack', () => { + it('should set up continuous tasks when host is provided', async () => { + const tree = createTreeWithEmptyWorkspace(); + await host(tree, { + directory: 'test/host', + name: 'host', + skipFormat: true, + bundler: 'rspack', + e2eTestRunner: 'cypress', + linter: Linter.EsLint, + unitTestRunner: 'jest', + style: 'css', + }); + + await remote(tree, { + directory: 'test/remote', + name: 'remote', + devServerPort: 4201, + e2eTestRunner: 'cypress', + linter: Linter.EsLint, + skipFormat: true, + style: 'css', + unitTestRunner: 'jest', + typescriptConfiguration: false, + bundler: 'rspack', + host: 'host', + }); + + const remoteProject = readProjectConfiguration(tree, 'remote'); + expect(remoteProject.targets.serve.dependsOn).toEqual(['host:serve']); + }); + it('should create the remote with the correct config files', async () => { const tree = createTreeWithEmptyWorkspace(); await remote(tree, { diff --git a/packages/react/src/generators/remote/remote.ts b/packages/react/src/generators/remote/remote.ts index 5d649c8865..d6ec782ff3 100644 --- a/packages/react/src/generators/remote/remote.ts +++ b/packages/react/src/generators/remote/remote.ts @@ -220,6 +220,14 @@ export async function remoteGenerator(host: Tree, schema: Schema) { ); } + if (options.host && options.bundler === 'rspack') { + const projectConfig = readProjectConfiguration(host, options.projectName); + projectConfig.targets.serve ??= {}; + projectConfig.targets.serve.dependsOn ??= []; + projectConfig.targets.serve.dependsOn.push(`${options.host}:serve`); + updateProjectConfiguration(host, options.projectName, projectConfig); + } + if (options.host && options.dynamic) { const hostConfig = readProjectConfiguration(host, schema.host); const pathToMFManifest = joinPathFragments(