feat(nx-dev): rename plugins to extending nx (#18273)

This commit is contained in:
Miroslav Jonaš 2023-07-24 21:26:05 +02:00 committed by GitHub
parent 14b3f42900
commit ee7880c32e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 207 additions and 193 deletions

View File

@ -1,5 +1,5 @@
{ {
"/plugins/intro": { "/extending-nx/intro": {
"id": "intro", "id": "intro",
"name": "Intro", "name": "Intro",
"description": "Learn about plugins.", "description": "Learn about plugins.",
@ -12,7 +12,7 @@
"file": "shared/plugins/intro", "file": "shared/plugins/intro",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/intro/getting-started", "path": "/extending-nx/intro/getting-started",
"tags": [] "tags": []
}, },
{ {
@ -22,35 +22,35 @@
"file": "", "file": "",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/registry", "path": "/extending-nx/registry",
"tags": [] "tags": []
} }
], ],
"isExternal": false, "isExternal": false,
"path": "/plugins/intro", "path": "/extending-nx/intro",
"tags": [] "tags": []
}, },
"/plugins/intro/getting-started": { "/extending-nx/intro/getting-started": {
"id": "getting-started", "id": "getting-started",
"name": "Getting Started with Plugins", "name": "Getting Started with Plugins",
"description": "Learn how to extend Nx by creating and releasing your own Nx plugin.", "description": "Learn how to extend Nx by creating and releasing your own Nx plugin.",
"file": "shared/plugins/intro", "file": "shared/plugins/intro",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/intro/getting-started", "path": "/extending-nx/intro/getting-started",
"tags": [] "tags": []
}, },
"/plugins/registry": { "/extending-nx/registry": {
"id": "registry", "id": "registry",
"name": "Plugin Registry", "name": "Plugin Registry",
"description": "Browse official and community plugins", "description": "Browse official and community plugins",
"file": "", "file": "",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/registry", "path": "/extending-nx/registry",
"tags": [] "tags": []
}, },
"/plugins/tutorials": { "/extending-nx/tutorials": {
"id": "tutorials", "id": "tutorials",
"name": "5 Min Tutorials", "name": "5 Min Tutorials",
"description": "Get started with plugins", "description": "Get started with plugins",
@ -63,7 +63,7 @@
"file": "shared/plugins/create-plugin", "file": "shared/plugins/create-plugin",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/tutorials/create-plugin", "path": "/extending-nx/tutorials/create-plugin",
"tags": [] "tags": []
}, },
{ {
@ -73,35 +73,35 @@
"file": "shared/plugins/maintain-published-plugin", "file": "shared/plugins/maintain-published-plugin",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/tutorials/publish-plugin", "path": "/extending-nx/tutorials/publish-plugin",
"tags": [] "tags": []
} }
], ],
"isExternal": false, "isExternal": false,
"path": "/plugins/tutorials", "path": "/extending-nx/tutorials",
"tags": [] "tags": []
}, },
"/plugins/tutorials/create-plugin": { "/extending-nx/tutorials/create-plugin": {
"id": "create-plugin", "id": "create-plugin",
"name": "Create a Local Plugin", "name": "Create a Local Plugin",
"description": "", "description": "",
"file": "shared/plugins/create-plugin", "file": "shared/plugins/create-plugin",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/tutorials/create-plugin", "path": "/extending-nx/tutorials/create-plugin",
"tags": [] "tags": []
}, },
"/plugins/tutorials/publish-plugin": { "/extending-nx/tutorials/publish-plugin": {
"id": "publish-plugin", "id": "publish-plugin",
"name": "Maintain a Published Plugin", "name": "Maintain a Published Plugin",
"description": "", "description": "",
"file": "shared/plugins/maintain-published-plugin", "file": "shared/plugins/maintain-published-plugin",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/tutorials/publish-plugin", "path": "/extending-nx/tutorials/publish-plugin",
"tags": [] "tags": []
}, },
"/plugins/recipes": { "/extending-nx/recipes": {
"id": "recipes", "id": "recipes",
"name": "Recipes", "name": "Recipes",
"description": "Focused instructions to complete a specific task", "description": "Focused instructions to complete a specific task",
@ -114,7 +114,7 @@
"file": "shared/recipes/plugins/local-executors", "file": "shared/recipes/plugins/local-executors",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/local-executors", "path": "/extending-nx/recipes/local-executors",
"tags": ["use-task-executors"] "tags": ["use-task-executors"]
}, },
{ {
@ -124,7 +124,7 @@
"file": "shared/recipes/plugins/compose-executors", "file": "shared/recipes/plugins/compose-executors",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/compose-executors", "path": "/extending-nx/recipes/compose-executors",
"tags": ["use-task-executors"] "tags": ["use-task-executors"]
}, },
{ {
@ -134,7 +134,7 @@
"file": "shared/recipes/generators/local-generators", "file": "shared/recipes/generators/local-generators",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/local-generators", "path": "/extending-nx/recipes/local-generators",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
{ {
@ -144,7 +144,7 @@
"file": "shared/recipes/generators/composing-generators", "file": "shared/recipes/generators/composing-generators",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/composing-generators", "path": "/extending-nx/recipes/composing-generators",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
{ {
@ -154,7 +154,7 @@
"file": "shared/recipes/generators/generator-options", "file": "shared/recipes/generators/generator-options",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/generator-options", "path": "/extending-nx/recipes/generator-options",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
{ {
@ -164,7 +164,7 @@
"file": "shared/recipes/generators/creating-files", "file": "shared/recipes/generators/creating-files",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/creating-files", "path": "/extending-nx/recipes/creating-files",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
{ {
@ -174,7 +174,7 @@
"file": "shared/recipes/generators/modifying-files", "file": "shared/recipes/generators/modifying-files",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/modifying-files", "path": "/extending-nx/recipes/modifying-files",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
{ {
@ -184,7 +184,7 @@
"file": "shared/recipes/plugins/migration-generators", "file": "shared/recipes/plugins/migration-generators",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/migration-generators", "path": "/extending-nx/recipes/migration-generators",
"tags": ["create-your-own-plugin"] "tags": ["create-your-own-plugin"]
}, },
{ {
@ -194,7 +194,7 @@
"file": "shared/recipes/plugins/create-preset", "file": "shared/recipes/plugins/create-preset",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/create-preset", "path": "/extending-nx/recipes/create-preset",
"tags": ["create-your-own-plugin"] "tags": ["create-your-own-plugin"]
}, },
{ {
@ -204,7 +204,7 @@
"file": "shared/recipes/plugins/project-graph-plugins", "file": "shared/recipes/plugins/project-graph-plugins",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/project-graph-plugins", "path": "/extending-nx/recipes/project-graph-plugins",
"tags": ["create-your-own-plugin", "explore-graph"] "tags": ["create-your-own-plugin", "explore-graph"]
}, },
{ {
@ -214,122 +214,122 @@
"file": "shared/recipes/plugins/project-inference-plugins", "file": "shared/recipes/plugins/project-inference-plugins",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/project-inference-plugins", "path": "/extending-nx/recipes/project-inference-plugins",
"tags": ["create-your-own-plugin"] "tags": ["create-your-own-plugin"]
} }
], ],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes", "path": "/extending-nx/recipes",
"tags": [] "tags": []
}, },
"/plugins/recipes/local-executors": { "/extending-nx/recipes/local-executors": {
"id": "local-executors", "id": "local-executors",
"name": "Write a Simple Executor", "name": "Write a Simple Executor",
"description": "", "description": "",
"file": "shared/recipes/plugins/local-executors", "file": "shared/recipes/plugins/local-executors",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/local-executors", "path": "/extending-nx/recipes/local-executors",
"tags": ["use-task-executors"] "tags": ["use-task-executors"]
}, },
"/plugins/recipes/compose-executors": { "/extending-nx/recipes/compose-executors": {
"id": "compose-executors", "id": "compose-executors",
"name": "Compose Executors", "name": "Compose Executors",
"description": "", "description": "",
"file": "shared/recipes/plugins/compose-executors", "file": "shared/recipes/plugins/compose-executors",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/compose-executors", "path": "/extending-nx/recipes/compose-executors",
"tags": ["use-task-executors"] "tags": ["use-task-executors"]
}, },
"/plugins/recipes/local-generators": { "/extending-nx/recipes/local-generators": {
"id": "local-generators", "id": "local-generators",
"name": "Write a Simple Generator", "name": "Write a Simple Generator",
"description": "", "description": "",
"file": "shared/recipes/generators/local-generators", "file": "shared/recipes/generators/local-generators",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/local-generators", "path": "/extending-nx/recipes/local-generators",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
"/plugins/recipes/composing-generators": { "/extending-nx/recipes/composing-generators": {
"id": "composing-generators", "id": "composing-generators",
"name": "Compose Generators", "name": "Compose Generators",
"description": "", "description": "",
"file": "shared/recipes/generators/composing-generators", "file": "shared/recipes/generators/composing-generators",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/composing-generators", "path": "/extending-nx/recipes/composing-generators",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
"/plugins/recipes/generator-options": { "/extending-nx/recipes/generator-options": {
"id": "generator-options", "id": "generator-options",
"name": "Provide Options for Generators", "name": "Provide Options for Generators",
"description": "", "description": "",
"file": "shared/recipes/generators/generator-options", "file": "shared/recipes/generators/generator-options",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/generator-options", "path": "/extending-nx/recipes/generator-options",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
"/plugins/recipes/creating-files": { "/extending-nx/recipes/creating-files": {
"id": "creating-files", "id": "creating-files",
"name": "Create Files", "name": "Create Files",
"description": "", "description": "",
"file": "shared/recipes/generators/creating-files", "file": "shared/recipes/generators/creating-files",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/creating-files", "path": "/extending-nx/recipes/creating-files",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
"/plugins/recipes/modifying-files": { "/extending-nx/recipes/modifying-files": {
"id": "modifying-files", "id": "modifying-files",
"name": "Modify Files", "name": "Modify Files",
"description": "", "description": "",
"file": "shared/recipes/generators/modifying-files", "file": "shared/recipes/generators/modifying-files",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/modifying-files", "path": "/extending-nx/recipes/modifying-files",
"tags": ["use-code-generators"] "tags": ["use-code-generators"]
}, },
"/plugins/recipes/migration-generators": { "/extending-nx/recipes/migration-generators": {
"id": "migration-generators", "id": "migration-generators",
"name": "Write a Migration", "name": "Write a Migration",
"description": "", "description": "",
"file": "shared/recipes/plugins/migration-generators", "file": "shared/recipes/plugins/migration-generators",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/migration-generators", "path": "/extending-nx/recipes/migration-generators",
"tags": ["create-your-own-plugin"] "tags": ["create-your-own-plugin"]
}, },
"/plugins/recipes/create-preset": { "/extending-nx/recipes/create-preset": {
"id": "create-preset", "id": "create-preset",
"name": "Create a Preset", "name": "Create a Preset",
"description": "", "description": "",
"file": "shared/recipes/plugins/create-preset", "file": "shared/recipes/plugins/create-preset",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/create-preset", "path": "/extending-nx/recipes/create-preset",
"tags": ["create-your-own-plugin"] "tags": ["create-your-own-plugin"]
}, },
"/plugins/recipes/project-graph-plugins": { "/extending-nx/recipes/project-graph-plugins": {
"id": "project-graph-plugins", "id": "project-graph-plugins",
"name": "Modify the Project Graph", "name": "Modify the Project Graph",
"description": "", "description": "",
"file": "shared/recipes/plugins/project-graph-plugins", "file": "shared/recipes/plugins/project-graph-plugins",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/project-graph-plugins", "path": "/extending-nx/recipes/project-graph-plugins",
"tags": ["create-your-own-plugin", "explore-graph"] "tags": ["create-your-own-plugin", "explore-graph"]
}, },
"/plugins/recipes/project-inference-plugins": { "/extending-nx/recipes/project-inference-plugins": {
"id": "project-inference-plugins", "id": "project-inference-plugins",
"name": "Identify Custom Projects", "name": "Identify Custom Projects",
"description": "", "description": "",
"file": "shared/recipes/plugins/project-inference-plugins", "file": "shared/recipes/plugins/project-inference-plugins",
"itemList": [], "itemList": [],
"isExternal": false, "isExternal": false,
"path": "/plugins/recipes/project-inference-plugins", "path": "/extending-nx/recipes/project-inference-plugins",
"tags": ["create-your-own-plugin"] "tags": ["create-your-own-plugin"]
} }
} }

View File

@ -3685,17 +3685,17 @@
] ]
}, },
{ {
"id": "plugins", "id": "extending-nx",
"menu": [ "menu": [
{ {
"name": "Intro", "name": "Intro",
"path": "/plugins/intro", "path": "/extending-nx/intro",
"id": "intro", "id": "intro",
"isExternal": false, "isExternal": false,
"children": [ "children": [
{ {
"name": "Getting Started with Plugins", "name": "Getting Started with Plugins",
"path": "/plugins/intro/getting-started", "path": "/extending-nx/intro/getting-started",
"id": "getting-started", "id": "getting-started",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3703,7 +3703,7 @@
}, },
{ {
"name": "Plugin Registry", "name": "Plugin Registry",
"path": "/plugins/registry", "path": "/extending-nx/registry",
"id": "registry", "id": "registry",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3714,7 +3714,7 @@
}, },
{ {
"name": "Getting Started with Plugins", "name": "Getting Started with Plugins",
"path": "/plugins/intro/getting-started", "path": "/extending-nx/intro/getting-started",
"id": "getting-started", "id": "getting-started",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3722,7 +3722,7 @@
}, },
{ {
"name": "Plugin Registry", "name": "Plugin Registry",
"path": "/plugins/registry", "path": "/extending-nx/registry",
"id": "registry", "id": "registry",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3730,13 +3730,13 @@
}, },
{ {
"name": "5 Min Tutorials", "name": "5 Min Tutorials",
"path": "/plugins/tutorials", "path": "/extending-nx/tutorials",
"id": "tutorials", "id": "tutorials",
"isExternal": false, "isExternal": false,
"children": [ "children": [
{ {
"name": "Create a Local Plugin", "name": "Create a Local Plugin",
"path": "/plugins/tutorials/create-plugin", "path": "/extending-nx/tutorials/create-plugin",
"id": "create-plugin", "id": "create-plugin",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3744,7 +3744,7 @@
}, },
{ {
"name": "Maintain a Published Plugin", "name": "Maintain a Published Plugin",
"path": "/plugins/tutorials/publish-plugin", "path": "/extending-nx/tutorials/publish-plugin",
"id": "publish-plugin", "id": "publish-plugin",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3755,7 +3755,7 @@
}, },
{ {
"name": "Create a Local Plugin", "name": "Create a Local Plugin",
"path": "/plugins/tutorials/create-plugin", "path": "/extending-nx/tutorials/create-plugin",
"id": "create-plugin", "id": "create-plugin",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3763,7 +3763,7 @@
}, },
{ {
"name": "Maintain a Published Plugin", "name": "Maintain a Published Plugin",
"path": "/plugins/tutorials/publish-plugin", "path": "/extending-nx/tutorials/publish-plugin",
"id": "publish-plugin", "id": "publish-plugin",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3771,13 +3771,13 @@
}, },
{ {
"name": "Recipes", "name": "Recipes",
"path": "/plugins/recipes", "path": "/extending-nx/recipes",
"id": "recipes", "id": "recipes",
"isExternal": false, "isExternal": false,
"children": [ "children": [
{ {
"name": "Write a Simple Executor", "name": "Write a Simple Executor",
"path": "/plugins/recipes/local-executors", "path": "/extending-nx/recipes/local-executors",
"id": "local-executors", "id": "local-executors",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3785,7 +3785,7 @@
}, },
{ {
"name": "Compose Executors", "name": "Compose Executors",
"path": "/plugins/recipes/compose-executors", "path": "/extending-nx/recipes/compose-executors",
"id": "compose-executors", "id": "compose-executors",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3793,7 +3793,7 @@
}, },
{ {
"name": "Write a Simple Generator", "name": "Write a Simple Generator",
"path": "/plugins/recipes/local-generators", "path": "/extending-nx/recipes/local-generators",
"id": "local-generators", "id": "local-generators",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3801,7 +3801,7 @@
}, },
{ {
"name": "Compose Generators", "name": "Compose Generators",
"path": "/plugins/recipes/composing-generators", "path": "/extending-nx/recipes/composing-generators",
"id": "composing-generators", "id": "composing-generators",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3809,7 +3809,7 @@
}, },
{ {
"name": "Provide Options for Generators", "name": "Provide Options for Generators",
"path": "/plugins/recipes/generator-options", "path": "/extending-nx/recipes/generator-options",
"id": "generator-options", "id": "generator-options",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3817,7 +3817,7 @@
}, },
{ {
"name": "Create Files", "name": "Create Files",
"path": "/plugins/recipes/creating-files", "path": "/extending-nx/recipes/creating-files",
"id": "creating-files", "id": "creating-files",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3825,7 +3825,7 @@
}, },
{ {
"name": "Modify Files", "name": "Modify Files",
"path": "/plugins/recipes/modifying-files", "path": "/extending-nx/recipes/modifying-files",
"id": "modifying-files", "id": "modifying-files",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3833,7 +3833,7 @@
}, },
{ {
"name": "Write a Migration", "name": "Write a Migration",
"path": "/plugins/recipes/migration-generators", "path": "/extending-nx/recipes/migration-generators",
"id": "migration-generators", "id": "migration-generators",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3841,7 +3841,7 @@
}, },
{ {
"name": "Create a Preset", "name": "Create a Preset",
"path": "/plugins/recipes/create-preset", "path": "/extending-nx/recipes/create-preset",
"id": "create-preset", "id": "create-preset",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3849,7 +3849,7 @@
}, },
{ {
"name": "Modify the Project Graph", "name": "Modify the Project Graph",
"path": "/plugins/recipes/project-graph-plugins", "path": "/extending-nx/recipes/project-graph-plugins",
"id": "project-graph-plugins", "id": "project-graph-plugins",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3857,7 +3857,7 @@
}, },
{ {
"name": "Identify Custom Projects", "name": "Identify Custom Projects",
"path": "/plugins/recipes/project-inference-plugins", "path": "/extending-nx/recipes/project-inference-plugins",
"id": "project-inference-plugins", "id": "project-inference-plugins",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3868,7 +3868,7 @@
}, },
{ {
"name": "Write a Simple Executor", "name": "Write a Simple Executor",
"path": "/plugins/recipes/local-executors", "path": "/extending-nx/recipes/local-executors",
"id": "local-executors", "id": "local-executors",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3876,7 +3876,7 @@
}, },
{ {
"name": "Compose Executors", "name": "Compose Executors",
"path": "/plugins/recipes/compose-executors", "path": "/extending-nx/recipes/compose-executors",
"id": "compose-executors", "id": "compose-executors",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3884,7 +3884,7 @@
}, },
{ {
"name": "Write a Simple Generator", "name": "Write a Simple Generator",
"path": "/plugins/recipes/local-generators", "path": "/extending-nx/recipes/local-generators",
"id": "local-generators", "id": "local-generators",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3892,7 +3892,7 @@
}, },
{ {
"name": "Compose Generators", "name": "Compose Generators",
"path": "/plugins/recipes/composing-generators", "path": "/extending-nx/recipes/composing-generators",
"id": "composing-generators", "id": "composing-generators",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3900,7 +3900,7 @@
}, },
{ {
"name": "Provide Options for Generators", "name": "Provide Options for Generators",
"path": "/plugins/recipes/generator-options", "path": "/extending-nx/recipes/generator-options",
"id": "generator-options", "id": "generator-options",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3908,7 +3908,7 @@
}, },
{ {
"name": "Create Files", "name": "Create Files",
"path": "/plugins/recipes/creating-files", "path": "/extending-nx/recipes/creating-files",
"id": "creating-files", "id": "creating-files",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3916,7 +3916,7 @@
}, },
{ {
"name": "Modify Files", "name": "Modify Files",
"path": "/plugins/recipes/modifying-files", "path": "/extending-nx/recipes/modifying-files",
"id": "modifying-files", "id": "modifying-files",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3924,7 +3924,7 @@
}, },
{ {
"name": "Write a Migration", "name": "Write a Migration",
"path": "/plugins/recipes/migration-generators", "path": "/extending-nx/recipes/migration-generators",
"id": "migration-generators", "id": "migration-generators",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3932,7 +3932,7 @@
}, },
{ {
"name": "Create a Preset", "name": "Create a Preset",
"path": "/plugins/recipes/create-preset", "path": "/extending-nx/recipes/create-preset",
"id": "create-preset", "id": "create-preset",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3940,7 +3940,7 @@
}, },
{ {
"name": "Modify the Project Graph", "name": "Modify the Project Graph",
"path": "/plugins/recipes/project-graph-plugins", "path": "/extending-nx/recipes/project-graph-plugins",
"id": "project-graph-plugins", "id": "project-graph-plugins",
"isExternal": false, "isExternal": false,
"children": [], "children": [],
@ -3948,7 +3948,7 @@
}, },
{ {
"name": "Identify Custom Projects", "name": "Identify Custom Projects",
"path": "/plugins/recipes/project-inference-plugins", "path": "/extending-nx/recipes/project-inference-plugins",
"id": "project-inference-plugins", "id": "project-inference-plugins",
"isExternal": false, "isExternal": false,
"children": [], "children": [],

View File

@ -186,7 +186,7 @@
"file": "shared/recipes/plugins/project-graph-plugins", "file": "shared/recipes/plugins/project-graph-plugins",
"id": "project-graph-plugins", "id": "project-graph-plugins",
"name": "Modify the Project Graph", "name": "Modify the Project Graph",
"path": "/plugins/recipes/project-graph-plugins" "path": "/extending-nx/recipes/project-graph-plugins"
}, },
{ {
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
@ -504,14 +504,14 @@
"file": "shared/recipes/plugins/local-executors", "file": "shared/recipes/plugins/local-executors",
"id": "local-executors", "id": "local-executors",
"name": "Write a Simple Executor", "name": "Write a Simple Executor",
"path": "/plugins/recipes/local-executors" "path": "/extending-nx/recipes/local-executors"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/plugins/compose-executors", "file": "shared/recipes/plugins/compose-executors",
"id": "compose-executors", "id": "compose-executors",
"name": "Compose Executors", "name": "Compose Executors",
"path": "/plugins/recipes/compose-executors" "path": "/extending-nx/recipes/compose-executors"
}, },
{ {
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
@ -562,35 +562,35 @@
"file": "shared/recipes/generators/local-generators", "file": "shared/recipes/generators/local-generators",
"id": "local-generators", "id": "local-generators",
"name": "Write a Simple Generator", "name": "Write a Simple Generator",
"path": "/plugins/recipes/local-generators" "path": "/extending-nx/recipes/local-generators"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/generators/composing-generators", "file": "shared/recipes/generators/composing-generators",
"id": "composing-generators", "id": "composing-generators",
"name": "Compose Generators", "name": "Compose Generators",
"path": "/plugins/recipes/composing-generators" "path": "/extending-nx/recipes/composing-generators"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/generators/generator-options", "file": "shared/recipes/generators/generator-options",
"id": "generator-options", "id": "generator-options",
"name": "Provide Options for Generators", "name": "Provide Options for Generators",
"path": "/plugins/recipes/generator-options" "path": "/extending-nx/recipes/generator-options"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/generators/creating-files", "file": "shared/recipes/generators/creating-files",
"id": "creating-files", "id": "creating-files",
"name": "Create Files", "name": "Create Files",
"path": "/plugins/recipes/creating-files" "path": "/extending-nx/recipes/creating-files"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/generators/modifying-files", "file": "shared/recipes/generators/modifying-files",
"id": "modifying-files", "id": "modifying-files",
"name": "Modify Files", "name": "Modify Files",
"path": "/plugins/recipes/modifying-files" "path": "/extending-nx/recipes/modifying-files"
}, },
{ {
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
@ -645,28 +645,28 @@
"file": "shared/recipes/plugins/migration-generators", "file": "shared/recipes/plugins/migration-generators",
"id": "migration-generators", "id": "migration-generators",
"name": "Write a Migration", "name": "Write a Migration",
"path": "/plugins/recipes/migration-generators" "path": "/extending-nx/recipes/migration-generators"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/plugins/create-preset", "file": "shared/recipes/plugins/create-preset",
"id": "create-preset", "id": "create-preset",
"name": "Create a Preset", "name": "Create a Preset",
"path": "/plugins/recipes/create-preset" "path": "/extending-nx/recipes/create-preset"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/plugins/project-graph-plugins", "file": "shared/recipes/plugins/project-graph-plugins",
"id": "project-graph-plugins", "id": "project-graph-plugins",
"name": "Modify the Project Graph", "name": "Modify the Project Graph",
"path": "/plugins/recipes/project-graph-plugins" "path": "/extending-nx/recipes/project-graph-plugins"
}, },
{ {
"description": "", "description": "",
"file": "shared/recipes/plugins/project-inference-plugins", "file": "shared/recipes/plugins/project-inference-plugins",
"id": "project-inference-plugins", "id": "project-inference-plugins",
"name": "Identify Custom Projects", "name": "Identify Custom Projects",
"path": "/plugins/recipes/project-inference-plugins" "path": "/extending-nx/recipes/project-inference-plugins"
} }
], ],
"environment-variables": [ "environment-variables": [

View File

@ -2,4 +2,4 @@ Nx plugins are npm packages that contain [generators](/core-features/plugin-feat
This package contains tooling to help plugin authors create and maintain plugins. This package contains tooling to help plugin authors create and maintain plugins.
For more information, see the [plugins](/plugins/intro/getting-started) section of docs. For more information, see the [plugins](/extending-nx/intro/getting-started) section of docs.

View File

@ -4,7 +4,7 @@ The workspace plugin contains executors and generators that are useful for any N
Codifying your organization's best practices into local generators is a great way to ensure that the best practices are easy to follow and implement. Running `nx g @nx/plugin:plugin feature` will create a local plugin with a generator which is written the same way generators are written for Nx plugins. Codifying your organization's best practices into local generators is a great way to ensure that the best practices are easy to follow and implement. Running `nx g @nx/plugin:plugin feature` will create a local plugin with a generator which is written the same way generators are written for Nx plugins.
> See more about [local generators](/plugins/recipes/local-generators) > See more about [local generators](/extending-nx/recipes/local-generators)
## Reorganizing Projects ## Reorganizing Projects

View File

@ -732,8 +732,8 @@
] ]
}, },
{ {
"name": "Plugins", "name": "Extending Nx",
"id": "plugins", "id": "extending-nx",
"description": "Learn more about creating your own plugin, extending Nx.", "description": "Learn more about creating your own plugin, extending Nx.",
"itemList": [ "itemList": [
{ {
@ -752,7 +752,7 @@
"description": "Browse official and community plugins", "description": "Browse official and community plugins",
"id": "registry", "id": "registry",
"file": "", "file": "",
"path": "/plugins/registry", "path": "/extending-nx/registry",
"isExternal": false "isExternal": false
} }
] ]

View File

@ -176,7 +176,7 @@ Each target contains a configuration object that tells Nx how to run that target
The most critical parts are: The most critical parts are:
- `executor` - This corresponds to the `builder` property in an Angular CLI workspace. You can use Angular builders or executors from [Nx plugins](/plugins/intro/getting-started). - `executor` - This corresponds to the `builder` property in an Angular CLI workspace. You can use Angular builders or executors from [Nx plugins](/extending-nx/intro/getting-started).
- `options` - these are additional properties and flags passed to the executor function to customize it - `options` - these are additional properties and flags passed to the executor function to customize it
Learn more about how to [run tasks with Nx](/core-features/run-tasks). Learn more about how to [run tasks with Nx](/core-features/run-tasks).

View File

@ -1,6 +1,6 @@
# Workspace Executors # Workspace Executors
In Nx 13.10+, local nx plugins can contain executors that are used in the workspace. When creating a custom executor for your workspace, look into the [local executor guide](/plugins/recipes/local-executors) to simplify the build process. In Nx 13.10+, local nx plugins can contain executors that are used in the workspace. When creating a custom executor for your workspace, look into the [local executor guide](/extending-nx/recipes/local-executors) to simplify the build process.
## Converting workspace executors to local executors ## Converting workspace executors to local executors

View File

@ -4,7 +4,7 @@ In Nx 13.10, we introduced the ability to run generators from Nx plugins in the
By using a "local" plugin, you can set the plugin as your workspace's default collection and get several other affordances that are not provided to workspace generators. This is the preferred method for "workspace generators", and existing generators will eventually be transitioned to use a local plugin. By using a "local" plugin, you can set the plugin as your workspace's default collection and get several other affordances that are not provided to workspace generators. This is the preferred method for "workspace generators", and existing generators will eventually be transitioned to use a local plugin.
Check the [local generator guide](/plugins/recipes/local-generators) for information on creating a new plugin. Check the [local generator guide](/extending-nx/recipes/local-generators) for information on creating a new plugin.
## Converting workspace generators to local generators ## Converting workspace generators to local generators

View File

@ -5,7 +5,7 @@ Nx used to have a `workspace.json` file at the root of the repo that at various
1. Identified the locations of all project in the repo 1. Identified the locations of all project in the repo
2. Contained the target configuration for all projects 2. Contained the target configuration for all projects
Identifying the locations of projects is now done automatically through project inference. You can even customize how projects are inferred with a [project inference plugin](/plugins/recipes/project-inference-plugins). Identifying the locations of projects is now done automatically through project inference. You can even customize how projects are inferred with a [project inference plugin](/extending-nx/recipes/project-inference-plugins).
The target configuration for each project is now stored in individual `project.json` files or `package.json` files. The target configuration for each project is now stored in individual `project.json` files or `package.json` files.

View File

@ -23,7 +23,7 @@ Nx is built in a modular fashion to let you only use the features you need.
![High-level Nx architecture](/shared/images/nx-architecture.svg) ![High-level Nx architecture](/shared/images/nx-architecture.svg)
- The **Nx** package provides fundamental technology-agnostic capabilities such as: [workspace analysis](/core-features/explore-graph), [task running](/core-features/run-tasks), [caching](/core-features/cache-task-results), [distribution](/core-features/distribute-task-execution), [code generation](/core-features/plugin-features/use-code-generators) and [automated code migrations](/core-features/automate-updating-dependencies). - The **Nx** package provides fundamental technology-agnostic capabilities such as: [workspace analysis](/core-features/explore-graph), [task running](/core-features/run-tasks), [caching](/core-features/cache-task-results), [distribution](/core-features/distribute-task-execution), [code generation](/core-features/plugin-features/use-code-generators) and [automated code migrations](/core-features/automate-updating-dependencies).
- **Plugins** are NPM packages that built on top of the fundamental capabilities provided by the Nx package. Nx plugins contain [code generators](/core-features/plugin-features/use-code-generators), [executors](/core-features/plugin-features/use-task-executors) (to abstract lower-level build tooling) and automated code migrations for keeping your tools up to date. Contrary to the Nx package, which works the same way with any JS or non-JS project, plugins are usually technology specific. For instance, `@nx/react` adds support for building React apps and libs, `@nx/cypress` adds e2e testing capabilities with Cypress. Plugins make developers more productive by removing any friction of integrating different tools with each other and by providing utilities to keep them up to date. The Nx team maintains plugins for React, Next, Remix, Angular, Jest, Cypress, Storybook and more. You can use the `@nx/plugin` package to easily [scaffold a new plugin](/plugins/intro/getting-started) or even just [automate your local workspace](/plugins/recipes/local-generators). There are also more than 80 [community plugins](/plugins/registry). - **Plugins** are NPM packages that built on top of the fundamental capabilities provided by the Nx package. Nx plugins contain [code generators](/core-features/plugin-features/use-code-generators), [executors](/core-features/plugin-features/use-task-executors) (to abstract lower-level build tooling) and automated code migrations for keeping your tools up to date. Contrary to the Nx package, which works the same way with any JS or non-JS project, plugins are usually technology specific. For instance, `@nx/react` adds support for building React apps and libs, `@nx/cypress` adds e2e testing capabilities with Cypress. Plugins make developers more productive by removing any friction of integrating different tools with each other and by providing utilities to keep them up to date. The Nx team maintains plugins for React, Next, Remix, Angular, Jest, Cypress, Storybook and more. You can use the `@nx/plugin` package to easily [scaffold a new plugin](/extending-nx/intro/getting-started) or even just [automate your local workspace](/extending-nx/recipes/local-generators). There are also more than 80 [community plugins](/extending-nx/registry).
- **Devkit** is a set of utilities for [building Nx plugins](/plugins/intro/getting-started). - **Devkit** is a set of utilities for [building Nx plugins](/extending-nx/intro/getting-started).
- **Nx Cloud** helps scale your project on CI by [adding remote caching](/concepts/how-caching-works) and [distributed task execution](/concepts/more-concepts/illustrated-dte). It also improves developer ergonomics by integrating with GitHub, GitLab and BitBucket and providing searchable structured logs. Learn more at [nx.app](https://nx.app). - **Nx Cloud** helps scale your project on CI by [adding remote caching](/concepts/how-caching-works) and [distributed task execution](/concepts/more-concepts/illustrated-dte). It also improves developer ergonomics by integrating with GitHub, GitLab and BitBucket and providing searchable structured logs. Learn more at [nx.app](https://nx.app).
- **Nx Console** is an extension for **VSCode, IntelliJ and VIM**. It provides code autocompletion, interactive generators, workspace visualizations, powerful refactorings and more. You can [install it here](/core-features/integrate-with-editors). - **Nx Console** is an extension for **VSCode, IntelliJ and VIM**. It provides code autocompletion, interactive generators, workspace visualizations, powerful refactorings and more. You can [install it here](/core-features/integrate-with-editors).

View File

@ -16,7 +16,7 @@ myorg/
`/libs/` contains the library projects. There are many kinds of libraries, and each library defines its own external API so that boundaries between libraries remain clear. `/libs/` contains the library projects. There are many kinds of libraries, and each library defines its own external API so that boundaries between libraries remain clear.
`/tools/` contains scripts that act on your code base. This could be database scripts, [local executors](/plugins/recipes/local-executors), or [local generators](/plugins/recipes/local-generators). `/tools/` contains scripts that act on your code base. This could be database scripts, [local executors](/extending-nx/recipes/local-executors), or [local generators](/extending-nx/recipes/local-generators).
`/nx.json` configures the Nx CLI itself. It tells Nx what needs to be cached, how to run tasks etc. `/nx.json` configures the Nx CLI itself. It tells Nx what needs to be cached, how to run tasks etc.

View File

@ -2,4 +2,4 @@ Nx plugins are npm packages that contain [generators](/core-features/plugin-feat
This package contains tooling to help plugin authors create and maintain plugins. This package contains tooling to help plugin authors create and maintain plugins.
For more information, see the [plugins](/plugins/intro/getting-started) section of docs. For more information, see the [plugins](/extending-nx/intro/getting-started) section of docs.

View File

@ -4,7 +4,7 @@ The workspace plugin contains executors and generators that are useful for any N
Codifying your organization's best practices into local generators is a great way to ensure that the best practices are easy to follow and implement. Running `nx g @nx/plugin:plugin feature` will create a local plugin with a generator which is written the same way generators are written for Nx plugins. Codifying your organization's best practices into local generators is a great way to ensure that the best practices are easy to follow and implement. Running `nx g @nx/plugin:plugin feature` will create a local plugin with a generator which is written the same way generators are written for Nx plugins.
> See more about [local generators](/plugins/recipes/local-generators) > See more about [local generators](/extending-nx/recipes/local-generators)
## Reorganizing Projects ## Reorganizing Projects

View File

@ -7,7 +7,7 @@ Generators provide a way to automate many tasks you regularly perform as part of
There are three main types of generators: There are three main types of generators:
1. **Plugin Generators** are available when an Nx plugin has been installed in your workspace. 1. **Plugin Generators** are available when an Nx plugin has been installed in your workspace.
2. **Local Generators** are generators that you can create for your own workspace. [Local generators](/plugins/recipes/local-generators) allow you to codify the processes that are unique to your own organization. 2. **Local Generators** are generators that you can create for your own workspace. [Local generators](/extending-nx/recipes/local-generators) allow you to codify the processes that are unique to your own organization.
3. **Update Generators** are invoked by Nx plugins when you [update Nx](/recipes/adopting-nx) to keep your config files in sync with the latest versions of third party tools. 3. **Update Generators** are invoked by Nx plugins when you [update Nx](/recipes/adopting-nx) to keep your config files in sync with the latest versions of third party tools.
## Invoking Plugin Generators ## Invoking Plugin Generators

View File

@ -20,7 +20,7 @@ nx generate @nx/plugin:generator my-generator --project=my-plugin
The new generator is located in `/src/generators/my-generator`. The `my-generator.ts` file contains the code that runs the generator. This generator creates a new project using a folder of template files. The new generator is located in `/src/generators/my-generator`. The `my-generator.ts` file contains the code that runs the generator. This generator creates a new project using a folder of template files.
For more information about this sample generator, read the [simple generator recipe](/plugins/recipes/local-generators). For more information about this sample generator, read the [simple generator recipe](/extending-nx/recipes/local-generators).
### Generator options ### Generator options
@ -48,7 +48,7 @@ nx generate @nx/plugin:executor my-executor --project=my-plugin
The new executor is located in `/src/executors/my-executor`. The `my-executor.ts` file contains the code that runs the executor. This executor emits a console log, but executors can compile code, deploy an app, publish to NPM and much more. The new executor is located in `/src/executors/my-executor`. The `my-executor.ts` file contains the code that runs the executor. This executor emits a console log, but executors can compile code, deploy an app, publish to NPM and much more.
For more information about this sample executor, read the [simple executor recipe](/plugins/recipes/local-executors). For more information about this sample executor, read the [simple executor recipe](/extending-nx/recipes/local-executors).
### Executor testing ### Executor testing

View File

@ -17,10 +17,9 @@ Nx plugins help you scaffold new projects, pre-configure tooling, follow best pr
{% cards cols="2" %} {% cards cols="2" %}
{% card title="Browse Existing Plugins" description="Find a plugin to use" url="/plugins/registry" /%} {% card title="Browse Existing Plugins" description="Find a plugin to use" url="/extending-nx/registry" /%}
{% card title="Use Task Executors" description="Run operations on your code" url="/core-features/plugin-features/use-task-executors" /%} {% card title="Use Task Executors" description="Run operations on your code" url="/core-features/plugin-features/use-task-executors" /%}
{% card title="Use Code Generators" description="Create or modify code" url="/core-features/plugin-features/use-code-generators" /%} {% card title="Use Code Generators" description="Create or modify code" url="/core-features/plugin-features/use-code-generators" /%}
{% card title="Automate Updating Dependencies" description="Keep code up to date with package breaking changes" url="/core-features/automate-updating-dependencies" /%}
{% /cards %} {% /cards %}
@ -30,9 +29,9 @@ Local plugins allow you to automate repository specific tasks and enforce best p
{% cards cols="3" %} {% cards cols="3" %}
{% card title="Create a Plugin" description="Set up a new plugin" url="/plugins/tutorials/create-plugin" /%} {% card title="Create a Plugin" description="Set up a new plugin" url="/extending-nx/tutorials/create-plugin" /%}
{% card title="Local Generators" description="Add a generator to your plugin" url="/plugins/recipes/local-generators" /%} {% card title="Local Generators" description="Add a generator to your plugin" url="/extending-nx/recipes/local-generators" /%}
{% card title="Local Executors" description="Add an executor to your plugin" url="/plugins/recipes/local-executors" /%} {% card title="Local Executors" description="Add an executor to your plugin" url="/extending-nx/recipes/local-executors" /%}
{% /cards %} {% /cards %}
@ -42,8 +41,8 @@ If your plugin has functionality that would be useful in more than just your rep
{% cards cols="2" %} {% cards cols="2" %}
{% card title="Share Your Plugin" description="Submit your plugin to the Nx plugin registry" url="/plugins/tutorials/publish-plugin" /%} {% card title="Share Your Plugin" description="Submit your plugin to the Nx plugin registry" url="/extending-nx/tutorials/publish-plugin" /%}
{% card title="Migration Generators" description="Update repos when you introduce breaking changes" url="/plugins/recipes/migration-generators" /%} {% card title="Migration Generators" description="Update repos when you introduce breaking changes" url="/extending-nx/recipes/migration-generators" /%}
{% /cards %} {% /cards %}
@ -53,8 +52,8 @@ You can also hook into the way Nx works and modify it to suit your needs
{% cards cols="3" %} {% cards cols="3" %}
{% card title="Scaffold a New Workspace" description="Set up a new repo" url="/plugins/recipes/create-preset" /%} {% card title="Scaffold a New Workspace" description="Set up a new repo" url="/extending-nx/recipes/create-preset" /%}
{% card title="Project Inference Plugins" description="Modify how Nx identifies projects" url="/plugins/recipes/project-inference-plugins" /%} {% card title="Project Inference Plugins" description="Modify how Nx identifies projects" url="/extending-nx/recipes/project-inference-plugins" /%}
{% card title="Project Graph Plugins" description="Modify the Nx graph" url="/plugins/recipes/project-graph-plugins" /%} {% card title="Project Graph Plugins" description="Modify the Nx graph" url="/extending-nx/recipes/project-graph-plugins" /%}
{% /cards %} {% /cards %}

View File

@ -1,6 +1,6 @@
# Maintain a Published Plugins # Maintain a Published Plugins
To create a plugin, see the [create a local plugin tutorial](/plugins/tutorials/create-plugin). To create a plugin, see the [create a local plugin tutorial](/extending-nx/tutorials/create-plugin).
## Publish your Nx Plugin ## Publish your Nx Plugin
@ -32,4 +32,4 @@ We will then verify the plugin, offer suggestions or merge the pull request!
## Write Migrations ## Write Migrations
Once other repos are using your plugin, it would help them if you write migrations to automatically update their configuration files whenever you make breaking changes. Read the [migration generators guide](/plugins/recipes/migration-generators) to find out how. Once other repos are using your plugin, it would help them if you write migrations to automatically update their configuration files whenever you make breaking changes. Read the [migration generators guide](/extending-nx/recipes/migration-generators) to find out how.

View File

@ -163,7 +163,7 @@ Each target contains a configuration object that tells Nx how to run that target
The most critical parts are: The most critical parts are:
- `executor` - this is of the syntax `<plugin>:<executor-name>`, where the `plugin` is an NPM package containing an [Nx Plugin](/plugins/intro/getting-started) and `<executor-name>` points to a function that runs the task. In this case, the `@nx/vite` plugin contains the `dev-server` executor which serves the React app using Vite. - `executor` - this is of the syntax `<plugin>:<executor-name>`, where the `plugin` is an NPM package containing an [Nx Plugin](/extending-nx/intro/getting-started) and `<executor-name>` points to a function that runs the task. In this case, the `@nx/vite` plugin contains the `dev-server` executor which serves the React app using Vite.
- `options` - these are additional properties and flags passed to the executor function to customize it - `options` - these are additional properties and flags passed to the executor function to customize it
Learn more about how to [run tasks with Nx](/core-features/run-tasks). Learn more about how to [run tasks with Nx](/core-features/run-tasks).

View File

@ -4,7 +4,7 @@ Modifying existing files is an order of magnitude harder than creating new files
## Compose Existing Generators ## Compose Existing Generators
If you can compose together existing generators to modify the files you need, you should take that approach. See [Composing Generators](/plugins/recipes/composing-generators) for more information. If you can compose together existing generators to modify the files you need, you should take that approach. See [Composing Generators](/extending-nx/recipes/composing-generators) for more information.
## Modify JSON Files ## Modify JSON Files

View File

@ -13,7 +13,7 @@ width="100%" /%}
At its core, a preset is a special [generator](/core-features/plugin-features/use-code-generators) that is shipped as part of an Nx Plugin package. At its core, a preset is a special [generator](/core-features/plugin-features/use-code-generators) that is shipped as part of an Nx Plugin package.
All first-party Nx presets are built into Nx itself, but you can [create your own plugin](/plugins/intro/getting-started) and create a generator with the magic name: `preset`. Once you've [published your plugin](/plugins/tutorials/publish-plugin) on npm, you can now run the `create-nx-workspace` command with the preset option set to the name of your published package. All first-party Nx presets are built into Nx itself, but you can [create your own plugin](/extending-nx/intro/getting-started) and create a generator with the magic name: `preset`. Once you've [published your plugin](/extending-nx/tutorials/publish-plugin) on npm, you can now run the `create-nx-workspace` command with the preset option set to the name of your published package.
To use a concrete example, let's look at the [`qwik-nx`](https://www.npmjs.com/package/qwik-nx) Nx community plugin. They include a [preset generator](https://github.com/qwikifiers/qwik-nx/tree/main/packages/qwik-nx/src/generators/preset) that you can use to create a new Nx workspace with Qwik support. To use a concrete example, let's look at the [`qwik-nx`](https://www.npmjs.com/package/qwik-nx) Nx community plugin. They include a [preset generator](https://github.com/qwikifiers/qwik-nx/tree/main/packages/qwik-nx/src/generators/preset) that you can use to create a new Nx workspace with Qwik support.
@ -90,7 +90,7 @@ export default async function (tree: Tree, options: PresetGeneratorSchema) {
} }
``` ```
To get an in-depth guide on customizing/running or debugging your generator see [local generators](/plugins/recipes/local-generators). To get an in-depth guide on customizing/running or debugging your generator see [local generators](/extending-nx/recipes/local-generators).
## Usage ## Usage

View File

@ -136,7 +136,7 @@ A repository using Nx without [plugins](#plugin) that prioritizes the independen
A set of [executors](#executor), [generators](#generator) and other code that extends the functionality of Nx. May be installed from a package manager like NPM or developed directly in the repository. A set of [executors](#executor), [generators](#generator) and other code that extends the functionality of Nx. May be installed from a package manager like NPM or developed directly in the repository.
> See: [Create Your Own Plugin](/plugins/intro/getting-started) > See: [Create Your Own Plugin](/extending-nx/intro/getting-started)
### Polyrepo ### Polyrepo

View File

@ -222,26 +222,26 @@
- [Standalone NgRx APIs](/recipes/other/standalone-ngrx-apis) - [Standalone NgRx APIs](/recipes/other/standalone-ngrx-apis)
- [Unknown Local Cache Error](/recipes/other/unknown-local-cache) - [Unknown Local Cache Error](/recipes/other/unknown-local-cache)
- Plugins - Extending-nx
- [Intro](/plugins/intro) - [Intro](/extending-nx/intro)
- [Getting Started with Plugins](/plugins/intro/getting-started) - [Getting Started with Plugins](/extending-nx/intro/getting-started)
- [Plugin Registry](/plugins/registry) - [Plugin Registry](/extending-nx/registry)
- [5 Min Tutorials](/plugins/tutorials) - [5 Min Tutorials](/extending-nx/tutorials)
- [Create a Local Plugin](/plugins/tutorials/create-plugin) - [Create a Local Plugin](/extending-nx/tutorials/create-plugin)
- [Maintain a Published Plugin](/plugins/tutorials/publish-plugin) - [Maintain a Published Plugin](/extending-nx/tutorials/publish-plugin)
- [Recipes](/plugins/recipes) - [Recipes](/extending-nx/recipes)
- [Write a Simple Executor](/plugins/recipes/local-executors) - [Write a Simple Executor](/extending-nx/recipes/local-executors)
- [Compose Executors](/plugins/recipes/compose-executors) - [Compose Executors](/extending-nx/recipes/compose-executors)
- [Write a Simple Generator](/plugins/recipes/local-generators) - [Write a Simple Generator](/extending-nx/recipes/local-generators)
- [Compose Generators](/plugins/recipes/composing-generators) - [Compose Generators](/extending-nx/recipes/composing-generators)
- [Provide Options for Generators](/plugins/recipes/generator-options) - [Provide Options for Generators](/extending-nx/recipes/generator-options)
- [Create Files](/plugins/recipes/creating-files) - [Create Files](/extending-nx/recipes/creating-files)
- [Modify Files](/plugins/recipes/modifying-files) - [Modify Files](/extending-nx/recipes/modifying-files)
- [Write a Migration](/plugins/recipes/migration-generators) - [Write a Migration](/extending-nx/recipes/migration-generators)
- [Create a Preset](/plugins/recipes/create-preset) - [Create a Preset](/extending-nx/recipes/create-preset)
- [Modify the Project Graph](/plugins/recipes/project-graph-plugins) - [Modify the Project Graph](/extending-nx/recipes/project-graph-plugins)
- [Identify Custom Projects](/plugins/recipes/project-inference-plugins) - [Identify Custom Projects](/extending-nx/recipes/project-inference-plugins)
- Cloud - Cloud

View File

@ -22,7 +22,7 @@ export function DocViewer({
const router = useRouter(); const router = useRouter();
const hideTableOfContent = const hideTableOfContent =
router.asPath.includes('/getting-started/intro') || router.asPath.includes('/getting-started/intro') ||
router.asPath.includes('/plugins/intro/getting-started') || router.asPath.includes('/extending-nx/intro/getting-started') ||
router.asPath.includes('/packages/devkit') || router.asPath.includes('/packages/devkit') ||
router.asPath.includes('/reference/glossary'); router.asPath.includes('/reference/glossary');
const ref = useRef<HTMLDivElement | null>(null); const ref = useRef<HTMLDivElement | null>(null);

View File

@ -1,9 +1,9 @@
import { DocumentsApi } from '@nx/nx-dev/data-access-documents/node-only'; import { DocumentsApi } from '@nx/nx-dev/data-access-documents/node-only';
import documents from '../public/documentation/generated/manifests/plugins.json'; import documents from '../public/documentation/generated/manifests/extending-nx.json';
import { tagsApi } from './tags.api'; import { tagsApi } from './tags.api';
export const nxPluginsApi = new DocumentsApi({ export const nxPluginsApi = new DocumentsApi({
id: 'plugins', id: 'extending-nx',
manifest: documents, manifest: documents,
prefix: '', prefix: '',
publicDocsRoot: 'public/documentation', publicDocsRoot: 'public/documentation',

View File

@ -83,7 +83,7 @@ export const getStaticPaths: GetStaticPaths = () => {
return { return {
paths: nxPluginsApi paths: nxPluginsApi
.getSlugsStaticDocumentPaths() .getSlugsStaticDocumentPaths()
.filter((v) => v !== '/plugins/registry'), .filter((v) => v !== '/extending-nx/registry'),
fallback: 'blocking', fallback: 'blocking',
}; };
}; };
@ -93,7 +93,7 @@ export const getStaticProps: GetStaticProps = async ({
params: { segments: string[] }; params: { segments: string[] };
}) => { }) => {
try { try {
const segments = ['plugins', ...params.segments]; const segments = ['extending-nx', ...params.segments];
const document = nxPluginsApi.getDocument(segments); const document = nxPluginsApi.getDocument(segments);
return { return {
props: { props: {
@ -101,7 +101,7 @@ export const getStaticProps: GetStaticProps = async ({
relatedDocuments: tagsApi relatedDocuments: tagsApi
.getAssociatedItemsFromTags(document.tags) .getAssociatedItemsFromTags(document.tags)
.filter((item) => item.path !== '/' + segments.join('/')), // Remove currently displayed item .filter((item) => item.path !== '/' + segments.join('/')), // Remove currently displayed item
menu: menusApi.getMenu('plugins', ''), menu: menusApi.getMenu('extending-nx', ''),
}, },
}; };
} catch (e) { } catch (e) {

View File

@ -81,13 +81,13 @@ export default function PluginsRoot({
export const getStaticProps: GetStaticProps = async () => { export const getStaticProps: GetStaticProps = async () => {
const document = nxPluginsApi.generateRootDocumentIndex({ const document = nxPluginsApi.generateRootDocumentIndex({
name: 'Plugins', name: 'Extending Nx',
description: 'Learn quickly how to do things with Nx.', description: 'Learn more about creating your own plugin, extending Nx.',
}); });
return { return {
props: { props: {
document, document,
menu: menusApi.getMenu('plugins', ''), menu: menusApi.getMenu('extending-nx', ''),
relatedDocuments: document.tags relatedDocuments: document.tags
.map((t) => tagsApi.getAssociatedItems(t)) .map((t) => tagsApi.getAssociatedItems(t))
.flat(), .flat(),

View File

@ -71,7 +71,7 @@ export default function Browse(props: BrowseProps): JSX.Element {
menu: Menu; menu: Menu;
} = { } = {
menu: { menu: {
sections: [getBasicPluginsSection(menusApi.getMenu('plugins', ''))], sections: [getBasicPluginsSection(menusApi.getMenu('extending-nx', ''))],
}, },
}; };

View File

@ -213,7 +213,7 @@ const diataxis = {
'/using-nx/updating-nx': '/core-features/automate-updating-dependencies', '/using-nx/updating-nx': '/core-features/automate-updating-dependencies',
'/using-nx/nx-nodejs-typescript-version-matrix': '/using-nx/nx-nodejs-typescript-version-matrix':
'/workspace/nx-nodejs-typescript-version-matrix', '/workspace/nx-nodejs-typescript-version-matrix',
'/extending-nx/nx-devkit': '/plugins/intro/getting-started', '/extending-nx/nx-devkit': '/extending-nx/intro/getting-started',
'/extending-nx/project-inference-plugins': '/extending-nx/project-inference-plugins':
'/recipes/advanced-plugins/project-inference-plugins', '/recipes/advanced-plugins/project-inference-plugins',
'/extending-nx/project-graph-plugins': '/extending-nx/project-graph-plugins':
@ -654,27 +654,33 @@ const nested5minuteTutorialUrls = {
}; };
const pluginUrls = { const pluginUrls = {
'/plugin-features/create-your-own-plugin': '/plugins/tutorials/create-plugin', '/plugin-features/create-your-own-plugin':
'/recipes/advanced-plugins': '/plugins/recipes', '/extending-nx/tutorials/create-plugin',
'/recipes/advanced-plugins/create-preset': '/plugins/recipes/create-preset', '/recipes/advanced-plugins': '/extending-nx/recipes',
'/recipes/advanced-plugins/create-preset':
'/extending-nx/recipes/create-preset',
'/recipes/advanced-plugins/migration-generators': '/recipes/advanced-plugins/migration-generators':
'/plugins/recipes/migration-generators', '/extending-nx/recipes/migration-generators',
'/recipes/advanced-plugins/project-graph-plugins': '/recipes/advanced-plugins/project-graph-plugins':
'/plugins/recipes/project-graph-plugins', '/extending-nx/recipes/project-graph-plugins',
'/recipes/advanced-plugins/project-inference-plugins': '/recipes/advanced-plugins/project-inference-plugins':
'/plugins/recipes/project-inference-plugins', '/extending-nx/recipes/project-inference-plugins',
'/recipes/advanced-plugins/share-your-plugin': '/recipes/advanced-plugins/share-your-plugin':
'/plugins/tutorials/maintain-published-plugin', '/extending-nx/tutorials/maintain-published-plugin',
'/recipes/executors/compose-executors': '/plugins/recipes/compose-executors', '/recipes/executors/compose-executors':
'/extending-nx/recipes/compose-executors',
'/recipes/executors/creating-custom-executors': '/recipes/executors/creating-custom-executors':
'/plugins/recipes/local-executors', '/extending-nx/recipes/local-executors',
'/recipes/generators': '/plugins/recipes', '/recipes/generators': '/extending-nx/recipes',
'/recipes/generators/composing-generators': '/recipes/generators/composing-generators':
'/plugins/recipes/composing-generators', '/extending-nx/recipes/composing-generators',
'/recipes/generators/creating-files': '/plugins/recipes/creating-files', '/recipes/generators/creating-files': '/extending-nx/recipes/creating-files',
'/recipes/generators/generator-options': '/plugins/recipes/generator-options', '/recipes/generators/generator-options':
'/recipes/generators/local-generators': '/plugins/recipes/local-generators', '/extending-nx/recipes/generator-options',
'/recipes/generators/modifying-files': '/plugins/recipes/modifying-files', '/recipes/generators/local-generators':
'/extending-nx/recipes/local-generators',
'/recipes/generators/modifying-files':
'/extending-nx/recipes/modifying-files',
}; };
const referenceUrls = { const referenceUrls = {
@ -709,6 +715,11 @@ const makeMoreConceptsSubmenu = {
'/more-concepts/:path*': '/concepts/more-concepts/:path*', '/more-concepts/:path*': '/concepts/more-concepts/:path*',
}; };
const pluginsToExtendNx = {
'/plugins': '/extending-nx',
'/plugins/:path*': '/extending-nx/:path*',
};
/** /**
* Public export API * Public export API
*/ */
@ -731,4 +742,5 @@ module.exports = {
missingAndCatchAllRedirects, missingAndCatchAllRedirects,
movePluginFeaturesToCore, movePluginFeaturesToCore,
makeMoreConceptsSubmenu, makeMoreConceptsSubmenu,
pluginsToExtendNx,
}; };

View File

@ -40,7 +40,7 @@ export function DocumentationHeader({
const router = useRouter(); const router = useRouter();
const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud'); const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud');
const isPackages: boolean = router.asPath.startsWith('/packages'); const isPackages: boolean = router.asPath.startsWith('/packages');
const isPlugins: boolean = router.asPath.startsWith('/plugins'); const isPlugins: boolean = router.asPath.startsWith('/extending-nx');
const isRecipes: boolean = router.asPath.startsWith('/recipes'); const isRecipes: boolean = router.asPath.startsWith('/recipes');
const isChangelog: boolean = router.asPath.startsWith('/changelog'); const isChangelog: boolean = router.asPath.startsWith('/changelog');
const isNx: boolean = const isNx: boolean =
@ -53,16 +53,16 @@ export function DocumentationHeader({
href: '/nx-cloud/intro/what-is-nx-cloud', href: '/nx-cloud/intro/what-is-nx-cloud',
current: isNxCloud, current: isNxCloud,
}, },
{
name: 'Extending Nx',
href: '/extending-nx/intro/getting-started',
current: isPlugins,
},
{ {
name: 'Packages', name: 'Packages',
href: '/packages', href: '/packages',
current: isPackages, current: isPackages,
}, },
{
name: 'Plugins',
href: '/plugins/intro/getting-started',
current: isPlugins,
},
{ {
name: 'Recipes', name: 'Recipes',
href: '/recipes', href: '/recipes',

View File

@ -68,9 +68,9 @@ export function Header(): JSX.Element {
href: '/community', href: '/community',
}, },
{ {
name: 'Plugins', name: 'Extending Nx',
description: 'Add capabilities to your workspace with plugins.', description: 'Add capabilities to your workspace with plugins.',
href: '/plugins/intro/getting-started', href: '/extending-nx/intro/getting-started',
}, },
{ {
name: 'Nx Conf', name: 'Nx Conf',
@ -186,7 +186,7 @@ export function Header(): JSX.Element {
Community Community
</Link> </Link>
<Link <Link
href="/plugins/registry" href="/extending-nx/registry"
title="Check Nx available plugins" title="Check Nx available plugins"
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500 md:inline-flex" className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500 md:inline-flex"
> >

View File

@ -179,7 +179,7 @@ export function SidebarMobile({
const router = useRouter(); const router = useRouter();
const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud'); const isNxCloud: boolean = router.asPath.startsWith('/nx-cloud');
const isPackages: boolean = router.asPath.startsWith('/packages'); const isPackages: boolean = router.asPath.startsWith('/packages');
const isPlugins: boolean = router.asPath.startsWith('/plugins'); const isPlugins: boolean = router.asPath.startsWith('/extending-nx');
const isRecipes: boolean = router.asPath.startsWith('/recipes'); const isRecipes: boolean = router.asPath.startsWith('/recipes');
const isNx: boolean = !isNxCloud && !isPackages && !isPlugins && !isRecipes; const isNx: boolean = !isNxCloud && !isPackages && !isPlugins && !isRecipes;
@ -197,8 +197,8 @@ export function SidebarMobile({
current: isPackages, current: isPackages,
}, },
{ {
name: 'Plugins', name: 'Extending Nx',
href: '/plugins/intro/getting-started', href: '/extending-nx/intro/getting-started',
current: isPlugins, current: isPlugins,
}, },
{ {

View File

@ -18,7 +18,10 @@ export function ConnectWithUs(): JSX.Element {
</p> </p>
<p className="py-4"> <p className="py-4">
Looking for community plugins? Find them listed in the{' '} Looking for community plugins? Find them listed in the{' '}
<a href="/plugins/registry" className="underline font-semibold"> <a
href="/extending-nx/registry"
className="underline font-semibold"
>
plugin registry plugin registry
</a> </a>
. .

View File

@ -38,7 +38,7 @@ export function MonorepoStyles(): JSX.Element {
<span className="font-medium">let Nx do the heavy lifting</span>{' '} <span className="font-medium">let Nx do the heavy lifting</span>{' '}
with its set of{' '} with its set of{' '}
<Link <Link
href="/plugins" href="/extending-nx"
title="Install VSCode's native extension for Nx" title="Install VSCode's native extension for Nx"
className="font-medium text-blue-500 dark:text-sky-500" className="font-medium text-blue-500 dark:text-sky-500"
> >

View File

@ -368,10 +368,10 @@ function createDocumentSections(
prefix: 'recipes', prefix: 'recipes',
}, },
{ {
name: 'plugins', name: 'extending-nx',
content: documents.find((x) => x.id === 'plugins')! content: documents.find((x) => x.id === 'extending-nx')!
.itemList as Partial<DocumentMetadata>[], .itemList as Partial<DocumentMetadata>[],
prefix: 'plugins', prefix: 'extending-nx',
}, },
{ {
name: 'cloud', name: 'cloud',