{ "name": "module-federation-dev-server", "implementation": "/packages/react/src/executors/module-federation-dev-server/module-federation-dev-server.impl.ts", "schema": { "version": 2, "outputCapture": "direct-nodejs", "title": "Module Federation Dev Server", "description": "Serve a web application.", "cli": "nx", "type": "object", "properties": { "devRemotes": { "type": "array", "items": { "oneOf": [ { "type": "string" }, { "type": "object", "properties": { "remoteName": { "type": "string" }, "configuration": { "type": "string" } }, "required": ["remoteName"], "additionalProperties": false } ] }, "description": "List of remote applications to run in development mode (i.e. using serve target).", "x-priority": "important" }, "skipRemotes": { "type": "array", "items": { "type": "string" }, "description": "List of remote applications to not automatically serve, either statically or in development mode. This will not remove the remotes from the `module-federation.config` file, and therefore the application may still try to fetch these remotes.\nThis option is useful if you have other means for serving the `remote` application(s).\n**NOTE:** Remotes that are not in the workspace will be skipped automatically.", "x-priority": "important" }, "buildTarget": { "type": "string", "description": "Target which builds the application.", "x-priority": "important" }, "port": { "type": "number", "description": "Port to listen on.", "default": 4200, "x-priority": "important" }, "host": { "type": "string", "description": "Host to listen on.", "default": "localhost" }, "ssl": { "type": "boolean", "description": "Serve using `HTTPS`.", "default": false }, "sslKey": { "type": "string", "description": "SSL key to use for serving `HTTPS`." }, "sslCert": { "type": "string", "description": "SSL certificate to use for serving `HTTPS`." }, "watch": { "type": "boolean", "description": "Watches for changes and rebuilds application.", "default": true }, "liveReload": { "type": "boolean", "description": "Whether to reload the page on change, using live-reload.", "default": true }, "hmr": { "type": "boolean", "description": "Enable hot module replacement.", "default": false }, "publicHost": { "type": "string", "description": "Public URL where the application will be served." }, "open": { "type": "boolean", "description": "Open the application in the browser.", "default": false, "x-priority": "important" }, "allowedHosts": { "type": "string", "description": "This option allows you to whitelist services that are allowed to access the dev server." }, "memoryLimit": { "type": "number", "description": "Memory limit for type checking service process in `MB`." }, "maxWorkers": { "type": "number", "description": "Number of workers to use for type checking." }, "baseHref": { "type": "string", "description": "Base url for the application being built." }, "static": { "type": "boolean", "description": "Whether to use a static file server instead of the webpack-dev-server. This should be used for remote applications that are also host applications." }, "isInitialHost": { "type": "boolean", "description": "Whether the host that is running this executor is the first in the project tree to do so.", "default": true, "x-priority": "internal" }, "parallel": { "type": "number", "description": "Max number of parallel processes for building static remotes" }, "staticRemotesPort": { "type": "number", "description": "The port at which to serve the file-server for the static remotes." }, "pathToManifestFile": { "type": "string", "description": "Path to a Module Federation manifest file (e.g. `my/path/to/module-federation.manifest.json`) containing the dynamic remote applications relative to the workspace root." } }, "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\nThe Module Federation Dev Server will serve a host application and find the remote applications associated with the host and serve them statically also. \nSee an example set up of it below:\n\n```json\n{\n \"serve\": {\n \"executor\": \"@nx/react:module-federation-dev-server\",\n \"configurations\": {\n \"production\": {\n \"buildTarget\": \"host:build:production\"\n },\n \"development\": {\n \"buildTarget\": \"host:build:development\"\n }\n },\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"port\": 4200,\n \"publicHost\": \"http://localhost:4200\"\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Serve host with remotes that can be live reloaded\" %}\nThe Module Federation Dev Server will serve a host application and find the remote applications associated with the host and serve a set selection with live reloading enabled also. \nSee an example set up of it below:\n\n```json\n{\n \"serve-with-hmr-remotes\": {\n \"executor\": \"@nx/react:module-federation-dev-server\",\n \"configurations\": {\n \"production\": {\n \"buildTarget\": \"host:build:production\"\n },\n \"development\": {\n \"buildTarget\": \"host:build:development\"\n }\n },\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"port\": 4200,\n \"publicHost\": \"http://localhost:4200\",\n \"devRemotes\": [\n \"remote1\",\n {\n \"remoteName\": \"remote2\",\n \"configuration\": \"development\"\n }\n ]\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", "presets": [] }, "description": "Serve a host or remote application.", "aliases": [], "hidden": false, "path": "/packages/react/src/executors/module-federation-dev-server/schema.json", "type": "executor" }