## Current Behavior Our Module Federation support across Angular and React contains Host and Remote generators. The module-federation.io docs have started to shift towards Consumer and Producer terminology for better translation of meanings across languages. ## Expected Behavior To stay consistent with official terminology, add aliases for the host and remote generators to allow for the new terminology. i.e. host -> consumer, remote -> producer. Therefore the following are all valid ```shell nx g host shell --remotes=remote1 nx g host shell --producers=producer1 nx g consumer shell --remotes=remote1 nx g consumer shell --producers=remote1 nx g remote remote1 --host=shell nx g remote remote1 --consumer=shell nx g producer producer1 --host=shell nx g producer producer1 --consumer=shell ```
143 lines
6.7 KiB
JSON
143 lines
6.7 KiB
JSON
{
|
|
"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 Producer (remote) applications to run in development mode (i.e. using serve target).",
|
|
"x-priority": "important",
|
|
"alias": "devProducers"
|
|
},
|
|
"skipRemotes": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "List of Producer (remote) applications to not automatically serve, either statically or in development mode. This will not remove the Producers (remotes) from the `module-federation.config` file, and therefore the application may still try to fetch these Producers (remotes).\nThis option is useful if you have other means for serving the Producer (remote) application(s).\n**NOTE:** Producers (remotes) that are not in the workspace will be skipped automatically.",
|
|
"x-priority": "important",
|
|
"alias": "skipProducers"
|
|
},
|
|
"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 Producer (remote) applications that are also Consumer (host) applications."
|
|
},
|
|
"isInitialHost": {
|
|
"type": "boolean",
|
|
"description": "Whether the Consumer (host) that is running this executor is the first in the project tree to do so.",
|
|
"default": true,
|
|
"x-priority": "internal",
|
|
"alias": "isInitialConsumer"
|
|
},
|
|
"parallel": {
|
|
"type": "number",
|
|
"description": "Max number of parallel processes for building static Producers (remotes)"
|
|
},
|
|
"staticRemotesPort": {
|
|
"type": "number",
|
|
"description": "The port at which to serve the file-server for the static Producers (remotes).",
|
|
"alias": "staticProducersPort"
|
|
},
|
|
"pathToManifestFile": {
|
|
"type": "string",
|
|
"description": "Path to a Module Federation manifest file (e.g. `my/path/to/module-federation.manifest.json`) containing the dynamic Producer (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"
|
|
}
|