{ "name": "host", "factory": "./src/generators/host/host", "schema": { "$schema": "https://json-schema.org/schema", "$id": "NxMFHost", "cli": "nx", "title": "Nx Module Federation Consumer (Host) Application", "description": "Create an Angular Consumer (Host) Module Federation Application.", "type": "object", "examples": [ { "command": "nx g @nx/angular:host appName --remotes=remote1", "description": "Create an Angular application with configuration in place for Module Federation. If the `remotes` option is provided, attach the Producer (remote) application to this application's configuration" }, { "command": "nx g @nx/angular:consumer appName --producers=remote1", "description": "Create an Angular application with configuration in place for Module Federation. If the `producers` option is provided, attach the Producer (remote) application to this application's configuration" } ], "properties": { "directory": { "description": "The directory of the new application.", "type": "string", "$default": { "$source": "argv", "index": 0 }, "x-prompt": "Which directory do you want to create the application in?" }, "name": { "type": "string", "description": "The name to give to the Consumer (host) Angular application.", "pattern": "^[a-zA-Z][^:]*$", "x-priority": "important" }, "remotes": { "type": "array", "description": "The names of the Producers (remote) applications to add to the Consumer (host).", "x-priority": "important", "alias": "producers" }, "bundler": { "type": "string", "description": "The bundler to use for the host application.", "default": "webpack", "enum": ["webpack", "rspack"] }, "dynamic": { "type": "boolean", "description": "Should the host application use dynamic federation?", "default": false }, "style": { "description": "The file extension to be used for style files.", "type": "string", "default": "css", "enum": ["css", "scss", "sass", "less"], "x-prompt": { "message": "Which stylesheet format would you like to use?", "type": "list", "items": [ { "value": "css", "label": "CSS" }, { "value": "scss", "label": "SASS(.scss) [ https://sass-lang.com ]" }, { "value": "sass", "label": "SASS(.sass) [ https://sass-lang.com ]" }, { "value": "less", "label": "LESS [ https://lesscss.org ]" } ] } }, "inlineStyle": { "description": "Specifies if the style will be in the ts file.", "type": "boolean", "default": false, "alias": "s" }, "inlineTemplate": { "description": "Specifies if the template will be in the ts file.", "type": "boolean", "default": false, "alias": "t" }, "viewEncapsulation": { "description": "Specifies the view encapsulation strategy.", "enum": ["Emulated", "None", "ShadowDom"], "type": "string" }, "prefix": { "type": "string", "format": "html-selector", "description": "The prefix to apply to generated selectors.", "alias": "p" }, "skipTests": { "description": "Skip creating spec files.", "type": "boolean", "default": false, "alias": "S" }, "skipPackageJson": { "type": "boolean", "default": false, "description": "Do not add dependencies to `package.json`.", "x-priority": "internal" }, "skipPostInstall": { "type": "boolean", "default": false, "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`.", "x-priority": "internal" }, "unitTestRunner": { "type": "string", "enum": ["jest", "vitest", "none"], "description": "Test runner to use for unit tests.", "x-prompt": "Which unit test runner would you like to use?", "default": "jest" }, "e2eTestRunner": { "type": "string", "enum": ["playwright", "cypress", "none"], "description": "Test runner to use for end to end (E2E) tests.", "x-prompt": "Which E2E test runner would you like to use?", "default": "playwright" }, "tags": { "type": "string", "description": "Add tags to the application (used for linting)." }, "linter": { "description": "The tool to use for running lint checks.", "type": "string", "enum": ["eslint", "none"], "default": "eslint" }, "backendProject": { "type": "string", "description": "Backend project that provides data to this application. This sets up `proxy.config.json`." }, "strict": { "type": "boolean", "description": "Create an application with stricter type checking and build optimization options.", "default": true }, "setParserOptionsProject": { "type": "boolean", "description": "Whether or not to configure the ESLint `parserOptions.project` option. We do not do this by default for lint performance reasons.", "default": false }, "addTailwind": { "type": "boolean", "description": "Whether to configure Tailwind CSS for the application.", "default": false }, "skipFormat": { "description": "Skip formatting files.", "type": "boolean", "default": false, "x-priority": "internal" }, "standalone": { "type": "boolean", "description": "Whether to generate a Consumer (host) application that uses standalone components.", "default": true }, "ssr": { "description": "Whether to configure SSR for the Consumer (host) application", "type": "boolean", "default": false, "x-priority": "important" }, "serverRouting": { "description": "Creates a server application using the Server Routing and App Engine APIs for application using the `application` builder (Developer Preview). _Note: this is only supported in Angular versions 19.x.x_. From Angular 20 onwards, SSR will always enable server routing when using the `application` builder.", "type": "boolean" }, "typescriptConfiguration": { "type": "boolean", "description": "Whether the module federation configuration and webpack configuration files should use TS.", "default": true } }, "additionalProperties": false, "required": ["directory"], "presets": [] }, "x-type": "application", "description": "Generate a Host Angular Module Federation Application.", "aliases": ["consumer"], "implementation": "/packages/angular/src/generators/host/host.ts", "hidden": false, "path": "/packages/angular/src/generators/host/schema.json", "type": "generator" }