From b4122c3df3a87ecd380404441d706b41cecabdc4 Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Sat, 16 Mar 2024 07:12:31 -0700 Subject: [PATCH 01/34] feat(nx-dev): Added bun support --- packages/nx/src/utils/package-manager.ts | 35 ++++++++++++++++++------ 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/packages/nx/src/utils/package-manager.ts b/packages/nx/src/utils/package-manager.ts index eebfc8d33fedf..c0523225d373f 100644 --- a/packages/nx/src/utils/package-manager.ts +++ b/packages/nx/src/utils/package-manager.ts @@ -13,7 +13,7 @@ import { workspaceRoot } from './workspace-root'; const execAsync = promisify(exec); -export type PackageManager = 'yarn' | 'pnpm' | 'npm'; +export type PackageManager = 'yarn' | 'pnpm' | 'npm' | 'bun'; export interface PackageManagerCommands { preInstall?: string; @@ -34,14 +34,13 @@ export interface PackageManagerCommands { */ export function detectPackageManager(dir: string = ''): PackageManager { const nxJson = readNxJson(); - return ( - nxJson.cli?.packageManager ?? - (existsSync(join(dir, 'yarn.lock')) - ? 'yarn' - : existsSync(join(dir, 'pnpm-lock.yaml')) - ? 'pnpm' - : 'npm') - ); + return nxJson.cli?.packageManager ?? existsSync(join(dir, 'bun.lockb')) + ? 'bun' + : existsSync(join(dir, 'yarn.lock')) + ? 'yarn' + : existsSync(join(dir, 'pnpm-lock.yaml')) + ? 'pnpm' + : 'npm'; } /** @@ -53,6 +52,10 @@ export function isWorkspacesEnabled( packageManager: PackageManager = detectPackageManager(), root: string = workspaceRoot ): boolean { + if (packageManager === 'bun') { + return existsSync(join(root, 'bun-workspace.yaml')); + } + if (packageManager === 'pnpm') { return existsSync(join(root, 'pnpm-workspace.yaml')); } @@ -142,6 +145,20 @@ export function getPackageManagerCommand( list: 'npm ls', }; }, + bun: () => { + return { + install: 'bun install', + ciInstall: 'bun install --no-cache', + updateLockFile: 'bun install', + add: 'bun add', + addDev: 'bun add --dev', + rm: 'bun rm', + exec: 'bun', + dlx: 'bunx', + run: (script: string, args: string) => `bun run ${script} -- ${args}`, + list: 'bun pm ls', + }; + }, }; return commands[packageManager](); From 98cc98ea3a3c583a6d316235d4940899314813ba Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Sat, 16 Mar 2024 07:14:31 -0700 Subject: [PATCH 02/34] feat(nx-dev): Updated bun.js support --- packages/nx/src/utils/package-manager.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/nx/src/utils/package-manager.ts b/packages/nx/src/utils/package-manager.ts index c0523225d373f..98964c98f7865 100644 --- a/packages/nx/src/utils/package-manager.ts +++ b/packages/nx/src/utils/package-manager.ts @@ -52,10 +52,6 @@ export function isWorkspacesEnabled( packageManager: PackageManager = detectPackageManager(), root: string = workspaceRoot ): boolean { - if (packageManager === 'bun') { - return existsSync(join(root, 'bun-workspace.yaml')); - } - if (packageManager === 'pnpm') { return existsSync(join(root, 'pnpm-workspace.yaml')); } From a6484a1991d15393fcfa64ccaa04c482f452691f Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Sat, 16 Mar 2024 07:28:42 -0700 Subject: [PATCH 03/34] fix(js): fixed typing --- packages/nx/src/utils/command-line-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nx/src/utils/command-line-utils.ts b/packages/nx/src/utils/command-line-utils.ts index 1208c6c51b1d5..341bbe6e4f4af 100644 --- a/packages/nx/src/utils/command-line-utils.ts +++ b/packages/nx/src/utils/command-line-utils.ts @@ -39,7 +39,7 @@ export interface NxArgs { } export function createOverrides(__overrides_unparsed__: string[] = []) { - let overrides = + let overrides: any = yargsParser(__overrides_unparsed__, { configuration: { 'camel-case-expansion': false, From 050f768ae0112fe3e7d6dfbb2ece16598a27e8e2 Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Sat, 16 Mar 2024 07:50:51 -0700 Subject: [PATCH 04/34] fix(js): added docs From c973c4ccdbbac2f2cad895393990a98b15bedf69 Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Sat, 16 Mar 2024 07:55:47 -0700 Subject: [PATCH 05/34] fix(js): docs deleted --- docs/generated/devkit/ChangeType.md | 20 - docs/generated/devkit/CreateDependencies.md | 27 - .../devkit/CreateDependenciesContext.md | 60 - docs/generated/devkit/CreateNodes.md | 11 - docs/generated/devkit/CreateNodesContext.md | 31 - docs/generated/devkit/CreateNodesFunction.md | 28 - docs/generated/devkit/CreateNodesResult.md | 24 - docs/generated/devkit/CustomHasher.md | 18 - .../devkit/DefaultTasksRunnerOptions.md | 76 - docs/generated/devkit/DependencyType.md | 35 - docs/generated/devkit/DynamicDependency.md | 16 - docs/generated/devkit/Executor.md | 26 - docs/generated/devkit/ExecutorContext.md | 126 - docs/generated/devkit/ExecutorsJson.md | 20 - docs/generated/devkit/FileChange.md | 44 - docs/generated/devkit/FileData.md | 35 - docs/generated/devkit/FileMap.md | 20 - docs/generated/devkit/Generator.md | 26 - docs/generated/devkit/GeneratorCallback.md | 13 - docs/generated/devkit/GeneratorsJson.md | 27 - docs/generated/devkit/Hash.md | 31 - docs/generated/devkit/Hasher.md | 3 - docs/generated/devkit/HasherContext.md | 41 - docs/generated/devkit/ImplicitDependency.md | 15 - .../devkit/ImplicitDependencyEntry.md | 13 - .../devkit/ImplicitJsonSubsetDependency.md | 11 - docs/generated/devkit/JsonParseOptions.md | 70 - docs/generated/devkit/JsonSerializeOptions.md | 21 - docs/generated/devkit/MigrationsJson.md | 56 - docs/generated/devkit/NX_VERSION.md | 7 - docs/generated/devkit/NxAffectedConfig.md | 19 - docs/generated/devkit/NxJsonConfiguration.md | 271 - docs/generated/devkit/NxPlugin.md | 5 - docs/generated/devkit/NxPluginV1.md | 16 - docs/generated/devkit/NxPluginV2.md | 19 - docs/generated/devkit/PackageManager.md | 3 - docs/generated/devkit/PluginConfiguration.md | 3 - docs/generated/devkit/ProjectConfiguration.md | 130 - docs/generated/devkit/ProjectFileMap.md | 7 - docs/generated/devkit/ProjectGraph.md | 36 - docs/generated/devkit/ProjectGraphBuilder.md | 288 - .../devkit/ProjectGraphDependency.md | 33 - .../devkit/ProjectGraphExternalNode.md | 44 - docs/generated/devkit/ProjectGraphNode.md | 7 - .../devkit/ProjectGraphProcessorContext.md | 57 - .../devkit/ProjectGraphProjectNode.md | 31 - .../devkit/ProjectTargetConfigurator.md | 21 - docs/generated/devkit/ProjectType.md | 5 - .../devkit/ProjectsConfigurations.md | 36 - docs/generated/devkit/README.md | 158 - .../devkit/RawProjectGraphDependency.md | 7 - docs/generated/devkit/RemoteCache.md | 50 - docs/generated/devkit/StaticDependency.md | 18 - docs/generated/devkit/StringChange.md | 5 - docs/generated/devkit/StringDeletion.md | 31 - docs/generated/devkit/StringInsertion.md | 31 - docs/generated/devkit/Target.md | 27 - docs/generated/devkit/TargetConfiguration.md | 102 - docs/generated/devkit/TargetDefaults.md | 3 - .../devkit/TargetDependencyConfig.md | 45 - docs/generated/devkit/Task.md | 115 - docs/generated/devkit/TaskGraph.md | 35 - docs/generated/devkit/TaskGraphExecutor.md | 28 - docs/generated/devkit/TaskHasher.md | 110 - docs/generated/devkit/ToJSOptions.md | 11 - docs/generated/devkit/Tree.md | 204 - docs/generated/devkit/Workspace.md | 383 - .../devkit/WorkspaceJsonConfiguration.md | 7 - docs/generated/devkit/Workspaces.md | 45 - .../devkit/addDependenciesToPackageJson.md | 29 - .../devkit/addProjectConfiguration.md | 18 - docs/generated/devkit/appRootPath.md | 9 - docs/generated/devkit/applyChangesToString.md | 44 - docs/generated/devkit/cacheDir.md | 5 - docs/generated/devkit/convertNxExecutor.md | 17 - docs/generated/devkit/convertNxGenerator.md | 47 - .../createProjectFileMapUsingProjectGraph.md | 13 - .../devkit/createProjectGraphAsync.md | 37 - docs/generated/devkit/defaultTasksRunner.md | 23 - docs/generated/devkit/detectPackageManager.md | 15 - docs/generated/devkit/ensurePackage.md | 62 - .../devkit/extractLayoutDirectory.md | 20 - docs/generated/devkit/formatFiles.md | 15 - docs/generated/devkit/generateFiles.md | 38 - .../getOutputsForTargetAndConfiguration.md | 34 - .../devkit/getPackageManagerCommand.md | 24 - .../devkit/getPackageManagerVersion.md | 18 - docs/generated/devkit/getProjects.md | 17 - docs/generated/devkit/getWorkspaceLayout.md | 28 - docs/generated/devkit/glob.md | 20 - docs/generated/devkit/hashArray.md | 13 - docs/generated/devkit/installPackagesTask.md | 19 - docs/generated/devkit/isWorkspacesEnabled.md | 16 - docs/generated/devkit/joinPathFragments.md | 16 - docs/generated/devkit/logger.md | 14 - .../devkit/moveFilesToNewDirectory.md | 17 - docs/generated/devkit/names.md | 30 - docs/generated/devkit/ngcli_adapter/.nojekyll | 1 - .../devkit/ngcli_adapter/NxScopedHost.md | 384 - docs/generated/devkit/ngcli_adapter/README.md | 12 - .../ngcli_adapter/mockSchematicsForTesting.md | 31 - .../wrapAngularDevkitSchematic.md | 27 - docs/generated/devkit/normalizePath.md | 16 - docs/generated/devkit/offsetFromRoot.md | 22 - docs/generated/devkit/output.md | 3 - docs/generated/devkit/parseJson.md | 25 - docs/generated/devkit/parseTargetString.md | 61 - .../devkit/readCachedProjectGraph.md | 13 - docs/generated/devkit/readJson.md | 23 - docs/generated/devkit/readJsonFile.md | 24 - docs/generated/devkit/readNxJson.md | 25 - .../devkit/readProjectConfiguration.md | 20 - ...adProjectsConfigurationFromProjectGraph.md | 15 - docs/generated/devkit/readTargetOptions.md | 24 - .../removeDependenciesFromPackageJson.md | 28 - .../devkit/removeProjectConfiguration.md | 16 - docs/generated/devkit/reverse.md | 18 - docs/generated/devkit/runExecutor.md | 49 - docs/generated/devkit/runTasksInSerial.md | 15 - docs/generated/devkit/serializeJson.md | 25 - docs/generated/devkit/stripIndents.md | 26 - docs/generated/devkit/stripJsonComments.md | 18 - docs/generated/devkit/targetToTargetString.md | 15 - docs/generated/devkit/toJS.md | 16 - docs/generated/devkit/updateJson.md | 25 - docs/generated/devkit/updateNxJson.md | 16 - .../devkit/updateProjectConfiguration.md | 17 - docs/generated/devkit/updateTsConfigsToJs.md | 15 - docs/generated/devkit/validateDependency.md | 20 - docs/generated/devkit/visitNotIgnoredFiles.md | 17 - docs/generated/devkit/workspaceLayout.md | 14 - docs/generated/devkit/workspaceRoot.md | 5 - docs/generated/devkit/writeJson.md | 24 - docs/generated/devkit/writeJsonFile.md | 23 - docs/generated/manifests/ci.json | 1908 --- docs/generated/manifests/extending-nx.json | 346 - docs/generated/manifests/menus.json | 10384 ---------------- docs/generated/manifests/nx-api.json | 3253 ----- docs/generated/manifests/nx.json | 7381 ----------- docs/generated/manifests/tags.json | 1160 -- docs/generated/packages-metadata.json | 3222 ----- .../documents/angular-nx-version-matrix.md | 36 - .../packages/angular/documents/overview.md | 125 - .../angular/executors/application.json | 743 -- .../angular/executors/browser-esbuild.json | 657 - .../angular/executors/delegate-build.json | 44 - .../angular/executors/dev-server.json | 156 - .../angular/executors/extract-i18n.json | 55 - .../module-federation-dev-server.json | 157 - .../executors/module-federation-dev-ssr.json | 96 - .../angular/executors/ng-packagr-lite.json | 52 - .../packages/angular/executors/package.json | 61 - .../angular/executors/webpack-browser.json | 698 -- .../angular/executors/webpack-server.json | 378 - .../angular/generators/add-linting.json | 62 - .../angular/generators/application.json | 198 - .../generators/component-cypress-spec.json | 74 - .../angular/generators/component-story.json | 64 - .../angular/generators/component-test.json | 63 - .../angular/generators/component.json | 144 - .../convert-to-application-executor.json | 34 - .../generators/convert-to-with-mf.json | 41 - .../cypress-component-configuration.json | 49 - .../angular/generators/directive.json | 97 - .../angular/generators/federate-module.json | 90 - .../packages/angular/generators/host.json | 191 - .../packages/angular/generators/init.json | 45 - .../library-secondary-entry-point.json | 51 - .../packages/angular/generators/library.json | 217 - .../packages/angular/generators/move.json | 70 - .../packages/angular/generators/ng-add.json | 76 - .../generators/ngrx-feature-store.json | 80 - .../angular/generators/ngrx-root-store.json | 79 - .../packages/angular/generators/ngrx.json | 111 - .../packages/angular/generators/pipe.json | 83 - .../packages/angular/generators/remote.json | 184 - .../angular/generators/scam-directive.json | 97 - .../angular/generators/scam-pipe.json | 83 - .../generators/scam-to-standalone.json | 40 - .../packages/angular/generators/scam.json | 143 - .../packages/angular/generators/setup-mf.json | 99 - .../angular/generators/setup-ssr.json | 76 - .../angular/generators/setup-tailwind.json | 50 - .../packages/angular/generators/stories.json | 69 - .../generators/storybook-configuration.json | 103 - .../angular/generators/web-worker.json | 54 - .../packages/cypress/documents/overview.md | 217 - .../packages/cypress/executors/cypress.json | 166 - .../generators/component-configuration.json | 52 - .../cypress/generators/configuration.json | 100 - .../cypress/generators/cypress-project.json | 84 - .../packages/cypress/generators/init.json | 45 - .../generators/migrate-to-cypress-11.json | 26 - .../packages/detox/documents/overview.md | 135 - .../packages/detox/executors/build.json | 33 - .../packages/detox/executors/test.json | 167 - .../detox/generators/application.json | 79 - .../packages/detox/generators/init.json | 44 - .../devkit/documents/ngcli_adapter.md | 12 - .../packages/devkit/documents/nx_devkit.md | 158 - .../packages/esbuild/documents/overview.md | 155 - .../packages/esbuild/executors/esbuild.json | 211 - .../esbuild/generators/configuration.json | 75 - .../packages/esbuild/generators/init.json | 38 - .../documents/dependency-checks.md | 85 - .../documents/enforce-module-boundaries.md | 61 - .../eslint-plugin/documents/overview.md | 72 - .../packages/eslint/documents/overview.md | 94 - .../packages/eslint/executors/lint.json | 152 - .../generators/convert-to-flat-config.json | 28 - .../packages/eslint/generators/init.json | 39 - .../eslint/generators/workspace-rule.json | 34 - .../generators/workspace-rules-project.json | 34 - .../packages/expo/documents/overview.md | 354 - .../packages/expo/executors/build-list.json | 86 - .../packages/expo/executors/build.json | 80 - .../expo/executors/ensure-symlink.json | 21 - .../packages/expo/executors/export.json | 56 - .../packages/expo/executors/install.json | 39 - .../packages/expo/executors/prebuild.json | 46 - .../packages/expo/executors/run.json | 75 - .../packages/expo/executors/serve.json | 45 - .../packages/expo/executors/start.json | 97 - .../packages/expo/executors/submit.json | 57 - .../packages/expo/executors/sync-deps.json | 39 - .../packages/expo/executors/update.json | 72 - .../packages/expo/generators/application.json | 103 - .../packages/expo/generators/component.json | 96 - .../packages/expo/generators/init.json | 44 - .../packages/expo/generators/library.json | 113 - .../packages/express/documents/overview.md | 47 - .../express/generators/application.json | 102 - .../packages/express/generators/init.json | 38 - .../packages/jest/documents/overview.md | 260 - .../packages/jest/executors/jest.json | 208 - .../jest/generators/configuration.json | 89 - .../packages/jest/generators/init.json | 46 - .../packages/js/documents/overview.md | 122 - .../generated/packages/js/executors/node.json | 91 - .../js/executors/release-publish.json | 36 - docs/generated/packages/js/executors/swc.json | 174 - docs/generated/packages/js/executors/tsc.json | 188 - .../packages/js/executors/verdaccio.json | 45 - .../js/generators/convert-to-swc.json | 42 - .../packages/js/generators/init.json | 48 - .../packages/js/generators/library.json | 160 - .../js/generators/release-version.json | 76 - .../packages/js/generators/setup-build.json | 51 - .../js/generators/setup-verdaccio.json | 28 - .../packages/nest/documents/overview.md | 169 - .../packages/nest/generators/application.json | 95 - .../packages/nest/generators/class.json | 69 - .../packages/nest/generators/controller.json | 78 - .../packages/nest/generators/decorator.json | 63 - .../packages/nest/generators/filter.json | 69 - .../packages/nest/generators/gateway.json | 69 - .../packages/nest/generators/guard.json | 69 - .../packages/nest/generators/init.json | 39 - .../packages/nest/generators/interceptor.json | 69 - .../packages/nest/generators/interface.json | 58 - .../packages/nest/generators/library.json | 156 - .../packages/nest/generators/middleware.json | 69 - .../packages/nest/generators/module.json | 73 - .../packages/nest/generators/pipe.json | 69 - .../packages/nest/generators/provider.json | 69 - .../packages/nest/generators/resolver.json | 64 - .../packages/nest/generators/resource.json | 104 - .../packages/nest/generators/service.json | 69 - .../packages/next/documents/overview.md | 307 - .../packages/next/executors/build.json | 86 - .../packages/next/executors/export.json | 41 - .../packages/next/executors/server.json | 73 - .../packages/next/generators/application.json | 152 - .../packages/next/generators/component.json | 125 - .../next/generators/custom-server.json | 38 - .../cypress-component-configuration.json | 53 - .../packages/next/generators/init.json | 45 - .../packages/next/generators/library.json | 162 - .../packages/next/generators/page.json | 111 - .../packages/node/documents/overview.md | 107 - .../packages/node/generators/application.json | 145 - .../packages/node/generators/init.json | 38 - .../packages/node/generators/library.json | 145 - .../node/generators/setup-docker.json | 38 - .../packages/nuxt/documents/overview.md | 104 - .../packages/nuxt/generators/application.json | 118 - .../packages/nuxt/generators/init.json | 44 - .../generators/storybook-configuration.json | 85 - docs/generated/packages/nx/documents/add.md | 68 - .../nx/documents/affected-dep-graph.md | 168 - .../packages/nx/documents/affected.md | 198 - .../nx/documents/connect-to-nx-cloud.md | 30 - .../nx/documents/create-nx-workspace.md | 198 - .../generated/packages/nx/documents/daemon.md | 42 - .../packages/nx/documents/dep-graph.md | 184 - docs/generated/packages/nx/documents/exec.md | 152 - .../packages/nx/documents/format-check.md | 84 - .../packages/nx/documents/format-write.md | 84 - .../packages/nx/documents/generate.md | 104 - docs/generated/packages/nx/documents/init.md | 52 - docs/generated/packages/nx/documents/list.md | 50 - .../packages/nx/documents/migrate.md | 156 - .../packages/nx/documents/print-affected.md | 126 - .../packages/nx/documents/release.md | 390 - .../generated/packages/nx/documents/repair.md | 53 - .../generated/packages/nx/documents/report.md | 16 - docs/generated/packages/nx/documents/reset.md | 16 - .../packages/nx/documents/run-many.md | 182 - docs/generated/packages/nx/documents/run.md | 44 - docs/generated/packages/nx/documents/show.md | 212 - .../packages/nx/documents/view-logs.md | 16 - docs/generated/packages/nx/documents/watch.md | 74 - .../generated/packages/nx/executors/noop.json | 20 - .../packages/nx/executors/run-commands.json | 135 - .../packages/nx/executors/run-script.json | 34 - .../nx/generators/connect-to-nx-cloud.json | 39 - .../packages/playwright/documents/overview.md | 256 - .../playwright/executors/playwright.json | 174 - .../playwright/generators/configuration.json | 82 - .../packages/playwright/generators/init.json | 45 - .../packages/plugin/documents/overview.md | 5 - .../packages/plugin/executors/e2e.json | 209 - .../plugin/generators/create-package.json | 83 - .../plugin/generators/e2e-project.json | 65 - .../packages/plugin/generators/executor.json | 82 - .../packages/plugin/generators/generator.json | 76 - .../packages/plugin/generators/migration.json | 74 - .../plugin/generators/plugin-lint-checks.json | 40 - .../packages/plugin/generators/plugin.json | 112 - .../packages/plugin/generators/preset.json | 42 - .../react-native/documents/overview.md | 186 - .../react-native/executors/build-android.json | 81 - .../react-native/executors/build-ios.json | 91 - .../react-native/executors/bundle.json | 89 - .../executors/ensure-symlink.json | 21 - .../react-native/executors/pod-install.json | 43 - .../react-native/executors/run-android.json | 106 - .../react-native/executors/run-ios.json | 96 - .../react-native/executors/start.json | 38 - .../react-native/executors/storybook.json | 37 - .../react-native/executors/sync-deps.json | 39 - .../react-native/executors/upgrade.json | 21 - .../react-native/generators/application.json | 112 - .../generators/component-story.json | 50 - .../react-native/generators/component.json | 91 - .../react-native/generators/init.json | 46 - .../react-native/generators/library.json | 116 - .../react-native/generators/stories.json | 63 - .../generators/storybook-configuration.json | 84 - .../generators/upgrade-native.json | 49 - .../generators/web-configuration.json | 50 - .../packages/react/documents/overview.md | 154 - .../module-federation-dev-server.json | 120 - .../module-federation-ssr-dev-server.json | 54 - .../react/generators/application.json | 204 - .../generators/component-cypress-spec.json | 52 - .../react/generators/component-story.json | 50 - .../react/generators/component-test.json | 42 - .../packages/react/generators/component.json | 150 - .../cypress-component-configuration.json | 65 - .../react/generators/federate-module.json | 91 - .../packages/react/generators/hook.json | 90 - .../packages/react/generators/host.json | 187 - .../packages/react/generators/init.json | 38 - .../packages/react/generators/library.json | 204 - .../packages/react/generators/redux.json | 57 - .../packages/react/generators/remote.json | 186 - .../packages/react/generators/setup-ssr.json | 54 - .../react/generators/setup-tailwind.json | 55 - .../packages/react/generators/stories.json | 72 - .../generators/storybook-configuration.json | 100 - .../packages/remix/documents/overview.md | 288 - .../packages/remix/executors/build.json | 48 - .../packages/remix/executors/serve.json | 51 - .../packages/remix/generators/action.json | 36 - .../remix/generators/application.json | 76 - .../cypress-component-configuration.json | 51 - .../remix/generators/error-boundary.json | 47 - .../packages/remix/generators/init.json | 43 - .../packages/remix/generators/library.json | 82 - .../packages/remix/generators/loader.json | 36 - .../packages/remix/generators/meta.json | 36 - .../packages/remix/generators/preset.json | 24 - .../remix/generators/resource-route.json | 58 - .../packages/remix/generators/route.json | 69 - .../remix/generators/setup-tailwind.json | 44 - .../packages/remix/generators/setup.json | 24 - .../generators/storybook-configuration.json | 93 - .../packages/remix/generators/style.json | 43 - .../packages/rollup/executors/rollup.json | 198 - .../rollup/generators/configuration.json | 89 - .../packages/rollup/generators/init.json | 44 - .../storybook/documents/best-practices.md | 151 - .../packages/storybook/documents/overview.md | 266 - .../storybook/documents/storybook-7-setup.md | 39 - .../packages/storybook/executors/build.json | 144 - .../storybook/executors/storybook.json | 123 - .../storybook/generators/configuration.json | 109 - .../storybook/generators/cypress-project.json | 62 - .../packages/storybook/generators/init.json | 42 - .../storybook/generators/migrate-7.json | 46 - .../packages/vite/documents/overview.md | 128 - .../packages/vite/executors/build.json | 64 - .../packages/vite/executors/dev-server.json | 41 - .../vite/executors/preview-server.json | 40 - .../packages/vite/executors/test.json | 43 - .../vite/generators/configuration.json | 69 - .../packages/vite/generators/init.json | 42 - .../packages/vite/generators/vitest.json | 65 - .../packages/vue/documents/overview.md | 65 - .../packages/vue/generators/application.json | 142 - .../packages/vue/generators/component.json | 111 - .../packages/vue/generators/init.json | 38 - .../packages/vue/generators/library.json | 148 - .../vue/generators/setup-tailwind.json | 53 - .../packages/vue/generators/stories.json | 72 - .../generators/storybook-configuration.json | 85 - .../packages/web/documents/overview.md | 121 - .../packages/web/executors/file-server.json | 103 - .../packages/web/generators/application.json | 119 - .../packages/web/generators/init.json | 39 - .../web/generators/static-config.json | 35 - .../packages/webpack/documents/overview.md | 114 - .../webpack/executors/dev-server.json | 86 - .../webpack/executors/ssr-dev-server.json | 47 - .../packages/webpack/executors/webpack.json | 466 - .../webpack/generators/configuration.json | 85 - .../packages/webpack/generators/init.json | 44 - .../nx-nodejs-typescript-version-matrix.md | 16 - .../packages/workspace/documents/overview.md | 48 - .../packages/workspace/executors/counter.json | 25 - .../workspace/generators/ci-workflow.json | 52 - .../generators/convert-to-monorepo.json | 27 - .../generators/fix-configuration.json | 46 - .../packages/workspace/generators/move.json | 67 - .../packages/workspace/generators/new.json | 97 - .../workspace/generators/npm-package.json | 40 - .../packages/workspace/generators/preset.json | 115 - .../packages/workspace/generators/remove.json | 55 - .../workspace/generators/run-commands.json | 57 - 440 files changed, 61597 deletions(-) delete mode 100644 docs/generated/devkit/ChangeType.md delete mode 100644 docs/generated/devkit/CreateDependencies.md delete mode 100644 docs/generated/devkit/CreateDependenciesContext.md delete mode 100644 docs/generated/devkit/CreateNodes.md delete mode 100644 docs/generated/devkit/CreateNodesContext.md delete mode 100644 docs/generated/devkit/CreateNodesFunction.md delete mode 100644 docs/generated/devkit/CreateNodesResult.md delete mode 100644 docs/generated/devkit/CustomHasher.md delete mode 100644 docs/generated/devkit/DefaultTasksRunnerOptions.md delete mode 100644 docs/generated/devkit/DependencyType.md delete mode 100644 docs/generated/devkit/DynamicDependency.md delete mode 100644 docs/generated/devkit/Executor.md delete mode 100644 docs/generated/devkit/ExecutorContext.md delete mode 100644 docs/generated/devkit/ExecutorsJson.md delete mode 100644 docs/generated/devkit/FileChange.md delete mode 100644 docs/generated/devkit/FileData.md delete mode 100644 docs/generated/devkit/FileMap.md delete mode 100644 docs/generated/devkit/Generator.md delete mode 100644 docs/generated/devkit/GeneratorCallback.md delete mode 100644 docs/generated/devkit/GeneratorsJson.md delete mode 100644 docs/generated/devkit/Hash.md delete mode 100644 docs/generated/devkit/Hasher.md delete mode 100644 docs/generated/devkit/HasherContext.md delete mode 100644 docs/generated/devkit/ImplicitDependency.md delete mode 100644 docs/generated/devkit/ImplicitDependencyEntry.md delete mode 100644 docs/generated/devkit/ImplicitJsonSubsetDependency.md delete mode 100644 docs/generated/devkit/JsonParseOptions.md delete mode 100644 docs/generated/devkit/JsonSerializeOptions.md delete mode 100644 docs/generated/devkit/MigrationsJson.md delete mode 100644 docs/generated/devkit/NX_VERSION.md delete mode 100644 docs/generated/devkit/NxAffectedConfig.md delete mode 100644 docs/generated/devkit/NxJsonConfiguration.md delete mode 100644 docs/generated/devkit/NxPlugin.md delete mode 100644 docs/generated/devkit/NxPluginV1.md delete mode 100644 docs/generated/devkit/NxPluginV2.md delete mode 100644 docs/generated/devkit/PackageManager.md delete mode 100644 docs/generated/devkit/PluginConfiguration.md delete mode 100644 docs/generated/devkit/ProjectConfiguration.md delete mode 100644 docs/generated/devkit/ProjectFileMap.md delete mode 100644 docs/generated/devkit/ProjectGraph.md delete mode 100644 docs/generated/devkit/ProjectGraphBuilder.md delete mode 100644 docs/generated/devkit/ProjectGraphDependency.md delete mode 100644 docs/generated/devkit/ProjectGraphExternalNode.md delete mode 100644 docs/generated/devkit/ProjectGraphNode.md delete mode 100644 docs/generated/devkit/ProjectGraphProcessorContext.md delete mode 100644 docs/generated/devkit/ProjectGraphProjectNode.md delete mode 100644 docs/generated/devkit/ProjectTargetConfigurator.md delete mode 100644 docs/generated/devkit/ProjectType.md delete mode 100644 docs/generated/devkit/ProjectsConfigurations.md delete mode 100644 docs/generated/devkit/README.md delete mode 100644 docs/generated/devkit/RawProjectGraphDependency.md delete mode 100644 docs/generated/devkit/RemoteCache.md delete mode 100644 docs/generated/devkit/StaticDependency.md delete mode 100644 docs/generated/devkit/StringChange.md delete mode 100644 docs/generated/devkit/StringDeletion.md delete mode 100644 docs/generated/devkit/StringInsertion.md delete mode 100644 docs/generated/devkit/Target.md delete mode 100644 docs/generated/devkit/TargetConfiguration.md delete mode 100644 docs/generated/devkit/TargetDefaults.md delete mode 100644 docs/generated/devkit/TargetDependencyConfig.md delete mode 100644 docs/generated/devkit/Task.md delete mode 100644 docs/generated/devkit/TaskGraph.md delete mode 100644 docs/generated/devkit/TaskGraphExecutor.md delete mode 100644 docs/generated/devkit/TaskHasher.md delete mode 100644 docs/generated/devkit/ToJSOptions.md delete mode 100644 docs/generated/devkit/Tree.md delete mode 100644 docs/generated/devkit/Workspace.md delete mode 100644 docs/generated/devkit/WorkspaceJsonConfiguration.md delete mode 100644 docs/generated/devkit/Workspaces.md delete mode 100644 docs/generated/devkit/addDependenciesToPackageJson.md delete mode 100644 docs/generated/devkit/addProjectConfiguration.md delete mode 100644 docs/generated/devkit/appRootPath.md delete mode 100644 docs/generated/devkit/applyChangesToString.md delete mode 100644 docs/generated/devkit/cacheDir.md delete mode 100644 docs/generated/devkit/convertNxExecutor.md delete mode 100644 docs/generated/devkit/convertNxGenerator.md delete mode 100644 docs/generated/devkit/createProjectFileMapUsingProjectGraph.md delete mode 100644 docs/generated/devkit/createProjectGraphAsync.md delete mode 100644 docs/generated/devkit/defaultTasksRunner.md delete mode 100644 docs/generated/devkit/detectPackageManager.md delete mode 100644 docs/generated/devkit/ensurePackage.md delete mode 100644 docs/generated/devkit/extractLayoutDirectory.md delete mode 100644 docs/generated/devkit/formatFiles.md delete mode 100644 docs/generated/devkit/generateFiles.md delete mode 100644 docs/generated/devkit/getOutputsForTargetAndConfiguration.md delete mode 100644 docs/generated/devkit/getPackageManagerCommand.md delete mode 100644 docs/generated/devkit/getPackageManagerVersion.md delete mode 100644 docs/generated/devkit/getProjects.md delete mode 100644 docs/generated/devkit/getWorkspaceLayout.md delete mode 100644 docs/generated/devkit/glob.md delete mode 100644 docs/generated/devkit/hashArray.md delete mode 100644 docs/generated/devkit/installPackagesTask.md delete mode 100644 docs/generated/devkit/isWorkspacesEnabled.md delete mode 100644 docs/generated/devkit/joinPathFragments.md delete mode 100644 docs/generated/devkit/logger.md delete mode 100644 docs/generated/devkit/moveFilesToNewDirectory.md delete mode 100644 docs/generated/devkit/names.md delete mode 100644 docs/generated/devkit/ngcli_adapter/.nojekyll delete mode 100644 docs/generated/devkit/ngcli_adapter/NxScopedHost.md delete mode 100644 docs/generated/devkit/ngcli_adapter/README.md delete mode 100644 docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md delete mode 100644 docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md delete mode 100644 docs/generated/devkit/normalizePath.md delete mode 100644 docs/generated/devkit/offsetFromRoot.md delete mode 100644 docs/generated/devkit/output.md delete mode 100644 docs/generated/devkit/parseJson.md delete mode 100644 docs/generated/devkit/parseTargetString.md delete mode 100644 docs/generated/devkit/readCachedProjectGraph.md delete mode 100644 docs/generated/devkit/readJson.md delete mode 100644 docs/generated/devkit/readJsonFile.md delete mode 100644 docs/generated/devkit/readNxJson.md delete mode 100644 docs/generated/devkit/readProjectConfiguration.md delete mode 100644 docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md delete mode 100644 docs/generated/devkit/readTargetOptions.md delete mode 100644 docs/generated/devkit/removeDependenciesFromPackageJson.md delete mode 100644 docs/generated/devkit/removeProjectConfiguration.md delete mode 100644 docs/generated/devkit/reverse.md delete mode 100644 docs/generated/devkit/runExecutor.md delete mode 100644 docs/generated/devkit/runTasksInSerial.md delete mode 100644 docs/generated/devkit/serializeJson.md delete mode 100644 docs/generated/devkit/stripIndents.md delete mode 100644 docs/generated/devkit/stripJsonComments.md delete mode 100644 docs/generated/devkit/targetToTargetString.md delete mode 100644 docs/generated/devkit/toJS.md delete mode 100644 docs/generated/devkit/updateJson.md delete mode 100644 docs/generated/devkit/updateNxJson.md delete mode 100644 docs/generated/devkit/updateProjectConfiguration.md delete mode 100644 docs/generated/devkit/updateTsConfigsToJs.md delete mode 100644 docs/generated/devkit/validateDependency.md delete mode 100644 docs/generated/devkit/visitNotIgnoredFiles.md delete mode 100644 docs/generated/devkit/workspaceLayout.md delete mode 100644 docs/generated/devkit/workspaceRoot.md delete mode 100644 docs/generated/devkit/writeJson.md delete mode 100644 docs/generated/devkit/writeJsonFile.md delete mode 100644 docs/generated/manifests/ci.json delete mode 100644 docs/generated/manifests/extending-nx.json delete mode 100644 docs/generated/manifests/menus.json delete mode 100644 docs/generated/manifests/nx-api.json delete mode 100644 docs/generated/manifests/nx.json delete mode 100644 docs/generated/manifests/tags.json delete mode 100644 docs/generated/packages-metadata.json delete mode 100644 docs/generated/packages/angular/documents/angular-nx-version-matrix.md delete mode 100644 docs/generated/packages/angular/documents/overview.md delete mode 100644 docs/generated/packages/angular/executors/application.json delete mode 100644 docs/generated/packages/angular/executors/browser-esbuild.json delete mode 100644 docs/generated/packages/angular/executors/delegate-build.json delete mode 100644 docs/generated/packages/angular/executors/dev-server.json delete mode 100644 docs/generated/packages/angular/executors/extract-i18n.json delete mode 100644 docs/generated/packages/angular/executors/module-federation-dev-server.json delete mode 100644 docs/generated/packages/angular/executors/module-federation-dev-ssr.json delete mode 100644 docs/generated/packages/angular/executors/ng-packagr-lite.json delete mode 100644 docs/generated/packages/angular/executors/package.json delete mode 100644 docs/generated/packages/angular/executors/webpack-browser.json delete mode 100644 docs/generated/packages/angular/executors/webpack-server.json delete mode 100644 docs/generated/packages/angular/generators/add-linting.json delete mode 100644 docs/generated/packages/angular/generators/application.json delete mode 100644 docs/generated/packages/angular/generators/component-cypress-spec.json delete mode 100644 docs/generated/packages/angular/generators/component-story.json delete mode 100644 docs/generated/packages/angular/generators/component-test.json delete mode 100644 docs/generated/packages/angular/generators/component.json delete mode 100644 docs/generated/packages/angular/generators/convert-to-application-executor.json delete mode 100644 docs/generated/packages/angular/generators/convert-to-with-mf.json delete mode 100644 docs/generated/packages/angular/generators/cypress-component-configuration.json delete mode 100644 docs/generated/packages/angular/generators/directive.json delete mode 100644 docs/generated/packages/angular/generators/federate-module.json delete mode 100644 docs/generated/packages/angular/generators/host.json delete mode 100644 docs/generated/packages/angular/generators/init.json delete mode 100644 docs/generated/packages/angular/generators/library-secondary-entry-point.json delete mode 100644 docs/generated/packages/angular/generators/library.json delete mode 100644 docs/generated/packages/angular/generators/move.json delete mode 100644 docs/generated/packages/angular/generators/ng-add.json delete mode 100644 docs/generated/packages/angular/generators/ngrx-feature-store.json delete mode 100644 docs/generated/packages/angular/generators/ngrx-root-store.json delete mode 100644 docs/generated/packages/angular/generators/ngrx.json delete mode 100644 docs/generated/packages/angular/generators/pipe.json delete mode 100644 docs/generated/packages/angular/generators/remote.json delete mode 100644 docs/generated/packages/angular/generators/scam-directive.json delete mode 100644 docs/generated/packages/angular/generators/scam-pipe.json delete mode 100644 docs/generated/packages/angular/generators/scam-to-standalone.json delete mode 100644 docs/generated/packages/angular/generators/scam.json delete mode 100644 docs/generated/packages/angular/generators/setup-mf.json delete mode 100644 docs/generated/packages/angular/generators/setup-ssr.json delete mode 100644 docs/generated/packages/angular/generators/setup-tailwind.json delete mode 100644 docs/generated/packages/angular/generators/stories.json delete mode 100644 docs/generated/packages/angular/generators/storybook-configuration.json delete mode 100644 docs/generated/packages/angular/generators/web-worker.json delete mode 100644 docs/generated/packages/cypress/documents/overview.md delete mode 100644 docs/generated/packages/cypress/executors/cypress.json delete mode 100644 docs/generated/packages/cypress/generators/component-configuration.json delete mode 100644 docs/generated/packages/cypress/generators/configuration.json delete mode 100644 docs/generated/packages/cypress/generators/cypress-project.json delete mode 100644 docs/generated/packages/cypress/generators/init.json delete mode 100644 docs/generated/packages/cypress/generators/migrate-to-cypress-11.json delete mode 100644 docs/generated/packages/detox/documents/overview.md delete mode 100644 docs/generated/packages/detox/executors/build.json delete mode 100644 docs/generated/packages/detox/executors/test.json delete mode 100644 docs/generated/packages/detox/generators/application.json delete mode 100644 docs/generated/packages/detox/generators/init.json delete mode 100644 docs/generated/packages/devkit/documents/ngcli_adapter.md delete mode 100644 docs/generated/packages/devkit/documents/nx_devkit.md delete mode 100644 docs/generated/packages/esbuild/documents/overview.md delete mode 100644 docs/generated/packages/esbuild/executors/esbuild.json delete mode 100644 docs/generated/packages/esbuild/generators/configuration.json delete mode 100644 docs/generated/packages/esbuild/generators/init.json delete mode 100644 docs/generated/packages/eslint-plugin/documents/dependency-checks.md delete mode 100644 docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md delete mode 100644 docs/generated/packages/eslint-plugin/documents/overview.md delete mode 100644 docs/generated/packages/eslint/documents/overview.md delete mode 100644 docs/generated/packages/eslint/executors/lint.json delete mode 100644 docs/generated/packages/eslint/generators/convert-to-flat-config.json delete mode 100644 docs/generated/packages/eslint/generators/init.json delete mode 100644 docs/generated/packages/eslint/generators/workspace-rule.json delete mode 100644 docs/generated/packages/eslint/generators/workspace-rules-project.json delete mode 100644 docs/generated/packages/expo/documents/overview.md delete mode 100644 docs/generated/packages/expo/executors/build-list.json delete mode 100644 docs/generated/packages/expo/executors/build.json delete mode 100644 docs/generated/packages/expo/executors/ensure-symlink.json delete mode 100644 docs/generated/packages/expo/executors/export.json delete mode 100644 docs/generated/packages/expo/executors/install.json delete mode 100644 docs/generated/packages/expo/executors/prebuild.json delete mode 100644 docs/generated/packages/expo/executors/run.json delete mode 100644 docs/generated/packages/expo/executors/serve.json delete mode 100644 docs/generated/packages/expo/executors/start.json delete mode 100644 docs/generated/packages/expo/executors/submit.json delete mode 100644 docs/generated/packages/expo/executors/sync-deps.json delete mode 100644 docs/generated/packages/expo/executors/update.json delete mode 100644 docs/generated/packages/expo/generators/application.json delete mode 100644 docs/generated/packages/expo/generators/component.json delete mode 100644 docs/generated/packages/expo/generators/init.json delete mode 100644 docs/generated/packages/expo/generators/library.json delete mode 100644 docs/generated/packages/express/documents/overview.md delete mode 100644 docs/generated/packages/express/generators/application.json delete mode 100644 docs/generated/packages/express/generators/init.json delete mode 100644 docs/generated/packages/jest/documents/overview.md delete mode 100644 docs/generated/packages/jest/executors/jest.json delete mode 100644 docs/generated/packages/jest/generators/configuration.json delete mode 100644 docs/generated/packages/jest/generators/init.json delete mode 100644 docs/generated/packages/js/documents/overview.md delete mode 100644 docs/generated/packages/js/executors/node.json delete mode 100644 docs/generated/packages/js/executors/release-publish.json delete mode 100644 docs/generated/packages/js/executors/swc.json delete mode 100644 docs/generated/packages/js/executors/tsc.json delete mode 100644 docs/generated/packages/js/executors/verdaccio.json delete mode 100644 docs/generated/packages/js/generators/convert-to-swc.json delete mode 100644 docs/generated/packages/js/generators/init.json delete mode 100644 docs/generated/packages/js/generators/library.json delete mode 100644 docs/generated/packages/js/generators/release-version.json delete mode 100644 docs/generated/packages/js/generators/setup-build.json delete mode 100644 docs/generated/packages/js/generators/setup-verdaccio.json delete mode 100644 docs/generated/packages/nest/documents/overview.md delete mode 100644 docs/generated/packages/nest/generators/application.json delete mode 100644 docs/generated/packages/nest/generators/class.json delete mode 100644 docs/generated/packages/nest/generators/controller.json delete mode 100644 docs/generated/packages/nest/generators/decorator.json delete mode 100644 docs/generated/packages/nest/generators/filter.json delete mode 100644 docs/generated/packages/nest/generators/gateway.json delete mode 100644 docs/generated/packages/nest/generators/guard.json delete mode 100644 docs/generated/packages/nest/generators/init.json delete mode 100644 docs/generated/packages/nest/generators/interceptor.json delete mode 100644 docs/generated/packages/nest/generators/interface.json delete mode 100644 docs/generated/packages/nest/generators/library.json delete mode 100644 docs/generated/packages/nest/generators/middleware.json delete mode 100644 docs/generated/packages/nest/generators/module.json delete mode 100644 docs/generated/packages/nest/generators/pipe.json delete mode 100644 docs/generated/packages/nest/generators/provider.json delete mode 100644 docs/generated/packages/nest/generators/resolver.json delete mode 100644 docs/generated/packages/nest/generators/resource.json delete mode 100644 docs/generated/packages/nest/generators/service.json delete mode 100644 docs/generated/packages/next/documents/overview.md delete mode 100644 docs/generated/packages/next/executors/build.json delete mode 100644 docs/generated/packages/next/executors/export.json delete mode 100644 docs/generated/packages/next/executors/server.json delete mode 100644 docs/generated/packages/next/generators/application.json delete mode 100644 docs/generated/packages/next/generators/component.json delete mode 100644 docs/generated/packages/next/generators/custom-server.json delete mode 100644 docs/generated/packages/next/generators/cypress-component-configuration.json delete mode 100644 docs/generated/packages/next/generators/init.json delete mode 100644 docs/generated/packages/next/generators/library.json delete mode 100644 docs/generated/packages/next/generators/page.json delete mode 100644 docs/generated/packages/node/documents/overview.md delete mode 100644 docs/generated/packages/node/generators/application.json delete mode 100644 docs/generated/packages/node/generators/init.json delete mode 100644 docs/generated/packages/node/generators/library.json delete mode 100644 docs/generated/packages/node/generators/setup-docker.json delete mode 100644 docs/generated/packages/nuxt/documents/overview.md delete mode 100644 docs/generated/packages/nuxt/generators/application.json delete mode 100644 docs/generated/packages/nuxt/generators/init.json delete mode 100644 docs/generated/packages/nuxt/generators/storybook-configuration.json delete mode 100644 docs/generated/packages/nx/documents/add.md delete mode 100644 docs/generated/packages/nx/documents/affected-dep-graph.md delete mode 100644 docs/generated/packages/nx/documents/affected.md delete mode 100644 docs/generated/packages/nx/documents/connect-to-nx-cloud.md delete mode 100644 docs/generated/packages/nx/documents/create-nx-workspace.md delete mode 100644 docs/generated/packages/nx/documents/daemon.md delete mode 100644 docs/generated/packages/nx/documents/dep-graph.md delete mode 100644 docs/generated/packages/nx/documents/exec.md delete mode 100644 docs/generated/packages/nx/documents/format-check.md delete mode 100644 docs/generated/packages/nx/documents/format-write.md delete mode 100644 docs/generated/packages/nx/documents/generate.md delete mode 100644 docs/generated/packages/nx/documents/init.md delete mode 100644 docs/generated/packages/nx/documents/list.md delete mode 100644 docs/generated/packages/nx/documents/migrate.md delete mode 100644 docs/generated/packages/nx/documents/print-affected.md delete mode 100644 docs/generated/packages/nx/documents/release.md delete mode 100644 docs/generated/packages/nx/documents/repair.md delete mode 100644 docs/generated/packages/nx/documents/report.md delete mode 100644 docs/generated/packages/nx/documents/reset.md delete mode 100644 docs/generated/packages/nx/documents/run-many.md delete mode 100644 docs/generated/packages/nx/documents/run.md delete mode 100644 docs/generated/packages/nx/documents/show.md delete mode 100644 docs/generated/packages/nx/documents/view-logs.md delete mode 100644 docs/generated/packages/nx/documents/watch.md delete mode 100644 docs/generated/packages/nx/executors/noop.json delete mode 100644 docs/generated/packages/nx/executors/run-commands.json delete mode 100644 docs/generated/packages/nx/executors/run-script.json delete mode 100644 docs/generated/packages/nx/generators/connect-to-nx-cloud.json delete mode 100644 docs/generated/packages/playwright/documents/overview.md delete mode 100644 docs/generated/packages/playwright/executors/playwright.json delete mode 100644 docs/generated/packages/playwright/generators/configuration.json delete mode 100644 docs/generated/packages/playwright/generators/init.json delete mode 100644 docs/generated/packages/plugin/documents/overview.md delete mode 100644 docs/generated/packages/plugin/executors/e2e.json delete mode 100644 docs/generated/packages/plugin/generators/create-package.json delete mode 100644 docs/generated/packages/plugin/generators/e2e-project.json delete mode 100644 docs/generated/packages/plugin/generators/executor.json delete mode 100644 docs/generated/packages/plugin/generators/generator.json delete mode 100644 docs/generated/packages/plugin/generators/migration.json delete mode 100644 docs/generated/packages/plugin/generators/plugin-lint-checks.json delete mode 100644 docs/generated/packages/plugin/generators/plugin.json delete mode 100644 docs/generated/packages/plugin/generators/preset.json delete mode 100644 docs/generated/packages/react-native/documents/overview.md delete mode 100644 docs/generated/packages/react-native/executors/build-android.json delete mode 100644 docs/generated/packages/react-native/executors/build-ios.json delete mode 100644 docs/generated/packages/react-native/executors/bundle.json delete mode 100644 docs/generated/packages/react-native/executors/ensure-symlink.json delete mode 100644 docs/generated/packages/react-native/executors/pod-install.json delete mode 100644 docs/generated/packages/react-native/executors/run-android.json delete mode 100644 docs/generated/packages/react-native/executors/run-ios.json delete mode 100644 docs/generated/packages/react-native/executors/start.json delete mode 100644 docs/generated/packages/react-native/executors/storybook.json delete mode 100644 docs/generated/packages/react-native/executors/sync-deps.json delete mode 100644 docs/generated/packages/react-native/executors/upgrade.json delete mode 100644 docs/generated/packages/react-native/generators/application.json delete mode 100644 docs/generated/packages/react-native/generators/component-story.json delete mode 100644 docs/generated/packages/react-native/generators/component.json delete mode 100644 docs/generated/packages/react-native/generators/init.json delete mode 100644 docs/generated/packages/react-native/generators/library.json delete mode 100644 docs/generated/packages/react-native/generators/stories.json delete mode 100644 docs/generated/packages/react-native/generators/storybook-configuration.json delete mode 100644 docs/generated/packages/react-native/generators/upgrade-native.json delete mode 100644 docs/generated/packages/react-native/generators/web-configuration.json delete mode 100644 docs/generated/packages/react/documents/overview.md delete mode 100644 docs/generated/packages/react/executors/module-federation-dev-server.json delete mode 100644 docs/generated/packages/react/executors/module-federation-ssr-dev-server.json delete mode 100644 docs/generated/packages/react/generators/application.json delete mode 100644 docs/generated/packages/react/generators/component-cypress-spec.json delete mode 100644 docs/generated/packages/react/generators/component-story.json delete mode 100644 docs/generated/packages/react/generators/component-test.json delete mode 100644 docs/generated/packages/react/generators/component.json delete mode 100644 docs/generated/packages/react/generators/cypress-component-configuration.json delete mode 100644 docs/generated/packages/react/generators/federate-module.json delete mode 100644 docs/generated/packages/react/generators/hook.json delete mode 100644 docs/generated/packages/react/generators/host.json delete mode 100644 docs/generated/packages/react/generators/init.json delete mode 100644 docs/generated/packages/react/generators/library.json delete mode 100644 docs/generated/packages/react/generators/redux.json delete mode 100644 docs/generated/packages/react/generators/remote.json delete mode 100644 docs/generated/packages/react/generators/setup-ssr.json delete mode 100644 docs/generated/packages/react/generators/setup-tailwind.json delete mode 100644 docs/generated/packages/react/generators/stories.json delete mode 100644 docs/generated/packages/react/generators/storybook-configuration.json delete mode 100644 docs/generated/packages/remix/documents/overview.md delete mode 100644 docs/generated/packages/remix/executors/build.json delete mode 100644 docs/generated/packages/remix/executors/serve.json delete mode 100644 docs/generated/packages/remix/generators/action.json delete mode 100644 docs/generated/packages/remix/generators/application.json delete mode 100644 docs/generated/packages/remix/generators/cypress-component-configuration.json delete mode 100644 docs/generated/packages/remix/generators/error-boundary.json delete mode 100644 docs/generated/packages/remix/generators/init.json delete mode 100644 docs/generated/packages/remix/generators/library.json delete mode 100644 docs/generated/packages/remix/generators/loader.json delete mode 100644 docs/generated/packages/remix/generators/meta.json delete mode 100644 docs/generated/packages/remix/generators/preset.json delete mode 100644 docs/generated/packages/remix/generators/resource-route.json delete mode 100644 docs/generated/packages/remix/generators/route.json delete mode 100644 docs/generated/packages/remix/generators/setup-tailwind.json delete mode 100644 docs/generated/packages/remix/generators/setup.json delete mode 100644 docs/generated/packages/remix/generators/storybook-configuration.json delete mode 100644 docs/generated/packages/remix/generators/style.json delete mode 100644 docs/generated/packages/rollup/executors/rollup.json delete mode 100644 docs/generated/packages/rollup/generators/configuration.json delete mode 100644 docs/generated/packages/rollup/generators/init.json delete mode 100644 docs/generated/packages/storybook/documents/best-practices.md delete mode 100644 docs/generated/packages/storybook/documents/overview.md delete mode 100644 docs/generated/packages/storybook/documents/storybook-7-setup.md delete mode 100644 docs/generated/packages/storybook/executors/build.json delete mode 100644 docs/generated/packages/storybook/executors/storybook.json delete mode 100644 docs/generated/packages/storybook/generators/configuration.json delete mode 100644 docs/generated/packages/storybook/generators/cypress-project.json delete mode 100644 docs/generated/packages/storybook/generators/init.json delete mode 100644 docs/generated/packages/storybook/generators/migrate-7.json delete mode 100644 docs/generated/packages/vite/documents/overview.md delete mode 100644 docs/generated/packages/vite/executors/build.json delete mode 100644 docs/generated/packages/vite/executors/dev-server.json delete mode 100644 docs/generated/packages/vite/executors/preview-server.json delete mode 100644 docs/generated/packages/vite/executors/test.json delete mode 100644 docs/generated/packages/vite/generators/configuration.json delete mode 100644 docs/generated/packages/vite/generators/init.json delete mode 100644 docs/generated/packages/vite/generators/vitest.json delete mode 100644 docs/generated/packages/vue/documents/overview.md delete mode 100644 docs/generated/packages/vue/generators/application.json delete mode 100644 docs/generated/packages/vue/generators/component.json delete mode 100644 docs/generated/packages/vue/generators/init.json delete mode 100644 docs/generated/packages/vue/generators/library.json delete mode 100644 docs/generated/packages/vue/generators/setup-tailwind.json delete mode 100644 docs/generated/packages/vue/generators/stories.json delete mode 100644 docs/generated/packages/vue/generators/storybook-configuration.json delete mode 100644 docs/generated/packages/web/documents/overview.md delete mode 100644 docs/generated/packages/web/executors/file-server.json delete mode 100644 docs/generated/packages/web/generators/application.json delete mode 100644 docs/generated/packages/web/generators/init.json delete mode 100644 docs/generated/packages/web/generators/static-config.json delete mode 100644 docs/generated/packages/webpack/documents/overview.md delete mode 100644 docs/generated/packages/webpack/executors/dev-server.json delete mode 100644 docs/generated/packages/webpack/executors/ssr-dev-server.json delete mode 100644 docs/generated/packages/webpack/executors/webpack.json delete mode 100644 docs/generated/packages/webpack/generators/configuration.json delete mode 100644 docs/generated/packages/webpack/generators/init.json delete mode 100644 docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md delete mode 100644 docs/generated/packages/workspace/documents/overview.md delete mode 100644 docs/generated/packages/workspace/executors/counter.json delete mode 100644 docs/generated/packages/workspace/generators/ci-workflow.json delete mode 100644 docs/generated/packages/workspace/generators/convert-to-monorepo.json delete mode 100644 docs/generated/packages/workspace/generators/fix-configuration.json delete mode 100644 docs/generated/packages/workspace/generators/move.json delete mode 100644 docs/generated/packages/workspace/generators/new.json delete mode 100644 docs/generated/packages/workspace/generators/npm-package.json delete mode 100644 docs/generated/packages/workspace/generators/preset.json delete mode 100644 docs/generated/packages/workspace/generators/remove.json delete mode 100644 docs/generated/packages/workspace/generators/run-commands.json diff --git a/docs/generated/devkit/ChangeType.md b/docs/generated/devkit/ChangeType.md deleted file mode 100644 index 012fdac00fbed..0000000000000 --- a/docs/generated/devkit/ChangeType.md +++ /dev/null @@ -1,20 +0,0 @@ -# Enumeration: ChangeType - -## Table of contents - -### Enumeration Members - -- [Delete](../../devkit/documents/ChangeType#delete) -- [Insert](../../devkit/documents/ChangeType#insert) - -## Enumeration Members - -### Delete - -• **Delete** = `"Delete"` - ---- - -### Insert - -• **Insert** = `"Insert"` diff --git a/docs/generated/devkit/CreateDependencies.md b/docs/generated/devkit/CreateDependencies.md deleted file mode 100644 index 0800b0dbc2c3f..0000000000000 --- a/docs/generated/devkit/CreateDependencies.md +++ /dev/null @@ -1,27 +0,0 @@ -# Type alias: CreateDependencies\ - -Ƭ **CreateDependencies**\<`T`\>: (`options`: `T` \| `undefined`, `context`: [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext)) => [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\> - -A function which parses files in the workspace to create dependencies in the [ProjectGraph](../../devkit/documents/ProjectGraph) -Use [validateDependency](../../devkit/documents/validateDependency) to validate dependencies - -#### Type parameters - -| Name | Type | -| :--- | :-------- | -| `T` | `unknown` | - -#### Type declaration - -▸ (`options`, `context`): [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\> - -##### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------------------------------ | -| `options` | `T` \| `undefined` | -| `context` | [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext) | - -##### Returns - -[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\> diff --git a/docs/generated/devkit/CreateDependenciesContext.md b/docs/generated/devkit/CreateDependenciesContext.md deleted file mode 100644 index ee04503fbfc4a..0000000000000 --- a/docs/generated/devkit/CreateDependenciesContext.md +++ /dev/null @@ -1,60 +0,0 @@ -# Interface: CreateDependenciesContext - -Context for [CreateDependencies](../../devkit/documents/CreateDependencies) - -## Table of contents - -### Properties - -- [externalNodes](../../devkit/documents/CreateDependenciesContext#externalnodes): Record -- [fileMap](../../devkit/documents/CreateDependenciesContext#filemap): FileMap -- [filesToProcess](../../devkit/documents/CreateDependenciesContext#filestoprocess): FileMap -- [nxJsonConfiguration](../../devkit/documents/CreateDependenciesContext#nxjsonconfiguration): NxJsonConfiguration -- [projects](../../devkit/documents/CreateDependenciesContext#projects): Record -- [workspaceRoot](../../devkit/documents/CreateDependenciesContext#workspaceroot): string - -## Properties - -### externalNodes - -• `Readonly` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\> - -The external nodes that have been added to the graph. - ---- - -### fileMap - -• `Readonly` **fileMap**: [`FileMap`](../../devkit/documents/FileMap) - -All files in the workspace - ---- - -### filesToProcess - -• `Readonly` **filesToProcess**: [`FileMap`](../../devkit/documents/FileMap) - -Files changes since last invocation - ---- - -### nxJsonConfiguration - -• `Readonly` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - -The `nx.json` configuration from the workspace - ---- - -### projects - -• `Readonly` **projects**: `Record`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> - -The configuration of each project in the workspace. - ---- - -### workspaceRoot - -• `Readonly` **workspaceRoot**: `string` diff --git a/docs/generated/devkit/CreateNodes.md b/docs/generated/devkit/CreateNodes.md deleted file mode 100644 index 766261c911cab..0000000000000 --- a/docs/generated/devkit/CreateNodes.md +++ /dev/null @@ -1,11 +0,0 @@ -# Type alias: CreateNodes\ - -Ƭ **CreateNodes**\<`T`\>: readonly [configFilePattern: string, createNodesFunction: CreateNodesFunction\] - -A pair of file patterns and [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) - -#### Type parameters - -| Name | Type | -| :--- | :-------- | -| `T` | `unknown` | diff --git a/docs/generated/devkit/CreateNodesContext.md b/docs/generated/devkit/CreateNodesContext.md deleted file mode 100644 index 25c357b8103e0..0000000000000 --- a/docs/generated/devkit/CreateNodesContext.md +++ /dev/null @@ -1,31 +0,0 @@ -# Interface: CreateNodesContext - -Context for [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) - -## Table of contents - -### Properties - -- [configFiles](../../devkit/documents/CreateNodesContext#configfiles): string[] -- [nxJsonConfiguration](../../devkit/documents/CreateNodesContext#nxjsonconfiguration): NxJsonConfiguration -- [workspaceRoot](../../devkit/documents/CreateNodesContext#workspaceroot): string - -## Properties - -### configFiles - -• `Readonly` **configFiles**: `string`[] - -The subset of configuration files which match the createNodes pattern - ---- - -### nxJsonConfiguration - -• `Readonly` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - ---- - -### workspaceRoot - -• `Readonly` **workspaceRoot**: `string` diff --git a/docs/generated/devkit/CreateNodesFunction.md b/docs/generated/devkit/CreateNodesFunction.md deleted file mode 100644 index 5ebf292988068..0000000000000 --- a/docs/generated/devkit/CreateNodesFunction.md +++ /dev/null @@ -1,28 +0,0 @@ -# Type alias: CreateNodesFunction\ - -Ƭ **CreateNodesFunction**\<`T`\>: (`projectConfigurationFile`: `string`, `options`: `T` \| `undefined`, `context`: [`CreateNodesContext`](../../devkit/documents/CreateNodesContext)) => [`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\> - -A function which parses a configuration file into a set of nodes. -Used for creating nodes for the [ProjectGraph](../../devkit/documents/ProjectGraph) - -#### Type parameters - -| Name | Type | -| :--- | :-------- | -| `T` | `unknown` | - -#### Type declaration - -▸ (`projectConfigurationFile`, `options`, `context`): [`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\> - -##### Parameters - -| Name | Type | -| :------------------------- | :---------------------------------------------------------------- | -| `projectConfigurationFile` | `string` | -| `options` | `T` \| `undefined` | -| `context` | [`CreateNodesContext`](../../devkit/documents/CreateNodesContext) | - -##### Returns - -[`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\> diff --git a/docs/generated/devkit/CreateNodesResult.md b/docs/generated/devkit/CreateNodesResult.md deleted file mode 100644 index 143da7c925188..0000000000000 --- a/docs/generated/devkit/CreateNodesResult.md +++ /dev/null @@ -1,24 +0,0 @@ -# Interface: CreateNodesResult - -## Table of contents - -### Properties - -- [externalNodes](../../devkit/documents/CreateNodesResult#externalnodes): Record -- [projects](../../devkit/documents/CreateNodesResult#projects): Record> - -## Properties - -### externalNodes - -• `Optional` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\> - -A map of external node name -> external node. External nodes do not have a root, so the key is their name. - ---- - -### projects - -• `Optional` **projects**: `Record`\<`string`, `Optional`\<[`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration), `"root"`\>\> - -A map of project root -> project configuration diff --git a/docs/generated/devkit/CustomHasher.md b/docs/generated/devkit/CustomHasher.md deleted file mode 100644 index 52bbd5a6eb45c..0000000000000 --- a/docs/generated/devkit/CustomHasher.md +++ /dev/null @@ -1,18 +0,0 @@ -# Type alias: CustomHasher - -Ƭ **CustomHasher**: (`task`: [`Task`](../../devkit/documents/Task), `context`: [`HasherContext`](../../devkit/documents/HasherContext)) => `Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -#### Type declaration - -▸ (`task`, `context`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -##### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------ | -| `task` | [`Task`](../../devkit/documents/Task) | -| `context` | [`HasherContext`](../../devkit/documents/HasherContext) | - -##### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)\> diff --git a/docs/generated/devkit/DefaultTasksRunnerOptions.md b/docs/generated/devkit/DefaultTasksRunnerOptions.md deleted file mode 100644 index cb51ef9d8b9f1..0000000000000 --- a/docs/generated/devkit/DefaultTasksRunnerOptions.md +++ /dev/null @@ -1,76 +0,0 @@ -# Interface: DefaultTasksRunnerOptions - -## Table of contents - -### Properties - -- [batch](../../devkit/documents/DefaultTasksRunnerOptions#batch): boolean -- [cacheDirectory](../../devkit/documents/DefaultTasksRunnerOptions#cachedirectory): string -- [cacheableOperations](../../devkit/documents/DefaultTasksRunnerOptions#cacheableoperations): string[] -- [cacheableTargets](../../devkit/documents/DefaultTasksRunnerOptions#cacheabletargets): string[] -- [captureStderr](../../devkit/documents/DefaultTasksRunnerOptions#capturestderr): boolean -- [lifeCycle](../../devkit/documents/DefaultTasksRunnerOptions#lifecycle): LifeCycle -- [parallel](../../devkit/documents/DefaultTasksRunnerOptions#parallel): number -- [remoteCache](../../devkit/documents/DefaultTasksRunnerOptions#remotecache): RemoteCache -- [runtimeCacheInputs](../../devkit/documents/DefaultTasksRunnerOptions#runtimecacheinputs): string[] -- [skipNxCache](../../devkit/documents/DefaultTasksRunnerOptions#skipnxcache): boolean - -## Properties - -### batch - -• `Optional` **batch**: `boolean` - ---- - -### cacheDirectory - -• `Optional` **cacheDirectory**: `string` - ---- - -### cacheableOperations - -• `Optional` **cacheableOperations**: `string`[] - ---- - -### cacheableTargets - -• `Optional` **cacheableTargets**: `string`[] - ---- - -### captureStderr - -• `Optional` **captureStderr**: `boolean` - ---- - -### lifeCycle - -• **lifeCycle**: `LifeCycle` - ---- - -### parallel - -• `Optional` **parallel**: `number` - ---- - -### remoteCache - -• `Optional` **remoteCache**: [`RemoteCache`](../../devkit/documents/RemoteCache) - ---- - -### runtimeCacheInputs - -• `Optional` **runtimeCacheInputs**: `string`[] - ---- - -### skipNxCache - -• `Optional` **skipNxCache**: `boolean` diff --git a/docs/generated/devkit/DependencyType.md b/docs/generated/devkit/DependencyType.md deleted file mode 100644 index fda9b29d08abb..0000000000000 --- a/docs/generated/devkit/DependencyType.md +++ /dev/null @@ -1,35 +0,0 @@ -# Enumeration: DependencyType - -Type of dependency between projects - -## Table of contents - -### Enumeration Members - -- [dynamic](../../devkit/documents/DependencyType#dynamic) -- [implicit](../../devkit/documents/DependencyType#implicit) -- [static](../../devkit/documents/DependencyType#static) - -## Enumeration Members - -### dynamic - -• **dynamic** = `"dynamic"` - -Dynamic dependencies are brought in by the module at run time - ---- - -### implicit - -• **implicit** = `"implicit"` - -Implicit dependencies are inferred - ---- - -### static - -• **static** = `"static"` - -Static dependencies are tied to the loading of the module diff --git a/docs/generated/devkit/DynamicDependency.md b/docs/generated/devkit/DynamicDependency.md deleted file mode 100644 index 988c3017ed481..0000000000000 --- a/docs/generated/devkit/DynamicDependency.md +++ /dev/null @@ -1,16 +0,0 @@ -# Type alias: DynamicDependency - -Ƭ **DynamicDependency**: `Object` - -A dynamic [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects - -This type of dependency indicates the source project MAY OR MAY NOT load the target project. - -#### Type declaration - -| Name | Type | Description | -| :----------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | -| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) depending on the target project | -| `sourceFile` | `string` | The path of a file (relative from the workspace root) where the dependency is made | -| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) that the source project depends on | -| `type` | typeof [`dynamic`](../../devkit/documents/DependencyType#dynamic) | - | diff --git a/docs/generated/devkit/Executor.md b/docs/generated/devkit/Executor.md deleted file mode 100644 index 3e44f1f533bdb..0000000000000 --- a/docs/generated/devkit/Executor.md +++ /dev/null @@ -1,26 +0,0 @@ -# Type alias: Executor\ - -Ƭ **Executor**\<`T`\>: (`options`: `T`, `context`: [`ExecutorContext`](../../devkit/documents/ExecutorContext)) => `Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\> - -Implementation of a target of a project - -#### Type parameters - -| Name | Type | -| :--- | :---- | -| `T` | `any` | - -#### Type declaration - -▸ (`options`, `context`): `Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\> - -##### Parameters - -| Name | Type | -| :-------- | :---------------------------------------------------------- | -| `options` | `T` | -| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | - -##### Returns - -`Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\> diff --git a/docs/generated/devkit/ExecutorContext.md b/docs/generated/devkit/ExecutorContext.md deleted file mode 100644 index 004c4f9fc391d..0000000000000 --- a/docs/generated/devkit/ExecutorContext.md +++ /dev/null @@ -1,126 +0,0 @@ -# Interface: ExecutorContext - -Context that is passed into an executor - -## Table of contents - -### Properties - -- [configurationName](../../devkit/documents/ExecutorContext#configurationname): string -- [cwd](../../devkit/documents/ExecutorContext#cwd): string -- [isVerbose](../../devkit/documents/ExecutorContext#isverbose): boolean -- [nxJsonConfiguration](../../devkit/documents/ExecutorContext#nxjsonconfiguration): NxJsonConfiguration -- [projectGraph](../../devkit/documents/ExecutorContext#projectgraph): ProjectGraph -- [projectName](../../devkit/documents/ExecutorContext#projectname): string -- [projectsConfigurations](../../devkit/documents/ExecutorContext#projectsconfigurations): ProjectsConfigurations -- [root](../../devkit/documents/ExecutorContext#root): string -- [target](../../devkit/documents/ExecutorContext#target): TargetConfiguration -- [targetName](../../devkit/documents/ExecutorContext#targetname): string -- [taskGraph](../../devkit/documents/ExecutorContext#taskgraph): TaskGraph -- [workspace](../../devkit/documents/ExecutorContext#workspace): ProjectsConfigurations & NxJsonConfiguration - -## Properties - -### configurationName - -• `Optional` **configurationName**: `string` - -The name of the configuration being executed - ---- - -### cwd - -• **cwd**: `string` - -The current working directory - ---- - -### isVerbose - -• **isVerbose**: `boolean` - -Enable verbose logging - ---- - -### nxJsonConfiguration - -• `Optional` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - -The contents of nx.json. - -@todo(vsavkin): mark this as required for v17 - ---- - -### projectGraph - -• `Optional` **projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph) - -A snapshot of the project graph as -it existed when the Nx command was kicked off - -@todo(vsavkin) mark this required for v17 - ---- - -### projectName - -• `Optional` **projectName**: `string` - -The name of the project being executed on - ---- - -### projectsConfigurations - -• `Optional` **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) - -Projects config - -@todo(vsavkin): mark this as required for v17 - ---- - -### root - -• **root**: `string` - -The root of the workspace - ---- - -### target - -• `Optional` **target**: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\<`any`\> - -The configuration of the target being executed - ---- - -### targetName - -• `Optional` **targetName**: `string` - -The name of the target being executed - ---- - -### taskGraph - -• `Optional` **taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph) - -A snapshot of the task graph as -it existed when the Nx command was kicked off - ---- - -### workspace - -• `Optional` **workspace**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - -Deprecated. Use projectsConfigurations or nxJsonConfiguration -The full workspace configuration -@todo(vsavkin): remove after v17 diff --git a/docs/generated/devkit/ExecutorsJson.md b/docs/generated/devkit/ExecutorsJson.md deleted file mode 100644 index 3f96a422414f1..0000000000000 --- a/docs/generated/devkit/ExecutorsJson.md +++ /dev/null @@ -1,20 +0,0 @@ -# Interface: ExecutorsJson - -## Table of contents - -### Properties - -- [builders](../../devkit/documents/ExecutorsJson#builders): Record -- [executors](../../devkit/documents/ExecutorsJson#executors): Record - -## Properties - -### builders - -• `Optional` **builders**: `Record`\<`string`, `ExecutorsJsonEntry`\> - ---- - -### executors - -• `Optional` **executors**: `Record`\<`string`, `ExecutorsJsonEntry`\> diff --git a/docs/generated/devkit/FileChange.md b/docs/generated/devkit/FileChange.md deleted file mode 100644 index 3f53e9ba7f891..0000000000000 --- a/docs/generated/devkit/FileChange.md +++ /dev/null @@ -1,44 +0,0 @@ -# Interface: FileChange - -Description of a file change in the Nx virtual file system/ - -## Table of contents - -### Properties - -- [content](../../devkit/documents/FileChange#content): Buffer -- [options](../../devkit/documents/FileChange#options): TreeWriteOptions -- [path](../../devkit/documents/FileChange#path): string -- [type](../../devkit/documents/FileChange#type): "CREATE" | "DELETE" | "UPDATE" - -## Properties - -### content - -• **content**: `Buffer` - -The content of the file or null in case of delete. - ---- - -### options - -• `Optional` **options**: `TreeWriteOptions` - -Options to set on the file being created or updated. - ---- - -### path - -• **path**: `string` - -Path relative to the workspace root - ---- - -### type - -• **type**: `"CREATE"` \| `"DELETE"` \| `"UPDATE"` - -Type of change: 'CREATE' | 'DELETE' | 'UPDATE' diff --git a/docs/generated/devkit/FileData.md b/docs/generated/devkit/FileData.md deleted file mode 100644 index bdb6b8f2c5b68..0000000000000 --- a/docs/generated/devkit/FileData.md +++ /dev/null @@ -1,35 +0,0 @@ -# Interface: FileData - -Some metadata about a file - -## Table of contents - -### Properties - -- [deps](../../devkit/documents/FileData#deps): FileDataDependency[] -- [file](../../devkit/documents/FileData#file): string -- [hash](../../devkit/documents/FileData#hash): string - -## Properties - -### deps - -• `Optional` **deps**: `FileDataDependency`[] - -An array of dependencies. If an element is just a string, -the dependency is assumed to be a static dependency targetting -that string. If the element is a tuple with two elements, the first element -inside of it is the target project, with the second element being the type of dependency. -If the tuple has 3 elements, the first is preceded by a source. - ---- - -### file - -• **file**: `string` - ---- - -### hash - -• **hash**: `string` diff --git a/docs/generated/devkit/FileMap.md b/docs/generated/devkit/FileMap.md deleted file mode 100644 index 9d20bdf931077..0000000000000 --- a/docs/generated/devkit/FileMap.md +++ /dev/null @@ -1,20 +0,0 @@ -# Interface: FileMap - -## Table of contents - -### Properties - -- [nonProjectFiles](../../devkit/documents/FileMap#nonprojectfiles): FileData[] -- [projectFileMap](../../devkit/documents/FileMap#projectfilemap): ProjectFileMap - -## Properties - -### nonProjectFiles - -• **nonProjectFiles**: [`FileData`](../../devkit/documents/FileData)[] - ---- - -### projectFileMap - -• **projectFileMap**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) diff --git a/docs/generated/devkit/Generator.md b/docs/generated/devkit/Generator.md deleted file mode 100644 index 32d0ac57b4991..0000000000000 --- a/docs/generated/devkit/Generator.md +++ /dev/null @@ -1,26 +0,0 @@ -# Type alias: Generator\ - -Ƭ **Generator**\<`T`\>: (`tree`: `any`, `schema`: `T`) => `void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\> - -A function that schedules updates to the filesystem to be done atomically - -#### Type parameters - -| Name | Type | -| :--- | :-------- | -| `T` | `unknown` | - -#### Type declaration - -▸ (`tree`, `schema`): `void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\> - -##### Parameters - -| Name | Type | -| :------- | :---- | -| `tree` | `any` | -| `schema` | `T` | - -##### Returns - -`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\> diff --git a/docs/generated/devkit/GeneratorCallback.md b/docs/generated/devkit/GeneratorCallback.md deleted file mode 100644 index da7b25c41d3e3..0000000000000 --- a/docs/generated/devkit/GeneratorCallback.md +++ /dev/null @@ -1,13 +0,0 @@ -# Type alias: GeneratorCallback - -Ƭ **GeneratorCallback**: () => `void` \| `Promise`\<`void`\> - -A callback function that is executed after changes are made to the file system - -#### Type declaration - -▸ (): `void` \| `Promise`\<`void`\> - -##### Returns - -`void` \| `Promise`\<`void`\> diff --git a/docs/generated/devkit/GeneratorsJson.md b/docs/generated/devkit/GeneratorsJson.md deleted file mode 100644 index ed9db23d7ae6d..0000000000000 --- a/docs/generated/devkit/GeneratorsJson.md +++ /dev/null @@ -1,27 +0,0 @@ -# Interface: GeneratorsJson - -## Table of contents - -### Properties - -- [extends](../../devkit/documents/GeneratorsJson#extends): string -- [generators](../../devkit/documents/GeneratorsJson#generators): Record -- [schematics](../../devkit/documents/GeneratorsJson#schematics): Record - -## Properties - -### extends - -• `Optional` **extends**: `string` - ---- - -### generators - -• `Optional` **generators**: `Record`\<`string`, `GeneratorsJsonEntry`\> - ---- - -### schematics - -• `Optional` **schematics**: `Record`\<`string`, `GeneratorsJsonEntry`\> diff --git a/docs/generated/devkit/Hash.md b/docs/generated/devkit/Hash.md deleted file mode 100644 index 63cbd81f1a139..0000000000000 --- a/docs/generated/devkit/Hash.md +++ /dev/null @@ -1,31 +0,0 @@ -# Interface: Hash - -A data structure returned by the default hasher. - -## Table of contents - -### Properties - -- [details](../../devkit/documents/Hash#details): Object -- [value](../../devkit/documents/Hash#value): string - -## Properties - -### details - -• **details**: `Object` - -#### Type declaration - -| Name | Type | -| :-------------- | :----------------------------------- | -| `command` | `string` | -| `implicitDeps?` | \{ `[fileName: string]`: `string`; } | -| `nodes` | \{ `[name: string]`: `string`; } | -| `runtime?` | \{ `[input: string]`: `string`; } | - ---- - -### value - -• **value**: `string` diff --git a/docs/generated/devkit/Hasher.md b/docs/generated/devkit/Hasher.md deleted file mode 100644 index b0db1d3a13207..0000000000000 --- a/docs/generated/devkit/Hasher.md +++ /dev/null @@ -1,3 +0,0 @@ -# Type alias: Hasher - -Ƭ **Hasher**: [`TaskHasher`](../../devkit/documents/TaskHasher) diff --git a/docs/generated/devkit/HasherContext.md b/docs/generated/devkit/HasherContext.md deleted file mode 100644 index f7609b63542b2..0000000000000 --- a/docs/generated/devkit/HasherContext.md +++ /dev/null @@ -1,41 +0,0 @@ -# Interface: HasherContext - -## Table of contents - -### Properties - -- [hasher](../../devkit/documents/HasherContext#hasher): TaskHasher -- [nxJsonConfiguration](../../devkit/documents/HasherContext#nxjsonconfiguration): NxJsonConfiguration -- [projectGraph](../../devkit/documents/HasherContext#projectgraph): ProjectGraph -- [projectsConfigurations](../../devkit/documents/HasherContext#projectsconfigurations): ProjectsConfigurations -- [taskGraph](../../devkit/documents/HasherContext#taskgraph): TaskGraph - -## Properties - -### hasher - -• **hasher**: [`TaskHasher`](../../devkit/documents/TaskHasher) - ---- - -### nxJsonConfiguration - -• **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - ---- - -### projectGraph - -• **projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph) - ---- - -### projectsConfigurations - -• **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) - ---- - -### taskGraph - -• **taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph) diff --git a/docs/generated/devkit/ImplicitDependency.md b/docs/generated/devkit/ImplicitDependency.md deleted file mode 100644 index 55b903358f5f7..0000000000000 --- a/docs/generated/devkit/ImplicitDependency.md +++ /dev/null @@ -1,15 +0,0 @@ -# Type alias: ImplicitDependency - -Ƭ **ImplicitDependency**: `Object` - -An implicit [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects - -This type of dependency indicates a connection without an explicit reference in code - -#### Type declaration - -| Name | Type | Description | -| :------- | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------- | -| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) depending on the target project | -| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) that the source project depends on | -| `type` | typeof [`implicit`](../../devkit/documents/DependencyType#implicit) | - | diff --git a/docs/generated/devkit/ImplicitDependencyEntry.md b/docs/generated/devkit/ImplicitDependencyEntry.md deleted file mode 100644 index 08279593bef3c..0000000000000 --- a/docs/generated/devkit/ImplicitDependencyEntry.md +++ /dev/null @@ -1,13 +0,0 @@ -# Type alias: ImplicitDependencyEntry\ - -Ƭ **ImplicitDependencyEntry**\<`T`\>: `Object` - -#### Type parameters - -| Name | Type | -| :--- | :------------------ | -| `T` | `"*"` \| `string`[] | - -#### Index signature - -▪ [key: `string`]: `T` \| [`ImplicitJsonSubsetDependency`](../../devkit/documents/ImplicitJsonSubsetDependency)\<`T`\> diff --git a/docs/generated/devkit/ImplicitJsonSubsetDependency.md b/docs/generated/devkit/ImplicitJsonSubsetDependency.md deleted file mode 100644 index a9bd559fc9660..0000000000000 --- a/docs/generated/devkit/ImplicitJsonSubsetDependency.md +++ /dev/null @@ -1,11 +0,0 @@ -# Interface: ImplicitJsonSubsetDependency\ - -## Type parameters - -| Name | Type | -| :--- | :------------------ | -| `T` | `"*"` \| `string`[] | - -## Indexable - -▪ [key: `string`]: `T` \| [`ImplicitJsonSubsetDependency`](../../devkit/documents/ImplicitJsonSubsetDependency)\<`T`\> diff --git a/docs/generated/devkit/JsonParseOptions.md b/docs/generated/devkit/JsonParseOptions.md deleted file mode 100644 index ebf7f48ed1e65..0000000000000 --- a/docs/generated/devkit/JsonParseOptions.md +++ /dev/null @@ -1,70 +0,0 @@ -# Interface: JsonParseOptions - -## Hierarchy - -- `ParseOptions` - - ↳ **`JsonParseOptions`** - -## Table of contents - -### Properties - -- [allowEmptyContent](../../devkit/documents/JsonParseOptions#allowemptycontent): boolean -- [allowTrailingComma](../../devkit/documents/JsonParseOptions#allowtrailingcomma): boolean -- [disallowComments](../../devkit/documents/JsonParseOptions#disallowcomments): boolean -- [expectComments](../../devkit/documents/JsonParseOptions#expectcomments): boolean - -## Properties - -### allowEmptyContent - -• `Optional` **allowEmptyContent**: `boolean` - -#### Inherited from - -ParseOptions.allowEmptyContent - ---- - -### allowTrailingComma - -• `Optional` **allowTrailingComma**: `boolean` - -Allow trailing commas in the JSON content - -#### Overrides - -ParseOptions.allowTrailingComma - ---- - -### disallowComments - -• `Optional` **disallowComments**: `boolean` - -Disallow javascript-style - -**`Default`** - -```ts -false; -``` - -#### Overrides - -ParseOptions.disallowComments - ---- - -### expectComments - -• `Optional` **expectComments**: `boolean` - -Expect JSON with javascript-style - -**`Default`** - -```ts -false; -``` diff --git a/docs/generated/devkit/JsonSerializeOptions.md b/docs/generated/devkit/JsonSerializeOptions.md deleted file mode 100644 index 8a2c34f2d88eb..0000000000000 --- a/docs/generated/devkit/JsonSerializeOptions.md +++ /dev/null @@ -1,21 +0,0 @@ -# Interface: JsonSerializeOptions - -## Table of contents - -### Properties - -- [spaces](../../devkit/documents/JsonSerializeOptions#spaces): number - -## Properties - -### spaces - -• `Optional` **spaces**: `number` - -the whitespaces to add as indentation to make the output more readable. - -**`Default`** - -```ts -2; -``` diff --git a/docs/generated/devkit/MigrationsJson.md b/docs/generated/devkit/MigrationsJson.md deleted file mode 100644 index 9f3bcfbc782e9..0000000000000 --- a/docs/generated/devkit/MigrationsJson.md +++ /dev/null @@ -1,56 +0,0 @@ -# Interface: MigrationsJson - -## Table of contents - -### Properties - -- [collection](../../devkit/documents/MigrationsJson#collection): string -- [generators](../../devkit/documents/MigrationsJson#generators): Object -- [name](../../devkit/documents/MigrationsJson#name): string -- [packageJsonUpdates](../../devkit/documents/MigrationsJson#packagejsonupdates): PackageJsonUpdates -- [schematics](../../devkit/documents/MigrationsJson#schematics): Object -- [version](../../devkit/documents/MigrationsJson#version): string - -## Properties - -### collection - -• `Optional` **collection**: `string` - ---- - -### generators - -• `Optional` **generators**: `Object` - -#### Index signature - -▪ [name: `string`]: `MigrationsJsonEntry` - ---- - -### name - -• `Optional` **name**: `string` - ---- - -### packageJsonUpdates - -• `Optional` **packageJsonUpdates**: `PackageJsonUpdates` - ---- - -### schematics - -• `Optional` **schematics**: `Object` - -#### Index signature - -▪ [name: `string`]: `MigrationsJsonEntry` - ---- - -### version - -• `Optional` **version**: `string` diff --git a/docs/generated/devkit/NX_VERSION.md b/docs/generated/devkit/NX_VERSION.md deleted file mode 100644 index 832ba480a387a..0000000000000 --- a/docs/generated/devkit/NX_VERSION.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: NX_VERSION - -• `Const` **NX_VERSION**: `string` - -**`Description`** - -The version of Nx used by the workspace. Returns null if no version is found. diff --git a/docs/generated/devkit/NxAffectedConfig.md b/docs/generated/devkit/NxAffectedConfig.md deleted file mode 100644 index 159cb43fa8457..0000000000000 --- a/docs/generated/devkit/NxAffectedConfig.md +++ /dev/null @@ -1,19 +0,0 @@ -# Interface: NxAffectedConfig - -**`Deprecated`** - -Use [NxJsonConfiguration#defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead - -## Table of contents - -### Properties - -- [defaultBase](../../devkit/documents/NxAffectedConfig#defaultbase): string - -## Properties - -### defaultBase - -• `Optional` **defaultBase**: `string` - -Default based branch used by affected commands. diff --git a/docs/generated/devkit/NxJsonConfiguration.md b/docs/generated/devkit/NxJsonConfiguration.md deleted file mode 100644 index 9db108e67346a..0000000000000 --- a/docs/generated/devkit/NxJsonConfiguration.md +++ /dev/null @@ -1,271 +0,0 @@ -# Interface: NxJsonConfiguration\ - -Nx.json configuration - -## Type parameters - -| Name | Type | -| :--- | :------------------ | -| `T` | `"*"` \| `string`[] | - -## Hierarchy - -- **`NxJsonConfiguration`** - - ↳ [`Workspace`](../../devkit/documents/Workspace) - -## Table of contents - -### Properties - -- [affected](../../devkit/documents/NxJsonConfiguration#affected): NxAffectedConfig -- [cacheDirectory](../../devkit/documents/NxJsonConfiguration#cachedirectory): string -- [cli](../../devkit/documents/NxJsonConfiguration#cli): Object -- [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase): string -- [defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject): string -- [extends](../../devkit/documents/NxJsonConfiguration#extends): string -- [generators](../../devkit/documents/NxJsonConfiguration#generators): Object -- [implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies): ImplicitDependencyEntry -- [installation](../../devkit/documents/NxJsonConfiguration#installation): NxInstallationConfiguration -- [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs): Object -- [nxCloudAccessToken](../../devkit/documents/NxJsonConfiguration#nxcloudaccesstoken): string -- [nxCloudEncryptionKey](../../devkit/documents/NxJsonConfiguration#nxcloudencryptionkey): string -- [nxCloudUrl](../../devkit/documents/NxJsonConfiguration#nxcloudurl): string -- [parallel](../../devkit/documents/NxJsonConfiguration#parallel): number -- [plugins](../../devkit/documents/NxJsonConfiguration#plugins): PluginConfiguration[] -- [pluginsConfig](../../devkit/documents/NxJsonConfiguration#pluginsconfig): Record> -- [release](../../devkit/documents/NxJsonConfiguration#release): NxReleaseConfiguration -- [targetDefaults](../../devkit/documents/NxJsonConfiguration#targetdefaults): TargetDefaults -- [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions): Object -- [useDaemonProcess](../../devkit/documents/NxJsonConfiguration#usedaemonprocess): boolean -- [useInferencePlugins](../../devkit/documents/NxJsonConfiguration#useinferenceplugins): boolean -- [workspaceLayout](../../devkit/documents/NxJsonConfiguration#workspacelayout): Object - -## Properties - -### affected - -• `Optional` **affected**: [`NxAffectedConfig`](../../devkit/documents/NxAffectedConfig) - -Default options for `nx affected` - -**`Deprecated`** - -use [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead. For more information see https://nx.dev/deprecated/affected-config#affected-config - ---- - -### cacheDirectory - -• `Optional` **cacheDirectory**: `string` - -Changes the directory used by Nx to store its cache. - ---- - -### cli - -• `Optional` **cli**: `Object` - -Default generator collection. It is used when no collection is provided. - -#### Type declaration - -| Name | Type | -| :-------------------- | :-------------------------------------------------------- | -| `defaultProjectName?` | `string` | -| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) | - ---- - -### defaultBase - -• `Optional` **defaultBase**: `string` - -Default value for --base used by `nx affected` and `nx format`. - ---- - -### defaultProject - -• `Optional` **defaultProject**: `string` - -Default project. When project isn't provided, the default project -will be used. Convenient for small workspaces with one main application. - ---- - -### extends - -• `Optional` **extends**: `string` - -Optional (additional) Nx.json configuration file which becomes a base for this one - ---- - -### generators - -• `Optional` **generators**: `Object` - -List of default values used by generators. - -These defaults are global. They are used when no other defaults are configured. - -Example: - -``` -{ - "@nx/react": { - "library": { - "style": "scss" - } - } -} -``` - -#### Index signature - -▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; } - ---- - -### implicitDependencies - -• `Optional` **implicitDependencies**: [`ImplicitDependencyEntry`](../../devkit/documents/ImplicitDependencyEntry)\<`T`\> - -Map of files to projects that implicitly depend on them - -**`Deprecated`** - -use [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) instead. For more information see https://nx.dev/deprecated/global-implicit-dependencies#global-implicit-dependencies - ---- - -### installation - -• `Optional` **installation**: `NxInstallationConfiguration` - -Configures the Nx installation for a repo. Useful for maintaining a separate -set of dependencies for Nx + Plugins compared to the base package.json, but also -useful for workspaces that don't have a root package.json + node_modules. - ---- - -### namedInputs - -• `Optional` **namedInputs**: `Object` - -Named inputs targets can refer to reduce duplication - -#### Index signature - -▪ [inputName: `string`]: (`string` \| `InputDefinition`)[] - ---- - -### nxCloudAccessToken - -• `Optional` **nxCloudAccessToken**: `string` - -If specified Nx will use nx-cloud by default with the given token. -To use a different runner that accepts an access token, define it in [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions) - ---- - -### nxCloudEncryptionKey - -• `Optional` **nxCloudEncryptionKey**: `string` - -Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud. - ---- - -### nxCloudUrl - -• `Optional` **nxCloudUrl**: `string` - -Specifies the url pointing to an instance of nx cloud. Used for remote -caching and displaying run links. - ---- - -### parallel - -• `Optional` **parallel**: `number` - -Specifies how many tasks can be run in parallel. - ---- - -### plugins - -• `Optional` **plugins**: [`PluginConfiguration`](../../devkit/documents/PluginConfiguration)[] - -Plugins for extending the project graph - ---- - -### pluginsConfig - -• `Optional` **pluginsConfig**: `Record`\<`string`, `Record`\<`string`, `unknown`\>\> - -Configuration for Nx Plugins - ---- - -### release - -• `Optional` **release**: `NxReleaseConfiguration` - -Configuration for `nx release` (versioning and publishing of applications and libraries) - ---- - -### targetDefaults - -• `Optional` **targetDefaults**: [`TargetDefaults`](../../devkit/documents/TargetDefaults) - -Dependencies between different target names across all projects - ---- - -### tasksRunnerOptions - -• `Optional` **tasksRunnerOptions**: `Object` - -Available Task Runners - -#### Index signature - -▪ [tasksRunnerName: `string`]: \{ `options?`: `any` ; `runner?`: `string` } - ---- - -### useDaemonProcess - -• `Optional` **useDaemonProcess**: `boolean` - -Set this to false to disable the daemon. - ---- - -### useInferencePlugins - -• `Optional` **useInferencePlugins**: `boolean` - -Set this to false to disable adding inference plugins when generating new projects - ---- - -### workspaceLayout - -• `Optional` **workspaceLayout**: `Object` - -Where new apps + libs should be placed - -#### Type declaration - -| Name | Type | -| :--------- | :------- | -| `appsDir?` | `string` | -| `libsDir?` | `string` | diff --git a/docs/generated/devkit/NxPlugin.md b/docs/generated/devkit/NxPlugin.md deleted file mode 100644 index c2a649fcf36dc..0000000000000 --- a/docs/generated/devkit/NxPlugin.md +++ /dev/null @@ -1,5 +0,0 @@ -# Type alias: NxPlugin - -Ƭ **NxPlugin**: [`NxPluginV1`](../../devkit/documents/NxPluginV1) \| [`NxPluginV2`](../../devkit/documents/NxPluginV2) - -A plugin for Nx diff --git a/docs/generated/devkit/NxPluginV1.md b/docs/generated/devkit/NxPluginV1.md deleted file mode 100644 index f760023c45bc7..0000000000000 --- a/docs/generated/devkit/NxPluginV1.md +++ /dev/null @@ -1,16 +0,0 @@ -# Type alias: NxPluginV1 - -Ƭ **NxPluginV1**: `Object` - -**`Deprecated`** - -Use [NxPluginV2](../../devkit/documents/NxPluginV2) instead. This will be removed in Nx 19 - -#### Type declaration - -| Name | Type | Description | -| :------------------------ | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | `string` | - | -| `processProjectGraph?` | `ProjectGraphProcessor` | **`Deprecated`** Use [CreateNodes](../../devkit/documents/CreateNodes) and [CreateDependencies](../../devkit/documents/CreateDependencies) instead. This will be removed in Nx 19 | -| `projectFilePatterns?` | `string`[] | A glob pattern to search for non-standard project files. @example: ["*.csproj", "pom.xml"] **`Deprecated`** Use [CreateNodes](../../devkit/documents/CreateNodes) instead. This will be removed in Nx 19 | -| `registerProjectTargets?` | [`ProjectTargetConfigurator`](../../devkit/documents/ProjectTargetConfigurator) | **`Deprecated`** Add targets to the projects inside of [CreateNodes](../../devkit/documents/CreateNodes) instead. This will be removed in Nx 19 | diff --git a/docs/generated/devkit/NxPluginV2.md b/docs/generated/devkit/NxPluginV2.md deleted file mode 100644 index 52eb73cf5ffa8..0000000000000 --- a/docs/generated/devkit/NxPluginV2.md +++ /dev/null @@ -1,19 +0,0 @@ -# Type alias: NxPluginV2\ - -Ƭ **NxPluginV2**\<`TOptions`\>: `Object` - -A plugin for Nx which creates nodes and dependencies for the [ProjectGraph](../../devkit/documents/ProjectGraph) - -#### Type parameters - -| Name | Type | -| :--------- | :-------- | -| `TOptions` | `unknown` | - -#### Type declaration - -| Name | Type | Description | -| :-------------------- | :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | -| `createDependencies?` | [`CreateDependencies`](../../devkit/documents/CreateDependencies)\<`TOptions`\> | Provides a function to analyze files to create dependencies for the [ProjectGraph](../../devkit/documents/ProjectGraph) | -| `createNodes?` | [`CreateNodes`](../../devkit/documents/CreateNodes) | Provides a file pattern and function that retrieves configuration info from those files. e.g. { '\*_/_.csproj': buildProjectsFromCsProjFile } | -| `name` | `string` | - | diff --git a/docs/generated/devkit/PackageManager.md b/docs/generated/devkit/PackageManager.md deleted file mode 100644 index e633d8c96104f..0000000000000 --- a/docs/generated/devkit/PackageManager.md +++ /dev/null @@ -1,3 +0,0 @@ -# Type alias: PackageManager - -Ƭ **PackageManager**: `"yarn"` \| `"pnpm"` \| `"npm"` diff --git a/docs/generated/devkit/PluginConfiguration.md b/docs/generated/devkit/PluginConfiguration.md deleted file mode 100644 index 72289e36c72d3..0000000000000 --- a/docs/generated/devkit/PluginConfiguration.md +++ /dev/null @@ -1,3 +0,0 @@ -# Type alias: PluginConfiguration - -Ƭ **PluginConfiguration**: `string` \| \{ `options?`: `unknown` ; `plugin`: `string` } diff --git a/docs/generated/devkit/ProjectConfiguration.md b/docs/generated/devkit/ProjectConfiguration.md deleted file mode 100644 index a5946690f8904..0000000000000 --- a/docs/generated/devkit/ProjectConfiguration.md +++ /dev/null @@ -1,130 +0,0 @@ -# Interface: ProjectConfiguration - -Project configuration - -## Table of contents - -### Properties - -- [generators](../../devkit/documents/ProjectConfiguration#generators): Object -- [implicitDependencies](../../devkit/documents/ProjectConfiguration#implicitdependencies): string[] -- [name](../../devkit/documents/ProjectConfiguration#name): string -- [namedInputs](../../devkit/documents/ProjectConfiguration#namedinputs): Object -- [projectType](../../devkit/documents/ProjectConfiguration#projecttype): ProjectType -- [release](../../devkit/documents/ProjectConfiguration#release): Object -- [root](../../devkit/documents/ProjectConfiguration#root): string -- [sourceRoot](../../devkit/documents/ProjectConfiguration#sourceroot): string -- [tags](../../devkit/documents/ProjectConfiguration#tags): string[] -- [targets](../../devkit/documents/ProjectConfiguration#targets): Object - -## Properties - -### generators - -• `Optional` **generators**: `Object` - -List of default values used by generators. - -These defaults are project specific. - -Example: - -``` -{ - "@nx/react": { - "library": { - "style": "scss" - } - } -} -``` - -#### Index signature - -▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; } - ---- - -### implicitDependencies - -• `Optional` **implicitDependencies**: `string`[] - -List of projects which are added as a dependency - ---- - -### name - -• `Optional` **name**: `string` - -Project's name. Optional if specified in workspace.json - ---- - -### namedInputs - -• `Optional` **namedInputs**: `Object` - -Named inputs targets can refer to reduce duplication - -#### Index signature - -▪ [inputName: `string`]: (`string` \| `InputDefinition`)[] - ---- - -### projectType - -• `Optional` **projectType**: [`ProjectType`](../../devkit/documents/ProjectType) - -Project type - ---- - -### release - -• `Optional` **release**: `Object` - -Project specific configuration for `nx release` - -#### Type declaration - -| Name | Type | -| :--------- | :------------------------------------------------------------------------------- | -| `version?` | `Pick`\<`NxReleaseVersionConfiguration`, `"generator"` \| `"generatorOptions"`\> | - ---- - -### root - -• **root**: `string` - -Project's location relative to the root of the workspace - ---- - -### sourceRoot - -• `Optional` **sourceRoot**: `string` - -The location of project's sources relative to the root of the workspace - ---- - -### tags - -• `Optional` **tags**: `string`[] - -List of tags used by enforce-module-boundaries / project graph - ---- - -### targets - -• `Optional` **targets**: `Object` - -Project's targets - -#### Index signature - -▪ [targetName: `string`]: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration) diff --git a/docs/generated/devkit/ProjectFileMap.md b/docs/generated/devkit/ProjectFileMap.md deleted file mode 100644 index 86efa81a5fdb3..0000000000000 --- a/docs/generated/devkit/ProjectFileMap.md +++ /dev/null @@ -1,7 +0,0 @@ -# Interface: ProjectFileMap - -A list of files separated by the project they belong to - -## Indexable - -▪ [projectName: `string`]: [`FileData`](../../devkit/documents/FileData)[] diff --git a/docs/generated/devkit/ProjectGraph.md b/docs/generated/devkit/ProjectGraph.md deleted file mode 100644 index dd3eb89567942..0000000000000 --- a/docs/generated/devkit/ProjectGraph.md +++ /dev/null @@ -1,36 +0,0 @@ -# Interface: ProjectGraph - -A Graph of projects in the workspace and dependencies between them - -## Table of contents - -### Properties - -- [dependencies](../../devkit/documents/ProjectGraph#dependencies): Record -- [externalNodes](../../devkit/documents/ProjectGraph#externalnodes): Record -- [nodes](../../devkit/documents/ProjectGraph#nodes): Record -- [version](../../devkit/documents/ProjectGraph#version): string - -## Properties - -### dependencies - -• **dependencies**: `Record`\<`string`, [`ProjectGraphDependency`](../../devkit/documents/ProjectGraphDependency)[]\> - ---- - -### externalNodes - -• `Optional` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\> - ---- - -### nodes - -• **nodes**: `Record`\<`string`, [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode)\> - ---- - -### version - -• `Optional` **version**: `string` diff --git a/docs/generated/devkit/ProjectGraphBuilder.md b/docs/generated/devkit/ProjectGraphBuilder.md deleted file mode 100644 index 617952c4fbe81..0000000000000 --- a/docs/generated/devkit/ProjectGraphBuilder.md +++ /dev/null @@ -1,288 +0,0 @@ -# Class: ProjectGraphBuilder - -A class which builds up a project graph - -**`Deprecated`** - -The ProjectGraphProcessor has been deprecated. Use a [CreateNodes](../../devkit/documents/CreateNodes) and/or a [CreateDependencies](../../devkit/documents/CreateDependencies) instead. This will be removed in Nx 19. - -## Table of contents - -### Constructors - -- [constructor](../../devkit/documents/ProjectGraphBuilder#constructor) - -### Properties - -- [graph](../../devkit/documents/ProjectGraphBuilder#graph): ProjectGraph -- [removedEdges](../../devkit/documents/ProjectGraphBuilder#removededges): Object - -### Methods - -- [addDependency](../../devkit/documents/ProjectGraphBuilder#adddependency) -- [addDynamicDependency](../../devkit/documents/ProjectGraphBuilder#adddynamicdependency) -- [addExplicitDependency](../../devkit/documents/ProjectGraphBuilder#addexplicitdependency) -- [addExternalNode](../../devkit/documents/ProjectGraphBuilder#addexternalnode) -- [addImplicitDependency](../../devkit/documents/ProjectGraphBuilder#addimplicitdependency) -- [addNode](../../devkit/documents/ProjectGraphBuilder#addnode) -- [addStaticDependency](../../devkit/documents/ProjectGraphBuilder#addstaticdependency) -- [getUpdatedProjectGraph](../../devkit/documents/ProjectGraphBuilder#getupdatedprojectgraph) -- [mergeProjectGraph](../../devkit/documents/ProjectGraphBuilder#mergeprojectgraph) -- [removeDependency](../../devkit/documents/ProjectGraphBuilder#removedependency) -- [removeNode](../../devkit/documents/ProjectGraphBuilder#removenode) -- [setVersion](../../devkit/documents/ProjectGraphBuilder#setversion) - -## Constructors - -### constructor - -• **new ProjectGraphBuilder**(`graph?`, `projectFileMap?`, `nonProjectFiles?`): [`ProjectGraphBuilder`](../../devkit/documents/ProjectGraphBuilder) - -#### Parameters - -| Name | Type | -| :----------------- | :-------------------------------------------------------- | -| `graph?` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | -| `projectFileMap?` | [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) | -| `nonProjectFiles?` | [`FileData`](../../devkit/documents/FileData)[] | - -#### Returns - -[`ProjectGraphBuilder`](../../devkit/documents/ProjectGraphBuilder) - -## Properties - -### graph - -• `Readonly` **graph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph) - ---- - -### removedEdges - -• `Readonly` **removedEdges**: `Object` = `{}` - -#### Index signature - -▪ [source: `string`]: `Set`\<`string`\> - -## Methods - -### addDependency - -▸ **addDependency**(`source`, `target`, `type`, `sourceFile?`): `void` - -#### Parameters - -| Name | Type | -| :------------ | :-------------------------------------------------------- | -| `source` | `string` | -| `target` | `string` | -| `type` | [`DependencyType`](../../devkit/documents/DependencyType) | -| `sourceFile?` | `string` | - -#### Returns - -`void` - ---- - -### addDynamicDependency - -▸ **addDynamicDependency**(`sourceProjectName`, `targetProjectName`, `sourceProjectFile`): `void` - -Adds dynamic dependency from source project to target project - -#### Parameters - -| Name | Type | -| :------------------ | :------- | -| `sourceProjectName` | `string` | -| `targetProjectName` | `string` | -| `sourceProjectFile` | `string` | - -#### Returns - -`void` - ---- - -### addExplicitDependency - -▸ **addExplicitDependency**(`sourceProjectName`, `sourceProjectFile`, `targetProjectName`): `void` - -Add an explicit dependency from a file in source project to target project - -#### Parameters - -| Name | Type | -| :------------------ | :------- | -| `sourceProjectName` | `string` | -| `sourceProjectFile` | `string` | -| `targetProjectName` | `string` | - -#### Returns - -`void` - -**`Deprecated`** - -this method will be removed in v17. Use [addStaticDependency](../../devkit/documents/ProjectGraphBuilder#addstaticdependency) or [addDynamicDependency](../../devkit/documents/ProjectGraphBuilder#adddynamicdependency) instead - ---- - -### addExternalNode - -▸ **addExternalNode**(`node`): `void` - -Adds a external node to the project graph - -#### Parameters - -| Name | Type | -| :----- | :---------------------------------------------------------------------------- | -| `node` | [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode) | - -#### Returns - -`void` - ---- - -### addImplicitDependency - -▸ **addImplicitDependency**(`sourceProjectName`, `targetProjectName`): `void` - -Adds implicit dependency from source project to target project - -#### Parameters - -| Name | Type | -| :------------------ | :------- | -| `sourceProjectName` | `string` | -| `targetProjectName` | `string` | - -#### Returns - -`void` - ---- - -### addNode - -▸ **addNode**(`node`): `void` - -Adds a project node to the project graph - -#### Parameters - -| Name | Type | -| :----- | :-------------------------------------------------------------------------- | -| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) | - -#### Returns - -`void` - ---- - -### addStaticDependency - -▸ **addStaticDependency**(`sourceProjectName`, `targetProjectName`, `sourceProjectFile?`): `void` - -Adds static dependency from source project to target project - -#### Parameters - -| Name | Type | -| :------------------- | :------- | -| `sourceProjectName` | `string` | -| `targetProjectName` | `string` | -| `sourceProjectFile?` | `string` | - -#### Returns - -`void` - ---- - -### getUpdatedProjectGraph - -▸ **getUpdatedProjectGraph**(): [`ProjectGraph`](../../devkit/documents/ProjectGraph) - -#### Returns - -[`ProjectGraph`](../../devkit/documents/ProjectGraph) - ---- - -### mergeProjectGraph - -▸ **mergeProjectGraph**(`p`): `void` - -Merges the nodes and dependencies of p into the built project graph. - -#### Parameters - -| Name | Type | -| :--- | :---------------------------------------------------- | -| `p` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | - -#### Returns - -`void` - ---- - -### removeDependency - -▸ **removeDependency**(`sourceProjectName`, `targetProjectName`): `void` - -Removes a dependency from source project to target project - -#### Parameters - -| Name | Type | -| :------------------ | :------- | -| `sourceProjectName` | `string` | -| `targetProjectName` | `string` | - -#### Returns - -`void` - ---- - -### removeNode - -▸ **removeNode**(`name`): `void` - -Removes a node and all of its dependency edges from the graph - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `name` | `string` | - -#### Returns - -`void` - ---- - -### setVersion - -▸ **setVersion**(`version`): `void` - -Set version of the project graph - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `version` | `string` | - -#### Returns - -`void` diff --git a/docs/generated/devkit/ProjectGraphDependency.md b/docs/generated/devkit/ProjectGraphDependency.md deleted file mode 100644 index 417853fa5870b..0000000000000 --- a/docs/generated/devkit/ProjectGraphDependency.md +++ /dev/null @@ -1,33 +0,0 @@ -# Interface: ProjectGraphDependency - -A dependency between two projects - -## Table of contents - -### Properties - -- [source](../../devkit/documents/ProjectGraphDependency#source): string -- [target](../../devkit/documents/ProjectGraphDependency#target): string -- [type](../../devkit/documents/ProjectGraphDependency#type): string - -## Properties - -### source - -• **source**: `string` - -The project importing the other - ---- - -### target - -• **target**: `string` - -The project being imported by the other - ---- - -### type - -• **type**: `string` diff --git a/docs/generated/devkit/ProjectGraphExternalNode.md b/docs/generated/devkit/ProjectGraphExternalNode.md deleted file mode 100644 index df774d2ba0dc2..0000000000000 --- a/docs/generated/devkit/ProjectGraphExternalNode.md +++ /dev/null @@ -1,44 +0,0 @@ -# Interface: ProjectGraphExternalNode - -A node describing an external dependency -`name` has as form of: - -- `npm:packageName` for root dependencies or -- `npm:packageName@version` for nested transitive dependencies - -This is vital for our node discovery to always point to root dependencies, -while allowing tracking of the full tree of different nested versions - -## Table of contents - -### Properties - -- [data](../../devkit/documents/ProjectGraphExternalNode#data): Object -- [name](../../devkit/documents/ProjectGraphExternalNode#name): `npm:${string}` -- [type](../../devkit/documents/ProjectGraphExternalNode#type): "npm" - -## Properties - -### data - -• **data**: `Object` - -#### Type declaration - -| Name | Type | -| :------------ | :------- | -| `hash?` | `string` | -| `packageName` | `string` | -| `version` | `string` | - ---- - -### name - -• **name**: \`npm:$\{string}\` - ---- - -### type - -• **type**: `"npm"` diff --git a/docs/generated/devkit/ProjectGraphNode.md b/docs/generated/devkit/ProjectGraphNode.md deleted file mode 100644 index bd335d0127a2c..0000000000000 --- a/docs/generated/devkit/ProjectGraphNode.md +++ /dev/null @@ -1,7 +0,0 @@ -# Type alias: ProjectGraphNode - -Ƭ **ProjectGraphNode**: [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) \| [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode) - -**`Deprecated`** - -this type will be removed in v16. Use [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) instead diff --git a/docs/generated/devkit/ProjectGraphProcessorContext.md b/docs/generated/devkit/ProjectGraphProcessorContext.md deleted file mode 100644 index 243963c48ad67..0000000000000 --- a/docs/generated/devkit/ProjectGraphProcessorContext.md +++ /dev/null @@ -1,57 +0,0 @@ -# Interface: ProjectGraphProcessorContext - -Additional information to be used to process a project graph - -**`Deprecated`** - -The ProjectGraphProcessor is deprecated. This will be removed in Nx 19. - -## Table of contents - -### Properties - -- [fileMap](../../devkit/documents/ProjectGraphProcessorContext#filemap): ProjectFileMap -- [filesToProcess](../../devkit/documents/ProjectGraphProcessorContext#filestoprocess): ProjectFileMap -- [nxJsonConfiguration](../../devkit/documents/ProjectGraphProcessorContext#nxjsonconfiguration): NxJsonConfiguration -- [projectsConfigurations](../../devkit/documents/ProjectGraphProcessorContext#projectsconfigurations): ProjectsConfigurations -- [workspace](../../devkit/documents/ProjectGraphProcessorContext#workspace): Workspace - -## Properties - -### fileMap - -• **fileMap**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) - -All files in the workspace - ---- - -### filesToProcess - -• **filesToProcess**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) - -Files changes since last invocation - ---- - -### nxJsonConfiguration - -• **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - ---- - -### projectsConfigurations - -• **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) - ---- - -### workspace - -• **workspace**: [`Workspace`](../../devkit/documents/Workspace) - -Workspace information such as projects and configuration - -**`Deprecated`** - -use [projectsConfigurations](../../devkit/documents/ProjectGraphProcessorContext#projectsconfigurations) or [nxJsonConfiguration](../../devkit/documents/ProjectGraphProcessorContext#nxjsonconfiguration) instead diff --git a/docs/generated/devkit/ProjectGraphProjectNode.md b/docs/generated/devkit/ProjectGraphProjectNode.md deleted file mode 100644 index 12a785f2aa5be..0000000000000 --- a/docs/generated/devkit/ProjectGraphProjectNode.md +++ /dev/null @@ -1,31 +0,0 @@ -# Interface: ProjectGraphProjectNode - -A node describing a project in a workspace - -## Table of contents - -### Properties - -- [data](../../devkit/documents/ProjectGraphProjectNode#data): ProjectConfiguration & Object -- [name](../../devkit/documents/ProjectGraphProjectNode#name): string -- [type](../../devkit/documents/ProjectGraphProjectNode#type): "app" | "e2e" | "lib" - -## Properties - -### data - -• **data**: [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) & \{ `description?`: `string` } - -Additional metadata about a project - ---- - -### name - -• **name**: `string` - ---- - -### type - -• **type**: `"app"` \| `"e2e"` \| `"lib"` diff --git a/docs/generated/devkit/ProjectTargetConfigurator.md b/docs/generated/devkit/ProjectTargetConfigurator.md deleted file mode 100644 index b4bf537e7af29..0000000000000 --- a/docs/generated/devkit/ProjectTargetConfigurator.md +++ /dev/null @@ -1,21 +0,0 @@ -# Type alias: ProjectTargetConfigurator - -Ƭ **ProjectTargetConfigurator**: (`file`: `string`) => `Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\> - -**`Deprecated`** - -Add targets to the projects in a [CreateNodes](../../devkit/documents/CreateNodes) function instead. This will be removed in Nx 19 - -#### Type declaration - -▸ (`file`): `Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\> - -##### Parameters - -| Name | Type | -| :----- | :------- | -| `file` | `string` | - -##### Returns - -`Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\> diff --git a/docs/generated/devkit/ProjectType.md b/docs/generated/devkit/ProjectType.md deleted file mode 100644 index 237864da5e21c..0000000000000 --- a/docs/generated/devkit/ProjectType.md +++ /dev/null @@ -1,5 +0,0 @@ -# Type alias: ProjectType - -Ƭ **ProjectType**: `"library"` \| `"application"` - -Type of project supported diff --git a/docs/generated/devkit/ProjectsConfigurations.md b/docs/generated/devkit/ProjectsConfigurations.md deleted file mode 100644 index 60c94c341ddfc..0000000000000 --- a/docs/generated/devkit/ProjectsConfigurations.md +++ /dev/null @@ -1,36 +0,0 @@ -# Interface: ProjectsConfigurations - -Projects Configurations - -## Hierarchy - -- **`ProjectsConfigurations`** - - ↳ [`Workspace`](../../devkit/documents/Workspace) - -## Table of contents - -### Properties - -- [projects](../../devkit/documents/ProjectsConfigurations#projects): Object -- [version](../../devkit/documents/ProjectsConfigurations#version): number - -## Properties - -### projects - -• **projects**: `Object` - -Projects' projects - -#### Index signature - -▪ [projectName: `string`]: [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) - ---- - -### version - -• **version**: `number` - -Version of the configuration format diff --git a/docs/generated/devkit/README.md b/docs/generated/devkit/README.md deleted file mode 100644 index 25f19c02c7193..0000000000000 --- a/docs/generated/devkit/README.md +++ /dev/null @@ -1,158 +0,0 @@ -# @nx/devkit - -The Nx Devkit is the underlying technology used to customize Nx to support -different technologies and custom use-cases. It contains many utility -functions for reading and writing files, updating configuration, -working with Abstract Syntax Trees(ASTs), and more. - -As with most things in Nx, the core of Nx Devkit is very simple. -It only uses language primitives and immutable objects -(the tree being the only exception). - -## Table of contents - -### Enumerations - -- [ChangeType](../../devkit/documents/ChangeType) -- [DependencyType](../../devkit/documents/DependencyType) - -### Classes - -- [ProjectGraphBuilder](../../devkit/documents/ProjectGraphBuilder) -- [Workspaces](../../devkit/documents/Workspaces) - -### Interfaces - -- [CreateDependenciesContext](../../devkit/documents/CreateDependenciesContext) -- [CreateNodesContext](../../devkit/documents/CreateNodesContext) -- [CreateNodesResult](../../devkit/documents/CreateNodesResult) -- [DefaultTasksRunnerOptions](../../devkit/documents/DefaultTasksRunnerOptions) -- [ExecutorContext](../../devkit/documents/ExecutorContext) -- [ExecutorsJson](../../devkit/documents/ExecutorsJson) -- [FileChange](../../devkit/documents/FileChange) -- [FileData](../../devkit/documents/FileData) -- [FileMap](../../devkit/documents/FileMap) -- [GeneratorsJson](../../devkit/documents/GeneratorsJson) -- [Hash](../../devkit/documents/Hash) -- [HasherContext](../../devkit/documents/HasherContext) -- [ImplicitJsonSubsetDependency](../../devkit/documents/ImplicitJsonSubsetDependency) -- [JsonParseOptions](../../devkit/documents/JsonParseOptions) -- [JsonSerializeOptions](../../devkit/documents/JsonSerializeOptions) -- [MigrationsJson](../../devkit/documents/MigrationsJson) -- [NxAffectedConfig](../../devkit/documents/NxAffectedConfig) -- [NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration) -- [ProjectConfiguration](../../devkit/documents/ProjectConfiguration) -- [ProjectFileMap](../../devkit/documents/ProjectFileMap) -- [ProjectGraph](../../devkit/documents/ProjectGraph) -- [ProjectGraphDependency](../../devkit/documents/ProjectGraphDependency) -- [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) -- [ProjectGraphProcessorContext](../../devkit/documents/ProjectGraphProcessorContext) -- [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) -- [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations) -- [RemoteCache](../../devkit/documents/RemoteCache) -- [StringDeletion](../../devkit/documents/StringDeletion) -- [StringInsertion](../../devkit/documents/StringInsertion) -- [Target](../../devkit/documents/Target) -- [TargetConfiguration](../../devkit/documents/TargetConfiguration) -- [TargetDependencyConfig](../../devkit/documents/TargetDependencyConfig) -- [Task](../../devkit/documents/Task) -- [TaskGraph](../../devkit/documents/TaskGraph) -- [TaskHasher](../../devkit/documents/TaskHasher) -- [Tree](../../devkit/documents/Tree) -- [Workspace](../../devkit/documents/Workspace) - -### Type Aliases - -- [CreateDependencies](../../devkit/documents/CreateDependencies) -- [CreateNodes](../../devkit/documents/CreateNodes) -- [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) -- [CustomHasher](../../devkit/documents/CustomHasher) -- [DynamicDependency](../../devkit/documents/DynamicDependency) -- [Executor](../../devkit/documents/Executor) -- [Generator](../../devkit/documents/Generator) -- [GeneratorCallback](../../devkit/documents/GeneratorCallback) -- [Hasher](../../devkit/documents/Hasher) -- [ImplicitDependency](../../devkit/documents/ImplicitDependency) -- [ImplicitDependencyEntry](../../devkit/documents/ImplicitDependencyEntry) -- [NxPlugin](../../devkit/documents/NxPlugin) -- [NxPluginV1](../../devkit/documents/NxPluginV1) -- [NxPluginV2](../../devkit/documents/NxPluginV2) -- [PackageManager](../../devkit/documents/PackageManager) -- [PluginConfiguration](../../devkit/documents/PluginConfiguration) -- [ProjectGraphNode](../../devkit/documents/ProjectGraphNode) -- [ProjectTargetConfigurator](../../devkit/documents/ProjectTargetConfigurator) -- [ProjectType](../../devkit/documents/ProjectType) -- [RawProjectGraphDependency](../../devkit/documents/RawProjectGraphDependency) -- [StaticDependency](../../devkit/documents/StaticDependency) -- [StringChange](../../devkit/documents/StringChange) -- [TargetDefaults](../../devkit/documents/TargetDefaults) -- [TaskGraphExecutor](../../devkit/documents/TaskGraphExecutor) -- [ToJSOptions](../../devkit/documents/ToJSOptions) -- [WorkspaceJsonConfiguration](../../devkit/documents/WorkspaceJsonConfiguration) - -### Variables - -- [NX_VERSION](../../devkit/documents/NX_VERSION): string -- [appRootPath](../../devkit/documents/appRootPath): string -- [cacheDir](../../devkit/documents/cacheDir): string -- [logger](../../devkit/documents/logger): Object -- [output](../../devkit/documents/output): CLIOutput -- [workspaceRoot](../../devkit/documents/workspaceRoot): string - -### Functions - -- [addDependenciesToPackageJson](../../devkit/documents/addDependenciesToPackageJson) -- [addProjectConfiguration](../../devkit/documents/addProjectConfiguration) -- [applyChangesToString](../../devkit/documents/applyChangesToString) -- [convertNxExecutor](../../devkit/documents/convertNxExecutor) -- [convertNxGenerator](../../devkit/documents/convertNxGenerator) -- [createProjectFileMapUsingProjectGraph](../../devkit/documents/createProjectFileMapUsingProjectGraph) -- [createProjectGraphAsync](../../devkit/documents/createProjectGraphAsync) -- [defaultTasksRunner](../../devkit/documents/defaultTasksRunner) -- [detectPackageManager](../../devkit/documents/detectPackageManager) -- [ensurePackage](../../devkit/documents/ensurePackage) -- [extractLayoutDirectory](../../devkit/documents/extractLayoutDirectory) -- [formatFiles](../../devkit/documents/formatFiles) -- [generateFiles](../../devkit/documents/generateFiles) -- [getOutputsForTargetAndConfiguration](../../devkit/documents/getOutputsForTargetAndConfiguration) -- [getPackageManagerCommand](../../devkit/documents/getPackageManagerCommand) -- [getPackageManagerVersion](../../devkit/documents/getPackageManagerVersion) -- [getProjects](../../devkit/documents/getProjects) -- [getWorkspaceLayout](../../devkit/documents/getWorkspaceLayout) -- [glob](../../devkit/documents/glob) -- [hashArray](../../devkit/documents/hashArray) -- [installPackagesTask](../../devkit/documents/installPackagesTask) -- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled) -- [joinPathFragments](../../devkit/documents/joinPathFragments) -- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory) -- [names](../../devkit/documents/names) -- [normalizePath](../../devkit/documents/normalizePath) -- [offsetFromRoot](../../devkit/documents/offsetFromRoot) -- [parseJson](../../devkit/documents/parseJson) -- [parseTargetString](../../devkit/documents/parseTargetString) -- [readCachedProjectGraph](../../devkit/documents/readCachedProjectGraph) -- [readJson](../../devkit/documents/readJson) -- [readJsonFile](../../devkit/documents/readJsonFile) -- [readNxJson](../../devkit/documents/readNxJson) -- [readProjectConfiguration](../../devkit/documents/readProjectConfiguration) -- [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) -- [readTargetOptions](../../devkit/documents/readTargetOptions) -- [removeDependenciesFromPackageJson](../../devkit/documents/removeDependenciesFromPackageJson) -- [removeProjectConfiguration](../../devkit/documents/removeProjectConfiguration) -- [reverse](../../devkit/documents/reverse) -- [runExecutor](../../devkit/documents/runExecutor) -- [runTasksInSerial](../../devkit/documents/runTasksInSerial) -- [serializeJson](../../devkit/documents/serializeJson) -- [stripIndents](../../devkit/documents/stripIndents) -- [stripJsonComments](../../devkit/documents/stripJsonComments) -- [targetToTargetString](../../devkit/documents/targetToTargetString) -- [toJS](../../devkit/documents/toJS) -- [updateJson](../../devkit/documents/updateJson) -- [updateNxJson](../../devkit/documents/updateNxJson) -- [updateProjectConfiguration](../../devkit/documents/updateProjectConfiguration) -- [updateTsConfigsToJs](../../devkit/documents/updateTsConfigsToJs) -- [validateDependency](../../devkit/documents/validateDependency) -- [visitNotIgnoredFiles](../../devkit/documents/visitNotIgnoredFiles) -- [workspaceLayout](../../devkit/documents/workspaceLayout) -- [writeJson](../../devkit/documents/writeJson) -- [writeJsonFile](../../devkit/documents/writeJsonFile) diff --git a/docs/generated/devkit/RawProjectGraphDependency.md b/docs/generated/devkit/RawProjectGraphDependency.md deleted file mode 100644 index 8718ec4bf943d..0000000000000 --- a/docs/generated/devkit/RawProjectGraphDependency.md +++ /dev/null @@ -1,7 +0,0 @@ -# Type alias: RawProjectGraphDependency - -Ƭ **RawProjectGraphDependency**: [`ImplicitDependency`](../../devkit/documents/ImplicitDependency) \| [`StaticDependency`](../../devkit/documents/StaticDependency) \| [`DynamicDependency`](../../devkit/documents/DynamicDependency) - -A [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects - -See [DynamicDependency](../../devkit/documents/DynamicDependency), [ImplicitDependency](../../devkit/documents/ImplicitDependency), or [StaticDependency](../../devkit/documents/StaticDependency) diff --git a/docs/generated/devkit/RemoteCache.md b/docs/generated/devkit/RemoteCache.md deleted file mode 100644 index 3ee0b31d11a63..0000000000000 --- a/docs/generated/devkit/RemoteCache.md +++ /dev/null @@ -1,50 +0,0 @@ -# Interface: RemoteCache - -## Table of contents - -### Properties - -- [retrieve](../../devkit/documents/RemoteCache#retrieve): Function -- [store](../../devkit/documents/RemoteCache#store): Function - -## Properties - -### retrieve - -• **retrieve**: (`hash`: `string`, `cacheDirectory`: `string`) => `Promise`\<`boolean`\> - -#### Type declaration - -▸ (`hash`, `cacheDirectory`): `Promise`\<`boolean`\> - -##### Parameters - -| Name | Type | -| :--------------- | :------- | -| `hash` | `string` | -| `cacheDirectory` | `string` | - -##### Returns - -`Promise`\<`boolean`\> - ---- - -### store - -• **store**: (`hash`: `string`, `cacheDirectory`: `string`) => `Promise`\<`boolean`\> - -#### Type declaration - -▸ (`hash`, `cacheDirectory`): `Promise`\<`boolean`\> - -##### Parameters - -| Name | Type | -| :--------------- | :------- | -| `hash` | `string` | -| `cacheDirectory` | `string` | - -##### Returns - -`Promise`\<`boolean`\> diff --git a/docs/generated/devkit/StaticDependency.md b/docs/generated/devkit/StaticDependency.md deleted file mode 100644 index e3216d0c6637c..0000000000000 --- a/docs/generated/devkit/StaticDependency.md +++ /dev/null @@ -1,18 +0,0 @@ -# Type alias: StaticDependency - -Ƭ **StaticDependency**: `Object` - -A static [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects - -This type of dependency indicates the source project ALWAYS load the target project. - -NOTE: StaticDependency#sourceFile MUST be present unless the source is the name of a [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) - -#### Type declaration - -| Name | Type | Description | -| :------------ | :-------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) depending on the target project | -| `sourceFile?` | `string` | The path of a file (relative from the workspace root) where the dependency is made | -| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) that the source project depends on | -| `type` | typeof [`static`](../../devkit/documents/DependencyType#static) | - | diff --git a/docs/generated/devkit/StringChange.md b/docs/generated/devkit/StringChange.md deleted file mode 100644 index 06f9944a02673..0000000000000 --- a/docs/generated/devkit/StringChange.md +++ /dev/null @@ -1,5 +0,0 @@ -# Type alias: StringChange - -Ƭ **StringChange**: [`StringInsertion`](../../devkit/documents/StringInsertion) \| [`StringDeletion`](../../devkit/documents/StringDeletion) - -A change to be made to a string diff --git a/docs/generated/devkit/StringDeletion.md b/docs/generated/devkit/StringDeletion.md deleted file mode 100644 index 47d40f54464cc..0000000000000 --- a/docs/generated/devkit/StringDeletion.md +++ /dev/null @@ -1,31 +0,0 @@ -# Interface: StringDeletion - -## Table of contents - -### Properties - -- [length](../../devkit/documents/StringDeletion#length): number -- [start](../../devkit/documents/StringDeletion#start): number -- [type](../../devkit/documents/StringDeletion#type): Delete - -## Properties - -### length - -• **length**: `number` - -Number of characters to delete - ---- - -### start - -• **start**: `number` - -Place in the original text to start deleting characters - ---- - -### type - -• **type**: [`Delete`](../../devkit/documents/ChangeType#delete) diff --git a/docs/generated/devkit/StringInsertion.md b/docs/generated/devkit/StringInsertion.md deleted file mode 100644 index aa07d64e7ebb5..0000000000000 --- a/docs/generated/devkit/StringInsertion.md +++ /dev/null @@ -1,31 +0,0 @@ -# Interface: StringInsertion - -## Table of contents - -### Properties - -- [index](../../devkit/documents/StringInsertion#index): number -- [text](../../devkit/documents/StringInsertion#text): string -- [type](../../devkit/documents/StringInsertion#type): Insert - -## Properties - -### index - -• **index**: `number` - -Place in the original text to insert new text - ---- - -### text - -• **text**: `string` - -Text to insert into the original text - ---- - -### type - -• **type**: [`Insert`](../../devkit/documents/ChangeType#insert) diff --git a/docs/generated/devkit/Target.md b/docs/generated/devkit/Target.md deleted file mode 100644 index 44f89f59369bc..0000000000000 --- a/docs/generated/devkit/Target.md +++ /dev/null @@ -1,27 +0,0 @@ -# Interface: Target - -## Table of contents - -### Properties - -- [configuration](../../devkit/documents/Target#configuration): string -- [project](../../devkit/documents/Target#project): string -- [target](../../devkit/documents/Target#target): string - -## Properties - -### configuration - -• `Optional` **configuration**: `string` - ---- - -### project - -• **project**: `string` - ---- - -### target - -• **target**: `string` diff --git a/docs/generated/devkit/TargetConfiguration.md b/docs/generated/devkit/TargetConfiguration.md deleted file mode 100644 index a20cc4a053e07..0000000000000 --- a/docs/generated/devkit/TargetConfiguration.md +++ /dev/null @@ -1,102 +0,0 @@ -# Interface: TargetConfiguration\ - -Target's configuration - -## Type parameters - -| Name | Type | -| :--- | :---- | -| `T` | `any` | - -## Table of contents - -### Properties - -- [cache](../../devkit/documents/TargetConfiguration#cache): boolean -- [command](../../devkit/documents/TargetConfiguration#command): string -- [configurations](../../devkit/documents/TargetConfiguration#configurations): Object -- [defaultConfiguration](../../devkit/documents/TargetConfiguration#defaultconfiguration): string -- [dependsOn](../../devkit/documents/TargetConfiguration#dependson): (string | TargetDependencyConfig)[] -- [executor](../../devkit/documents/TargetConfiguration#executor): string -- [inputs](../../devkit/documents/TargetConfiguration#inputs): (string | InputDefinition)[] -- [options](../../devkit/documents/TargetConfiguration#options): T -- [outputs](../../devkit/documents/TargetConfiguration#outputs): string[] - -## Properties - -### cache - -• `Optional` **cache**: `boolean` - -Determines if Nx is able to cache a given target. - ---- - -### command - -• `Optional` **command**: `string` - -Used as a shorthand for nx:run-commands, a command to run. - ---- - -### configurations - -• `Optional` **configurations**: `Object` - -Sets of options - -#### Index signature - -▪ [config: `string`]: `any` - ---- - -### defaultConfiguration - -• `Optional` **defaultConfiguration**: `string` - -A default named configuration to use when a target configuration is not provided. - ---- - -### dependsOn - -• `Optional` **dependsOn**: (`string` \| [`TargetDependencyConfig`](../../devkit/documents/TargetDependencyConfig))[] - -This describes other targets that a target depends on. - ---- - -### executor - -• `Optional` **executor**: `string` - -The executor/builder used to implement the target. - -Example: '@nx/rollup:rollup' - ---- - -### inputs - -• `Optional` **inputs**: (`string` \| `InputDefinition`)[] - -This describes filesets, runtime dependencies and other inputs that a target depends on. - ---- - -### options - -• `Optional` **options**: `T` - -Target's options. They are passed in to the executor. - ---- - -### outputs - -• `Optional` **outputs**: `string`[] - -List of the target's outputs. The outputs will be cached by the Nx computation -caching engine. diff --git a/docs/generated/devkit/TargetDefaults.md b/docs/generated/devkit/TargetDefaults.md deleted file mode 100644 index 240b0e712cbf6..0000000000000 --- a/docs/generated/devkit/TargetDefaults.md +++ /dev/null @@ -1,3 +0,0 @@ -# Type alias: TargetDefaults - -Ƭ **TargetDefaults**: `Record`\<`string`, `Partial`\<[`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\>\> diff --git a/docs/generated/devkit/TargetDependencyConfig.md b/docs/generated/devkit/TargetDependencyConfig.md deleted file mode 100644 index c8793560f356b..0000000000000 --- a/docs/generated/devkit/TargetDependencyConfig.md +++ /dev/null @@ -1,45 +0,0 @@ -# Interface: TargetDependencyConfig - -## Table of contents - -### Properties - -- [dependencies](../../devkit/documents/TargetDependencyConfig#dependencies): boolean -- [params](../../devkit/documents/TargetDependencyConfig#params): "ignore" | "forward" -- [projects](../../devkit/documents/TargetDependencyConfig#projects): string | string[] -- [target](../../devkit/documents/TargetDependencyConfig#target): string - -## Properties - -### dependencies - -• `Optional` **dependencies**: `boolean` - -If true, the target will be executed for each project that this project depends on. -Should not be specified together with `projects`. - ---- - -### params - -• `Optional` **params**: `"ignore"` \| `"forward"` - -Configuration for params handling. - ---- - -### projects - -• `Optional` **projects**: `string` \| `string`[] - -A list of projects that have `target`. -Should not be specified together with `dependencies`. - ---- - -### target - -• **target**: `string` - -The name of the target to run. If `projects` and `dependencies` are not specified, -the target will be executed for the same project the the current target is running on`. diff --git a/docs/generated/devkit/Task.md b/docs/generated/devkit/Task.md deleted file mode 100644 index 686bac2a5e6f2..0000000000000 --- a/docs/generated/devkit/Task.md +++ /dev/null @@ -1,115 +0,0 @@ -# Interface: Task - -A representation of the invocation of an Executor - -## Table of contents - -### Properties - -- [cache](../../devkit/documents/Task#cache): boolean -- [endTime](../../devkit/documents/Task#endtime): number -- [hash](../../devkit/documents/Task#hash): string -- [hashDetails](../../devkit/documents/Task#hashdetails): Object -- [id](../../devkit/documents/Task#id): string -- [outputs](../../devkit/documents/Task#outputs): string[] -- [overrides](../../devkit/documents/Task#overrides): any -- [projectRoot](../../devkit/documents/Task#projectroot): string -- [startTime](../../devkit/documents/Task#starttime): number -- [target](../../devkit/documents/Task#target): Object - -## Properties - -### cache - -• `Optional` **cache**: `boolean` - -Determines if a given task should be cacheable. - ---- - -### endTime - -• `Optional` **endTime**: `number` - -Unix timestamp of when a Batch Task ends - ---- - -### hash - -• `Optional` **hash**: `string` - -Hash of the task which is used for caching. - ---- - -### hashDetails - -• `Optional` **hashDetails**: `Object` - -Details about the composition of the hash - -#### Type declaration - -| Name | Type | Description | -| :-------------- | :----------------------------------- | :------------------------------------------------------------- | -| `command` | `string` | Command of the task | -| `implicitDeps?` | \{ `[fileName: string]`: `string`; } | Hashes of implicit dependencies which are included in the hash | -| `nodes` | \{ `[name: string]`: `string`; } | Hashes of inputs used in the hash | -| `runtime?` | \{ `[input: string]`: `string`; } | Hash of the runtime environment which the task was executed | - ---- - -### id - -• **id**: `string` - -Unique ID - ---- - -### outputs - -• **outputs**: `string`[] - -The outputs the task may produce - ---- - -### overrides - -• **overrides**: `any` - -Overrides for the configured options of the target - ---- - -### projectRoot - -• `Optional` **projectRoot**: `string` - -Root of the project the task belongs to - ---- - -### startTime - -• `Optional` **startTime**: `number` - -Unix timestamp of when a Batch Task starts - ---- - -### target - -• **target**: `Object` - -Details about which project, target, and configuration to run. - -#### Type declaration - -| Name | Type | Description | -| :--------------- | :------- | :----------------------------------------------------- | -| `configuration?` | `string` | The configuration of the target which the task invokes | -| `project` | `string` | The project for which the task belongs to | -| `target` | `string` | The target name which the task should invoke | diff --git a/docs/generated/devkit/TaskGraph.md b/docs/generated/devkit/TaskGraph.md deleted file mode 100644 index 35def5738bb1c..0000000000000 --- a/docs/generated/devkit/TaskGraph.md +++ /dev/null @@ -1,35 +0,0 @@ -# Interface: TaskGraph - -Graph of Tasks to be executed - -## Table of contents - -### Properties - -- [dependencies](../../devkit/documents/TaskGraph#dependencies): Record -- [roots](../../devkit/documents/TaskGraph#roots): string[] -- [tasks](../../devkit/documents/TaskGraph#tasks): Record - -## Properties - -### dependencies - -• **dependencies**: `Record`\<`string`, `string`[]\> - -Map of Task IDs to IDs of tasks which the task depends on - ---- - -### roots - -• **roots**: `string`[] - -IDs of Tasks which do not have any dependencies and are thus ready to execute immediately - ---- - -### tasks - -• **tasks**: `Record`\<`string`, [`Task`](../../devkit/documents/Task)\> - -Map of Task IDs to Tasks diff --git a/docs/generated/devkit/TaskGraphExecutor.md b/docs/generated/devkit/TaskGraphExecutor.md deleted file mode 100644 index 30ddccaef84d4..0000000000000 --- a/docs/generated/devkit/TaskGraphExecutor.md +++ /dev/null @@ -1,28 +0,0 @@ -# Type alias: TaskGraphExecutor\ - -Ƭ **TaskGraphExecutor**\<`T`\>: (`taskGraph`: [`TaskGraph`](../../devkit/documents/TaskGraph), `options`: `Record`\<`string`, `T`\>, `overrides`: `T`, `context`: [`ExecutorContext`](../../devkit/documents/ExecutorContext)) => `Promise`\<`BatchExecutorResult` \| `AsyncIterableIterator`\<`BatchExecutorTaskResult`\>\> - -Implementation of a target of a project that handles multiple projects to be batched - -#### Type parameters - -| Name | Type | -| :--- | :---- | -| `T` | `any` | - -#### Type declaration - -▸ (`taskGraph`, `options`, `overrides`, `context`): `Promise`\<`BatchExecutorResult` \| `AsyncIterableIterator`\<`BatchExecutorTaskResult`\>\> - -##### Parameters - -| Name | Type | -| :---------- | :---------------------------------------------------------- | -| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | -| `options` | `Record`\<`string`, `T`\> | -| `overrides` | `T` | -| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | - -##### Returns - -`Promise`\<`BatchExecutorResult` \| `AsyncIterableIterator`\<`BatchExecutorTaskResult`\>\> diff --git a/docs/generated/devkit/TaskHasher.md b/docs/generated/devkit/TaskHasher.md deleted file mode 100644 index 3d928bc1b29a8..0000000000000 --- a/docs/generated/devkit/TaskHasher.md +++ /dev/null @@ -1,110 +0,0 @@ -# Interface: TaskHasher - -## Table of contents - -### Methods - -- [hashTask](../../devkit/documents/TaskHasher#hashtask) -- [hashTasks](../../devkit/documents/TaskHasher#hashtasks) - -## Methods - -### hashTask - -▸ **hashTask**(`task`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -#### Parameters - -| Name | Type | -| :----- | :------------------------------------ | -| `task` | [`Task`](../../devkit/documents/Task) | - -#### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -**`Deprecated`** - -use hashTask(task:Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 - -▸ **hashTask**(`task`, `taskGraph`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -#### Parameters - -| Name | Type | -| :---------- | :---------------------------------------------- | -| `task` | [`Task`](../../devkit/documents/Task) | -| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | - -#### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -**`Deprecated`** - -use hashTask(task:Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 - -▸ **hashTask**(`task`, `taskGraph`, `env`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> - -#### Parameters - -| Name | Type | -| :---------- | :---------------------------------------------- | -| `task` | [`Task`](../../devkit/documents/Task) | -| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | -| `env` | `ProcessEnv` | - -#### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)\> - ---- - -### hashTasks - -▸ **hashTasks**(`tasks`): `Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> - -#### Parameters - -| Name | Type | -| :------ | :-------------------------------------- | -| `tasks` | [`Task`](../../devkit/documents/Task)[] | - -#### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> - -**`Deprecated`** - -use hashTasks(tasks:Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 - -▸ **hashTasks**(`tasks`, `taskGraph`): `Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> - -#### Parameters - -| Name | Type | -| :---------- | :---------------------------------------------- | -| `tasks` | [`Task`](../../devkit/documents/Task)[] | -| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | - -#### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> - -**`Deprecated`** - -use hashTasks(tasks:Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 - -▸ **hashTasks**(`tasks`, `taskGraph`, `env`): `Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> - -#### Parameters - -| Name | Type | -| :---------- | :---------------------------------------------- | -| `tasks` | [`Task`](../../devkit/documents/Task)[] | -| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | -| `env` | `ProcessEnv` | - -#### Returns - -`Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> diff --git a/docs/generated/devkit/ToJSOptions.md b/docs/generated/devkit/ToJSOptions.md deleted file mode 100644 index 73060f872daca..0000000000000 --- a/docs/generated/devkit/ToJSOptions.md +++ /dev/null @@ -1,11 +0,0 @@ -# Type alias: ToJSOptions - -Ƭ **ToJSOptions**: `Object` - -#### Type declaration - -| Name | Type | -| :---------- | :------------------------------ | -| `extension` | `".js"` \| `".mjs"` \| `".cjs"` | -| `module?` | `ModuleKind` | -| `target?` | `ScriptTarget` | diff --git a/docs/generated/devkit/Tree.md b/docs/generated/devkit/Tree.md deleted file mode 100644 index e56097e84835f..0000000000000 --- a/docs/generated/devkit/Tree.md +++ /dev/null @@ -1,204 +0,0 @@ -# Interface: Tree - -Virtual file system tree. - -## Table of contents - -### Properties - -- [root](../../devkit/documents/Tree#root): string - -### Methods - -- [changePermissions](../../devkit/documents/Tree#changepermissions) -- [children](../../devkit/documents/Tree#children) -- [delete](../../devkit/documents/Tree#delete) -- [exists](../../devkit/documents/Tree#exists) -- [isFile](../../devkit/documents/Tree#isfile) -- [listChanges](../../devkit/documents/Tree#listchanges) -- [read](../../devkit/documents/Tree#read) -- [rename](../../devkit/documents/Tree#rename) -- [write](../../devkit/documents/Tree#write) - -## Properties - -### root - -• **root**: `string` - -Root of the workspace. All paths are relative to this. - -## Methods - -### changePermissions - -▸ **changePermissions**(`filePath`, `mode`): `void` - -Changes permissions of a file. - -#### Parameters - -| Name | Type | Description | -| :--------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `filePath` | `string` | A path to a file. | -| `mode` | `Mode` | The permission to be granted on the file, given as a string (e.g `755`) or octal integer (e.g `0o755`). See https://nodejs.org/api/fs.html#fs_file_modes. | - -#### Returns - -`void` - ---- - -### children - -▸ **children**(`dirPath`): `string`[] - -Returns the list of children of a folder. - -#### Parameters - -| Name | Type | -| :-------- | :------- | -| `dirPath` | `string` | - -#### Returns - -`string`[] - ---- - -### delete - -▸ **delete**(`filePath`): `void` - -Delete the file. - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `filePath` | `string` | - -#### Returns - -`void` - ---- - -### exists - -▸ **exists**(`filePath`): `boolean` - -Check if a file exists. - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `filePath` | `string` | - -#### Returns - -`boolean` - ---- - -### isFile - -▸ **isFile**(`filePath`): `boolean` - -Check if this is a file or not. - -#### Parameters - -| Name | Type | -| :--------- | :------- | -| `filePath` | `string` | - -#### Returns - -`boolean` - ---- - -### listChanges - -▸ **listChanges**(): [`FileChange`](../../devkit/documents/FileChange)[] - -Returns the list of currently recorded changes. - -#### Returns - -[`FileChange`](../../devkit/documents/FileChange)[] - ---- - -### read - -▸ **read**(`filePath`): `Buffer` - -Read the contents of a file. - -#### Parameters - -| Name | Type | Description | -| :--------- | :------- | :---------------- | -| `filePath` | `string` | A path to a file. | - -#### Returns - -`Buffer` - -▸ **read**(`filePath`, `encoding`): `string` - -Read the contents of a file as string. - -#### Parameters - -| Name | Type | Description | -| :--------- | :--------------- | :-------------------------- | -| `filePath` | `string` | A path to a file. | -| `encoding` | `BufferEncoding` | the encoding for the result | - -#### Returns - -`string` - ---- - -### rename - -▸ **rename**(`from`, `to`): `void` - -Rename the file or the folder. - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `from` | `string` | -| `to` | `string` | - -#### Returns - -`void` - ---- - -### write - -▸ **write**(`filePath`, `content`, `options?`): `void` - -Update the contents of a file or create a new file. - -#### Parameters - -| Name | Type | -| :--------- | :------------------- | -| `filePath` | `string` | -| `content` | `string` \| `Buffer` | -| `options?` | `TreeWriteOptions` | - -#### Returns - -`void` diff --git a/docs/generated/devkit/Workspace.md b/docs/generated/devkit/Workspace.md deleted file mode 100644 index 05c15bc3a935e..0000000000000 --- a/docs/generated/devkit/Workspace.md +++ /dev/null @@ -1,383 +0,0 @@ -# Interface: Workspace - -**`Deprecated`** - -use ProjectsConfigurations or NxJsonConfiguration - -## Hierarchy - -- [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) - -- [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) - - ↳ **`Workspace`** - -## Table of contents - -### Properties - -- [affected](../../devkit/documents/Workspace#affected): NxAffectedConfig -- [cacheDirectory](../../devkit/documents/Workspace#cachedirectory): string -- [cli](../../devkit/documents/Workspace#cli): Object -- [defaultBase](../../devkit/documents/Workspace#defaultbase): string -- [defaultProject](../../devkit/documents/Workspace#defaultproject): string -- [extends](../../devkit/documents/Workspace#extends): string -- [generators](../../devkit/documents/Workspace#generators): Object -- [implicitDependencies](../../devkit/documents/Workspace#implicitdependencies): ImplicitDependencyEntry -- [installation](../../devkit/documents/Workspace#installation): NxInstallationConfiguration -- [namedInputs](../../devkit/documents/Workspace#namedinputs): Object -- [nxCloudAccessToken](../../devkit/documents/Workspace#nxcloudaccesstoken): string -- [nxCloudEncryptionKey](../../devkit/documents/Workspace#nxcloudencryptionkey): string -- [nxCloudUrl](../../devkit/documents/Workspace#nxcloudurl): string -- [parallel](../../devkit/documents/Workspace#parallel): number -- [plugins](../../devkit/documents/Workspace#plugins): PluginConfiguration[] -- [pluginsConfig](../../devkit/documents/Workspace#pluginsconfig): Record> -- [projects](../../devkit/documents/Workspace#projects): Record -- [release](../../devkit/documents/Workspace#release): NxReleaseConfiguration -- [targetDefaults](../../devkit/documents/Workspace#targetdefaults): TargetDefaults -- [tasksRunnerOptions](../../devkit/documents/Workspace#tasksrunneroptions): Object -- [useDaemonProcess](../../devkit/documents/Workspace#usedaemonprocess): boolean -- [useInferencePlugins](../../devkit/documents/Workspace#useinferenceplugins): boolean -- [version](../../devkit/documents/Workspace#version): number -- [workspaceLayout](../../devkit/documents/Workspace#workspacelayout): Object - -## Properties - -### affected - -• `Optional` **affected**: [`NxAffectedConfig`](../../devkit/documents/NxAffectedConfig) - -Default options for `nx affected` - -**`Deprecated`** - -use [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead. For more information see https://nx.dev/deprecated/affected-config#affected-config - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[affected](../../devkit/documents/NxJsonConfiguration#affected) - ---- - -### cacheDirectory - -• `Optional` **cacheDirectory**: `string` - -Changes the directory used by Nx to store its cache. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[cacheDirectory](../../devkit/documents/NxJsonConfiguration#cachedirectory) - ---- - -### cli - -• `Optional` **cli**: `Object` - -Default generator collection. It is used when no collection is provided. - -#### Type declaration - -| Name | Type | -| :-------------------- | :-------------------------------------------------------- | -| `defaultProjectName?` | `string` | -| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) | - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[cli](../../devkit/documents/NxJsonConfiguration#cli) - ---- - -### defaultBase - -• `Optional` **defaultBase**: `string` - -Default value for --base used by `nx affected` and `nx format`. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) - ---- - -### defaultProject - -• `Optional` **defaultProject**: `string` - -Default project. When project isn't provided, the default project -will be used. Convenient for small workspaces with one main application. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject) - ---- - -### extends - -• `Optional` **extends**: `string` - -Optional (additional) Nx.json configuration file which becomes a base for this one - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[extends](../../devkit/documents/NxJsonConfiguration#extends) - ---- - -### generators - -• `Optional` **generators**: `Object` - -List of default values used by generators. - -These defaults are global. They are used when no other defaults are configured. - -Example: - -``` -{ - "@nx/react": { - "library": { - "style": "scss" - } - } -} -``` - -#### Index signature - -▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; } - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[generators](../../devkit/documents/NxJsonConfiguration#generators) - ---- - -### implicitDependencies - -• `Optional` **implicitDependencies**: [`ImplicitDependencyEntry`](../../devkit/documents/ImplicitDependencyEntry)\<`string`[] \| `"*"`\> - -Map of files to projects that implicitly depend on them - -**`Deprecated`** - -use [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) instead. For more information see https://nx.dev/deprecated/global-implicit-dependencies#global-implicit-dependencies - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies) - ---- - -### installation - -• `Optional` **installation**: `NxInstallationConfiguration` - -Configures the Nx installation for a repo. Useful for maintaining a separate -set of dependencies for Nx + Plugins compared to the base package.json, but also -useful for workspaces that don't have a root package.json + node_modules. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[installation](../../devkit/documents/NxJsonConfiguration#installation) - ---- - -### namedInputs - -• `Optional` **namedInputs**: `Object` - -Named inputs targets can refer to reduce duplication - -#### Index signature - -▪ [inputName: `string`]: (`string` \| `InputDefinition`)[] - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) - ---- - -### nxCloudAccessToken - -• `Optional` **nxCloudAccessToken**: `string` - -If specified Nx will use nx-cloud by default with the given token. -To use a different runner that accepts an access token, define it in [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions) - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[nxCloudAccessToken](../../devkit/documents/NxJsonConfiguration#nxcloudaccesstoken) - ---- - -### nxCloudEncryptionKey - -• `Optional` **nxCloudEncryptionKey**: `string` - -Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[nxCloudEncryptionKey](../../devkit/documents/NxJsonConfiguration#nxcloudencryptionkey) - ---- - -### nxCloudUrl - -• `Optional` **nxCloudUrl**: `string` - -Specifies the url pointing to an instance of nx cloud. Used for remote -caching and displaying run links. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[nxCloudUrl](../../devkit/documents/NxJsonConfiguration#nxcloudurl) - ---- - -### parallel - -• `Optional` **parallel**: `number` - -Specifies how many tasks can be run in parallel. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[parallel](../../devkit/documents/NxJsonConfiguration#parallel) - ---- - -### plugins - -• `Optional` **plugins**: [`PluginConfiguration`](../../devkit/documents/PluginConfiguration)[] - -Plugins for extending the project graph - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[plugins](../../devkit/documents/NxJsonConfiguration#plugins) - ---- - -### pluginsConfig - -• `Optional` **pluginsConfig**: `Record`\<`string`, `Record`\<`string`, `unknown`\>\> - -Configuration for Nx Plugins - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[pluginsConfig](../../devkit/documents/NxJsonConfiguration#pluginsconfig) - ---- - -### projects - -• **projects**: `Record`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> - -Projects' projects - -#### Overrides - -[ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations).[projects](../../devkit/documents/ProjectsConfigurations#projects) - ---- - -### release - -• `Optional` **release**: `NxReleaseConfiguration` - -Configuration for `nx release` (versioning and publishing of applications and libraries) - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[release](../../devkit/documents/NxJsonConfiguration#release) - ---- - -### targetDefaults - -• `Optional` **targetDefaults**: [`TargetDefaults`](../../devkit/documents/TargetDefaults) - -Dependencies between different target names across all projects - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[targetDefaults](../../devkit/documents/NxJsonConfiguration#targetdefaults) - ---- - -### tasksRunnerOptions - -• `Optional` **tasksRunnerOptions**: `Object` - -Available Task Runners - -#### Index signature - -▪ [tasksRunnerName: `string`]: \{ `options?`: `any` ; `runner?`: `string` } - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions) - ---- - -### useDaemonProcess - -• `Optional` **useDaemonProcess**: `boolean` - -Set this to false to disable the daemon. - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[useDaemonProcess](../../devkit/documents/NxJsonConfiguration#usedaemonprocess) - ---- - -### useInferencePlugins - -• `Optional` **useInferencePlugins**: `boolean` - -Set this to false to disable adding inference plugins when generating new projects - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[useInferencePlugins](../../devkit/documents/NxJsonConfiguration#useinferenceplugins) - ---- - -### version - -• **version**: `number` - -Version of the configuration format - -#### Inherited from - -[ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations).[version](../../devkit/documents/ProjectsConfigurations#version) - ---- - -### workspaceLayout - -• `Optional` **workspaceLayout**: `Object` - -Where new apps + libs should be placed - -#### Type declaration - -| Name | Type | -| :--------- | :------- | -| `appsDir?` | `string` | -| `libsDir?` | `string` | - -#### Inherited from - -[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[workspaceLayout](../../devkit/documents/NxJsonConfiguration#workspacelayout) diff --git a/docs/generated/devkit/WorkspaceJsonConfiguration.md b/docs/generated/devkit/WorkspaceJsonConfiguration.md deleted file mode 100644 index 5bcec62b5c3d5..0000000000000 --- a/docs/generated/devkit/WorkspaceJsonConfiguration.md +++ /dev/null @@ -1,7 +0,0 @@ -# Type alias: WorkspaceJsonConfiguration - -Ƭ **WorkspaceJsonConfiguration**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) - -**`Deprecated`** - -use ProjectsConfigurations diff --git a/docs/generated/devkit/Workspaces.md b/docs/generated/devkit/Workspaces.md deleted file mode 100644 index 949d923514db9..0000000000000 --- a/docs/generated/devkit/Workspaces.md +++ /dev/null @@ -1,45 +0,0 @@ -# Class: Workspaces - -**`Deprecated`** - -This will be removed in v19. Use [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) instead. - -## Table of contents - -### Constructors - -- [constructor](../../devkit/documents/Workspaces#constructor) - -### Methods - -- [readWorkspaceConfiguration](../../devkit/documents/Workspaces#readworkspaceconfiguration) - -## Constructors - -### constructor - -• **new Workspaces**(`root`): [`Workspaces`](../../devkit/documents/Workspaces) - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `root` | `string` | - -#### Returns - -[`Workspaces`](../../devkit/documents/Workspaces) - -## Methods - -### readWorkspaceConfiguration - -▸ **readWorkspaceConfiguration**(): [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - -#### Returns - -[`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> - -**`Deprecated`** - -Use [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) instead. diff --git a/docs/generated/devkit/addDependenciesToPackageJson.md b/docs/generated/devkit/addDependenciesToPackageJson.md deleted file mode 100644 index d881ee458edf5..0000000000000 --- a/docs/generated/devkit/addDependenciesToPackageJson.md +++ /dev/null @@ -1,29 +0,0 @@ -# Function: addDependenciesToPackageJson - -▸ **addDependenciesToPackageJson**(`tree`, `dependencies`, `devDependencies`, `packageJsonPath?`, `keepExistingVersions?`): [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) - -Add Dependencies and Dev Dependencies to package.json - -For example: - -```typescript -addDependenciesToPackageJson(tree, { react: 'latest' }, { jest: 'latest' }); -``` - -This will **add** `react` and `jest` to the dependencies and devDependencies sections of package.json respectively. - -#### Parameters - -| Name | Type | Description | -| :---------------------- | :------------------------------------ | :-------------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | Tree representing file system to modify | -| `dependencies` | `Record`\<`string`, `string`\> | Dependencies to be added to the dependencies section of package.json | -| `devDependencies` | `Record`\<`string`, `string`\> | Dependencies to be added to the devDependencies section of package.json | -| `packageJsonPath?` | `string` | Path to package.json | -| `keepExistingVersions?` | `boolean` | If true, prevents existing dependencies from being bumped to newer versions | - -#### Returns - -[`GeneratorCallback`](../../devkit/documents/GeneratorCallback) - -Callback to install dependencies only if necessary, no-op otherwise diff --git a/docs/generated/devkit/addProjectConfiguration.md b/docs/generated/devkit/addProjectConfiguration.md deleted file mode 100644 index 697d244cf5892..0000000000000 --- a/docs/generated/devkit/addProjectConfiguration.md +++ /dev/null @@ -1,18 +0,0 @@ -# Function: addProjectConfiguration - -▸ **addProjectConfiguration**(`tree`, `projectName`, `projectConfiguration`, `standalone?`): `void` - -Adds project configuration to the Nx workspace. - -#### Parameters - -| Name | Type | Default value | Description | -| :--------------------- | :-------------------------------------------------------------------- | :------------ | :---------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | `undefined` | the file system tree | -| `projectName` | `string` | `undefined` | unique name. Often directories are part of the name (e.g., mydir-mylib) | -| `projectConfiguration` | [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) | `undefined` | project configuration | -| `standalone` | `boolean` | `true` | whether the project is configured in workspace.json or not | - -#### Returns - -`void` diff --git a/docs/generated/devkit/appRootPath.md b/docs/generated/devkit/appRootPath.md deleted file mode 100644 index 2e3e481af37d3..0000000000000 --- a/docs/generated/devkit/appRootPath.md +++ /dev/null @@ -1,9 +0,0 @@ -# Variable: appRootPath - -• `Const` **appRootPath**: `string` = `workspaceRoot` - -The root of the workspace. - -**`Deprecated`** - -use workspaceRoot instead diff --git a/docs/generated/devkit/applyChangesToString.md b/docs/generated/devkit/applyChangesToString.md deleted file mode 100644 index 23683760564d1..0000000000000 --- a/docs/generated/devkit/applyChangesToString.md +++ /dev/null @@ -1,44 +0,0 @@ -# Function: applyChangesToString - -▸ **applyChangesToString**(`text`, `changes`): `string` - -Applies a list of changes to a string's original value. - -This is useful when working with ASTs. - -For Example, to rename a property in a method's options: - -```typescript -const code = `bootstrap({ - target: document.querySelector('#app') -})`; - -const indexOfPropertyName = 13; // Usually determined by analyzing an AST. -const updatedCode = applyChangesToString(code, [ - { - type: ChangeType.Insert, - index: indexOfPropertyName, - text: 'element', - }, - { - type: ChangeType.Delete, - start: indexOfPropertyName, - length: 6, - }, -]); - -bootstrap({ - element: document.querySelector('#app'), -}); -``` - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------------------------ | -| `text` | `string` | -| `changes` | [`StringChange`](../../devkit/documents/StringChange)[] | - -#### Returns - -`string` diff --git a/docs/generated/devkit/cacheDir.md b/docs/generated/devkit/cacheDir.md deleted file mode 100644 index 36f053bd10e6e..0000000000000 --- a/docs/generated/devkit/cacheDir.md +++ /dev/null @@ -1,5 +0,0 @@ -# Variable: cacheDir - -• `Const` **cacheDir**: `string` - -Path to the directory where Nx stores its cache and daemon-related files. diff --git a/docs/generated/devkit/convertNxExecutor.md b/docs/generated/devkit/convertNxExecutor.md deleted file mode 100644 index 9d3eb7b2429a9..0000000000000 --- a/docs/generated/devkit/convertNxExecutor.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function: convertNxExecutor - -▸ **convertNxExecutor**(`executor`): `any` - -Convert an Nx Executor into an Angular Devkit Builder - -Use this to expose a compatible Angular Builder - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------- | -| `executor` | [`Executor`](../../devkit/documents/Executor) | - -#### Returns - -`any` diff --git a/docs/generated/devkit/convertNxGenerator.md b/docs/generated/devkit/convertNxGenerator.md deleted file mode 100644 index 4ba155319ac04..0000000000000 --- a/docs/generated/devkit/convertNxGenerator.md +++ /dev/null @@ -1,47 +0,0 @@ -# Function: convertNxGenerator - -▸ **convertNxGenerator**\<`T`\>(`generator`, `skipWritingConfigInOldFormat?`): (`generatorOptions`: `T`) => (`tree`: `any`, `context`: `any`) => `Promise`\<`any`\> - -Convert an Nx Generator into an Angular Devkit Schematic. - -#### Type parameters - -| Name | Type | -| :--- | :---- | -| `T` | `any` | - -#### Parameters - -| Name | Type | Description | -| :------------------------------ | :----------------------------------------------------- | :---------------------------------------------------------- | -| `generator` | [`Generator`](../../devkit/documents/Generator)\<`T`\> | The Nx generator to convert to an Angular Devkit Schematic. | -| `skipWritingConfigInOldFormat?` | `boolean` | - | - -#### Returns - -`fn` - -▸ (`generatorOptions`): (`tree`: `any`, `context`: `any`) => `Promise`\<`any`\> - -##### Parameters - -| Name | Type | -| :----------------- | :--- | -| `generatorOptions` | `T` | - -##### Returns - -`fn` - -▸ (`tree`, `context`): `Promise`\<`any`\> - -##### Parameters - -| Name | Type | -| :-------- | :---- | -| `tree` | `any` | -| `context` | `any` | - -##### Returns - -`Promise`\<`any`\> diff --git a/docs/generated/devkit/createProjectFileMapUsingProjectGraph.md b/docs/generated/devkit/createProjectFileMapUsingProjectGraph.md deleted file mode 100644 index eb5b6d8c25490..0000000000000 --- a/docs/generated/devkit/createProjectFileMapUsingProjectGraph.md +++ /dev/null @@ -1,13 +0,0 @@ -# Function: createProjectFileMapUsingProjectGraph - -▸ **createProjectFileMapUsingProjectGraph**(`graph`): `Promise`\<[`ProjectFileMap`](../../devkit/documents/ProjectFileMap)\> - -#### Parameters - -| Name | Type | -| :------ | :---------------------------------------------------- | -| `graph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | - -#### Returns - -`Promise`\<[`ProjectFileMap`](../../devkit/documents/ProjectFileMap)\> diff --git a/docs/generated/devkit/createProjectGraphAsync.md b/docs/generated/devkit/createProjectGraphAsync.md deleted file mode 100644 index 5f1cc67e75ab1..0000000000000 --- a/docs/generated/devkit/createProjectGraphAsync.md +++ /dev/null @@ -1,37 +0,0 @@ -# Function: createProjectGraphAsync - -▸ **createProjectGraphAsync**(`opts?`): `Promise`\<[`ProjectGraph`](../../devkit/documents/ProjectGraph)\> - -Computes and returns a ProjectGraph. - -Nx will compute the graph either in a daemon process or in the current process. - -Nx will compute it in the current process if: - -- The process is running in CI (CI env variable is to true or other common variables used by CI providers are set). -- It is running in the docker container. -- The daemon process is disabled because of the previous error when starting the daemon. -- `NX_DAEMON` is set to `false`. -- `useDaemonProcess` is set to false in the options of the tasks runner inside `nx.json` - -`NX_DAEMON` env variable takes precedence: - -- If it is set to true, the daemon will always be used. -- If it is set to false, the graph will always be computed in the current process. - -Tip: If you want to debug project graph creation, run your command with NX_DAEMON=false. - -Nx uses two layers of caching: the information about explicit dependencies stored on the disk and the information -stored in the daemon process. To reset both run: `nx reset`. - -#### Parameters - -| Name | Type | -| :------------------------ | :-------- | -| `opts` | `Object` | -| `opts.exitOnError` | `boolean` | -| `opts.resetDaemonClient?` | `boolean` | - -#### Returns - -`Promise`\<[`ProjectGraph`](../../devkit/documents/ProjectGraph)\> diff --git a/docs/generated/devkit/defaultTasksRunner.md b/docs/generated/devkit/defaultTasksRunner.md deleted file mode 100644 index c28df12f4be1b..0000000000000 --- a/docs/generated/devkit/defaultTasksRunner.md +++ /dev/null @@ -1,23 +0,0 @@ -# Function: defaultTasksRunner - -▸ **defaultTasksRunner**(`tasks`, `options`, `context?`): `any` - -#### Parameters - -| Name | Type | -| :--------------------------- | :----------------------------------------------------------------------------------------- | -| `tasks` | [`Task`](../../devkit/documents/Task)[] | -| `options` | [`DefaultTasksRunnerOptions`](../../devkit/documents/DefaultTasksRunnerOptions) | -| `context?` | `Object` | -| `context.daemon?` | `DaemonClient` | -| `context.hasher?` | [`TaskHasher`](../../devkit/documents/TaskHasher) | -| `context.initiatingProject?` | `string` | -| `context.nxArgs` | `NxArgs` | -| `context.nxJson` | [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> | -| `context.projectGraph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | -| `context.target?` | `string` | -| `context.taskGraph?` | [`TaskGraph`](../../devkit/documents/TaskGraph) | - -#### Returns - -`any` diff --git a/docs/generated/devkit/detectPackageManager.md b/docs/generated/devkit/detectPackageManager.md deleted file mode 100644 index 8d58dc6ddb9fa..0000000000000 --- a/docs/generated/devkit/detectPackageManager.md +++ /dev/null @@ -1,15 +0,0 @@ -# Function: detectPackageManager - -▸ **detectPackageManager**(`dir?`): [`PackageManager`](../../devkit/documents/PackageManager) - -Detects which package manager is used in the workspace based on the lock file. - -#### Parameters - -| Name | Type | Default value | -| :---- | :------- | :------------ | -| `dir` | `string` | `''` | - -#### Returns - -[`PackageManager`](../../devkit/documents/PackageManager) diff --git a/docs/generated/devkit/ensurePackage.md b/docs/generated/devkit/ensurePackage.md deleted file mode 100644 index 9a73af5bd9d2f..0000000000000 --- a/docs/generated/devkit/ensurePackage.md +++ /dev/null @@ -1,62 +0,0 @@ -# Function: ensurePackage - -▸ **ensurePackage**(`tree`, `pkg`, `requiredVersion`, `options?`): `void` - -#### Parameters - -| Name | Type | Description | -| :------------------------ | :------------------------------------ | :----------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | -| `pkg` | `string` | the package to check (e.g. @nx/jest) | -| `requiredVersion` | `string` | the version or semver range to check (e.g. ~1.0.0, >=1.0.0 <2.0.0) | -| `options?` | `Object` | - | -| `options.dev?` | `boolean` | - | -| `options.throwOnMissing?` | `boolean` | - | - -#### Returns - -`void` - -**`Deprecated`** - -Use the other function signature without a Tree - -Use a package that has not been installed as a dependency. - -For example: - -```typescript -ensurePackage(tree, '@nx/jest', nxVersion); -``` - -This install the @nx/jest@ and return the module -When running with --dryRun, the function will throw when dependencies are missing. -Returns null for ESM dependencies. Import them with a dynamic import instead. - -▸ **ensurePackage**\<`T`\>(`pkg`, `version`): `T` - -Ensure that dependencies and devDependencies from package.json are installed at the required versions. -Returns null for ESM dependencies. Import them with a dynamic import instead. - -For example: - -```typescript -ensurePackage('@nx/jest', nxVersion); -``` - -#### Type parameters - -| Name | Type | -| :--- | :------------------------ | -| `T` | extends `unknown` = `any` | - -#### Parameters - -| Name | Type | Description | -| :-------- | :------- | :---------------------------------------------------------- | -| `pkg` | `string` | the package to install and require | -| `version` | `string` | the version to install if the package doesn't exist already | - -#### Returns - -`T` diff --git a/docs/generated/devkit/extractLayoutDirectory.md b/docs/generated/devkit/extractLayoutDirectory.md deleted file mode 100644 index 7b460e9934dc6..0000000000000 --- a/docs/generated/devkit/extractLayoutDirectory.md +++ /dev/null @@ -1,20 +0,0 @@ -# Function: extractLayoutDirectory - -▸ **extractLayoutDirectory**(`directory?`): `Object` - -Experimental - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `directory?` | `string` | - -#### Returns - -`Object` - -| Name | Type | -| :------------------ | :----------------- | -| `layoutDirectory` | `string` \| `null` | -| `projectDirectory?` | `string` | diff --git a/docs/generated/devkit/formatFiles.md b/docs/generated/devkit/formatFiles.md deleted file mode 100644 index 5f1b2c8db1ac3..0000000000000 --- a/docs/generated/devkit/formatFiles.md +++ /dev/null @@ -1,15 +0,0 @@ -# Function: formatFiles - -▸ **formatFiles**(`tree`): `Promise`\<`void`\> - -Formats all the created or updated files using Prettier - -#### Parameters - -| Name | Type | Description | -| :----- | :------------------------------------ | :------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | - -#### Returns - -`Promise`\<`void`\> diff --git a/docs/generated/devkit/generateFiles.md b/docs/generated/devkit/generateFiles.md deleted file mode 100644 index 9f6c31ec721bc..0000000000000 --- a/docs/generated/devkit/generateFiles.md +++ /dev/null @@ -1,38 +0,0 @@ -# Function: generateFiles - -▸ **generateFiles**(`tree`, `srcFolder`, `target`, `substitutions`): `void` - -Generates a folder of files based on provided templates. - -While doing so it performs two substitutions: - -- Substitutes segments of file names surrounded by \_\_ -- Uses ejs to substitute values in templates - -Examples: - -```typescript -generateFiles(tree, path.join(__dirname, 'files'), './tools/scripts', { - tmpl: '', - name: 'myscript', -}); -``` - -This command will take all the files from the `files` directory next to the place where the command is invoked from. -It will replace all `__tmpl__` with '' and all `__name__` with 'myscript' in the file names, and will replace all -`<%= name %>` with `myscript` in the files themselves. -`tmpl: ''` is a common pattern. With it you can name files like this: `index.ts__tmpl__`, so your editor -doesn't get confused about incorrect TypeScript files. - -#### Parameters - -| Name | Type | Description | -| :-------------- | :------------------------------------ | :-------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | -| `srcFolder` | `string` | the source folder of files (absolute path) | -| `target` | `string` | the target folder (relative to the tree root) | -| `substitutions` | `Object` | an object of key-value pairs | - -#### Returns - -`void` diff --git a/docs/generated/devkit/getOutputsForTargetAndConfiguration.md b/docs/generated/devkit/getOutputsForTargetAndConfiguration.md deleted file mode 100644 index 61ff511c26fee..0000000000000 --- a/docs/generated/devkit/getOutputsForTargetAndConfiguration.md +++ /dev/null @@ -1,34 +0,0 @@ -# Function: getOutputsForTargetAndConfiguration - -▸ **getOutputsForTargetAndConfiguration**(`task`, `node`): `string`[] - -#### Parameters - -| Name | Type | -| :----- | :-------------------------------------------------------------------------- | -| `task` | [`Task`](../../devkit/documents/Task) | -| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) | - -#### Returns - -`string`[] - -**`Deprecated`** - -Pass the target and overrides instead. This will be removed in v19. - -▸ **getOutputsForTargetAndConfiguration**(`target`, `overrides`, `node`): `string`[] - -Returns the list of outputs that will be cached. - -#### Parameters - -| Name | Type | -| :---------- | :------------------------------------------------------------------------------------------------------------------ | -| `target` | [`Task`](../../devkit/documents/Task) \| \{ `configuration?`: `string` ; `project`: `string` ; `target`: `string` } | -| `overrides` | `any` | -| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) | - -#### Returns - -`string`[] diff --git a/docs/generated/devkit/getPackageManagerCommand.md b/docs/generated/devkit/getPackageManagerCommand.md deleted file mode 100644 index 8db29b0c8002d..0000000000000 --- a/docs/generated/devkit/getPackageManagerCommand.md +++ /dev/null @@ -1,24 +0,0 @@ -# Function: getPackageManagerCommand - -▸ **getPackageManagerCommand**(`packageManager?`, `root?`): `PackageManagerCommands` - -Returns commands for the package manager used in the workspace. -By default, the package manager is derived based on the lock file, -but it can also be passed in explicitly. - -Example: - -```javascript -execSync(`${getPackageManagerCommand().addDev} my-dev-package`); -``` - -#### Parameters - -| Name | Type | Default value | Description | -| :--------------- | :-------------------------------------------------------- | :-------------- | :------------------------------------------------------------------------------------------ | -| `packageManager` | [`PackageManager`](../../devkit/documents/PackageManager) | `undefined` | The package manager to use. If not provided, it will be detected based on the lock file. | -| `root` | `string` | `workspaceRoot` | The directory the commands will be ran inside of. Defaults to the current workspace's root. | - -#### Returns - -`PackageManagerCommands` diff --git a/docs/generated/devkit/getPackageManagerVersion.md b/docs/generated/devkit/getPackageManagerVersion.md deleted file mode 100644 index 94bb7d7dff108..0000000000000 --- a/docs/generated/devkit/getPackageManagerVersion.md +++ /dev/null @@ -1,18 +0,0 @@ -# Function: getPackageManagerVersion - -▸ **getPackageManagerVersion**(`packageManager?`, `cwd?`): `string` - -Returns the version of the package manager used in the workspace. -By default, the package manager is derived based on the lock file, -but it can also be passed in explicitly. - -#### Parameters - -| Name | Type | -| :--------------- | :-------------------------------------------------------- | -| `packageManager` | [`PackageManager`](../../devkit/documents/PackageManager) | -| `cwd` | `string` | - -#### Returns - -`string` diff --git a/docs/generated/devkit/getProjects.md b/docs/generated/devkit/getProjects.md deleted file mode 100644 index 8ffc682c9bfaa..0000000000000 --- a/docs/generated/devkit/getProjects.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function: getProjects - -▸ **getProjects**(`tree`): `Map`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> - -Get a map of all projects in a workspace. - -Use [readProjectConfiguration](../../devkit/documents/readProjectConfiguration) if only one project is needed. - -#### Parameters - -| Name | Type | -| :----- | :------------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | - -#### Returns - -`Map`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> diff --git a/docs/generated/devkit/getWorkspaceLayout.md b/docs/generated/devkit/getWorkspaceLayout.md deleted file mode 100644 index fbcfc611d92ac..0000000000000 --- a/docs/generated/devkit/getWorkspaceLayout.md +++ /dev/null @@ -1,28 +0,0 @@ -# Function: getWorkspaceLayout - -▸ **getWorkspaceLayout**(`tree`): `Object` - -Returns workspace defaults. It includes defaults folders for apps and libs, -and the default scope. - -Example: - -```typescript -{ appsDir: 'apps', libsDir: 'libs' } -``` - -#### Parameters - -| Name | Type | Description | -| :----- | :------------------------------------ | :--------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | file system tree | - -#### Returns - -`Object` - -| Name | Type | -| :-------------------- | :-------- | -| `appsDir` | `string` | -| `libsDir` | `string` | -| `standaloneAsDefault` | `boolean` | diff --git a/docs/generated/devkit/glob.md b/docs/generated/devkit/glob.md deleted file mode 100644 index 08a29fcafbec7..0000000000000 --- a/docs/generated/devkit/glob.md +++ /dev/null @@ -1,20 +0,0 @@ -# Function: glob - -▸ **glob**(`tree`, `patterns`): `string`[] - -Performs a tree-aware glob search on the files in a workspace. Able to find newly -created files and hides deleted files before the updates are committed to disk. -Paths should be unix-style with forward slashes. - -#### Parameters - -| Name | Type | Description | -| :--------- | :------------------------------------ | :---------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | The file system tree | -| `patterns` | `string`[] | A list of glob patterns | - -#### Returns - -`string`[] - -Normalized paths in the workspace that match the provided glob patterns. diff --git a/docs/generated/devkit/hashArray.md b/docs/generated/devkit/hashArray.md deleted file mode 100644 index c462cff3995c3..0000000000000 --- a/docs/generated/devkit/hashArray.md +++ /dev/null @@ -1,13 +0,0 @@ -# Function: hashArray - -▸ **hashArray**(`content`): `string` - -#### Parameters - -| Name | Type | -| :-------- | :--------- | -| `content` | `string`[] | - -#### Returns - -`string` diff --git a/docs/generated/devkit/installPackagesTask.md b/docs/generated/devkit/installPackagesTask.md deleted file mode 100644 index ed9ebe9df70a3..0000000000000 --- a/docs/generated/devkit/installPackagesTask.md +++ /dev/null @@ -1,19 +0,0 @@ -# Function: installPackagesTask - -▸ **installPackagesTask**(`tree`, `alwaysRun?`, `cwd?`, `packageManager?`): `void` - -Runs `npm install` or `yarn install`. It will skip running the install if -`package.json` hasn't changed at all or it hasn't changed since the last invocation. - -#### Parameters - -| Name | Type | Description | -| :---------------- | :-------------------------------------------------------- | :------------------------------------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | -| `alwaysRun?` | `boolean` | always run the command even if `package.json` hasn't changed. | -| `cwd?` | `string` | - | -| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) | - | - -#### Returns - -`void` diff --git a/docs/generated/devkit/isWorkspacesEnabled.md b/docs/generated/devkit/isWorkspacesEnabled.md deleted file mode 100644 index 3223208dd1b0a..0000000000000 --- a/docs/generated/devkit/isWorkspacesEnabled.md +++ /dev/null @@ -1,16 +0,0 @@ -# Function: isWorkspacesEnabled - -▸ **isWorkspacesEnabled**(`packageManager?`, `root?`): `boolean` - -Returns true if the workspace is using npm workspaces, yarn workspaces, or pnpm workspaces. - -#### Parameters - -| Name | Type | Default value | Description | -| :--------------- | :-------------------------------------------------------- | :-------------- | :------------------------------------------------------------------------------------------ | -| `packageManager` | [`PackageManager`](../../devkit/documents/PackageManager) | `undefined` | The package manager to use. If not provided, it will be detected based on the lock file. | -| `root` | `string` | `workspaceRoot` | The directory the commands will be ran inside of. Defaults to the current workspace's root. | - -#### Returns - -`boolean` diff --git a/docs/generated/devkit/joinPathFragments.md b/docs/generated/devkit/joinPathFragments.md deleted file mode 100644 index 2539946f8a0ec..0000000000000 --- a/docs/generated/devkit/joinPathFragments.md +++ /dev/null @@ -1,16 +0,0 @@ -# Function: joinPathFragments - -▸ **joinPathFragments**(`...fragments`): `string` - -Normalized path fragments and joins them. Use this when writing paths to config files. -This should not be used to read files on disk because of the removal of Windows drive letters. - -#### Parameters - -| Name | Type | -| :------------- | :--------- | -| `...fragments` | `string`[] | - -#### Returns - -`string` diff --git a/docs/generated/devkit/logger.md b/docs/generated/devkit/logger.md deleted file mode 100644 index 6ef004c9e6645..0000000000000 --- a/docs/generated/devkit/logger.md +++ /dev/null @@ -1,14 +0,0 @@ -# Variable: logger - -• `Const` **logger**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :-------------------------- | -| `debug` | (...`s`: `any`[]) => `void` | -| `error` | (`s`: `any`) => `void` | -| `fatal` | (...`s`: `any`[]) => `void` | -| `info` | (`s`: `any`) => `void` | -| `log` | (...`s`: `any`[]) => `void` | -| `warn` | (`s`: `any`) => `void` | diff --git a/docs/generated/devkit/moveFilesToNewDirectory.md b/docs/generated/devkit/moveFilesToNewDirectory.md deleted file mode 100644 index 902ba382e13df..0000000000000 --- a/docs/generated/devkit/moveFilesToNewDirectory.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function: moveFilesToNewDirectory - -▸ **moveFilesToNewDirectory**(`tree`, `oldDir`, `newDir`): `void` - -Analogous to cp -r oldDir newDir - -#### Parameters - -| Name | Type | -| :------- | :------------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | -| `oldDir` | `string` | -| `newDir` | `string` | - -#### Returns - -`void` diff --git a/docs/generated/devkit/names.md b/docs/generated/devkit/names.md deleted file mode 100644 index 39785c3f91ba3..0000000000000 --- a/docs/generated/devkit/names.md +++ /dev/null @@ -1,30 +0,0 @@ -# Function: names - -▸ **names**(`name`): `Object` - -Util function to generate different strings based off the provided name. - -Examples: - -```typescript -names('my-name'); // {name: 'my-name', className: 'MyName', propertyName: 'myName', constantName: 'MY_NAME', fileName: 'my-name'} -names('myName'); // {name: 'myName', className: 'MyName', propertyName: 'myName', constantName: 'MY_NAME', fileName: 'my-name'} -``` - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `name` | `string` | - -#### Returns - -`Object` - -| Name | Type | -| :------------- | :------- | -| `className` | `string` | -| `constantName` | `string` | -| `fileName` | `string` | -| `name` | `string` | -| `propertyName` | `string` | diff --git a/docs/generated/devkit/ngcli_adapter/.nojekyll b/docs/generated/devkit/ngcli_adapter/.nojekyll deleted file mode 100644 index e2ac6616addc2..0000000000000 --- a/docs/generated/devkit/ngcli_adapter/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/generated/devkit/ngcli_adapter/NxScopedHost.md b/docs/generated/devkit/ngcli_adapter/NxScopedHost.md deleted file mode 100644 index bc27b32c25a09..0000000000000 --- a/docs/generated/devkit/ngcli_adapter/NxScopedHost.md +++ /dev/null @@ -1,384 +0,0 @@ -# Class: NxScopedHost - -## Hierarchy - -- `ScopedHost`\<`any`\> - - ↳ **`NxScopedHost`** - -## Table of contents - -### Constructors - -- [constructor](../../devkit/documents/ngcli_adapter/NxScopedHost#constructor) - -### Properties - -- [\_delegate](../../devkit/documents/ngcli_adapter/NxScopedHost#_delegate): Host -- [\_root](../../devkit/documents/ngcli_adapter/NxScopedHost#_root): Path -- [root](../../devkit/documents/ngcli_adapter/NxScopedHost#root): string - -### Accessors - -- [capabilities](../../devkit/documents/ngcli_adapter/NxScopedHost#capabilities) - -### Methods - -- [\_resolve](../../devkit/documents/ngcli_adapter/NxScopedHost#_resolve) -- [delete](../../devkit/documents/ngcli_adapter/NxScopedHost#delete) -- [exists](../../devkit/documents/ngcli_adapter/NxScopedHost#exists) -- [isDirectory](../../devkit/documents/ngcli_adapter/NxScopedHost#isdirectory) -- [isFile](../../devkit/documents/ngcli_adapter/NxScopedHost#isfile) -- [list](../../devkit/documents/ngcli_adapter/NxScopedHost#list) -- [mergeProjectConfiguration](../../devkit/documents/ngcli_adapter/NxScopedHost#mergeprojectconfiguration) -- [read](../../devkit/documents/ngcli_adapter/NxScopedHost#read) -- [readExistingAngularJson](../../devkit/documents/ngcli_adapter/NxScopedHost#readexistingangularjson) -- [readJson](../../devkit/documents/ngcli_adapter/NxScopedHost#readjson) -- [readMergedWorkspaceConfiguration](../../devkit/documents/ngcli_adapter/NxScopedHost#readmergedworkspaceconfiguration) -- [rename](../../devkit/documents/ngcli_adapter/NxScopedHost#rename) -- [stat](../../devkit/documents/ngcli_adapter/NxScopedHost#stat) -- [watch](../../devkit/documents/ngcli_adapter/NxScopedHost#watch) -- [write](../../devkit/documents/ngcli_adapter/NxScopedHost#write) - -## Constructors - -### constructor - -• **new NxScopedHost**(`root`): [`NxScopedHost`](../../devkit/documents/ngcli_adapter/NxScopedHost) - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `root` | `string` | - -#### Returns - -[`NxScopedHost`](../../devkit/documents/ngcli_adapter/NxScopedHost) - -#### Overrides - -virtualFs.ScopedHost\<any\>.constructor - -## Properties - -### \_delegate - -• `Protected` **\_delegate**: `Host`\<`any`\> - -#### Inherited from - -virtualFs.ScopedHost.\_delegate - ---- - -### \_root - -• `Protected` **\_root**: `Path` - -#### Inherited from - -virtualFs.ScopedHost.\_root - ---- - -### root - -• `Private` **root**: `string` - -## Accessors - -### capabilities - -• `get` **capabilities**(): `HostCapabilities` - -#### Returns - -`HostCapabilities` - -#### Inherited from - -virtualFs.ScopedHost.capabilities - -## Methods - -### \_resolve - -▸ **\_resolve**(`path`): `Path` - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Path` - -#### Inherited from - -virtualFs.ScopedHost.\_resolve - ---- - -### delete - -▸ **delete**(`path`): `Observable`\<`void`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`void`\> - -#### Inherited from - -virtualFs.ScopedHost.delete - ---- - -### exists - -▸ **exists**(`path`): `Observable`\<`boolean`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`boolean`\> - -#### Overrides - -virtualFs.ScopedHost.exists - ---- - -### isDirectory - -▸ **isDirectory**(`path`): `Observable`\<`boolean`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`boolean`\> - -#### Inherited from - -virtualFs.ScopedHost.isDirectory - ---- - -### isFile - -▸ **isFile**(`path`): `Observable`\<`boolean`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`boolean`\> - -#### Overrides - -virtualFs.ScopedHost.isFile - ---- - -### list - -▸ **list**(`path`): `Observable`\<`PathFragment`[]\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`PathFragment`[]\> - -#### Inherited from - -virtualFs.ScopedHost.list - ---- - -### mergeProjectConfiguration - -▸ **mergeProjectConfiguration**(`existing`, `updated`, `projectName`): `AngularProjectConfiguration` - -#### Parameters - -| Name | Type | -| :------------ | :---------------------------- | -| `existing` | `AngularProjectConfiguration` | -| `updated` | `AngularProjectConfiguration` | -| `projectName` | `string` | - -#### Returns - -`AngularProjectConfiguration` - ---- - -### read - -▸ **read**(`path`): `Observable`\<`ArrayBuffer`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`ArrayBuffer`\> - -#### Overrides - -virtualFs.ScopedHost.read - ---- - -### readExistingAngularJson - -▸ **readExistingAngularJson**(): `Observable`\<`any`\> - -#### Returns - -`Observable`\<`any`\> - ---- - -### readJson - -▸ **readJson**\<`T`\>(`path`): `Observable`\<`T`\> - -#### Type parameters - -| Name | Type | -| :--- | :---- | -| `T` | `any` | - -#### Parameters - -| Name | Type | -| :----- | :------- | -| `path` | `string` | - -#### Returns - -`Observable`\<`T`\> - ---- - -### readMergedWorkspaceConfiguration - -▸ **readMergedWorkspaceConfiguration**(): `Observable`\<`any`\> - -#### Returns - -`Observable`\<`any`\> - ---- - -### rename - -▸ **rename**(`from`, `to`): `Observable`\<`void`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `from` | `Path` | -| `to` | `Path` | - -#### Returns - -`Observable`\<`void`\> - -#### Inherited from - -virtualFs.ScopedHost.rename - ---- - -### stat - -▸ **stat**(`path`): `Observable`\<`any`\> - -#### Parameters - -| Name | Type | -| :----- | :----- | -| `path` | `Path` | - -#### Returns - -`Observable`\<`any`\> - -#### Inherited from - -virtualFs.ScopedHost.stat - ---- - -### watch - -▸ **watch**(`path`, `options?`): `Observable`\<`HostWatchEvent`\> - -#### Parameters - -| Name | Type | -| :--------- | :----------------- | -| `path` | `Path` | -| `options?` | `HostWatchOptions` | - -#### Returns - -`Observable`\<`HostWatchEvent`\> - -#### Inherited from - -virtualFs.ScopedHost.watch - ---- - -### write - -▸ **write**(`path`, `content`): `Observable`\<`void`\> - -#### Parameters - -| Name | Type | -| :-------- | :------------ | -| `path` | `Path` | -| `content` | `ArrayBuffer` | - -#### Returns - -`Observable`\<`void`\> - -#### Overrides - -virtualFs.ScopedHost.write diff --git a/docs/generated/devkit/ngcli_adapter/README.md b/docs/generated/devkit/ngcli_adapter/README.md deleted file mode 100644 index 9bfb21f93f376..0000000000000 --- a/docs/generated/devkit/ngcli_adapter/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# @nx/devkit - -## Table of contents - -### Classes - -- [NxScopedHost](../../devkit/documents/ngcli_adapter/NxScopedHost) - -### Functions - -- [mockSchematicsForTesting](../../devkit/documents/ngcli_adapter/mockSchematicsForTesting) -- [wrapAngularDevkitSchematic](../../devkit/documents/ngcli_adapter/wrapAngularDevkitSchematic) diff --git a/docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md b/docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md deleted file mode 100644 index c2450bf7320ca..0000000000000 --- a/docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md +++ /dev/null @@ -1,31 +0,0 @@ -# Function: mockSchematicsForTesting - -▸ **mockSchematicsForTesting**(`schematics`): `void` - -If you have an Nx Devkit generator invoking the wrapped Angular Devkit schematic, -and you don't want the Angular Devkit schematic to run, you can mock it up using this function. - -Unfortunately, there are some edge cases in the Nx-Angular devkit integration that -can be seen in the unit tests context. This function is useful for handling that as well. - -In this case, you can mock it up. - -Example: - -```typescript -mockSchematicsForTesting({ - 'mycollection:myschematic': (tree, params) => { - tree.write('README'); - }, -}); -``` - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `schematics` | `Object` | - -#### Returns - -`void` diff --git a/docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md b/docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md deleted file mode 100644 index 3b217e7b134fa..0000000000000 --- a/docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md +++ /dev/null @@ -1,27 +0,0 @@ -# Function: wrapAngularDevkitSchematic - -▸ **wrapAngularDevkitSchematic**(`collectionName`, `generatorName`): (`host`: `Tree`, `generatorOptions`: \{ `[k: string]`: `any`; }) => `Promise`\<`any`\> - -#### Parameters - -| Name | Type | -| :--------------- | :------- | -| `collectionName` | `string` | -| `generatorName` | `string` | - -#### Returns - -`fn` - -▸ (`host`, `generatorOptions`): `Promise`\<`any`\> - -##### Parameters - -| Name | Type | -| :----------------- | :------- | -| `host` | `Tree` | -| `generatorOptions` | `Object` | - -##### Returns - -`Promise`\<`any`\> diff --git a/docs/generated/devkit/normalizePath.md b/docs/generated/devkit/normalizePath.md deleted file mode 100644 index ef08d17d4dc0a..0000000000000 --- a/docs/generated/devkit/normalizePath.md +++ /dev/null @@ -1,16 +0,0 @@ -# Function: normalizePath - -▸ **normalizePath**(`osSpecificPath`): `string` - -Coverts an os specific path to a unix style path. Use this when writing paths to config files. -This should not be used to read files on disk because of the removal of Windows drive letters. - -#### Parameters - -| Name | Type | -| :--------------- | :------- | -| `osSpecificPath` | `string` | - -#### Returns - -`string` diff --git a/docs/generated/devkit/offsetFromRoot.md b/docs/generated/devkit/offsetFromRoot.md deleted file mode 100644 index 5acd660495058..0000000000000 --- a/docs/generated/devkit/offsetFromRoot.md +++ /dev/null @@ -1,22 +0,0 @@ -# Function: offsetFromRoot - -▸ **offsetFromRoot**(`fullPathToDir`): `string` - -Calculates an offset from the root of the workspace, which is useful for -constructing relative URLs. - -Examples: - -```typescript -offsetFromRoot('apps/mydir/myapp/'); // returns "../../../" -``` - -#### Parameters - -| Name | Type | Description | -| :-------------- | :------- | :------------- | -| `fullPathToDir` | `string` | directory path | - -#### Returns - -`string` diff --git a/docs/generated/devkit/output.md b/docs/generated/devkit/output.md deleted file mode 100644 index b92a2e23f5e11..0000000000000 --- a/docs/generated/devkit/output.md +++ /dev/null @@ -1,3 +0,0 @@ -# Variable: output - -• `Const` **output**: `CLIOutput` diff --git a/docs/generated/devkit/parseJson.md b/docs/generated/devkit/parseJson.md deleted file mode 100644 index 21d18eda3f13a..0000000000000 --- a/docs/generated/devkit/parseJson.md +++ /dev/null @@ -1,25 +0,0 @@ -# Function: parseJson - -▸ **parseJson**\<`T`\>(`input`, `options?`): `T` - -Parses the given JSON string and returns the object the JSON content represents. -By default javascript-style comments and trailing commas are allowed. - -#### Type parameters - -| Name | Type | -| :--- | :----------------------- | -| `T` | extends `object` = `any` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :------------------------------------------------------------ | :--------------------- | -| `input` | `string` | JSON content as string | -| `options?` | [`JsonParseOptions`](../../devkit/documents/JsonParseOptions) | JSON parse options | - -#### Returns - -`T` - -Object the JSON content represents diff --git a/docs/generated/devkit/parseTargetString.md b/docs/generated/devkit/parseTargetString.md deleted file mode 100644 index aaf04f01fab72..0000000000000 --- a/docs/generated/devkit/parseTargetString.md +++ /dev/null @@ -1,61 +0,0 @@ -# Function: parseTargetString - -▸ **parseTargetString**(`targetString`): [`Target`](../../devkit/documents/Target) - -@deprecated(v17) A project graph should be passed to parseTargetString for best accuracy. - -#### Parameters - -| Name | Type | -| :------------- | :------- | -| `targetString` | `string` | - -#### Returns - -[`Target`](../../devkit/documents/Target) - -▸ **parseTargetString**(`targetString`, `projectGraph`): [`Target`](../../devkit/documents/Target) - -Parses a target string into {project, target, configuration} - -Examples: - -```typescript -parseTargetString('proj:test', graph); // returns { project: "proj", target: "test" } -parseTargetString('proj:test:production', graph); // returns { project: "proj", target: "test", configuration: "production" } -``` - -#### Parameters - -| Name | Type | Description | -| :------------- | :---------------------------------------------------- | :--------------- | -| `targetString` | `string` | target reference | -| `projectGraph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | - | - -#### Returns - -[`Target`](../../devkit/documents/Target) - -▸ **parseTargetString**(`targetString`, `ctx`): [`Target`](../../devkit/documents/Target) - -Parses a target string into {project, target, configuration}. Passing a full -[ExecutorContext](../../devkit/documents/ExecutorContext) enables the targetString to reference the current project. - -Examples: - -```typescript -parseTargetString('test', executorContext); // returns { project: "proj", target: "test" } -parseTargetString('proj:test', executorContext); // returns { project: "proj", target: "test" } -parseTargetString('proj:test:production', executorContext); // returns { project: "proj", target: "test", configuration: "production" } -``` - -#### Parameters - -| Name | Type | -| :------------- | :---------------------------------------------------------- | -| `targetString` | `string` | -| `ctx` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | - -#### Returns - -[`Target`](../../devkit/documents/Target) diff --git a/docs/generated/devkit/readCachedProjectGraph.md b/docs/generated/devkit/readCachedProjectGraph.md deleted file mode 100644 index be49a12990d77..0000000000000 --- a/docs/generated/devkit/readCachedProjectGraph.md +++ /dev/null @@ -1,13 +0,0 @@ -# Function: readCachedProjectGraph - -▸ **readCachedProjectGraph**(): [`ProjectGraph`](../../devkit/documents/ProjectGraph) - -Synchronously reads the latest cached copy of the workspace's ProjectGraph. - -#### Returns - -[`ProjectGraph`](../../devkit/documents/ProjectGraph) - -**`Throws`** - -if there is no cached ProjectGraph to read from diff --git a/docs/generated/devkit/readJson.md b/docs/generated/devkit/readJson.md deleted file mode 100644 index 4931812e9c917..0000000000000 --- a/docs/generated/devkit/readJson.md +++ /dev/null @@ -1,23 +0,0 @@ -# Function: readJson - -▸ **readJson**\<`T`\>(`tree`, `path`, `options?`): `T` - -Reads a json file, removes all comments and parses JSON. - -#### Type parameters - -| Name | Type | -| :--- | :----------------------- | -| `T` | extends `object` = `any` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :------------------------------------------------------------ | :-------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | file system tree | -| `path` | `string` | file path | -| `options?` | [`JsonParseOptions`](../../devkit/documents/JsonParseOptions) | Optional JSON Parse Options | - -#### Returns - -`T` diff --git a/docs/generated/devkit/readJsonFile.md b/docs/generated/devkit/readJsonFile.md deleted file mode 100644 index ba6fdd20ce12b..0000000000000 --- a/docs/generated/devkit/readJsonFile.md +++ /dev/null @@ -1,24 +0,0 @@ -# Function: readJsonFile - -▸ **readJsonFile**\<`T`\>(`path`, `options?`): `T` - -Reads a JSON file and returns the object the JSON content represents. - -#### Type parameters - -| Name | Type | -| :--- | :----------------------- | -| `T` | extends `object` = `any` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :---------------- | :----------------- | -| `path` | `string` | A path to a file. | -| `options?` | `JsonReadOptions` | JSON parse options | - -#### Returns - -`T` - -Object the JSON content of the file represents diff --git a/docs/generated/devkit/readNxJson.md b/docs/generated/devkit/readNxJson.md deleted file mode 100644 index 1426bc6e536da..0000000000000 --- a/docs/generated/devkit/readNxJson.md +++ /dev/null @@ -1,25 +0,0 @@ -# Function: readNxJson - -▸ **readNxJson**(): [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` - -#### Returns - -[`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` - -**`Deprecated`** - -You must pass a [Tree](../../devkit/documents/Tree) - -▸ **readNxJson**(`tree`): [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` - -Reads nx.json - -#### Parameters - -| Name | Type | -| :----- | :------------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | - -#### Returns - -[`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` diff --git a/docs/generated/devkit/readProjectConfiguration.md b/docs/generated/devkit/readProjectConfiguration.md deleted file mode 100644 index 0190e370f29d7..0000000000000 --- a/docs/generated/devkit/readProjectConfiguration.md +++ /dev/null @@ -1,20 +0,0 @@ -# Function: readProjectConfiguration - -▸ **readProjectConfiguration**(`tree`, `projectName`): [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) - -Reads a project configuration. - -#### Parameters - -| Name | Type | Description | -| :------------ | :------------------------------------ | :---------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | -| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) | - -#### Returns - -[`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) - -**`Throws`** - -If supplied projectName cannot be found diff --git a/docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md b/docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md deleted file mode 100644 index d30aa67146b69..0000000000000 --- a/docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md +++ /dev/null @@ -1,15 +0,0 @@ -# Function: readProjectsConfigurationFromProjectGraph - -▸ **readProjectsConfigurationFromProjectGraph**(`projectGraph`): [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) - -Get the [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations) from the [ProjectGraph](../../devkit/documents/ProjectGraph) - -#### Parameters - -| Name | Type | -| :------------- | :---------------------------------------------------- | -| `projectGraph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | - -#### Returns - -[`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) diff --git a/docs/generated/devkit/readTargetOptions.md b/docs/generated/devkit/readTargetOptions.md deleted file mode 100644 index b79af8fa49c37..0000000000000 --- a/docs/generated/devkit/readTargetOptions.md +++ /dev/null @@ -1,24 +0,0 @@ -# Function: readTargetOptions - -▸ **readTargetOptions**\<`T`\>(`«destructured»`, `context`): `T` - -Reads and combines options for a given target. - -Works as if you invoked the target yourself without passing any command lint overrides. - -#### Type parameters - -| Name | Type | -| :--- | :---- | -| `T` | `any` | - -#### Parameters - -| Name | Type | -| :--------------- | :---------------------------------------------------------- | -| `«destructured»` | [`Target`](../../devkit/documents/Target) | -| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | - -#### Returns - -`T` diff --git a/docs/generated/devkit/removeDependenciesFromPackageJson.md b/docs/generated/devkit/removeDependenciesFromPackageJson.md deleted file mode 100644 index 6fe6b0a308498..0000000000000 --- a/docs/generated/devkit/removeDependenciesFromPackageJson.md +++ /dev/null @@ -1,28 +0,0 @@ -# Function: removeDependenciesFromPackageJson - -▸ **removeDependenciesFromPackageJson**(`tree`, `dependencies`, `devDependencies`, `packageJsonPath?`): [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) - -Remove Dependencies and Dev Dependencies from package.json - -For example: - -```typescript -removeDependenciesFromPackageJson(tree, ['react'], ['jest']); -``` - -This will **remove** `react` and `jest` from the dependencies and devDependencies sections of package.json respectively. - -#### Parameters - -| Name | Type | Description | -| :----------------- | :------------------------------------ | :-------------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | - | -| `dependencies` | `string`[] | Dependencies to be removed from the dependencies section of package.json | -| `devDependencies` | `string`[] | Dependencies to be removed from the devDependencies section of package.json | -| `packageJsonPath?` | `string` | - | - -#### Returns - -[`GeneratorCallback`](../../devkit/documents/GeneratorCallback) - -Callback to uninstall dependencies only if necessary. undefined is returned if changes are not necessary. diff --git a/docs/generated/devkit/removeProjectConfiguration.md b/docs/generated/devkit/removeProjectConfiguration.md deleted file mode 100644 index 2536dcef2ec88..0000000000000 --- a/docs/generated/devkit/removeProjectConfiguration.md +++ /dev/null @@ -1,16 +0,0 @@ -# Function: removeProjectConfiguration - -▸ **removeProjectConfiguration**(`tree`, `projectName`): `void` - -Removes the configuration of an existing project. - -#### Parameters - -| Name | Type | Description | -| :------------ | :------------------------------------ | :---------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | -| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) | - -#### Returns - -`void` diff --git a/docs/generated/devkit/reverse.md b/docs/generated/devkit/reverse.md deleted file mode 100644 index 5f79f2d94e09b..0000000000000 --- a/docs/generated/devkit/reverse.md +++ /dev/null @@ -1,18 +0,0 @@ -# Function: reverse - -▸ **reverse**(`graph`): [`ProjectGraph`](../../devkit/documents/ProjectGraph) - -Returns a new project graph where all the edges are reversed. - -For instance, if project A depends on B, in the reversed graph -B will depend on A. - -#### Parameters - -| Name | Type | -| :------ | :---------------------------------------------------- | -| `graph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | - -#### Returns - -[`ProjectGraph`](../../devkit/documents/ProjectGraph) diff --git a/docs/generated/devkit/runExecutor.md b/docs/generated/devkit/runExecutor.md deleted file mode 100644 index 83e3dcd2e9860..0000000000000 --- a/docs/generated/devkit/runExecutor.md +++ /dev/null @@ -1,49 +0,0 @@ -# Function: runExecutor - -▸ **runExecutor**\<`T`\>(`targetDescription`, `overrides`, `context`): `Promise`\<`AsyncIterableIterator`\<`T`\>\> - -Loads and invokes executor. - -This is analogous to invoking executor from the terminal, with the exception -that the params aren't parsed from the string, but instead provided parsed already. - -Apart from that, it works the same way: - -- it will load the workspace configuration -- it will resolve the target -- it will load the executor and the schema -- it will load the options for the appropriate configuration -- it will run the validations and will set the default -- and, of course, it will invoke the executor - -Example: - -```typescript -for await (const s of await runExecutor( - { project: 'myproj', target: 'serve' }, - { watch: true }, - context -)) { - // s.success -} -``` - -Note that the return value is a promise of an iterator, so you need to await before iterating over it. - -#### Type parameters - -| Name | Type | -| :--- | :--------------- | -| `T` | extends `Object` | - -#### Parameters - -| Name | Type | -| :------------------ | :---------------------------------------------------------- | -| `targetDescription` | [`Target`](../../devkit/documents/Target) | -| `overrides` | `Object` | -| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | - -#### Returns - -`Promise`\<`AsyncIterableIterator`\<`T`\>\> diff --git a/docs/generated/devkit/runTasksInSerial.md b/docs/generated/devkit/runTasksInSerial.md deleted file mode 100644 index f0864f014c5d0..0000000000000 --- a/docs/generated/devkit/runTasksInSerial.md +++ /dev/null @@ -1,15 +0,0 @@ -# Function: runTasksInSerial - -▸ **runTasksInSerial**(`...tasks`): [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) - -Run tasks in serial - -#### Parameters - -| Name | Type | Description | -| :--------- | :---------------------------------------------------------------- | :-------------------------- | -| `...tasks` | [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)[] | The tasks to run in serial. | - -#### Returns - -[`GeneratorCallback`](../../devkit/documents/GeneratorCallback) diff --git a/docs/generated/devkit/serializeJson.md b/docs/generated/devkit/serializeJson.md deleted file mode 100644 index a88b5b21f66aa..0000000000000 --- a/docs/generated/devkit/serializeJson.md +++ /dev/null @@ -1,25 +0,0 @@ -# Function: serializeJson - -▸ **serializeJson**\<`T`\>(`input`, `options?`): `string` - -Serializes the given data to a JSON string. -By default the JSON string is formatted with a 2 space indentation to be easy readable. - -#### Type parameters - -| Name | Type | -| :--- | :-------------------------- | -| `T` | extends `object` = `object` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :-------------------------------------------------------------------- | :---------------------------------------- | -| `input` | `T` | Object which should be serialized to JSON | -| `options?` | [`JsonSerializeOptions`](../../devkit/documents/JsonSerializeOptions) | JSON serialize options | - -#### Returns - -`string` - -the formatted JSON representation of the object diff --git a/docs/generated/devkit/stripIndents.md b/docs/generated/devkit/stripIndents.md deleted file mode 100644 index 8fc719dffc11d..0000000000000 --- a/docs/generated/devkit/stripIndents.md +++ /dev/null @@ -1,26 +0,0 @@ -# Function: stripIndents - -▸ **stripIndents**(`strings`, `...values`): `string` - -Removes indents, which is useful for printing warning and messages. - -Example: - -```typescript -stripIndents` - Options: - - option1 - - option2 -`; -``` - -#### Parameters - -| Name | Type | -| :---------- | :--------------------- | -| `strings` | `TemplateStringsArray` | -| `...values` | `any`[] | - -#### Returns - -`string` diff --git a/docs/generated/devkit/stripJsonComments.md b/docs/generated/devkit/stripJsonComments.md deleted file mode 100644 index 584b3f6eb6e32..0000000000000 --- a/docs/generated/devkit/stripJsonComments.md +++ /dev/null @@ -1,18 +0,0 @@ -# Function: stripJsonComments - -▸ **stripJsonComments**(`text`, `replaceCh?`): `string` - -Takes JSON with JavaScript-style comments and remove -them. Optionally replaces every none-newline character -of comments with a replaceCharacter - -#### Parameters - -| Name | Type | -| :----------- | :------- | -| `text` | `string` | -| `replaceCh?` | `string` | - -#### Returns - -`string` diff --git a/docs/generated/devkit/targetToTargetString.md b/docs/generated/devkit/targetToTargetString.md deleted file mode 100644 index 917f84e3ef86e..0000000000000 --- a/docs/generated/devkit/targetToTargetString.md +++ /dev/null @@ -1,15 +0,0 @@ -# Function: targetToTargetString - -▸ **targetToTargetString**(`target`): `string` - -Returns a string in the format "project:target[:configuration]" for the target - -#### Parameters - -| Name | Type | Description | -| :------- | :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `target` | [`Target`](../../devkit/documents/Target) | target object Examples: `typescript targetToTargetString({ project: "proj", target: "test" }) // returns "proj:test" targetToTargetString({ project: "proj", target: "test", configuration: "production" }) // returns "proj:test:production" ` | - -#### Returns - -`string` diff --git a/docs/generated/devkit/toJS.md b/docs/generated/devkit/toJS.md deleted file mode 100644 index 46fae2143a326..0000000000000 --- a/docs/generated/devkit/toJS.md +++ /dev/null @@ -1,16 +0,0 @@ -# Function: toJS - -▸ **toJS**(`tree`, `options?`): `void` - -Rename and transpile any new typescript files created to javascript files - -#### Parameters - -| Name | Type | -| :--------- | :-------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | -| `options?` | [`ToJSOptions`](../../devkit/documents/ToJSOptions) | - -#### Returns - -`void` diff --git a/docs/generated/devkit/updateJson.md b/docs/generated/devkit/updateJson.md deleted file mode 100644 index 45017333fd946..0000000000000 --- a/docs/generated/devkit/updateJson.md +++ /dev/null @@ -1,25 +0,0 @@ -# Function: updateJson - -▸ **updateJson**\<`T`, `U`\>(`tree`, `path`, `updater`, `options?`): `void` - -Updates a JSON value to the file system tree - -#### Type parameters - -| Name | Type | -| :--- | :----------------------- | -| `T` | extends `object` = `any` | -| `U` | extends `object` = `T` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | File system tree | -| `path` | `string` | Path of JSON file in the Tree | -| `updater` | (`value`: `T`) => `U` | Function that maps the current value of a JSON document to a new value to be written to the document | -| `options?` | [`JsonParseOptions`](../../devkit/documents/JsonParseOptions) & [`JsonSerializeOptions`](../../devkit/documents/JsonSerializeOptions) | Optional JSON Parse and Serialize Options | - -#### Returns - -`void` diff --git a/docs/generated/devkit/updateNxJson.md b/docs/generated/devkit/updateNxJson.md deleted file mode 100644 index 5170e4d32cbfd..0000000000000 --- a/docs/generated/devkit/updateNxJson.md +++ /dev/null @@ -1,16 +0,0 @@ -# Function: updateNxJson - -▸ **updateNxJson**(`tree`, `nxJson`): `void` - -Update nx.json - -#### Parameters - -| Name | Type | -| :------- | :----------------------------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | -| `nxJson` | [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> | - -#### Returns - -`void` diff --git a/docs/generated/devkit/updateProjectConfiguration.md b/docs/generated/devkit/updateProjectConfiguration.md deleted file mode 100644 index 7c799ded8e756..0000000000000 --- a/docs/generated/devkit/updateProjectConfiguration.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function: updateProjectConfiguration - -▸ **updateProjectConfiguration**(`tree`, `projectName`, `projectConfiguration`): `void` - -Updates the configuration of an existing project. - -#### Parameters - -| Name | Type | Description | -| :--------------------- | :-------------------------------------------------------------------- | :---------------------------------------------------------------------- | -| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | -| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) | -| `projectConfiguration` | [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) | project configuration | - -#### Returns - -`void` diff --git a/docs/generated/devkit/updateTsConfigsToJs.md b/docs/generated/devkit/updateTsConfigsToJs.md deleted file mode 100644 index 1d3a2d6f6d440..0000000000000 --- a/docs/generated/devkit/updateTsConfigsToJs.md +++ /dev/null @@ -1,15 +0,0 @@ -# Function: updateTsConfigsToJs - -▸ **updateTsConfigsToJs**(`tree`, `options`): `void` - -#### Parameters - -| Name | Type | -| :-------------------- | :------------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | -| `options` | `Object` | -| `options.projectRoot` | `string` | - -#### Returns - -`void` diff --git a/docs/generated/devkit/validateDependency.md b/docs/generated/devkit/validateDependency.md deleted file mode 100644 index 70719603fc8f6..0000000000000 --- a/docs/generated/devkit/validateDependency.md +++ /dev/null @@ -1,20 +0,0 @@ -# Function: validateDependency - -▸ **validateDependency**(`dependency`, `ctx`): `void` - -A function to validate dependencies in a [CreateDependencies](../../devkit/documents/CreateDependencies) function - -#### Parameters - -| Name | Type | -| :----------- | :------------------------------------------------------------------------------ | -| `dependency` | [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency) | -| `ctx` | [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext) | - -#### Returns - -`void` - -**`Throws`** - -If the dependency is invalid. diff --git a/docs/generated/devkit/visitNotIgnoredFiles.md b/docs/generated/devkit/visitNotIgnoredFiles.md deleted file mode 100644 index 59daf7b5577de..0000000000000 --- a/docs/generated/devkit/visitNotIgnoredFiles.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function: visitNotIgnoredFiles - -▸ **visitNotIgnoredFiles**(`tree`, `dirPath`, `visitor`): `void` - -Utility to act on all files in a tree that are not ignored by git. - -#### Parameters - -| Name | Type | -| :-------- | :------------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | -| `dirPath` | `string` | -| `visitor` | (`path`: `string`) => `void` | - -#### Returns - -`void` diff --git a/docs/generated/devkit/workspaceLayout.md b/docs/generated/devkit/workspaceLayout.md deleted file mode 100644 index 6ebebabb415db..0000000000000 --- a/docs/generated/devkit/workspaceLayout.md +++ /dev/null @@ -1,14 +0,0 @@ -# Function: workspaceLayout - -▸ **workspaceLayout**(): `Object` - -Returns information about where apps and libs will be created. - -#### Returns - -`Object` - -| Name | Type | -| :-------- | :------- | -| `appsDir` | `string` | -| `libsDir` | `string` | diff --git a/docs/generated/devkit/workspaceRoot.md b/docs/generated/devkit/workspaceRoot.md deleted file mode 100644 index 803f702737682..0000000000000 --- a/docs/generated/devkit/workspaceRoot.md +++ /dev/null @@ -1,5 +0,0 @@ -# Variable: workspaceRoot - -• **workspaceRoot**: `string` - -The root of the workspace diff --git a/docs/generated/devkit/writeJson.md b/docs/generated/devkit/writeJson.md deleted file mode 100644 index be993ba2f3efc..0000000000000 --- a/docs/generated/devkit/writeJson.md +++ /dev/null @@ -1,24 +0,0 @@ -# Function: writeJson - -▸ **writeJson**\<`T`\>(`tree`, `path`, `value`, `options?`): `void` - -Writes a JSON value to the file system tree - -#### Type parameters - -| Name | Type | -| :--- | :-------------------------- | -| `T` | extends `object` = `object` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :-------------------------------------------------------------------- | :------------------------------ | -| `tree` | [`Tree`](../../devkit/documents/Tree) | File system tree | -| `path` | `string` | Path of JSON file in the Tree | -| `value` | `T` | Serializable value to write | -| `options?` | [`JsonSerializeOptions`](../../devkit/documents/JsonSerializeOptions) | Optional JSON Serialize Options | - -#### Returns - -`void` diff --git a/docs/generated/devkit/writeJsonFile.md b/docs/generated/devkit/writeJsonFile.md deleted file mode 100644 index 9354e3fe14279..0000000000000 --- a/docs/generated/devkit/writeJsonFile.md +++ /dev/null @@ -1,23 +0,0 @@ -# Function: writeJsonFile - -▸ **writeJsonFile**\<`T`\>(`path`, `data`, `options?`): `void` - -Serializes the given data to JSON and writes it to a file. - -#### Type parameters - -| Name | Type | -| :--- | :-------------------------- | -| `T` | extends `object` = `object` | - -#### Parameters - -| Name | Type | Description | -| :--------- | :----------------- | :-------------------------------------------------------------- | -| `path` | `string` | A path to a file. | -| `data` | `T` | data which should be serialized to JSON and written to the file | -| `options?` | `JsonWriteOptions` | JSON serialize options | - -#### Returns - -`void` diff --git a/docs/generated/manifests/ci.json b/docs/generated/manifests/ci.json deleted file mode 100644 index d515786c10a96..0000000000000 --- a/docs/generated/manifests/ci.json +++ /dev/null @@ -1,1908 +0,0 @@ -{ - "/ci/intro": { - "id": "intro", - "name": "Intro", - "description": "Learn about basic Nx Cloud knowledge.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "ci-with-nx", - "name": "CI with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/intro/ci-with-nx", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/ci-with-nx", - "tags": [] - }, - { - "id": "tutorials", - "name": "Tutorials", - "description": "Tutorials setting up CI with Nx", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "circle", - "name": "Circle CI with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/tutorial/circle", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/tutorials/circle", - "tags": [] - }, - { - "id": "github-actions", - "name": "GitHub Actions with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/tutorial/github-actions", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/tutorials/github-actions", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/intro/tutorials", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/intro", - "tags": [] - }, - "/ci/intro/ci-with-nx": { - "id": "ci-with-nx", - "name": "CI with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/intro/ci-with-nx", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/ci-with-nx", - "tags": [] - }, - "/ci/intro/tutorials": { - "id": "tutorials", - "name": "Tutorials", - "description": "Tutorials setting up CI with Nx", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "circle", - "name": "Circle CI with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/tutorial/circle", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/tutorials/circle", - "tags": [] - }, - { - "id": "github-actions", - "name": "GitHub Actions with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/tutorial/github-actions", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/tutorials/github-actions", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/intro/tutorials", - "tags": [] - }, - "/ci/intro/tutorials/circle": { - "id": "circle", - "name": "Circle CI with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/tutorial/circle", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/tutorials/circle", - "tags": [] - }, - "/ci/intro/tutorials/github-actions": { - "id": "github-actions", - "name": "GitHub Actions with Nx", - "description": "", - "mediaImage": "", - "file": "nx-cloud/tutorial/github-actions", - "itemList": [], - "isExternal": false, - "path": "/ci/intro/tutorials/github-actions", - "tags": [] - }, - "/ci/features": { - "id": "features", - "name": "Features", - "description": "Features of Nx and Nx Cloud that improve CI", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "affected", - "name": "Run Only Tasks Affected by a PR", - "description": "", - "mediaImage": "", - "file": "shared/using-nx/affected", - "itemList": [], - "isExternal": false, - "path": "/ci/features/affected", - "tags": ["run-tasks"] - }, - { - "id": "remote-cache", - "name": "Use Remote Caching (Nx Replay)", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "mediaImage": "", - "file": "shared/features/remote-cache", - "itemList": [], - "isExternal": false, - "path": "/ci/features/remote-cache", - "tags": ["remote-cache"] - }, - { - "id": "distribute-task-execution", - "name": "Distribute Task Execution (Nx Agents)", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", - "mediaImage": "", - "file": "shared/features/distribute-task-execution", - "itemList": [], - "isExternal": false, - "path": "/ci/features/distribute-task-execution", - "tags": [] - }, - { - "id": "dynamic-agents", - "name": "Dynamically Allocate Agents", - "description": "", - "mediaImage": "", - "file": "nx-cloud/features/dynamic-agents", - "itemList": [], - "isExternal": false, - "path": "/ci/features/dynamic-agents", - "tags": [] - }, - { - "id": "split-e2e-tasks", - "name": "Automatically Split E2E Tasks (TestAtomizer)", - "description": "", - "mediaImage": "", - "file": "nx-cloud/features/split-e2e-tasks", - "itemList": [], - "isExternal": false, - "path": "/ci/features/split-e2e-tasks", - "tags": [] - }, - { - "id": "flaky-tasks", - "name": "Identify and Re-run Flaky Tasks", - "description": "", - "mediaImage": "", - "file": "nx-cloud/features/flaky-tasks", - "itemList": [], - "isExternal": false, - "path": "/ci/features/flaky-tasks", - "tags": [] - }, - { - "id": "on-premise", - "name": "Set up Nx Cloud On-Premise", - "description": "Set up Nx Cloud on machines that you control", - "mediaImage": "", - "file": "nx-cloud/features/nx-enterprise-on-prem", - "itemList": [], - "isExternal": false, - "path": "/ci/features/on-premise", - "tags": ["on-premise"] - } - ], - "isExternal": false, - "path": "/ci/features", - "tags": [] - }, - "/ci/features/affected": { - "id": "affected", - "name": "Run Only Tasks Affected by a PR", - "description": "", - "mediaImage": "", - "file": "shared/using-nx/affected", - "itemList": [], - "isExternal": false, - "path": "/ci/features/affected", - "tags": ["run-tasks"] - }, - "/ci/features/remote-cache": { - "id": "remote-cache", - "name": "Use Remote Caching (Nx Replay)", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "mediaImage": "", - "file": "shared/features/remote-cache", - "itemList": [], - "isExternal": false, - "path": "/ci/features/remote-cache", - "tags": ["remote-cache"] - }, - "/ci/features/distribute-task-execution": { - "id": "distribute-task-execution", - "name": "Distribute Task Execution (Nx Agents)", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", - "mediaImage": "", - "file": "shared/features/distribute-task-execution", - "itemList": [], - "isExternal": false, - "path": "/ci/features/distribute-task-execution", - "tags": [] - }, - "/ci/features/dynamic-agents": { - "id": "dynamic-agents", - "name": "Dynamically Allocate Agents", - "description": "", - "mediaImage": "", - "file": "nx-cloud/features/dynamic-agents", - "itemList": [], - "isExternal": false, - "path": "/ci/features/dynamic-agents", - "tags": [] - }, - "/ci/features/split-e2e-tasks": { - "id": "split-e2e-tasks", - "name": "Automatically Split E2E Tasks (TestAtomizer)", - "description": "", - "mediaImage": "", - "file": "nx-cloud/features/split-e2e-tasks", - "itemList": [], - "isExternal": false, - "path": "/ci/features/split-e2e-tasks", - "tags": [] - }, - "/ci/features/flaky-tasks": { - "id": "flaky-tasks", - "name": "Identify and Re-run Flaky Tasks", - "description": "", - "mediaImage": "", - "file": "nx-cloud/features/flaky-tasks", - "itemList": [], - "isExternal": false, - "path": "/ci/features/flaky-tasks", - "tags": [] - }, - "/ci/features/on-premise": { - "id": "on-premise", - "name": "Set up Nx Cloud On-Premise", - "description": "Set up Nx Cloud on machines that you control", - "mediaImage": "", - "file": "nx-cloud/features/nx-enterprise-on-prem", - "itemList": [], - "isExternal": false, - "path": "/ci/features/on-premise", - "tags": ["on-premise"] - }, - "/ci/concepts": { - "id": "concepts", - "name": "Concepts", - "description": "Learn how to manage Nx Cloud subscriptions and other options.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "building-blocks-fast-ci", - "name": "The Building Blocks of Fast CI", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/building-blocks-fast-ci", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/building-blocks-fast-ci", - "tags": [] - }, - { - "id": "reduce-waste", - "name": "Reduce Wasted Time in CI", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/reduce-waste", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/reduce-waste", - "tags": [] - }, - { - "id": "parallelization-distribution", - "name": "Parallelization and Distribution", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/parallelization-distribution", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/parallelization-distribution", - "tags": ["distribute-task-execution"] - }, - { - "id": "cache-security", - "name": "Cache Security", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/cache-security", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/cache-security", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/concepts", - "tags": [] - }, - "/ci/concepts/building-blocks-fast-ci": { - "id": "building-blocks-fast-ci", - "name": "The Building Blocks of Fast CI", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/building-blocks-fast-ci", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/building-blocks-fast-ci", - "tags": [] - }, - "/ci/concepts/reduce-waste": { - "id": "reduce-waste", - "name": "Reduce Wasted Time in CI", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/reduce-waste", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/reduce-waste", - "tags": [] - }, - "/ci/concepts/parallelization-distribution": { - "id": "parallelization-distribution", - "name": "Parallelization and Distribution", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/parallelization-distribution", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/parallelization-distribution", - "tags": ["distribute-task-execution"] - }, - "/ci/concepts/cache-security": { - "id": "cache-security", - "name": "Cache Security", - "description": "", - "mediaImage": "", - "file": "nx-cloud/concepts/cache-security", - "itemList": [], - "isExternal": false, - "path": "/ci/concepts/cache-security", - "tags": [] - }, - "/ci/recipes": { - "id": "recipes", - "name": "Recipes", - "description": "Learn how to set up Nx Cloud for your workspace.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "set-up", - "name": "Set Up CI", - "description": "Learn how to set up Nx Cloud for your workspace.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "connect-to-cloud", - "name": "Connect Nx Cloud", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/connect-to-cloud", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/connect-to-cloud", - "tags": [] - }, - { - "id": "monorepo-ci-azure", - "name": "Setting up Azure Pipelines", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-azure", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-azure", - "tags": [] - }, - { - "id": "monorepo-ci-circle-ci", - "name": "Setting up CircleCI", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-circle-ci", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", - "tags": [] - }, - { - "id": "monorepo-ci-github-actions", - "name": "Setting up GitHub Actions", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-github-actions", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-github-actions", - "tags": [] - }, - { - "id": "monorepo-ci-jenkins", - "name": "Setting up Jenkins", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-jenkins", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-jenkins", - "tags": [] - }, - { - "id": "monorepo-ci-gitlab", - "name": "Setting up GitLab", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-gitlab", - "tags": [] - }, - { - "id": "monorepo-ci-bitbucket-pipelines", - "name": "Setting up Bitbucket", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-bitbucket-pipelines", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/set-up", - "tags": ["distribute-task-execution"] - }, - { - "id": "security", - "name": "Security", - "description": "Manage access to Nx Cloud", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "google-auth", - "name": "Authenticate with Google Identity", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/google-auth", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/google-auth", - "tags": [] - }, - { - "id": "access-tokens", - "name": "Access Tokens", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/access-tokens", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/access-tokens", - "tags": [] - }, - { - "id": "encryption", - "name": "Enable End to End Encryption", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/encryption", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/encryption", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/security", - "tags": [] - }, - { - "id": "source-control-integration", - "name": "Source Control Integration", - "description": "Show Nx Cloud results directly in your pull request", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "github", - "name": "Enable GitHub PR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/github", - "tags": [] - }, - { - "id": "bitbucket-cloud", - "name": "Enable Bitbucket Cloud PR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/bitbucket-cloud", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/bitbucket-cloud", - "tags": [] - }, - { - "id": "gitlab", - "name": "Enable GitLab MR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/gitlab", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/source-control-integration", - "tags": [] - }, - { - "id": "enterprise", - "name": "Enterprise", - "description": "Recipes for enterprise accounts", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "on-premise", - "name": "On-Premise", - "description": "Manage an on-premise installation of Nx Cloud", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "auth-single-admin", - "name": "Authenticate with a Single Admin", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-single-admin", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "tags": [] - }, - { - "id": "auth-github", - "name": "Authenticate with GitHub", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "tags": [] - }, - { - "id": "ami-setup", - "name": "On-Prem VM Setup", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/ami-setup", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "tags": [] - }, - { - "id": "auth-gitlab", - "name": "Authenticate with GitLab", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "tags": [] - }, - { - "id": "auth-bitbucket", - "name": "Authenticate with BitBucket", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "tags": [] - }, - { - "id": "auth-saml", - "name": "Authenticate via SAML", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "tags": [] - }, - { - "id": "auth-saml-managed", - "name": "Authenticate via SAML on Managed Version", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "tags": [] - }, - { - "id": "advanced-config", - "name": "Advanced Configuration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/advanced-config", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise", - "tags": [] - }, - { - "id": "dte", - "name": "Custom Distributed Task Execution", - "description": "Custom DTE on your own CI provider", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "github-dte", - "name": "GitHub Actions Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/github-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/github-dte", - "tags": [] - }, - { - "id": "circle-ci-dte", - "name": "Circle CI Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/circle-ci-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "tags": [] - }, - { - "id": "azure-dte", - "name": "Azure Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/azure-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/azure-dte", - "tags": [] - }, - { - "id": "bitbucket-dte", - "name": "Bitbucket Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/bitbucket-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "tags": [] - }, - { - "id": "gitlab-dte", - "name": "GitLab Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/gitlab-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "tags": [] - }, - { - "id": "jenkins-dte", - "name": "Jenkins Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/jenkins-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise", - "tags": [] - }, - { - "id": "troubleshooting", - "name": "Troubleshooting", - "description": "Learn how to solve common issues in Nx Cloud.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "ci-execution-failed", - "name": "CI Execution Failed", - "description": "", - "mediaImage": "", - "file": "nx-cloud/troubleshooting/ci-execution-failed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/troubleshooting/ci-execution-failed", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/troubleshooting", - "tags": [] - }, - { - "id": "other", - "name": "Other", - "description": "Learn how to set up Nx Cloud for your workspace.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "record-commands", - "name": "Record Non-Nx Commands", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/record-commands", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/other/record-commands", - "tags": [] - }, - { - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ci-deployment", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/other/ci-deployment", - "tags": ["docker", "deploy"] - } - ], - "isExternal": false, - "path": "/ci/recipes/other", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes", - "tags": [] - }, - "/ci/recipes/set-up": { - "id": "set-up", - "name": "Set Up CI", - "description": "Learn how to set up Nx Cloud for your workspace.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "connect-to-cloud", - "name": "Connect Nx Cloud", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/connect-to-cloud", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/connect-to-cloud", - "tags": [] - }, - { - "id": "monorepo-ci-azure", - "name": "Setting up Azure Pipelines", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-azure", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-azure", - "tags": [] - }, - { - "id": "monorepo-ci-circle-ci", - "name": "Setting up CircleCI", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-circle-ci", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", - "tags": [] - }, - { - "id": "monorepo-ci-github-actions", - "name": "Setting up GitHub Actions", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-github-actions", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-github-actions", - "tags": [] - }, - { - "id": "monorepo-ci-jenkins", - "name": "Setting up Jenkins", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-jenkins", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-jenkins", - "tags": [] - }, - { - "id": "monorepo-ci-gitlab", - "name": "Setting up GitLab", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-gitlab", - "tags": [] - }, - { - "id": "monorepo-ci-bitbucket-pipelines", - "name": "Setting up Bitbucket", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-bitbucket-pipelines", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/set-up", - "tags": ["distribute-task-execution"] - }, - "/ci/recipes/set-up/connect-to-cloud": { - "id": "connect-to-cloud", - "name": "Connect Nx Cloud", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/connect-to-cloud", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/connect-to-cloud", - "tags": [] - }, - "/ci/recipes/set-up/monorepo-ci-azure": { - "id": "monorepo-ci-azure", - "name": "Setting up Azure Pipelines", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-azure", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-azure", - "tags": [] - }, - "/ci/recipes/set-up/monorepo-ci-circle-ci": { - "id": "monorepo-ci-circle-ci", - "name": "Setting up CircleCI", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-circle-ci", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", - "tags": [] - }, - "/ci/recipes/set-up/monorepo-ci-github-actions": { - "id": "monorepo-ci-github-actions", - "name": "Setting up GitHub Actions", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-github-actions", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-github-actions", - "tags": [] - }, - "/ci/recipes/set-up/monorepo-ci-jenkins": { - "id": "monorepo-ci-jenkins", - "name": "Setting up Jenkins", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-jenkins", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-jenkins", - "tags": [] - }, - "/ci/recipes/set-up/monorepo-ci-gitlab": { - "id": "monorepo-ci-gitlab", - "name": "Setting up GitLab", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-gitlab", - "tags": [] - }, - "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines": { - "id": "monorepo-ci-bitbucket-pipelines", - "name": "Setting up Bitbucket", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-ci-bitbucket-pipelines", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", - "tags": [] - }, - "/ci/recipes/security": { - "id": "security", - "name": "Security", - "description": "Manage access to Nx Cloud", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "google-auth", - "name": "Authenticate with Google Identity", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/google-auth", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/google-auth", - "tags": [] - }, - { - "id": "access-tokens", - "name": "Access Tokens", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/access-tokens", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/access-tokens", - "tags": [] - }, - { - "id": "encryption", - "name": "Enable End to End Encryption", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/encryption", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/encryption", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/security", - "tags": [] - }, - "/ci/recipes/security/google-auth": { - "id": "google-auth", - "name": "Authenticate with Google Identity", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/google-auth", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/google-auth", - "tags": [] - }, - "/ci/recipes/security/access-tokens": { - "id": "access-tokens", - "name": "Access Tokens", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/access-tokens", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/access-tokens", - "tags": [] - }, - "/ci/recipes/security/encryption": { - "id": "encryption", - "name": "Enable End to End Encryption", - "description": "", - "mediaImage": "", - "file": "nx-cloud/recipes/encryption", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/security/encryption", - "tags": [] - }, - "/ci/recipes/source-control-integration": { - "id": "source-control-integration", - "name": "Source Control Integration", - "description": "Show Nx Cloud results directly in your pull request", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "github", - "name": "Enable GitHub PR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/github", - "tags": [] - }, - { - "id": "bitbucket-cloud", - "name": "Enable Bitbucket Cloud PR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/bitbucket-cloud", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/bitbucket-cloud", - "tags": [] - }, - { - "id": "gitlab", - "name": "Enable GitLab MR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/gitlab", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/source-control-integration", - "tags": [] - }, - "/ci/recipes/source-control-integration/github": { - "id": "github", - "name": "Enable GitHub PR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/github", - "tags": [] - }, - "/ci/recipes/source-control-integration/bitbucket-cloud": { - "id": "bitbucket-cloud", - "name": "Enable Bitbucket Cloud PR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/bitbucket-cloud", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/bitbucket-cloud", - "tags": [] - }, - "/ci/recipes/source-control-integration/gitlab": { - "id": "gitlab", - "name": "Enable GitLab MR Integration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/source-control-integration/gitlab", - "tags": [] - }, - "/ci/recipes/enterprise": { - "id": "enterprise", - "name": "Enterprise", - "description": "Recipes for enterprise accounts", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "on-premise", - "name": "On-Premise", - "description": "Manage an on-premise installation of Nx Cloud", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "auth-single-admin", - "name": "Authenticate with a Single Admin", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-single-admin", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "tags": [] - }, - { - "id": "auth-github", - "name": "Authenticate with GitHub", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "tags": [] - }, - { - "id": "ami-setup", - "name": "On-Prem VM Setup", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/ami-setup", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "tags": [] - }, - { - "id": "auth-gitlab", - "name": "Authenticate with GitLab", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "tags": [] - }, - { - "id": "auth-bitbucket", - "name": "Authenticate with BitBucket", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "tags": [] - }, - { - "id": "auth-saml", - "name": "Authenticate via SAML", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "tags": [] - }, - { - "id": "auth-saml-managed", - "name": "Authenticate via SAML on Managed Version", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "tags": [] - }, - { - "id": "advanced-config", - "name": "Advanced Configuration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/advanced-config", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise", - "tags": [] - }, - { - "id": "dte", - "name": "Custom Distributed Task Execution", - "description": "Custom DTE on your own CI provider", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "github-dte", - "name": "GitHub Actions Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/github-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/github-dte", - "tags": [] - }, - { - "id": "circle-ci-dte", - "name": "Circle CI Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/circle-ci-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "tags": [] - }, - { - "id": "azure-dte", - "name": "Azure Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/azure-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/azure-dte", - "tags": [] - }, - { - "id": "bitbucket-dte", - "name": "Bitbucket Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/bitbucket-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "tags": [] - }, - { - "id": "gitlab-dte", - "name": "GitLab Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/gitlab-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "tags": [] - }, - { - "id": "jenkins-dte", - "name": "Jenkins Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/jenkins-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise": { - "id": "on-premise", - "name": "On-Premise", - "description": "Manage an on-premise installation of Nx Cloud", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "auth-single-admin", - "name": "Authenticate with a Single Admin", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-single-admin", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "tags": [] - }, - { - "id": "auth-github", - "name": "Authenticate with GitHub", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "tags": [] - }, - { - "id": "ami-setup", - "name": "On-Prem VM Setup", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/ami-setup", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "tags": [] - }, - { - "id": "auth-gitlab", - "name": "Authenticate with GitLab", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "tags": [] - }, - { - "id": "auth-bitbucket", - "name": "Authenticate with BitBucket", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "tags": [] - }, - { - "id": "auth-saml", - "name": "Authenticate via SAML", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "tags": [] - }, - { - "id": "auth-saml-managed", - "name": "Authenticate via SAML on Managed Version", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "tags": [] - }, - { - "id": "advanced-config", - "name": "Advanced Configuration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/advanced-config", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/auth-single-admin": { - "id": "auth-single-admin", - "name": "Authenticate with a Single Admin", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-single-admin", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/auth-github": { - "id": "auth-github", - "name": "Authenticate with GitHub", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-github", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/ami-setup": { - "id": "ami-setup", - "name": "On-Prem VM Setup", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/ami-setup", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/auth-gitlab": { - "id": "auth-gitlab", - "name": "Authenticate with GitLab", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-gitlab", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/auth-bitbucket": { - "id": "auth-bitbucket", - "name": "Authenticate with BitBucket", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/auth-saml": { - "id": "auth-saml", - "name": "Authenticate via SAML", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/auth-saml-managed": { - "id": "auth-saml-managed", - "name": "Authenticate via SAML on Managed Version", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "tags": [] - }, - "/ci/recipes/enterprise/on-premise/advanced-config": { - "id": "advanced-config", - "name": "Advanced Configuration", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/on-premise/advanced-config", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "tags": [] - }, - "/ci/recipes/enterprise/dte": { - "id": "dte", - "name": "Custom Distributed Task Execution", - "description": "Custom DTE on your own CI provider", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "github-dte", - "name": "GitHub Actions Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/github-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/github-dte", - "tags": [] - }, - { - "id": "circle-ci-dte", - "name": "Circle CI Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/circle-ci-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "tags": [] - }, - { - "id": "azure-dte", - "name": "Azure Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/azure-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/azure-dte", - "tags": [] - }, - { - "id": "bitbucket-dte", - "name": "Bitbucket Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/bitbucket-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "tags": [] - }, - { - "id": "gitlab-dte", - "name": "GitLab Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/gitlab-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "tags": [] - }, - { - "id": "jenkins-dte", - "name": "Jenkins Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/jenkins-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte", - "tags": [] - }, - "/ci/recipes/enterprise/dte/github-dte": { - "id": "github-dte", - "name": "GitHub Actions Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/github-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/github-dte", - "tags": [] - }, - "/ci/recipes/enterprise/dte/circle-ci-dte": { - "id": "circle-ci-dte", - "name": "Circle CI Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/circle-ci-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "tags": [] - }, - "/ci/recipes/enterprise/dte/azure-dte": { - "id": "azure-dte", - "name": "Azure Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/azure-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/azure-dte", - "tags": [] - }, - "/ci/recipes/enterprise/dte/bitbucket-dte": { - "id": "bitbucket-dte", - "name": "Bitbucket Pipelines Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/bitbucket-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "tags": [] - }, - "/ci/recipes/enterprise/dte/gitlab-dte": { - "id": "gitlab-dte", - "name": "GitLab Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/gitlab-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "tags": [] - }, - "/ci/recipes/enterprise/dte/jenkins-dte": { - "id": "jenkins-dte", - "name": "Jenkins Custom DTE", - "description": "", - "mediaImage": "", - "file": "nx-cloud/enterprise/dte/jenkins-dte", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "tags": [] - }, - "/ci/recipes/troubleshooting": { - "id": "troubleshooting", - "name": "Troubleshooting", - "description": "Learn how to solve common issues in Nx Cloud.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "ci-execution-failed", - "name": "CI Execution Failed", - "description": "", - "mediaImage": "", - "file": "nx-cloud/troubleshooting/ci-execution-failed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/troubleshooting/ci-execution-failed", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/recipes/troubleshooting", - "tags": [] - }, - "/ci/recipes/troubleshooting/ci-execution-failed": { - "id": "ci-execution-failed", - "name": "CI Execution Failed", - "description": "", - "mediaImage": "", - "file": "nx-cloud/troubleshooting/ci-execution-failed", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/troubleshooting/ci-execution-failed", - "tags": [] - }, - "/ci/recipes/other": { - "id": "other", - "name": "Other", - "description": "Learn how to set up Nx Cloud for your workspace.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "record-commands", - "name": "Record Non-Nx Commands", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/record-commands", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/other/record-commands", - "tags": [] - }, - { - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ci-deployment", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/other/ci-deployment", - "tags": ["docker", "deploy"] - } - ], - "isExternal": false, - "path": "/ci/recipes/other", - "tags": [] - }, - "/ci/recipes/other/record-commands": { - "id": "record-commands", - "name": "Record Non-Nx Commands", - "description": "", - "mediaImage": "", - "file": "nx-cloud/set-up/record-commands", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/other/record-commands", - "tags": [] - }, - "/ci/recipes/other/ci-deployment": { - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ci-deployment", - "itemList": [], - "isExternal": false, - "path": "/ci/recipes/other/ci-deployment", - "tags": ["docker", "deploy"] - }, - "/ci/reference": { - "id": "reference", - "name": "Reference", - "description": "Understand how to use Nx Cloud, what arguments and options are available for each component.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "config", - "name": "Configuration Options", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/config", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/config", - "tags": [] - }, - { - "id": "nx-cloud-cli", - "name": "nx-cloud CLI", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/nx-cloud-cli", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/nx-cloud-cli", - "tags": [] - }, - { - "id": "launch-templates", - "name": "Launch Templates", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/launch-templates", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/launch-templates", - "tags": [] - }, - { - "id": "env-vars", - "name": "Environment Variables", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/env-vars", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/env-vars", - "tags": [] - }, - { - "id": "server-api", - "name": "Server API Reference", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/server-api", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/server-api", - "tags": [] - }, - { - "id": "release-notes", - "name": "Release Notes", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/release-notes", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/release-notes", - "tags": [] - } - ], - "isExternal": false, - "path": "/ci/reference", - "tags": [] - }, - "/ci/reference/config": { - "id": "config", - "name": "Configuration Options", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/config", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/config", - "tags": [] - }, - "/ci/reference/nx-cloud-cli": { - "id": "nx-cloud-cli", - "name": "nx-cloud CLI", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/nx-cloud-cli", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/nx-cloud-cli", - "tags": [] - }, - "/ci/reference/launch-templates": { - "id": "launch-templates", - "name": "Launch Templates", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/launch-templates", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/launch-templates", - "tags": [] - }, - "/ci/reference/env-vars": { - "id": "env-vars", - "name": "Environment Variables", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/env-vars", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/env-vars", - "tags": [] - }, - "/ci/reference/server-api": { - "id": "server-api", - "name": "Server API Reference", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/server-api", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/server-api", - "tags": [] - }, - "/ci/reference/release-notes": { - "id": "release-notes", - "name": "Release Notes", - "description": "", - "mediaImage": "", - "file": "nx-cloud/reference/release-notes", - "itemList": [], - "isExternal": false, - "path": "/ci/reference/release-notes", - "tags": [] - } -} diff --git a/docs/generated/manifests/extending-nx.json b/docs/generated/manifests/extending-nx.json deleted file mode 100644 index 675a2b0c1e28f..0000000000000 --- a/docs/generated/manifests/extending-nx.json +++ /dev/null @@ -1,346 +0,0 @@ -{ - "/extending-nx/intro": { - "id": "intro", - "name": "Intro", - "description": "Learn about plugins.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "getting-started", - "name": "Getting Started with Plugins", - "description": "Learn how to extend Nx by creating and releasing your own Nx plugin.", - "mediaImage": "", - "file": "shared/plugins/intro", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/intro/getting-started", - "tags": [] - } - ], - "isExternal": false, - "path": "/extending-nx/intro", - "tags": [] - }, - "/extending-nx/intro/getting-started": { - "id": "getting-started", - "name": "Getting Started with Plugins", - "description": "Learn how to extend Nx by creating and releasing your own Nx plugin.", - "mediaImage": "", - "file": "shared/plugins/intro", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/intro/getting-started", - "tags": [] - }, - "/extending-nx/tutorials": { - "id": "tutorials", - "name": "5 Min Tutorials", - "description": "Get started with plugins", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "create-plugin", - "name": "Create a Local Plugin", - "description": "", - "mediaImage": "", - "file": "shared/plugins/create-plugin", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/tutorials/create-plugin", - "tags": [] - }, - { - "id": "publish-plugin", - "name": "Maintain a Published Plugin", - "description": "", - "mediaImage": "", - "file": "shared/plugins/maintain-published-plugin", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/tutorials/publish-plugin", - "tags": [] - } - ], - "isExternal": false, - "path": "/extending-nx/tutorials", - "tags": [] - }, - "/extending-nx/tutorials/create-plugin": { - "id": "create-plugin", - "name": "Create a Local Plugin", - "description": "", - "mediaImage": "", - "file": "shared/plugins/create-plugin", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/tutorials/create-plugin", - "tags": [] - }, - "/extending-nx/tutorials/publish-plugin": { - "id": "publish-plugin", - "name": "Maintain a Published Plugin", - "description": "", - "mediaImage": "", - "file": "shared/plugins/maintain-published-plugin", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/tutorials/publish-plugin", - "tags": [] - }, - "/extending-nx/recipes": { - "id": "recipes", - "name": "Recipes", - "description": "Focused instructions to complete a specific task", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "local-executors", - "name": "Write a Simple Executor", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/local-executors", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/local-executors", - "tags": [] - }, - { - "id": "compose-executors", - "name": "Compose Executors", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/compose-executors", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/compose-executors", - "tags": [] - }, - { - "id": "local-generators", - "name": "Write a Simple Generator", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/local-generators", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/local-generators", - "tags": ["generate-code"] - }, - { - "id": "composing-generators", - "name": "Compose Generators", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/composing-generators", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/composing-generators", - "tags": ["generate-code"] - }, - { - "id": "generator-options", - "name": "Provide Options for Generators", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/generator-options", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/generator-options", - "tags": ["generate-code"] - }, - { - "id": "creating-files", - "name": "Create Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/creating-files", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/creating-files", - "tags": ["generate-code"] - }, - { - "id": "modifying-files", - "name": "Modify Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/modifying-files", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/modifying-files", - "tags": ["generate-code"] - }, - { - "id": "migration-generators", - "name": "Write a Migration", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/migration-generators", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/migration-generators", - "tags": ["create-your-own-plugin"] - }, - { - "id": "create-preset", - "name": "Create a Preset", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/create-preset", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/create-preset", - "tags": ["create-your-own-plugin"] - }, - { - "id": "create-install-package", - "name": "Create an Install Package", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/create-install-package", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/create-install-package", - "tags": ["create-your-own-plugin"] - }, - { - "id": "project-graph-plugins", - "name": "Modify the Project Graph", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/project-graph-plugins", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/project-graph-plugins", - "tags": ["create-your-own-plugin", "explore-graph"] - } - ], - "isExternal": false, - "path": "/extending-nx/recipes", - "tags": [] - }, - "/extending-nx/recipes/local-executors": { - "id": "local-executors", - "name": "Write a Simple Executor", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/local-executors", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/local-executors", - "tags": [] - }, - "/extending-nx/recipes/compose-executors": { - "id": "compose-executors", - "name": "Compose Executors", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/compose-executors", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/compose-executors", - "tags": [] - }, - "/extending-nx/recipes/local-generators": { - "id": "local-generators", - "name": "Write a Simple Generator", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/local-generators", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/local-generators", - "tags": ["generate-code"] - }, - "/extending-nx/recipes/composing-generators": { - "id": "composing-generators", - "name": "Compose Generators", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/composing-generators", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/composing-generators", - "tags": ["generate-code"] - }, - "/extending-nx/recipes/generator-options": { - "id": "generator-options", - "name": "Provide Options for Generators", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/generator-options", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/generator-options", - "tags": ["generate-code"] - }, - "/extending-nx/recipes/creating-files": { - "id": "creating-files", - "name": "Create Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/creating-files", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/creating-files", - "tags": ["generate-code"] - }, - "/extending-nx/recipes/modifying-files": { - "id": "modifying-files", - "name": "Modify Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/generators/modifying-files", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/modifying-files", - "tags": ["generate-code"] - }, - "/extending-nx/recipes/migration-generators": { - "id": "migration-generators", - "name": "Write a Migration", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/migration-generators", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/migration-generators", - "tags": ["create-your-own-plugin"] - }, - "/extending-nx/recipes/create-preset": { - "id": "create-preset", - "name": "Create a Preset", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/create-preset", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/create-preset", - "tags": ["create-your-own-plugin"] - }, - "/extending-nx/recipes/create-install-package": { - "id": "create-install-package", - "name": "Create an Install Package", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/create-install-package", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/create-install-package", - "tags": ["create-your-own-plugin"] - }, - "/extending-nx/recipes/project-graph-plugins": { - "id": "project-graph-plugins", - "name": "Modify the Project Graph", - "description": "", - "mediaImage": "", - "file": "shared/recipes/plugins/project-graph-plugins", - "itemList": [], - "isExternal": false, - "path": "/extending-nx/recipes/project-graph-plugins", - "tags": ["create-your-own-plugin", "explore-graph"] - } -} diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json deleted file mode 100644 index d432a9bf44a63..0000000000000 --- a/docs/generated/manifests/menus.json +++ /dev/null @@ -1,10384 +0,0 @@ -[ - { - "id": "nx", - "menu": [ - { - "name": "Getting Started", - "path": "/getting-started", - "id": "getting-started", - "isExternal": false, - "children": [ - { - "name": "Intro to Nx", - "path": "/getting-started/intro", - "id": "intro", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Installation", - "path": "/getting-started/installation", - "id": "installation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Why Nx?", - "path": "/getting-started/why-nx", - "id": "why-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tutorials", - "path": "/getting-started/tutorials", - "id": "tutorials", - "isExternal": false, - "children": [ - { - "name": "NPM Workspaces Monorepo", - "path": "/getting-started/tutorials/npm-workspaces-tutorial", - "id": "npm-workspaces-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrated Monorepo", - "path": "/getting-started/tutorials/integrated-repo-tutorial", - "id": "integrated-repo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Standalone", - "path": "/getting-started/tutorials/react-standalone-tutorial", - "id": "react-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Monorepo", - "path": "/getting-started/tutorials/react-monorepo-tutorial", - "id": "react-monorepo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Standalone", - "path": "/getting-started/tutorials/angular-standalone-tutorial", - "id": "angular-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Monorepo", - "path": "/getting-started/tutorials/angular-monorepo-tutorial", - "id": "angular-monorepo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Vue Standalone", - "path": "/getting-started/tutorials/vue-standalone-tutorial", - "id": "vue-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Intro to Nx", - "path": "/getting-started/intro", - "id": "intro", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Installation", - "path": "/getting-started/installation", - "id": "installation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Why Nx?", - "path": "/getting-started/why-nx", - "id": "why-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tutorials", - "path": "/getting-started/tutorials", - "id": "tutorials", - "isExternal": false, - "children": [ - { - "name": "NPM Workspaces Monorepo", - "path": "/getting-started/tutorials/npm-workspaces-tutorial", - "id": "npm-workspaces-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrated Monorepo", - "path": "/getting-started/tutorials/integrated-repo-tutorial", - "id": "integrated-repo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Standalone", - "path": "/getting-started/tutorials/react-standalone-tutorial", - "id": "react-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Monorepo", - "path": "/getting-started/tutorials/react-monorepo-tutorial", - "id": "react-monorepo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Standalone", - "path": "/getting-started/tutorials/angular-standalone-tutorial", - "id": "angular-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Monorepo", - "path": "/getting-started/tutorials/angular-monorepo-tutorial", - "id": "angular-monorepo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Vue Standalone", - "path": "/getting-started/tutorials/vue-standalone-tutorial", - "id": "vue-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "NPM Workspaces Monorepo", - "path": "/getting-started/tutorials/npm-workspaces-tutorial", - "id": "npm-workspaces-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrated Monorepo", - "path": "/getting-started/tutorials/integrated-repo-tutorial", - "id": "integrated-repo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Standalone", - "path": "/getting-started/tutorials/react-standalone-tutorial", - "id": "react-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Monorepo", - "path": "/getting-started/tutorials/react-monorepo-tutorial", - "id": "react-monorepo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Standalone", - "path": "/getting-started/tutorials/angular-standalone-tutorial", - "id": "angular-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Monorepo", - "path": "/getting-started/tutorials/angular-monorepo-tutorial", - "id": "angular-monorepo-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Vue Standalone", - "path": "/getting-started/tutorials/vue-standalone-tutorial", - "id": "vue-standalone-tutorial", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Core Tutorial", - "path": "/core-tutorial", - "id": "core-tutorial", - "isExternal": false, - "children": [ - { - "name": "1 - Create Blog", - "path": "/core-tutorial/01-create-blog", - "id": "01-create-blog", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "2 - Create CLI", - "path": "/core-tutorial/02-create-cli", - "id": "02-create-cli", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "3 - Share Assets", - "path": "/core-tutorial/03-share-assets", - "id": "03-share-assets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "4 - Build Affected Projects", - "path": "/core-tutorial/04-build-affected-projects", - "id": "04-build-affected-projects", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "5 - Automatically Detect Dependencies", - "path": "/core-tutorial/05-auto-detect-dependencies", - "id": "05-auto-detect-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "6 - Summary", - "path": "/core-tutorial/06-summary", - "id": "06-summary", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "1 - Create Blog", - "path": "/core-tutorial/01-create-blog", - "id": "01-create-blog", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "2 - Create CLI", - "path": "/core-tutorial/02-create-cli", - "id": "02-create-cli", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "3 - Share Assets", - "path": "/core-tutorial/03-share-assets", - "id": "03-share-assets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "4 - Build Affected Projects", - "path": "/core-tutorial/04-build-affected-projects", - "id": "04-build-affected-projects", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "5 - Automatically Detect Dependencies", - "path": "/core-tutorial/05-auto-detect-dependencies", - "id": "05-auto-detect-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "6 - Summary", - "path": "/core-tutorial/06-summary", - "id": "06-summary", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Features", - "path": "/features", - "id": "features", - "isExternal": false, - "children": [ - { - "name": "Run Tasks", - "path": "/features/run-tasks", - "id": "run-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cache Task Results", - "path": "/features/cache-task-results", - "id": "cache-task-results", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Explore your Workspace", - "path": "/features/explore-graph", - "id": "explore-graph", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Generate Code", - "path": "/features/generate-code", - "id": "generate-code", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automate Updating Dependencies", - "path": "/features/automate-updating-dependencies", - "id": "automate-updating-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enforce Module Boundaries", - "path": "/features/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrate with Editors", - "path": "/features/integrate-with-editors", - "id": "integrate-with-editors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manage Releases", - "path": "/features/manage-releases", - "id": "manage-releases", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "CI Features", - "path": "/features/ci-features", - "id": "ci-features", - "isExternal": false, - "children": [ - { - "name": "Run Only Tasks Affected by a PR", - "path": "/ci/features/affected", - "id": "affected", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Remote Caching (Nx Replay)", - "path": "/ci/features/remote-cache", - "id": "remote-cache", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Distribute Task Execution (Nx Agents)", - "path": "/ci/features/distribute-task-execution", - "id": "distribute-task-execution", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dynamically Allocate Agents", - "path": "/ci/features/dynamic-agents", - "id": "dynamic-agents", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Split E2E Tasks", - "path": "/ci/features/split-e2e-tasks", - "id": "split-e2e-tasks", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify and Re-run Flaky Tasks", - "path": "/ci/features/flaky-tasks", - "id": "flaky-tasks", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Nx Cloud On-Premise", - "path": "/ci/features/on-premise", - "id": "on-premise", - "isExternal": true, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Run Tasks", - "path": "/features/run-tasks", - "id": "run-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cache Task Results", - "path": "/features/cache-task-results", - "id": "cache-task-results", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Explore your Workspace", - "path": "/features/explore-graph", - "id": "explore-graph", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Generate Code", - "path": "/features/generate-code", - "id": "generate-code", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automate Updating Dependencies", - "path": "/features/automate-updating-dependencies", - "id": "automate-updating-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enforce Module Boundaries", - "path": "/features/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrate with Editors", - "path": "/features/integrate-with-editors", - "id": "integrate-with-editors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manage Releases", - "path": "/features/manage-releases", - "id": "manage-releases", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "CI Features", - "path": "/features/ci-features", - "id": "ci-features", - "isExternal": false, - "children": [ - { - "name": "Run Only Tasks Affected by a PR", - "path": "/ci/features/affected", - "id": "affected", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Remote Caching (Nx Replay)", - "path": "/ci/features/remote-cache", - "id": "remote-cache", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Distribute Task Execution (Nx Agents)", - "path": "/ci/features/distribute-task-execution", - "id": "distribute-task-execution", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dynamically Allocate Agents", - "path": "/ci/features/dynamic-agents", - "id": "dynamic-agents", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Split E2E Tasks", - "path": "/ci/features/split-e2e-tasks", - "id": "split-e2e-tasks", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify and Re-run Flaky Tasks", - "path": "/ci/features/flaky-tasks", - "id": "flaky-tasks", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Nx Cloud On-Premise", - "path": "/ci/features/on-premise", - "id": "on-premise", - "isExternal": true, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Run Only Tasks Affected by a PR", - "path": "/ci/features/affected", - "id": "affected", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Remote Caching (Nx Replay)", - "path": "/ci/features/remote-cache", - "id": "remote-cache", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Distribute Task Execution (Nx Agents)", - "path": "/ci/features/distribute-task-execution", - "id": "distribute-task-execution", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dynamically Allocate Agents", - "path": "/ci/features/dynamic-agents", - "id": "dynamic-agents", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Split E2E Tasks", - "path": "/ci/features/split-e2e-tasks", - "id": "split-e2e-tasks", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify and Re-run Flaky Tasks", - "path": "/ci/features/flaky-tasks", - "id": "flaky-tasks", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Nx Cloud On-Premise", - "path": "/ci/features/on-premise", - "id": "on-premise", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Concepts", - "path": "/concepts", - "id": "concepts", - "isExternal": false, - "children": [ - { - "name": "Mental Model", - "path": "/concepts/mental-model", - "id": "mental-model", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How Caching Works", - "path": "/concepts/how-caching-works", - "id": "how-caching-works", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "What is a Task Pipeline", - "path": "/concepts/task-pipeline-configuration", - "id": "task-pipeline-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "What Are Nx Plugins", - "path": "/concepts/nx-plugins", - "id": "nx-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Inferred Tasks", - "path": "/concepts/inferred-tasks", - "id": "inferred-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Types of Configuration", - "path": "/concepts/types-of-configuration", - "id": "types-of-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Executors and Configurations", - "path": "/concepts/executors-and-configurations", - "id": "executors-and-configurations", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Module Federation", - "path": "/concepts/module-federation", - "id": "module-federation", - "isExternal": false, - "children": [ - { - "name": "Module Federation and Nx", - "path": "/concepts/module-federation/module-federation-and-nx", - "id": "module-federation-and-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Faster Builds with Module Federation", - "path": "/concepts/module-federation/faster-builds-with-module-federation", - "id": "faster-builds-with-module-federation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Micro Frontend Architecture", - "path": "/concepts/module-federation/micro-frontend-architecture", - "id": "micro-frontend-architecture", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manage Library Versions with Module Federation", - "path": "/concepts/module-federation/manage-library-versions-with-module-federation", - "id": "manage-library-versions-with-module-federation", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "More Concepts", - "path": "/concepts/more-concepts", - "id": "more-concepts", - "isExternal": false, - "children": [ - { - "name": "Incremental Builds", - "path": "/concepts/more-concepts/incremental-builds", - "id": "incremental-builds", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and Turborepo", - "path": "/concepts/more-concepts/turbo-and-nx", - "id": "turbo-and-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Monorepos", - "path": "/concepts/more-concepts/why-monorepos", - "id": "why-monorepos", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dependency Management", - "path": "/concepts/more-concepts/dependency-management", - "id": "dependency-management", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Code Sharing", - "path": "/concepts/more-concepts/code-sharing", - "id": "code-sharing", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Nx at Enterprises", - "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "id": "monorepo-nx-enterprise", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Daemon", - "path": "/concepts/more-concepts/nx-daemon", - "id": "nx-daemon", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and the Angular CLI", - "path": "/concepts/more-concepts/nx-and-angular", - "id": "nx-and-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Folder Structure", - "path": "/concepts/more-concepts/folder-structure", - "id": "folder-structure", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Devkit and Angular Devkit", - "path": "/concepts/more-concepts/nx-devkit-angular-devkit", - "id": "nx-devkit-angular-devkit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Applications and Libraries", - "path": "/concepts/more-concepts/applications-and-libraries", - "id": "applications-and-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Creating Libraries", - "path": "/concepts/more-concepts/creating-libraries", - "id": "creating-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Library Types", - "path": "/concepts/more-concepts/library-types", - "id": "library-types", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Grouping Libraries", - "path": "/concepts/more-concepts/grouping-libraries", - "id": "grouping-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Buildable and Publishable Libraries", - "path": "/concepts/more-concepts/buildable-and-publishable-libraries", - "id": "buildable-and-publishable-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How the Project Graph is Built", - "path": "/concepts/more-concepts/how-project-graph-is-built", - "id": "how-project-graph-is-built", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Mental Model", - "path": "/concepts/mental-model", - "id": "mental-model", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How Caching Works", - "path": "/concepts/how-caching-works", - "id": "how-caching-works", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "What is a Task Pipeline", - "path": "/concepts/task-pipeline-configuration", - "id": "task-pipeline-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "What Are Nx Plugins", - "path": "/concepts/nx-plugins", - "id": "nx-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Inferred Tasks", - "path": "/concepts/inferred-tasks", - "id": "inferred-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Types of Configuration", - "path": "/concepts/types-of-configuration", - "id": "types-of-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Executors and Configurations", - "path": "/concepts/executors-and-configurations", - "id": "executors-and-configurations", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Module Federation", - "path": "/concepts/module-federation", - "id": "module-federation", - "isExternal": false, - "children": [ - { - "name": "Module Federation and Nx", - "path": "/concepts/module-federation/module-federation-and-nx", - "id": "module-federation-and-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Faster Builds with Module Federation", - "path": "/concepts/module-federation/faster-builds-with-module-federation", - "id": "faster-builds-with-module-federation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Micro Frontend Architecture", - "path": "/concepts/module-federation/micro-frontend-architecture", - "id": "micro-frontend-architecture", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manage Library Versions with Module Federation", - "path": "/concepts/module-federation/manage-library-versions-with-module-federation", - "id": "manage-library-versions-with-module-federation", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Module Federation and Nx", - "path": "/concepts/module-federation/module-federation-and-nx", - "id": "module-federation-and-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Faster Builds with Module Federation", - "path": "/concepts/module-federation/faster-builds-with-module-federation", - "id": "faster-builds-with-module-federation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Micro Frontend Architecture", - "path": "/concepts/module-federation/micro-frontend-architecture", - "id": "micro-frontend-architecture", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manage Library Versions with Module Federation", - "path": "/concepts/module-federation/manage-library-versions-with-module-federation", - "id": "manage-library-versions-with-module-federation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "More Concepts", - "path": "/concepts/more-concepts", - "id": "more-concepts", - "isExternal": false, - "children": [ - { - "name": "Incremental Builds", - "path": "/concepts/more-concepts/incremental-builds", - "id": "incremental-builds", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and Turborepo", - "path": "/concepts/more-concepts/turbo-and-nx", - "id": "turbo-and-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Monorepos", - "path": "/concepts/more-concepts/why-monorepos", - "id": "why-monorepos", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dependency Management", - "path": "/concepts/more-concepts/dependency-management", - "id": "dependency-management", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Code Sharing", - "path": "/concepts/more-concepts/code-sharing", - "id": "code-sharing", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Nx at Enterprises", - "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "id": "monorepo-nx-enterprise", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Daemon", - "path": "/concepts/more-concepts/nx-daemon", - "id": "nx-daemon", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and the Angular CLI", - "path": "/concepts/more-concepts/nx-and-angular", - "id": "nx-and-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Folder Structure", - "path": "/concepts/more-concepts/folder-structure", - "id": "folder-structure", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Devkit and Angular Devkit", - "path": "/concepts/more-concepts/nx-devkit-angular-devkit", - "id": "nx-devkit-angular-devkit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Applications and Libraries", - "path": "/concepts/more-concepts/applications-and-libraries", - "id": "applications-and-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Creating Libraries", - "path": "/concepts/more-concepts/creating-libraries", - "id": "creating-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Library Types", - "path": "/concepts/more-concepts/library-types", - "id": "library-types", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Grouping Libraries", - "path": "/concepts/more-concepts/grouping-libraries", - "id": "grouping-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Buildable and Publishable Libraries", - "path": "/concepts/more-concepts/buildable-and-publishable-libraries", - "id": "buildable-and-publishable-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How the Project Graph is Built", - "path": "/concepts/more-concepts/how-project-graph-is-built", - "id": "how-project-graph-is-built", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Incremental Builds", - "path": "/concepts/more-concepts/incremental-builds", - "id": "incremental-builds", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and Turborepo", - "path": "/concepts/more-concepts/turbo-and-nx", - "id": "turbo-and-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Monorepos", - "path": "/concepts/more-concepts/why-monorepos", - "id": "why-monorepos", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dependency Management", - "path": "/concepts/more-concepts/dependency-management", - "id": "dependency-management", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Code Sharing", - "path": "/concepts/more-concepts/code-sharing", - "id": "code-sharing", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Nx at Enterprises", - "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "id": "monorepo-nx-enterprise", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Daemon", - "path": "/concepts/more-concepts/nx-daemon", - "id": "nx-daemon", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx and the Angular CLI", - "path": "/concepts/more-concepts/nx-and-angular", - "id": "nx-and-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Folder Structure", - "path": "/concepts/more-concepts/folder-structure", - "id": "folder-structure", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Devkit and Angular Devkit", - "path": "/concepts/more-concepts/nx-devkit-angular-devkit", - "id": "nx-devkit-angular-devkit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Applications and Libraries", - "path": "/concepts/more-concepts/applications-and-libraries", - "id": "applications-and-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Creating Libraries", - "path": "/concepts/more-concepts/creating-libraries", - "id": "creating-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Library Types", - "path": "/concepts/more-concepts/library-types", - "id": "library-types", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Grouping Libraries", - "path": "/concepts/more-concepts/grouping-libraries", - "id": "grouping-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Buildable and Publishable Libraries", - "path": "/concepts/more-concepts/buildable-and-publishable-libraries", - "id": "buildable-and-publishable-libraries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How the Project Graph is Built", - "path": "/concepts/more-concepts/how-project-graph-is-built", - "id": "how-project-graph-is-built", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Recipes", - "path": "/recipes", - "id": "recipes", - "isExternal": false, - "children": [ - { - "name": "Tasks & Caching", - "path": "/recipes/running-tasks", - "id": "running-tasks", - "isExternal": false, - "children": [ - { - "name": "Configure Inputs for Task Caching", - "path": "/recipes/running-tasks/configure-inputs", - "id": "configure-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configure Outputs for Task Caching", - "path": "/recipes/running-tasks/configure-outputs", - "id": "configure-outputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define a Task Pipeline", - "path": "/recipes/running-tasks/defining-task-pipeline", - "id": "defining-task-pipeline", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Change Cache Location", - "path": "/recipes/running-tasks/change-cache-location", - "id": "change-cache-location", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Custom Commands", - "path": "/recipes/running-tasks/run-commands-executor", - "id": "run-commands-executor", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Tasks in Parallel", - "path": "/recipes/running-tasks/run-tasks-in-parallel", - "id": "run-tasks-in-parallel", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Root-Level NPM Scripts with Nx", - "path": "/recipes/running-tasks/root-level-scripts", - "id": "root-level-scripts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Watching", - "path": "/recipes/running-tasks/workspace-watching", - "id": "workspace-watching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reduce Repetitive Configuration", - "path": "/recipes/running-tasks/reduce-repetitive-configuration", - "id": "reduce-repetitive-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Adopting Nx", - "path": "/recipes/adopting-nx", - "id": "adopting-nx", - "isExternal": false, - "children": [ - { - "name": "NPM/Yarn/PNPM workspaces", - "path": "/recipes/adopting-nx/adding-to-monorepo", - "id": "adding-to-monorepo", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrate From Turborepo", - "path": "/recipes/adopting-nx/from-turborepo", - "id": "from-turborepo", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add to any Project", - "path": "/recipes/adopting-nx/adding-to-existing-project", - "id": "adding-to-existing-project", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Preserving Git Histories", - "path": "/recipes/adopting-nx/preserving-git-histories", - "id": "preserving-git-histories", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manual migration", - "path": "/recipes/adopting-nx/manual", - "id": "manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "React", - "path": "/recipes/react", - "id": "react", - "isExternal": false, - "children": [ - { - "name": "Migrating from CRA", - "path": "/recipes/react/migration-cra", - "id": "migration-cra", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React 18 Migration", - "path": "/recipes/react/react-18", - "id": "react-18", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Native with Nx", - "path": "/recipes/react/react-native", - "id": "react-native", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Remix with Nx", - "path": "/recipes/react/remix", - "id": "remix", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Environment Variables in React", - "path": "/recipes/react/use-environment-variables-in-react", - "id": "use-environment-variables-in-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Tailwind CSS in React", - "path": "/recipes/react/using-tailwind-css-in-react", - "id": "using-tailwind-css-in-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Adding Images, Fonts, and Files", - "path": "/recipes/react/adding-assets-react", - "id": "adding-assets-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup Module Federation with SSR for React", - "path": "/recipes/react/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deploying Next.js applications to Vercel", - "path": "/recipes/react/deploy-nextjs-to-vercel", - "id": "deploy-nextjs-to-vercel", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Angular", - "path": "/recipes/angular", - "id": "angular", - "isExternal": false, - "children": [ - { - "name": "Migration", - "path": "/recipes/angular/migration", - "id": "migration", - "isExternal": false, - "children": [ - { - "name": "Migrating from Angular CLI", - "path": "/recipes/angular/migration/angular", - "id": "angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating From Multiple Angular CLI Repos", - "path": "/recipes/angular/migration/angular-multiple", - "id": "angular-multiple", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating Angular Application manually", - "path": "/recipes/angular/migration/angular-manual", - "id": "angular-manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Use Environment Variables in Angular", - "path": "/recipes/angular/use-environment-variables-in-angular", - "id": "use-environment-variables-in-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Tailwind CSS with Angular projects", - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "id": "using-tailwind-css-with-angular-projects", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup Module Federation with SSR for Angular", - "path": "/recipes/angular/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "id": "dynamic-module-federation-with-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup incremental builds for Angular applications", - "path": "/recipes/angular/setup-incremental-builds-angular", - "id": "setup-incremental-builds-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Node", - "path": "/recipes/node", - "id": "node", - "isExternal": false, - "children": [ - { - "name": "Deploying a Node App to Fly.io", - "path": "/recipes/node/node-server-fly-io", - "id": "node-server-fly-io", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add and Deploy Netlify Edge Functions with Node", - "path": "/recipes/node/node-serverless-functions-netlify", - "id": "node-serverless-functions-netlify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deploying AWS lambda in Node.js", - "path": "/recipes/node/node-aws-lambda", - "id": "node-aws-lambda", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set Up Application Proxies", - "path": "/recipes/node/application-proxies", - "id": "application-proxies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Wait for Tasks to Finish", - "path": "/recipes/node/wait-for-tasks", - "id": "wait-for-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Storybook", - "path": "/recipes/storybook", - "id": "storybook", - "isExternal": false, - "children": [ - { - "name": "Set up Storybook for React Projects", - "path": "/recipes/storybook/overview-react", - "id": "overview-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for Angular Projects", - "path": "/recipes/storybook/overview-angular", - "id": "overview-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for Vue Projects", - "path": "/recipes/storybook/overview-vue", - "id": "overview-vue", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring Storybook on Nx", - "path": "/recipes/storybook/configuring-storybook", - "id": "configuring-storybook", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One main Storybook instance for all projects", - "path": "/recipes/storybook/one-storybook-for-all", - "id": "one-storybook-for-all", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One Storybook instance per scope", - "path": "/recipes/storybook/one-storybook-per-scope", - "id": "one-storybook-per-scope", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One main Storybook instance using Storybook Composition", - "path": "/recipes/storybook/one-storybook-with-composition", - "id": "one-storybook-with-composition", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to configure Webpack and Vite for Storybook", - "path": "/recipes/storybook/custom-builder-configs", - "id": "custom-builder-configs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Storybook Interaction Tests with Nx", - "path": "/recipes/storybook/storybook-interaction-tests", - "id": "storybook-interaction-tests", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Upgrading Storybook using the Storybook CLI", - "path": "/recipes/storybook/upgrading-storybook", - "id": "upgrading-storybook", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Storybook Composition with Nx", - "path": "/recipes/storybook/storybook-composition-setup", - "id": "storybook-composition-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Set up Compodoc for Storybook on Nx", - "path": "/recipes/storybook/angular-storybook-compodoc", - "id": "angular-storybook-compodoc", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Configuring styles and preprocessor options", - "path": "/recipes/storybook/angular-configuring-styles", - "id": "angular-configuring-styles", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Cypress", - "path": "/recipes/cypress", - "id": "cypress", - "isExternal": false, - "children": [ - { - "name": "Component Testing", - "path": "/recipes/cypress/cypress-component-testing", - "id": "cypress-component-testing", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using setupNodeEvents with Cypress preset", - "path": "/recipes/cypress/cypress-setup-node-events", - "id": "cypress-setup-node-events", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cypress v11 Migration Guide", - "path": "/recipes/cypress/cypress-v11-migration", - "id": "cypress-v11-migration", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Next", - "path": "/recipes/next", - "id": "next", - "isExternal": false, - "children": [ - { - "name": "How to configure Next.js plugins", - "path": "/recipes/next/next-config-setup", - "id": "next-config-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Nuxt", - "path": "/recipes/nuxt", - "id": "nuxt", - "isExternal": false, - "children": [ - { - "name": "Deploying Nuxt applications to Vercel", - "path": "/recipes/nuxt/deploy-nuxt-to-vercel", - "id": "deploy-nuxt-to-vercel", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Vite", - "path": "/recipes/vite", - "id": "vite", - "isExternal": false, - "children": [ - { - "name": "Configure Vite on your Nx workspace", - "path": "/recipes/vite/configure-vite", - "id": "configure-vite", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Webpack", - "path": "/recipes/webpack", - "id": "webpack", - "isExternal": false, - "children": [ - { - "name": "How to configure Webpack in your Nx workspace", - "path": "/recipes/webpack/webpack-config-setup", - "id": "webpack-config-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Webpack plugins", - "path": "/recipes/webpack/webpack-plugins", - "id": "webpack-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Module Federation", - "path": "/recipes/module-federation", - "id": "module-federation", - "isExternal": false, - "children": [ - { - "name": "How to create a Module Federation Host Application", - "path": "/recipes/module-federation/create-a-host", - "id": "create-a-host", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to create a Module Federation Remote Application", - "path": "/recipes/module-federation/create-a-remote", - "id": "create-a-remote", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to Federate a Module", - "path": "/recipes/module-federation/federate-a-module", - "id": "federate-a-module", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Enforce Module Boundaries", - "path": "/recipes/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "isExternal": false, - "children": [ - { - "name": "Ban Dependencies with Certain Tags", - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "id": "ban-dependencies-with-tags", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tag in Multiple Dimensions", - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "id": "tag-multiple-dimensions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Ban External Imports", - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "id": "ban-external-imports", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tags Allow List", - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "id": "tags-allow-list", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Installation", - "path": "/recipes/installation", - "id": "installation", - "isExternal": false, - "children": [ - { - "name": "Install Nx in a Non-Javascript Repo", - "path": "/recipes/installation/install-non-javascript", - "id": "install-non-javascript", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Update Your Global Nx Installation", - "path": "/recipes/installation/update-global-installation", - "id": "update-global-installation", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Tips and tricks", - "path": "/recipes/tips-n-tricks", - "id": "tips-n-tricks", - "isExternal": false, - "children": [ - { - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "id": "package-based-in-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "id": "integrated-in-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "id": "standalone-to-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring ESLint with Typescript", - "path": "/recipes/tips-n-tricks/eslint", - "id": "eslint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable Typescript Batch Mode", - "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", - "id": "enable-tsc-batch-mode", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Secondary Entrypoints for Typescript Packages", - "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", - "id": "define-secondary-entrypoints", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compile Typescript Packages to Multiple Formats", - "path": "/recipes/tips-n-tricks/compile-multiple-formats", - "id": "compile-multiple-formats", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Keep Nx Versions in Sync", - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "id": "keep-nx-versions-in-sync", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Environment Variables", - "path": "/recipes/tips-n-tricks/define-environment-variables", - "id": "define-environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring Browser Support", - "path": "/recipes/tips-n-tricks/browser-support", - "id": "browser-support", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Include Assets in Build", - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "id": "include-assets-in-build", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Include All package.json Files as Projects", - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "id": "include-all-packagejson", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify Dependencies Between Folders", - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "id": "identify-dependencies-between-folders", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Disable Graph Links Created from Analyzing Source Files", - "path": "/recipes/tips-n-tricks/analyze-source-files", - "id": "analyze-source-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use JavaScript instead TypeScript", - "path": "/recipes/tips-n-tricks/js-and-ts", - "id": "js-and-ts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Altering Migration Process", - "path": "/recipes/tips-n-tricks/advanced-update", - "id": "advanced-update", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Yarn PnP", - "path": "/recipes/tips-n-tricks/yarn-pnp", - "id": "yarn-pnp", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Switching to ESLint's flat config format", - "path": "/recipes/tips-n-tricks/flat-config", - "id": "flat-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/recipes/troubleshooting", - "id": "troubleshooting", - "isExternal": false, - "children": [ - { - "name": "Resolve Circular Dependencies", - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "id": "resolve-circular-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting Nx Install Issues", - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "id": "troubleshoot-nx-install-issues", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshoot Cache Misses", - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "id": "troubleshoot-cache-misses", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Unknown Local Cache Error", - "path": "/recipes/troubleshooting/unknown-local-cache", - "id": "unknown-local-cache", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Profiling Build Performance", - "path": "/recipes/troubleshooting/performance-profiling", - "id": "performance-profiling", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Nx Console", - "path": "/recipes/nx-console", - "id": "nx-console", - "isExternal": false, - "children": [ - { - "name": "Telemetry", - "path": "/recipes/nx-console/console-telemetry", - "id": "console-telemetry", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Details View", - "path": "/recipes/nx-console/console-project-details", - "id": "console-project-details", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Generate Command", - "path": "/recipes/nx-console/console-generate-command", - "id": "console-generate-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Command", - "path": "/recipes/nx-console/console-run-command", - "id": "console-run-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add Dependency Command", - "path": "/recipes/nx-console/console-add-dependency-command", - "id": "console-add-dependency-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Pane", - "path": "/recipes/nx-console/console-project-pane", - "id": "console-project-pane", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Keyboard Shortcuts", - "path": "/recipes/nx-console/console-shortcuts", - "id": "console-shortcuts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/recipes/nx-console/console-troubleshooting", - "id": "console-troubleshooting", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Nx Release", - "path": "/recipes/nx-release", - "id": "nx-release", - "isExternal": false, - "children": [ - { - "name": "Get Started with Nx Release", - "path": "/recipes/nx-release/get-started-with-nx-release", - "id": "get-started-with-nx-release", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Release Projects Independently", - "path": "/recipes/nx-release/release-projects-independently", - "id": "release-projects-independently", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Version with Conventional Commits", - "path": "/recipes/nx-release/automatically-version-with-conventional-commits", - "id": "automatically-version-with-conventional-commits", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Publish in CI/CD", - "path": "/recipes/nx-release/publish-in-ci-cd", - "id": "publish-in-ci-cd", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automate GitHub Releases", - "path": "/recipes/nx-release/automate-github-releases", - "id": "automate-github-releases", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Publish Rust Crates", - "path": "/recipes/nx-release/publish-rust-crates", - "id": "publish-rust-crates", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Update Your Local Registry Setup to use Nx Release", - "path": "/recipes/nx-release/update-local-registry-setup", - "id": "update-local-registry-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Customize Conventional Commit Types", - "path": "/recipes/nx-release/customize-conventional-commit-types", - "id": "customize-conventional-commit-types", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Other", - "path": "/recipes/other", - "id": "other", - "isExternal": false, - "children": [ - { - "name": "Rescope Packages from @nrwl to @nx", - "path": "/recipes/other/rescope", - "id": "rescope", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Tasks & Caching", - "path": "/recipes/running-tasks", - "id": "running-tasks", - "isExternal": false, - "children": [ - { - "name": "Configure Inputs for Task Caching", - "path": "/recipes/running-tasks/configure-inputs", - "id": "configure-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configure Outputs for Task Caching", - "path": "/recipes/running-tasks/configure-outputs", - "id": "configure-outputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define a Task Pipeline", - "path": "/recipes/running-tasks/defining-task-pipeline", - "id": "defining-task-pipeline", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Change Cache Location", - "path": "/recipes/running-tasks/change-cache-location", - "id": "change-cache-location", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Custom Commands", - "path": "/recipes/running-tasks/run-commands-executor", - "id": "run-commands-executor", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Tasks in Parallel", - "path": "/recipes/running-tasks/run-tasks-in-parallel", - "id": "run-tasks-in-parallel", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Root-Level NPM Scripts with Nx", - "path": "/recipes/running-tasks/root-level-scripts", - "id": "root-level-scripts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Watching", - "path": "/recipes/running-tasks/workspace-watching", - "id": "workspace-watching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reduce Repetitive Configuration", - "path": "/recipes/running-tasks/reduce-repetitive-configuration", - "id": "reduce-repetitive-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Configure Inputs for Task Caching", - "path": "/recipes/running-tasks/configure-inputs", - "id": "configure-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configure Outputs for Task Caching", - "path": "/recipes/running-tasks/configure-outputs", - "id": "configure-outputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define a Task Pipeline", - "path": "/recipes/running-tasks/defining-task-pipeline", - "id": "defining-task-pipeline", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Change Cache Location", - "path": "/recipes/running-tasks/change-cache-location", - "id": "change-cache-location", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Custom Commands", - "path": "/recipes/running-tasks/run-commands-executor", - "id": "run-commands-executor", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Tasks in Parallel", - "path": "/recipes/running-tasks/run-tasks-in-parallel", - "id": "run-tasks-in-parallel", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Root-Level NPM Scripts with Nx", - "path": "/recipes/running-tasks/root-level-scripts", - "id": "root-level-scripts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Watching", - "path": "/recipes/running-tasks/workspace-watching", - "id": "workspace-watching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reduce Repetitive Configuration", - "path": "/recipes/running-tasks/reduce-repetitive-configuration", - "id": "reduce-repetitive-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Adopting Nx", - "path": "/recipes/adopting-nx", - "id": "adopting-nx", - "isExternal": false, - "children": [ - { - "name": "NPM/Yarn/PNPM workspaces", - "path": "/recipes/adopting-nx/adding-to-monorepo", - "id": "adding-to-monorepo", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrate From Turborepo", - "path": "/recipes/adopting-nx/from-turborepo", - "id": "from-turborepo", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add to any Project", - "path": "/recipes/adopting-nx/adding-to-existing-project", - "id": "adding-to-existing-project", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Preserving Git Histories", - "path": "/recipes/adopting-nx/preserving-git-histories", - "id": "preserving-git-histories", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manual migration", - "path": "/recipes/adopting-nx/manual", - "id": "manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "NPM/Yarn/PNPM workspaces", - "path": "/recipes/adopting-nx/adding-to-monorepo", - "id": "adding-to-monorepo", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrate From Turborepo", - "path": "/recipes/adopting-nx/from-turborepo", - "id": "from-turborepo", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add to any Project", - "path": "/recipes/adopting-nx/adding-to-existing-project", - "id": "adding-to-existing-project", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Preserving Git Histories", - "path": "/recipes/adopting-nx/preserving-git-histories", - "id": "preserving-git-histories", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Manual migration", - "path": "/recipes/adopting-nx/manual", - "id": "manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React", - "path": "/recipes/react", - "id": "react", - "isExternal": false, - "children": [ - { - "name": "Migrating from CRA", - "path": "/recipes/react/migration-cra", - "id": "migration-cra", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React 18 Migration", - "path": "/recipes/react/react-18", - "id": "react-18", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Native with Nx", - "path": "/recipes/react/react-native", - "id": "react-native", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Remix with Nx", - "path": "/recipes/react/remix", - "id": "remix", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Environment Variables in React", - "path": "/recipes/react/use-environment-variables-in-react", - "id": "use-environment-variables-in-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Tailwind CSS in React", - "path": "/recipes/react/using-tailwind-css-in-react", - "id": "using-tailwind-css-in-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Adding Images, Fonts, and Files", - "path": "/recipes/react/adding-assets-react", - "id": "adding-assets-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup Module Federation with SSR for React", - "path": "/recipes/react/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deploying Next.js applications to Vercel", - "path": "/recipes/react/deploy-nextjs-to-vercel", - "id": "deploy-nextjs-to-vercel", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Migrating from CRA", - "path": "/recipes/react/migration-cra", - "id": "migration-cra", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React 18 Migration", - "path": "/recipes/react/react-18", - "id": "react-18", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React Native with Nx", - "path": "/recipes/react/react-native", - "id": "react-native", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Remix with Nx", - "path": "/recipes/react/remix", - "id": "remix", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Environment Variables in React", - "path": "/recipes/react/use-environment-variables-in-react", - "id": "use-environment-variables-in-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Tailwind CSS in React", - "path": "/recipes/react/using-tailwind-css-in-react", - "id": "using-tailwind-css-in-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Adding Images, Fonts, and Files", - "path": "/recipes/react/adding-assets-react", - "id": "adding-assets-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup Module Federation with SSR for React", - "path": "/recipes/react/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deploying Next.js applications to Vercel", - "path": "/recipes/react/deploy-nextjs-to-vercel", - "id": "deploy-nextjs-to-vercel", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular", - "path": "/recipes/angular", - "id": "angular", - "isExternal": false, - "children": [ - { - "name": "Migration", - "path": "/recipes/angular/migration", - "id": "migration", - "isExternal": false, - "children": [ - { - "name": "Migrating from Angular CLI", - "path": "/recipes/angular/migration/angular", - "id": "angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating From Multiple Angular CLI Repos", - "path": "/recipes/angular/migration/angular-multiple", - "id": "angular-multiple", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating Angular Application manually", - "path": "/recipes/angular/migration/angular-manual", - "id": "angular-manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Use Environment Variables in Angular", - "path": "/recipes/angular/use-environment-variables-in-angular", - "id": "use-environment-variables-in-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Tailwind CSS with Angular projects", - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "id": "using-tailwind-css-with-angular-projects", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup Module Federation with SSR for Angular", - "path": "/recipes/angular/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "id": "dynamic-module-federation-with-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup incremental builds for Angular applications", - "path": "/recipes/angular/setup-incremental-builds-angular", - "id": "setup-incremental-builds-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Migration", - "path": "/recipes/angular/migration", - "id": "migration", - "isExternal": false, - "children": [ - { - "name": "Migrating from Angular CLI", - "path": "/recipes/angular/migration/angular", - "id": "angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating From Multiple Angular CLI Repos", - "path": "/recipes/angular/migration/angular-multiple", - "id": "angular-multiple", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating Angular Application manually", - "path": "/recipes/angular/migration/angular-manual", - "id": "angular-manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Migrating from Angular CLI", - "path": "/recipes/angular/migration/angular", - "id": "angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating From Multiple Angular CLI Repos", - "path": "/recipes/angular/migration/angular-multiple", - "id": "angular-multiple", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Migrating Angular Application manually", - "path": "/recipes/angular/migration/angular-manual", - "id": "angular-manual", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Environment Variables in Angular", - "path": "/recipes/angular/use-environment-variables-in-angular", - "id": "use-environment-variables-in-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Tailwind CSS with Angular projects", - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "id": "using-tailwind-css-with-angular-projects", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup Module Federation with SSR for Angular", - "path": "/recipes/angular/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "id": "dynamic-module-federation-with-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setup incremental builds for Angular applications", - "path": "/recipes/angular/setup-incremental-builds-angular", - "id": "setup-incremental-builds-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Node", - "path": "/recipes/node", - "id": "node", - "isExternal": false, - "children": [ - { - "name": "Deploying a Node App to Fly.io", - "path": "/recipes/node/node-server-fly-io", - "id": "node-server-fly-io", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add and Deploy Netlify Edge Functions with Node", - "path": "/recipes/node/node-serverless-functions-netlify", - "id": "node-serverless-functions-netlify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deploying AWS lambda in Node.js", - "path": "/recipes/node/node-aws-lambda", - "id": "node-aws-lambda", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set Up Application Proxies", - "path": "/recipes/node/application-proxies", - "id": "application-proxies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Wait for Tasks to Finish", - "path": "/recipes/node/wait-for-tasks", - "id": "wait-for-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Deploying a Node App to Fly.io", - "path": "/recipes/node/node-server-fly-io", - "id": "node-server-fly-io", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add and Deploy Netlify Edge Functions with Node", - "path": "/recipes/node/node-serverless-functions-netlify", - "id": "node-serverless-functions-netlify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deploying AWS lambda in Node.js", - "path": "/recipes/node/node-aws-lambda", - "id": "node-aws-lambda", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set Up Application Proxies", - "path": "/recipes/node/application-proxies", - "id": "application-proxies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Wait for Tasks to Finish", - "path": "/recipes/node/wait-for-tasks", - "id": "wait-for-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook", - "path": "/recipes/storybook", - "id": "storybook", - "isExternal": false, - "children": [ - { - "name": "Set up Storybook for React Projects", - "path": "/recipes/storybook/overview-react", - "id": "overview-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for Angular Projects", - "path": "/recipes/storybook/overview-angular", - "id": "overview-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for Vue Projects", - "path": "/recipes/storybook/overview-vue", - "id": "overview-vue", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring Storybook on Nx", - "path": "/recipes/storybook/configuring-storybook", - "id": "configuring-storybook", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One main Storybook instance for all projects", - "path": "/recipes/storybook/one-storybook-for-all", - "id": "one-storybook-for-all", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One Storybook instance per scope", - "path": "/recipes/storybook/one-storybook-per-scope", - "id": "one-storybook-per-scope", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One main Storybook instance using Storybook Composition", - "path": "/recipes/storybook/one-storybook-with-composition", - "id": "one-storybook-with-composition", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to configure Webpack and Vite for Storybook", - "path": "/recipes/storybook/custom-builder-configs", - "id": "custom-builder-configs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Storybook Interaction Tests with Nx", - "path": "/recipes/storybook/storybook-interaction-tests", - "id": "storybook-interaction-tests", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Upgrading Storybook using the Storybook CLI", - "path": "/recipes/storybook/upgrading-storybook", - "id": "upgrading-storybook", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Storybook Composition with Nx", - "path": "/recipes/storybook/storybook-composition-setup", - "id": "storybook-composition-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Set up Compodoc for Storybook on Nx", - "path": "/recipes/storybook/angular-storybook-compodoc", - "id": "angular-storybook-compodoc", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Configuring styles and preprocessor options", - "path": "/recipes/storybook/angular-configuring-styles", - "id": "angular-configuring-styles", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for React Projects", - "path": "/recipes/storybook/overview-react", - "id": "overview-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for Angular Projects", - "path": "/recipes/storybook/overview-angular", - "id": "overview-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Storybook for Vue Projects", - "path": "/recipes/storybook/overview-vue", - "id": "overview-vue", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring Storybook on Nx", - "path": "/recipes/storybook/configuring-storybook", - "id": "configuring-storybook", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One main Storybook instance for all projects", - "path": "/recipes/storybook/one-storybook-for-all", - "id": "one-storybook-for-all", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One Storybook instance per scope", - "path": "/recipes/storybook/one-storybook-per-scope", - "id": "one-storybook-per-scope", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "One main Storybook instance using Storybook Composition", - "path": "/recipes/storybook/one-storybook-with-composition", - "id": "one-storybook-with-composition", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to configure Webpack and Vite for Storybook", - "path": "/recipes/storybook/custom-builder-configs", - "id": "custom-builder-configs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Storybook Interaction Tests with Nx", - "path": "/recipes/storybook/storybook-interaction-tests", - "id": "storybook-interaction-tests", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Upgrading Storybook using the Storybook CLI", - "path": "/recipes/storybook/upgrading-storybook", - "id": "upgrading-storybook", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Storybook Composition with Nx", - "path": "/recipes/storybook/storybook-composition-setup", - "id": "storybook-composition-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Set up Compodoc for Storybook on Nx", - "path": "/recipes/storybook/angular-storybook-compodoc", - "id": "angular-storybook-compodoc", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Configuring styles and preprocessor options", - "path": "/recipes/storybook/angular-configuring-styles", - "id": "angular-configuring-styles", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cypress", - "path": "/recipes/cypress", - "id": "cypress", - "isExternal": false, - "children": [ - { - "name": "Component Testing", - "path": "/recipes/cypress/cypress-component-testing", - "id": "cypress-component-testing", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using setupNodeEvents with Cypress preset", - "path": "/recipes/cypress/cypress-setup-node-events", - "id": "cypress-setup-node-events", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cypress v11 Migration Guide", - "path": "/recipes/cypress/cypress-v11-migration", - "id": "cypress-v11-migration", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Component Testing", - "path": "/recipes/cypress/cypress-component-testing", - "id": "cypress-component-testing", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using setupNodeEvents with Cypress preset", - "path": "/recipes/cypress/cypress-setup-node-events", - "id": "cypress-setup-node-events", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cypress v11 Migration Guide", - "path": "/recipes/cypress/cypress-v11-migration", - "id": "cypress-v11-migration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Next", - "path": "/recipes/next", - "id": "next", - "isExternal": false, - "children": [ - { - "name": "How to configure Next.js plugins", - "path": "/recipes/next/next-config-setup", - "id": "next-config-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "How to configure Next.js plugins", - "path": "/recipes/next/next-config-setup", - "id": "next-config-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nuxt", - "path": "/recipes/nuxt", - "id": "nuxt", - "isExternal": false, - "children": [ - { - "name": "Deploying Nuxt applications to Vercel", - "path": "/recipes/nuxt/deploy-nuxt-to-vercel", - "id": "deploy-nuxt-to-vercel", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Deploying Nuxt applications to Vercel", - "path": "/recipes/nuxt/deploy-nuxt-to-vercel", - "id": "deploy-nuxt-to-vercel", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Vite", - "path": "/recipes/vite", - "id": "vite", - "isExternal": false, - "children": [ - { - "name": "Configure Vite on your Nx workspace", - "path": "/recipes/vite/configure-vite", - "id": "configure-vite", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Configure Vite on your Nx workspace", - "path": "/recipes/vite/configure-vite", - "id": "configure-vite", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Webpack", - "path": "/recipes/webpack", - "id": "webpack", - "isExternal": false, - "children": [ - { - "name": "How to configure Webpack in your Nx workspace", - "path": "/recipes/webpack/webpack-config-setup", - "id": "webpack-config-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Webpack plugins", - "path": "/recipes/webpack/webpack-plugins", - "id": "webpack-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "How to configure Webpack in your Nx workspace", - "path": "/recipes/webpack/webpack-config-setup", - "id": "webpack-config-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Webpack plugins", - "path": "/recipes/webpack/webpack-plugins", - "id": "webpack-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Module Federation", - "path": "/recipes/module-federation", - "id": "module-federation", - "isExternal": false, - "children": [ - { - "name": "How to create a Module Federation Host Application", - "path": "/recipes/module-federation/create-a-host", - "id": "create-a-host", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to create a Module Federation Remote Application", - "path": "/recipes/module-federation/create-a-remote", - "id": "create-a-remote", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to Federate a Module", - "path": "/recipes/module-federation/federate-a-module", - "id": "federate-a-module", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "How to create a Module Federation Host Application", - "path": "/recipes/module-federation/create-a-host", - "id": "create-a-host", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to create a Module Federation Remote Application", - "path": "/recipes/module-federation/create-a-remote", - "id": "create-a-remote", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "How to Federate a Module", - "path": "/recipes/module-federation/federate-a-module", - "id": "federate-a-module", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enforce Module Boundaries", - "path": "/recipes/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "isExternal": false, - "children": [ - { - "name": "Ban Dependencies with Certain Tags", - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "id": "ban-dependencies-with-tags", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tag in Multiple Dimensions", - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "id": "tag-multiple-dimensions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Ban External Imports", - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "id": "ban-external-imports", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tags Allow List", - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "id": "tags-allow-list", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Ban Dependencies with Certain Tags", - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "id": "ban-dependencies-with-tags", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tag in Multiple Dimensions", - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "id": "tag-multiple-dimensions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Ban External Imports", - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "id": "ban-external-imports", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tags Allow List", - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "id": "tags-allow-list", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Installation", - "path": "/recipes/installation", - "id": "installation", - "isExternal": false, - "children": [ - { - "name": "Install Nx in a Non-Javascript Repo", - "path": "/recipes/installation/install-non-javascript", - "id": "install-non-javascript", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Update Your Global Nx Installation", - "path": "/recipes/installation/update-global-installation", - "id": "update-global-installation", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Install Nx in a Non-Javascript Repo", - "path": "/recipes/installation/install-non-javascript", - "id": "install-non-javascript", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Update Your Global Nx Installation", - "path": "/recipes/installation/update-global-installation", - "id": "update-global-installation", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tips and tricks", - "path": "/recipes/tips-n-tricks", - "id": "tips-n-tricks", - "isExternal": false, - "children": [ - { - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "id": "package-based-in-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "id": "integrated-in-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "id": "standalone-to-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring ESLint with Typescript", - "path": "/recipes/tips-n-tricks/eslint", - "id": "eslint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable Typescript Batch Mode", - "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", - "id": "enable-tsc-batch-mode", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Secondary Entrypoints for Typescript Packages", - "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", - "id": "define-secondary-entrypoints", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compile Typescript Packages to Multiple Formats", - "path": "/recipes/tips-n-tricks/compile-multiple-formats", - "id": "compile-multiple-formats", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Keep Nx Versions in Sync", - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "id": "keep-nx-versions-in-sync", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Environment Variables", - "path": "/recipes/tips-n-tricks/define-environment-variables", - "id": "define-environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring Browser Support", - "path": "/recipes/tips-n-tricks/browser-support", - "id": "browser-support", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Include Assets in Build", - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "id": "include-assets-in-build", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Include All package.json Files as Projects", - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "id": "include-all-packagejson", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify Dependencies Between Folders", - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "id": "identify-dependencies-between-folders", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Disable Graph Links Created from Analyzing Source Files", - "path": "/recipes/tips-n-tricks/analyze-source-files", - "id": "analyze-source-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use JavaScript instead TypeScript", - "path": "/recipes/tips-n-tricks/js-and-ts", - "id": "js-and-ts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Altering Migration Process", - "path": "/recipes/tips-n-tricks/advanced-update", - "id": "advanced-update", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Yarn PnP", - "path": "/recipes/tips-n-tricks/yarn-pnp", - "id": "yarn-pnp", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Switching to ESLint's flat config format", - "path": "/recipes/tips-n-tricks/flat-config", - "id": "flat-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "id": "package-based-in-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "id": "integrated-in-package-based", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "id": "standalone-to-integrated", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring ESLint with Typescript", - "path": "/recipes/tips-n-tricks/eslint", - "id": "eslint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable Typescript Batch Mode", - "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", - "id": "enable-tsc-batch-mode", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Secondary Entrypoints for Typescript Packages", - "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", - "id": "define-secondary-entrypoints", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compile Typescript Packages to Multiple Formats", - "path": "/recipes/tips-n-tricks/compile-multiple-formats", - "id": "compile-multiple-formats", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Keep Nx Versions in Sync", - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "id": "keep-nx-versions-in-sync", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Define Environment Variables", - "path": "/recipes/tips-n-tricks/define-environment-variables", - "id": "define-environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Configuring Browser Support", - "path": "/recipes/tips-n-tricks/browser-support", - "id": "browser-support", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Include Assets in Build", - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "id": "include-assets-in-build", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Include All package.json Files as Projects", - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "id": "include-all-packagejson", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify Dependencies Between Folders", - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "id": "identify-dependencies-between-folders", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Disable Graph Links Created from Analyzing Source Files", - "path": "/recipes/tips-n-tricks/analyze-source-files", - "id": "analyze-source-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use JavaScript instead TypeScript", - "path": "/recipes/tips-n-tricks/js-and-ts", - "id": "js-and-ts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Altering Migration Process", - "path": "/recipes/tips-n-tricks/advanced-update", - "id": "advanced-update", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Using Yarn PnP", - "path": "/recipes/tips-n-tricks/yarn-pnp", - "id": "yarn-pnp", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Switching to ESLint's flat config format", - "path": "/recipes/tips-n-tricks/flat-config", - "id": "flat-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/recipes/troubleshooting", - "id": "troubleshooting", - "isExternal": false, - "children": [ - { - "name": "Resolve Circular Dependencies", - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "id": "resolve-circular-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting Nx Install Issues", - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "id": "troubleshoot-nx-install-issues", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshoot Cache Misses", - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "id": "troubleshoot-cache-misses", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Unknown Local Cache Error", - "path": "/recipes/troubleshooting/unknown-local-cache", - "id": "unknown-local-cache", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Profiling Build Performance", - "path": "/recipes/troubleshooting/performance-profiling", - "id": "performance-profiling", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Resolve Circular Dependencies", - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "id": "resolve-circular-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting Nx Install Issues", - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "id": "troubleshoot-nx-install-issues", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshoot Cache Misses", - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "id": "troubleshoot-cache-misses", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Unknown Local Cache Error", - "path": "/recipes/troubleshooting/unknown-local-cache", - "id": "unknown-local-cache", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Profiling Build Performance", - "path": "/recipes/troubleshooting/performance-profiling", - "id": "performance-profiling", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Console", - "path": "/recipes/nx-console", - "id": "nx-console", - "isExternal": false, - "children": [ - { - "name": "Telemetry", - "path": "/recipes/nx-console/console-telemetry", - "id": "console-telemetry", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Details View", - "path": "/recipes/nx-console/console-project-details", - "id": "console-project-details", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Generate Command", - "path": "/recipes/nx-console/console-generate-command", - "id": "console-generate-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Command", - "path": "/recipes/nx-console/console-run-command", - "id": "console-run-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add Dependency Command", - "path": "/recipes/nx-console/console-add-dependency-command", - "id": "console-add-dependency-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Pane", - "path": "/recipes/nx-console/console-project-pane", - "id": "console-project-pane", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Keyboard Shortcuts", - "path": "/recipes/nx-console/console-shortcuts", - "id": "console-shortcuts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/recipes/nx-console/console-troubleshooting", - "id": "console-troubleshooting", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Telemetry", - "path": "/recipes/nx-console/console-telemetry", - "id": "console-telemetry", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Details View", - "path": "/recipes/nx-console/console-project-details", - "id": "console-project-details", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Generate Command", - "path": "/recipes/nx-console/console-generate-command", - "id": "console-generate-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Run Command", - "path": "/recipes/nx-console/console-run-command", - "id": "console-run-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Add Dependency Command", - "path": "/recipes/nx-console/console-add-dependency-command", - "id": "console-add-dependency-command", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Pane", - "path": "/recipes/nx-console/console-project-pane", - "id": "console-project-pane", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Keyboard Shortcuts", - "path": "/recipes/nx-console/console-shortcuts", - "id": "console-shortcuts", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/recipes/nx-console/console-troubleshooting", - "id": "console-troubleshooting", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Release", - "path": "/recipes/nx-release", - "id": "nx-release", - "isExternal": false, - "children": [ - { - "name": "Get Started with Nx Release", - "path": "/recipes/nx-release/get-started-with-nx-release", - "id": "get-started-with-nx-release", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Release Projects Independently", - "path": "/recipes/nx-release/release-projects-independently", - "id": "release-projects-independently", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Version with Conventional Commits", - "path": "/recipes/nx-release/automatically-version-with-conventional-commits", - "id": "automatically-version-with-conventional-commits", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Publish in CI/CD", - "path": "/recipes/nx-release/publish-in-ci-cd", - "id": "publish-in-ci-cd", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automate GitHub Releases", - "path": "/recipes/nx-release/automate-github-releases", - "id": "automate-github-releases", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Publish Rust Crates", - "path": "/recipes/nx-release/publish-rust-crates", - "id": "publish-rust-crates", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Update Your Local Registry Setup to use Nx Release", - "path": "/recipes/nx-release/update-local-registry-setup", - "id": "update-local-registry-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Customize Conventional Commit Types", - "path": "/recipes/nx-release/customize-conventional-commit-types", - "id": "customize-conventional-commit-types", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Get Started with Nx Release", - "path": "/recipes/nx-release/get-started-with-nx-release", - "id": "get-started-with-nx-release", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Release Projects Independently", - "path": "/recipes/nx-release/release-projects-independently", - "id": "release-projects-independently", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Version with Conventional Commits", - "path": "/recipes/nx-release/automatically-version-with-conventional-commits", - "id": "automatically-version-with-conventional-commits", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Publish in CI/CD", - "path": "/recipes/nx-release/publish-in-ci-cd", - "id": "publish-in-ci-cd", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automate GitHub Releases", - "path": "/recipes/nx-release/automate-github-releases", - "id": "automate-github-releases", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Publish Rust Crates", - "path": "/recipes/nx-release/publish-rust-crates", - "id": "publish-rust-crates", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Update Your Local Registry Setup to use Nx Release", - "path": "/recipes/nx-release/update-local-registry-setup", - "id": "update-local-registry-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Customize Conventional Commit Types", - "path": "/recipes/nx-release/customize-conventional-commit-types", - "id": "customize-conventional-commit-types", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Other", - "path": "/recipes/other", - "id": "other", - "isExternal": false, - "children": [ - { - "name": "Rescope Packages from @nrwl to @nx", - "path": "/recipes/other/rescope", - "id": "rescope", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Rescope Packages from @nrwl to @nx", - "path": "/recipes/other/rescope", - "id": "rescope", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Showcase", - "path": "/showcase", - "id": "showcase", - "isExternal": false, - "children": [ - { - "name": "Nx with your favorite tech", - "path": "/showcase/example-repos", - "id": "example-repos", - "isExternal": false, - "children": [ - { - "name": "Express", - "path": "/showcase/example-repos/add-express", - "id": "add-express", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Lit", - "path": "/showcase/example-repos/add-lit", - "id": "add-lit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Solid", - "path": "/showcase/example-repos/add-solid", - "id": "add-solid", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Qwik", - "path": "/showcase/example-repos/add-qwik", - "id": "add-qwik", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Rust", - "path": "/showcase/example-repos/add-rust", - "id": "add-rust", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": ".NET", - "path": "/showcase/example-repos/add-dotnet", - "id": "add-dotnet", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Astro", - "path": "/showcase/example-repos/add-astro", - "id": "add-astro", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Svelte", - "path": "/showcase/example-repos/add-svelte", - "id": "add-svelte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Fastify", - "path": "/showcase/example-repos/add-fastify", - "id": "add-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Apollo GraphQL", - "path": "/showcase/example-repos/apollo-react", - "id": "apollo-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Prisma with NestJS", - "path": "/showcase/example-repos/nestjs-prisma", - "id": "nestjs-prisma", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Mongo with Fastify", - "path": "/showcase/example-repos/mongo-fastify", - "id": "mongo-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Redis with Fastify", - "path": "/showcase/example-repos/redis-fastify", - "id": "redis-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Postgres with Fastify", - "path": "/showcase/example-repos/postgres-fastify", - "id": "postgres-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "PlanetScale with Serverless Fastify", - "path": "/showcase/example-repos/serverless-fastify-planetscale", - "id": "serverless-fastify-planetscale", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx with Micro-frontends", - "path": "/showcase/example-repos/mfe", - "id": "mfe", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Benchmarks", - "path": "/showcase/benchmarks", - "id": "benchmarks", - "isExternal": false, - "children": [ - { - "name": "Typescript Batch Mode Compilation", - "path": "/showcase/benchmarks/tsc-batch-mode", - "id": "tsc-batch-mode", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Large Repo and Caching", - "path": "/showcase/benchmarks/caching", - "id": "caching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Large Repo and DTE", - "path": "/showcase/benchmarks/dte", - "id": "dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Nx with your favorite tech", - "path": "/showcase/example-repos", - "id": "example-repos", - "isExternal": false, - "children": [ - { - "name": "Express", - "path": "/showcase/example-repos/add-express", - "id": "add-express", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Lit", - "path": "/showcase/example-repos/add-lit", - "id": "add-lit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Solid", - "path": "/showcase/example-repos/add-solid", - "id": "add-solid", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Qwik", - "path": "/showcase/example-repos/add-qwik", - "id": "add-qwik", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Rust", - "path": "/showcase/example-repos/add-rust", - "id": "add-rust", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": ".NET", - "path": "/showcase/example-repos/add-dotnet", - "id": "add-dotnet", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Astro", - "path": "/showcase/example-repos/add-astro", - "id": "add-astro", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Svelte", - "path": "/showcase/example-repos/add-svelte", - "id": "add-svelte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Fastify", - "path": "/showcase/example-repos/add-fastify", - "id": "add-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Apollo GraphQL", - "path": "/showcase/example-repos/apollo-react", - "id": "apollo-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Prisma with NestJS", - "path": "/showcase/example-repos/nestjs-prisma", - "id": "nestjs-prisma", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Mongo with Fastify", - "path": "/showcase/example-repos/mongo-fastify", - "id": "mongo-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Redis with Fastify", - "path": "/showcase/example-repos/redis-fastify", - "id": "redis-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Postgres with Fastify", - "path": "/showcase/example-repos/postgres-fastify", - "id": "postgres-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "PlanetScale with Serverless Fastify", - "path": "/showcase/example-repos/serverless-fastify-planetscale", - "id": "serverless-fastify-planetscale", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx with Micro-frontends", - "path": "/showcase/example-repos/mfe", - "id": "mfe", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Express", - "path": "/showcase/example-repos/add-express", - "id": "add-express", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Lit", - "path": "/showcase/example-repos/add-lit", - "id": "add-lit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Solid", - "path": "/showcase/example-repos/add-solid", - "id": "add-solid", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Qwik", - "path": "/showcase/example-repos/add-qwik", - "id": "add-qwik", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Rust", - "path": "/showcase/example-repos/add-rust", - "id": "add-rust", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": ".NET", - "path": "/showcase/example-repos/add-dotnet", - "id": "add-dotnet", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Astro", - "path": "/showcase/example-repos/add-astro", - "id": "add-astro", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Svelte", - "path": "/showcase/example-repos/add-svelte", - "id": "add-svelte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Fastify", - "path": "/showcase/example-repos/add-fastify", - "id": "add-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Apollo GraphQL", - "path": "/showcase/example-repos/apollo-react", - "id": "apollo-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Prisma with NestJS", - "path": "/showcase/example-repos/nestjs-prisma", - "id": "nestjs-prisma", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Mongo with Fastify", - "path": "/showcase/example-repos/mongo-fastify", - "id": "mongo-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Redis with Fastify", - "path": "/showcase/example-repos/redis-fastify", - "id": "redis-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Postgres with Fastify", - "path": "/showcase/example-repos/postgres-fastify", - "id": "postgres-fastify", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "PlanetScale with Serverless Fastify", - "path": "/showcase/example-repos/serverless-fastify-planetscale", - "id": "serverless-fastify-planetscale", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx with Micro-frontends", - "path": "/showcase/example-repos/mfe", - "id": "mfe", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Benchmarks", - "path": "/showcase/benchmarks", - "id": "benchmarks", - "isExternal": false, - "children": [ - { - "name": "Typescript Batch Mode Compilation", - "path": "/showcase/benchmarks/tsc-batch-mode", - "id": "tsc-batch-mode", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Large Repo and Caching", - "path": "/showcase/benchmarks/caching", - "id": "caching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Large Repo and DTE", - "path": "/showcase/benchmarks/dte", - "id": "dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Typescript Batch Mode Compilation", - "path": "/showcase/benchmarks/tsc-batch-mode", - "id": "tsc-batch-mode", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Large Repo and Caching", - "path": "/showcase/benchmarks/caching", - "id": "caching", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Large Repo and DTE", - "path": "/showcase/benchmarks/dte", - "id": "dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reference", - "path": "/reference", - "id": "reference", - "isExternal": false, - "children": [ - { - "name": "Commands", - "path": "/nx-api/nx", - "id": "commands", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Configuration", - "path": "/reference/nx-json", - "id": "nx-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration", - "path": "/reference/project-configuration", - "id": "project-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Inputs and Named Inputs", - "path": "/reference/inputs", - "id": "inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": ".nxignore", - "path": "/reference/nxignore", - "id": "nxignore", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Environment Variables", - "path": "/reference/environment-variables", - "id": "environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Glossary", - "path": "/reference/glossary", - "id": "glossary", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Commands", - "path": "/nx-api/nx", - "id": "commands", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Configuration", - "path": "/reference/nx-json", - "id": "nx-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration", - "path": "/reference/project-configuration", - "id": "project-configuration", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Inputs and Named Inputs", - "path": "/reference/inputs", - "id": "inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": ".nxignore", - "path": "/reference/nxignore", - "id": "nxignore", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Environment Variables", - "path": "/reference/environment-variables", - "id": "environment-variables", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Glossary", - "path": "/reference/glossary", - "id": "glossary", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Deprecated", - "path": "/deprecated", - "id": "deprecated", - "isExternal": false, - "children": [ - { - "name": "workspace.json", - "path": "/deprecated/workspace-json", - "id": "workspace-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "workspace-lint", - "path": "/deprecated/workspace-lint", - "id": "workspace-lint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "As Provided vs. Derived", - "path": "/deprecated/as-provided-vs-derived", - "id": "as-provided-vs-derived", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Generators", - "path": "/deprecated/workspace-generators", - "id": "workspace-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Executors", - "path": "/deprecated/workspace-executors", - "id": "workspace-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "defaultCollection", - "path": "/deprecated/default-collection", - "id": "default-collection", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "runtimeCacheInputs", - "path": "/deprecated/runtime-cache-inputs", - "id": "runtime-cache-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "cacheableOperations", - "path": "/deprecated/cacheable-operations", - "id": "cacheable-operations", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "npmScope", - "path": "/deprecated/npm-scope", - "id": "npm-scope", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "globalImplicitDependencies", - "path": "/deprecated/global-implicit-dependencies", - "id": "global-implicit-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Schematics and Builders", - "path": "/deprecated/angular-schematics-builders", - "id": "angular-schematics-builders", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook deprecated docs", - "path": "/deprecated/storybook", - "id": "storybook", - "isExternal": false, - "children": [ - { - "name": "Angular: Information about the Storybook targets", - "path": "/deprecated/storybook/angular-storybook-targets", - "id": "angular-storybook-targets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular - The projectBuildConfig", - "path": "/deprecated/storybook/angular-project-build-config", - "id": "angular-project-build-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Storybook Migration to webpackFinal", - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "id": "migrate-webpack-final-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "id": "upgrade-storybook-v6-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "path": "/deprecated/storybook/migrate-webpack-final-react", - "id": "migrate-webpack-final-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "id": "upgrade-storybook-v6-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "v1 Nx Plugin API", - "path": "/deprecated/v1-nx-plugin-api", - "id": "v1-nx-plugin-api", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "workspace.json", - "path": "/deprecated/workspace-json", - "id": "workspace-json", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "workspace-lint", - "path": "/deprecated/workspace-lint", - "id": "workspace-lint", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "As Provided vs. Derived", - "path": "/deprecated/as-provided-vs-derived", - "id": "as-provided-vs-derived", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Generators", - "path": "/deprecated/workspace-generators", - "id": "workspace-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Workspace Executors", - "path": "/deprecated/workspace-executors", - "id": "workspace-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "defaultCollection", - "path": "/deprecated/default-collection", - "id": "default-collection", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "runtimeCacheInputs", - "path": "/deprecated/runtime-cache-inputs", - "id": "runtime-cache-inputs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "cacheableOperations", - "path": "/deprecated/cacheable-operations", - "id": "cacheable-operations", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "npmScope", - "path": "/deprecated/npm-scope", - "id": "npm-scope", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "globalImplicitDependencies", - "path": "/deprecated/global-implicit-dependencies", - "id": "global-implicit-dependencies", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular Schematics and Builders", - "path": "/deprecated/angular-schematics-builders", - "id": "angular-schematics-builders", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook deprecated docs", - "path": "/deprecated/storybook", - "id": "storybook", - "isExternal": false, - "children": [ - { - "name": "Angular: Information about the Storybook targets", - "path": "/deprecated/storybook/angular-storybook-targets", - "id": "angular-storybook-targets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular - The projectBuildConfig", - "path": "/deprecated/storybook/angular-project-build-config", - "id": "angular-project-build-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Storybook Migration to webpackFinal", - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "id": "migrate-webpack-final-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "id": "upgrade-storybook-v6-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "path": "/deprecated/storybook/migrate-webpack-final-react", - "id": "migrate-webpack-final-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "id": "upgrade-storybook-v6-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Angular: Information about the Storybook targets", - "path": "/deprecated/storybook/angular-storybook-targets", - "id": "angular-storybook-targets", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular - The projectBuildConfig", - "path": "/deprecated/storybook/angular-project-build-config", - "id": "angular-project-build-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Storybook Migration to webpackFinal", - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "id": "migrate-webpack-final-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "id": "upgrade-storybook-v6-angular", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "path": "/deprecated/storybook/migrate-webpack-final-react", - "id": "migrate-webpack-final-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "React: Upgrading to Storybook 6", - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "id": "upgrade-storybook-v6-react", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "v1 Nx Plugin API", - "path": "/deprecated/v1-nx-plugin-api", - "id": "v1-nx-plugin-api", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "See Also", - "path": "/see-also", - "id": "see-also", - "isExternal": false, - "children": [ - { - "name": "CI Documentation", - "path": "/ci/intro/ci-with-nx", - "id": "ci", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx Cloud Main Site", - "path": "https://nx.app", - "id": "nx-cloud-main-site", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "--skip-nx-cache flag", - "path": "/nx-api/nx/documents/affected#skip-nx-cache", - "id": "skip-nx-cache-flag", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "tasks-runner-options property", - "path": "/reference/nx-json#tasks-runner-options", - "id": "tasks-runner-options-property", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json reference: inputs and namedInputs", - "path": "/reference/nx-json#inputs-&-namedinputs", - "id": "nxjson-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration reference: inputs and namedInputs", - "path": "/reference/project-configuration#inputs-&-namedinputs", - "id": "project-config-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json generator defaults", - "path": "/reference/nx-json#generators", - "id": "nxjson-generator-defaults", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Site Map", - "path": "/see-also/sitemap", - "id": "sitemap", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "CI Documentation", - "path": "/ci/intro/ci-with-nx", - "id": "ci", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "--skip-nx-cache flag", - "path": "/nx-api/nx/documents/affected#skip-nx-cache", - "id": "skip-nx-cache-flag", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "tasks-runner-options property", - "path": "/reference/nx-json#tasks-runner-options", - "id": "tasks-runner-options-property", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json reference: inputs and namedInputs", - "path": "/reference/nx-json#inputs-&-namedinputs", - "id": "nxjson-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Project Configuration reference: inputs and namedInputs", - "path": "/reference/project-configuration#inputs-&-namedinputs", - "id": "project-config-inputs", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx.json generator defaults", - "path": "/reference/nx-json#generators", - "id": "nxjson-generator-defaults", - "isExternal": true, - "children": [], - "disableCollapsible": false - }, - { - "name": "Site Map", - "path": "/see-also/sitemap", - "id": "sitemap", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ] - }, - { - "id": "extending-nx", - "menu": [ - { - "name": "Intro", - "path": "/extending-nx/intro", - "id": "intro", - "isExternal": false, - "children": [ - { - "name": "Getting Started with Plugins", - "path": "/extending-nx/intro/getting-started", - "id": "getting-started", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Getting Started with Plugins", - "path": "/extending-nx/intro/getting-started", - "id": "getting-started", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "5 Min Tutorials", - "path": "/extending-nx/tutorials", - "id": "tutorials", - "isExternal": false, - "children": [ - { - "name": "Create a Local Plugin", - "path": "/extending-nx/tutorials/create-plugin", - "id": "create-plugin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Maintain a Published Plugin", - "path": "/extending-nx/tutorials/publish-plugin", - "id": "publish-plugin", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Create a Local Plugin", - "path": "/extending-nx/tutorials/create-plugin", - "id": "create-plugin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Maintain a Published Plugin", - "path": "/extending-nx/tutorials/publish-plugin", - "id": "publish-plugin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Recipes", - "path": "/extending-nx/recipes", - "id": "recipes", - "isExternal": false, - "children": [ - { - "name": "Write a Simple Executor", - "path": "/extending-nx/recipes/local-executors", - "id": "local-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compose Executors", - "path": "/extending-nx/recipes/compose-executors", - "id": "compose-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Write a Simple Generator", - "path": "/extending-nx/recipes/local-generators", - "id": "local-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compose Generators", - "path": "/extending-nx/recipes/composing-generators", - "id": "composing-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Provide Options for Generators", - "path": "/extending-nx/recipes/generator-options", - "id": "generator-options", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Create Files", - "path": "/extending-nx/recipes/creating-files", - "id": "creating-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Modify Files", - "path": "/extending-nx/recipes/modifying-files", - "id": "modifying-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Write a Migration", - "path": "/extending-nx/recipes/migration-generators", - "id": "migration-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Create a Preset", - "path": "/extending-nx/recipes/create-preset", - "id": "create-preset", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Create an Install Package", - "path": "/extending-nx/recipes/create-install-package", - "id": "create-install-package", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Modify the Project Graph", - "path": "/extending-nx/recipes/project-graph-plugins", - "id": "project-graph-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Write a Simple Executor", - "path": "/extending-nx/recipes/local-executors", - "id": "local-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compose Executors", - "path": "/extending-nx/recipes/compose-executors", - "id": "compose-executors", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Write a Simple Generator", - "path": "/extending-nx/recipes/local-generators", - "id": "local-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Compose Generators", - "path": "/extending-nx/recipes/composing-generators", - "id": "composing-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Provide Options for Generators", - "path": "/extending-nx/recipes/generator-options", - "id": "generator-options", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Create Files", - "path": "/extending-nx/recipes/creating-files", - "id": "creating-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Modify Files", - "path": "/extending-nx/recipes/modifying-files", - "id": "modifying-files", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Write a Migration", - "path": "/extending-nx/recipes/migration-generators", - "id": "migration-generators", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Create a Preset", - "path": "/extending-nx/recipes/create-preset", - "id": "create-preset", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Create an Install Package", - "path": "/extending-nx/recipes/create-install-package", - "id": "create-install-package", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Modify the Project Graph", - "path": "/extending-nx/recipes/project-graph-plugins", - "id": "project-graph-plugins", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ] - }, - { - "id": "ci", - "menu": [ - { - "name": "Intro", - "path": "/ci/intro", - "id": "intro", - "isExternal": false, - "children": [ - { - "name": "CI with Nx", - "path": "/ci/intro/ci-with-nx", - "id": "ci-with-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tutorials", - "path": "/ci/intro/tutorials", - "id": "tutorials", - "isExternal": false, - "children": [ - { - "name": "Circle CI with Nx", - "path": "/ci/intro/tutorials/circle", - "id": "circle", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitHub Actions with Nx", - "path": "/ci/intro/tutorials/github-actions", - "id": "github-actions", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "CI with Nx", - "path": "/ci/intro/ci-with-nx", - "id": "ci-with-nx", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Tutorials", - "path": "/ci/intro/tutorials", - "id": "tutorials", - "isExternal": false, - "children": [ - { - "name": "Circle CI with Nx", - "path": "/ci/intro/tutorials/circle", - "id": "circle", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitHub Actions with Nx", - "path": "/ci/intro/tutorials/github-actions", - "id": "github-actions", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Circle CI with Nx", - "path": "/ci/intro/tutorials/circle", - "id": "circle", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitHub Actions with Nx", - "path": "/ci/intro/tutorials/github-actions", - "id": "github-actions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Features", - "path": "/ci/features", - "id": "features", - "isExternal": false, - "children": [ - { - "name": "Run Only Tasks Affected by a PR", - "path": "/ci/features/affected", - "id": "affected", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Remote Caching (Nx Replay)", - "path": "/ci/features/remote-cache", - "id": "remote-cache", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Distribute Task Execution (Nx Agents)", - "path": "/ci/features/distribute-task-execution", - "id": "distribute-task-execution", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dynamically Allocate Agents", - "path": "/ci/features/dynamic-agents", - "id": "dynamic-agents", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Split E2E Tasks (TestAtomizer)", - "path": "/ci/features/split-e2e-tasks", - "id": "split-e2e-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify and Re-run Flaky Tasks", - "path": "/ci/features/flaky-tasks", - "id": "flaky-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Nx Cloud On-Premise", - "path": "/ci/features/on-premise", - "id": "on-premise", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Run Only Tasks Affected by a PR", - "path": "/ci/features/affected", - "id": "affected", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Use Remote Caching (Nx Replay)", - "path": "/ci/features/remote-cache", - "id": "remote-cache", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Distribute Task Execution (Nx Agents)", - "path": "/ci/features/distribute-task-execution", - "id": "distribute-task-execution", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Dynamically Allocate Agents", - "path": "/ci/features/dynamic-agents", - "id": "dynamic-agents", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Automatically Split E2E Tasks (TestAtomizer)", - "path": "/ci/features/split-e2e-tasks", - "id": "split-e2e-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Identify and Re-run Flaky Tasks", - "path": "/ci/features/flaky-tasks", - "id": "flaky-tasks", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Set up Nx Cloud On-Premise", - "path": "/ci/features/on-premise", - "id": "on-premise", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Concepts", - "path": "/ci/concepts", - "id": "concepts", - "isExternal": false, - "children": [ - { - "name": "The Building Blocks of Fast CI", - "path": "/ci/concepts/building-blocks-fast-ci", - "id": "building-blocks-fast-ci", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reduce Wasted Time in CI", - "path": "/ci/concepts/reduce-waste", - "id": "reduce-waste", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Parallelization and Distribution", - "path": "/ci/concepts/parallelization-distribution", - "id": "parallelization-distribution", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cache Security", - "path": "/ci/concepts/cache-security", - "id": "cache-security", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "The Building Blocks of Fast CI", - "path": "/ci/concepts/building-blocks-fast-ci", - "id": "building-blocks-fast-ci", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reduce Wasted Time in CI", - "path": "/ci/concepts/reduce-waste", - "id": "reduce-waste", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Parallelization and Distribution", - "path": "/ci/concepts/parallelization-distribution", - "id": "parallelization-distribution", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Cache Security", - "path": "/ci/concepts/cache-security", - "id": "cache-security", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Recipes", - "path": "/ci/recipes", - "id": "recipes", - "isExternal": false, - "children": [ - { - "name": "Set Up CI", - "path": "/ci/recipes/set-up", - "id": "set-up", - "isExternal": false, - "children": [ - { - "name": "Connect Nx Cloud", - "path": "/ci/recipes/set-up/connect-to-cloud", - "id": "connect-to-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Azure Pipelines", - "path": "/ci/recipes/set-up/monorepo-ci-azure", - "id": "monorepo-ci-azure", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up CircleCI", - "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", - "id": "monorepo-ci-circle-ci", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up GitHub Actions", - "path": "/ci/recipes/set-up/monorepo-ci-github-actions", - "id": "monorepo-ci-github-actions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Jenkins", - "path": "/ci/recipes/set-up/monorepo-ci-jenkins", - "id": "monorepo-ci-jenkins", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up GitLab", - "path": "/ci/recipes/set-up/monorepo-ci-gitlab", - "id": "monorepo-ci-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Bitbucket", - "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", - "id": "monorepo-ci-bitbucket-pipelines", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Security", - "path": "/ci/recipes/security", - "id": "security", - "isExternal": false, - "children": [ - { - "name": "Authenticate with Google Identity", - "path": "/ci/recipes/security/google-auth", - "id": "google-auth", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Access Tokens", - "path": "/ci/recipes/security/access-tokens", - "id": "access-tokens", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable End to End Encryption", - "path": "/ci/recipes/security/encryption", - "id": "encryption", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Source Control Integration", - "path": "/ci/recipes/source-control-integration", - "id": "source-control-integration", - "isExternal": false, - "children": [ - { - "name": "Enable GitHub PR Integration", - "path": "/ci/recipes/source-control-integration/github", - "id": "github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable Bitbucket Cloud PR Integration", - "path": "/ci/recipes/source-control-integration/bitbucket-cloud", - "id": "bitbucket-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable GitLab MR Integration", - "path": "/ci/recipes/source-control-integration/gitlab", - "id": "gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Enterprise", - "path": "/ci/recipes/enterprise", - "id": "enterprise", - "isExternal": false, - "children": [ - { - "name": "On-Premise", - "path": "/ci/recipes/enterprise/on-premise", - "id": "on-premise", - "isExternal": false, - "children": [ - { - "name": "Authenticate with a Single Admin", - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "id": "auth-single-admin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitHub", - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "id": "auth-github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "On-Prem VM Setup", - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "id": "ami-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitLab", - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "id": "auth-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with BitBucket", - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "id": "auth-bitbucket", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML", - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "id": "auth-saml", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML on Managed Version", - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "id": "auth-saml-managed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Configuration", - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "id": "advanced-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Custom Distributed Task Execution", - "path": "/ci/recipes/enterprise/dte", - "id": "dte", - "isExternal": false, - "children": [ - { - "name": "GitHub Actions Custom DTE", - "path": "/ci/recipes/enterprise/dte/github-dte", - "id": "github-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Circle CI Custom DTE", - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "id": "circle-ci-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Azure Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/azure-dte", - "id": "azure-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Bitbucket Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "id": "bitbucket-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitLab Custom DTE", - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "id": "gitlab-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Jenkins Custom DTE", - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "id": "jenkins-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/ci/recipes/troubleshooting", - "id": "troubleshooting", - "isExternal": false, - "children": [ - { - "name": "CI Execution Failed", - "path": "/ci/recipes/troubleshooting/ci-execution-failed", - "id": "ci-execution-failed", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Other", - "path": "/ci/recipes/other", - "id": "other", - "isExternal": false, - "children": [ - { - "name": "Record Non-Nx Commands", - "path": "/ci/recipes/other/record-commands", - "id": "record-commands", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Prepare applications for deployment via CI", - "path": "/ci/recipes/other/ci-deployment", - "id": "ci-deployment", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Set Up CI", - "path": "/ci/recipes/set-up", - "id": "set-up", - "isExternal": false, - "children": [ - { - "name": "Connect Nx Cloud", - "path": "/ci/recipes/set-up/connect-to-cloud", - "id": "connect-to-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Azure Pipelines", - "path": "/ci/recipes/set-up/monorepo-ci-azure", - "id": "monorepo-ci-azure", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up CircleCI", - "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", - "id": "monorepo-ci-circle-ci", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up GitHub Actions", - "path": "/ci/recipes/set-up/monorepo-ci-github-actions", - "id": "monorepo-ci-github-actions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Jenkins", - "path": "/ci/recipes/set-up/monorepo-ci-jenkins", - "id": "monorepo-ci-jenkins", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up GitLab", - "path": "/ci/recipes/set-up/monorepo-ci-gitlab", - "id": "monorepo-ci-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Bitbucket", - "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", - "id": "monorepo-ci-bitbucket-pipelines", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Connect Nx Cloud", - "path": "/ci/recipes/set-up/connect-to-cloud", - "id": "connect-to-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Azure Pipelines", - "path": "/ci/recipes/set-up/monorepo-ci-azure", - "id": "monorepo-ci-azure", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up CircleCI", - "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", - "id": "monorepo-ci-circle-ci", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up GitHub Actions", - "path": "/ci/recipes/set-up/monorepo-ci-github-actions", - "id": "monorepo-ci-github-actions", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Jenkins", - "path": "/ci/recipes/set-up/monorepo-ci-jenkins", - "id": "monorepo-ci-jenkins", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up GitLab", - "path": "/ci/recipes/set-up/monorepo-ci-gitlab", - "id": "monorepo-ci-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Setting up Bitbucket", - "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", - "id": "monorepo-ci-bitbucket-pipelines", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Security", - "path": "/ci/recipes/security", - "id": "security", - "isExternal": false, - "children": [ - { - "name": "Authenticate with Google Identity", - "path": "/ci/recipes/security/google-auth", - "id": "google-auth", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Access Tokens", - "path": "/ci/recipes/security/access-tokens", - "id": "access-tokens", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable End to End Encryption", - "path": "/ci/recipes/security/encryption", - "id": "encryption", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Authenticate with Google Identity", - "path": "/ci/recipes/security/google-auth", - "id": "google-auth", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Access Tokens", - "path": "/ci/recipes/security/access-tokens", - "id": "access-tokens", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable End to End Encryption", - "path": "/ci/recipes/security/encryption", - "id": "encryption", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Source Control Integration", - "path": "/ci/recipes/source-control-integration", - "id": "source-control-integration", - "isExternal": false, - "children": [ - { - "name": "Enable GitHub PR Integration", - "path": "/ci/recipes/source-control-integration/github", - "id": "github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable Bitbucket Cloud PR Integration", - "path": "/ci/recipes/source-control-integration/bitbucket-cloud", - "id": "bitbucket-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable GitLab MR Integration", - "path": "/ci/recipes/source-control-integration/gitlab", - "id": "gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Enable GitHub PR Integration", - "path": "/ci/recipes/source-control-integration/github", - "id": "github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable Bitbucket Cloud PR Integration", - "path": "/ci/recipes/source-control-integration/bitbucket-cloud", - "id": "bitbucket-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enable GitLab MR Integration", - "path": "/ci/recipes/source-control-integration/gitlab", - "id": "gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Enterprise", - "path": "/ci/recipes/enterprise", - "id": "enterprise", - "isExternal": false, - "children": [ - { - "name": "On-Premise", - "path": "/ci/recipes/enterprise/on-premise", - "id": "on-premise", - "isExternal": false, - "children": [ - { - "name": "Authenticate with a Single Admin", - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "id": "auth-single-admin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitHub", - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "id": "auth-github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "On-Prem VM Setup", - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "id": "ami-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitLab", - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "id": "auth-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with BitBucket", - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "id": "auth-bitbucket", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML", - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "id": "auth-saml", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML on Managed Version", - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "id": "auth-saml-managed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Configuration", - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "id": "advanced-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Custom Distributed Task Execution", - "path": "/ci/recipes/enterprise/dte", - "id": "dte", - "isExternal": false, - "children": [ - { - "name": "GitHub Actions Custom DTE", - "path": "/ci/recipes/enterprise/dte/github-dte", - "id": "github-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Circle CI Custom DTE", - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "id": "circle-ci-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Azure Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/azure-dte", - "id": "azure-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Bitbucket Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "id": "bitbucket-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitLab Custom DTE", - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "id": "gitlab-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Jenkins Custom DTE", - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "id": "jenkins-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "On-Premise", - "path": "/ci/recipes/enterprise/on-premise", - "id": "on-premise", - "isExternal": false, - "children": [ - { - "name": "Authenticate with a Single Admin", - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "id": "auth-single-admin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitHub", - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "id": "auth-github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "On-Prem VM Setup", - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "id": "ami-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitLab", - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "id": "auth-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with BitBucket", - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "id": "auth-bitbucket", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML", - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "id": "auth-saml", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML on Managed Version", - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "id": "auth-saml-managed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Configuration", - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "id": "advanced-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Authenticate with a Single Admin", - "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", - "id": "auth-single-admin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitHub", - "path": "/ci/recipes/enterprise/on-premise/auth-github", - "id": "auth-github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "On-Prem VM Setup", - "path": "/ci/recipes/enterprise/on-premise/ami-setup", - "id": "ami-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitLab", - "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", - "id": "auth-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with BitBucket", - "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", - "id": "auth-bitbucket", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML", - "path": "/ci/recipes/enterprise/on-premise/auth-saml", - "id": "auth-saml", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML on Managed Version", - "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", - "id": "auth-saml-managed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Configuration", - "path": "/ci/recipes/enterprise/on-premise/advanced-config", - "id": "advanced-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Custom Distributed Task Execution", - "path": "/ci/recipes/enterprise/dte", - "id": "dte", - "isExternal": false, - "children": [ - { - "name": "GitHub Actions Custom DTE", - "path": "/ci/recipes/enterprise/dte/github-dte", - "id": "github-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Circle CI Custom DTE", - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "id": "circle-ci-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Azure Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/azure-dte", - "id": "azure-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Bitbucket Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "id": "bitbucket-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitLab Custom DTE", - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "id": "gitlab-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Jenkins Custom DTE", - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "id": "jenkins-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "GitHub Actions Custom DTE", - "path": "/ci/recipes/enterprise/dte/github-dte", - "id": "github-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Circle CI Custom DTE", - "path": "/ci/recipes/enterprise/dte/circle-ci-dte", - "id": "circle-ci-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Azure Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/azure-dte", - "id": "azure-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Bitbucket Pipelines Custom DTE", - "path": "/ci/recipes/enterprise/dte/bitbucket-dte", - "id": "bitbucket-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "GitLab Custom DTE", - "path": "/ci/recipes/enterprise/dte/gitlab-dte", - "id": "gitlab-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Jenkins Custom DTE", - "path": "/ci/recipes/enterprise/dte/jenkins-dte", - "id": "jenkins-dte", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Troubleshooting", - "path": "/ci/recipes/troubleshooting", - "id": "troubleshooting", - "isExternal": false, - "children": [ - { - "name": "CI Execution Failed", - "path": "/ci/recipes/troubleshooting/ci-execution-failed", - "id": "ci-execution-failed", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "CI Execution Failed", - "path": "/ci/recipes/troubleshooting/ci-execution-failed", - "id": "ci-execution-failed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Other", - "path": "/ci/recipes/other", - "id": "other", - "isExternal": false, - "children": [ - { - "name": "Record Non-Nx Commands", - "path": "/ci/recipes/other/record-commands", - "id": "record-commands", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Prepare applications for deployment via CI", - "path": "/ci/recipes/other/ci-deployment", - "id": "ci-deployment", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Record Non-Nx Commands", - "path": "/ci/recipes/other/record-commands", - "id": "record-commands", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Prepare applications for deployment via CI", - "path": "/ci/recipes/other/ci-deployment", - "id": "ci-deployment", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Reference", - "path": "/ci/reference", - "id": "reference", - "isExternal": false, - "children": [ - { - "name": "Configuration Options", - "path": "/ci/reference/config", - "id": "config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx-cloud CLI", - "path": "/ci/reference/nx-cloud-cli", - "id": "nx-cloud-cli", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Launch Templates", - "path": "/ci/reference/launch-templates", - "id": "launch-templates", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Environment Variables", - "path": "/ci/reference/env-vars", - "id": "env-vars", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Server API Reference", - "path": "/ci/reference/server-api", - "id": "server-api", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Release Notes", - "path": "/ci/reference/release-notes", - "id": "release-notes", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Configuration Options", - "path": "/ci/reference/config", - "id": "config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "nx-cloud CLI", - "path": "/ci/reference/nx-cloud-cli", - "id": "nx-cloud-cli", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Launch Templates", - "path": "/ci/reference/launch-templates", - "id": "launch-templates", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Environment Variables", - "path": "/ci/reference/env-vars", - "id": "env-vars", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Server API Reference", - "path": "/ci/reference/server-api", - "id": "server-api", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Release Notes", - "path": "/ci/reference/release-notes", - "id": "release-notes", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ] - }, - { - "id": "nx-api", - "menu": [ - { - "id": "angular", - "path": "/nx-api/angular", - "name": "angular", - "children": [ - { - "id": "documents", - "path": "/nx-api/angular/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/angular/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Angular and Nx Version Matrix", - "path": "/nx-api/angular/documents/angular-nx-version-matrix", - "id": "angular-nx-version-matrix", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/angular/executors", - "name": "executors", - "children": [ - { - "id": "delegate-build", - "path": "/nx-api/angular/executors/delegate-build", - "name": "delegate-build", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ng-packagr-lite", - "path": "/nx-api/angular/executors/ng-packagr-lite", - "name": "ng-packagr-lite", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "package", - "path": "/nx-api/angular/executors/package", - "name": "package", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "browser-esbuild", - "path": "/nx-api/angular/executors/browser-esbuild", - "name": "browser-esbuild", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "module-federation-dev-server", - "path": "/nx-api/angular/executors/module-federation-dev-server", - "name": "module-federation-dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/angular/executors/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "extract-i18n", - "path": "/nx-api/angular/executors/extract-i18n", - "name": "extract-i18n", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "webpack-browser", - "path": "/nx-api/angular/executors/webpack-browser", - "name": "webpack-browser", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "dev-server", - "path": "/nx-api/angular/executors/dev-server", - "name": "dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "webpack-server", - "path": "/nx-api/angular/executors/webpack-server", - "name": "webpack-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "module-federation-dev-ssr", - "path": "/nx-api/angular/executors/module-federation-dev-ssr", - "name": "module-federation-dev-ssr", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/angular/generators", - "name": "generators", - "children": [ - { - "id": "add-linting", - "path": "/nx-api/angular/generators/add-linting", - "name": "add-linting", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/angular/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component", - "path": "/nx-api/angular/generators/component", - "name": "component", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-cypress-spec", - "path": "/nx-api/angular/generators/component-cypress-spec", - "name": "component-cypress-spec", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-story", - "path": "/nx-api/angular/generators/component-story", - "name": "component-story", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-test", - "path": "/nx-api/angular/generators/component-test", - "name": "component-test", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "convert-to-application-executor", - "path": "/nx-api/angular/generators/convert-to-application-executor", - "name": "convert-to-application-executor", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "directive", - "path": "/nx-api/angular/generators/directive", - "name": "directive", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "federate-module", - "path": "/nx-api/angular/generators/federate-module", - "name": "federate-module", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "init", - "path": "/nx-api/angular/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/angular/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library-secondary-entry-point", - "path": "/nx-api/angular/generators/library-secondary-entry-point", - "name": "library-secondary-entry-point", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "remote", - "path": "/nx-api/angular/generators/remote", - "name": "remote", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "move", - "path": "/nx-api/angular/generators/move", - "name": "move", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "convert-to-with-mf", - "path": "/nx-api/angular/generators/convert-to-with-mf", - "name": "convert-to-with-mf", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "host", - "path": "/nx-api/angular/generators/host", - "name": "host", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ng-add", - "path": "/nx-api/angular/generators/ng-add", - "name": "ng-add", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ngrx", - "path": "/nx-api/angular/generators/ngrx", - "name": "ngrx", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ngrx-feature-store", - "path": "/nx-api/angular/generators/ngrx-feature-store", - "name": "ngrx-feature-store", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ngrx-root-store", - "path": "/nx-api/angular/generators/ngrx-root-store", - "name": "ngrx-root-store", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "pipe", - "path": "/nx-api/angular/generators/pipe", - "name": "pipe", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "scam-to-standalone", - "path": "/nx-api/angular/generators/scam-to-standalone", - "name": "scam-to-standalone", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "scam", - "path": "/nx-api/angular/generators/scam", - "name": "scam", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "scam-directive", - "path": "/nx-api/angular/generators/scam-directive", - "name": "scam-directive", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "scam-pipe", - "path": "/nx-api/angular/generators/scam-pipe", - "name": "scam-pipe", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-mf", - "path": "/nx-api/angular/generators/setup-mf", - "name": "setup-mf", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-ssr", - "path": "/nx-api/angular/generators/setup-ssr", - "name": "setup-ssr", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-tailwind", - "path": "/nx-api/angular/generators/setup-tailwind", - "name": "setup-tailwind", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "stories", - "path": "/nx-api/angular/generators/stories", - "name": "stories", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook-configuration", - "path": "/nx-api/angular/generators/storybook-configuration", - "name": "storybook-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress-component-configuration", - "path": "/nx-api/angular/generators/cypress-component-configuration", - "name": "cypress-component-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "web-worker", - "path": "/nx-api/angular/generators/web-worker", - "name": "web-worker", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "create-nx-plugin", - "path": "/nx-api/create-nx-plugin", - "name": "create-nx-plugin", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "create-nx-workspace", - "path": "/nx-api/create-nx-workspace", - "name": "create-nx-workspace", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress", - "path": "/nx-api/cypress", - "name": "cypress", - "children": [ - { - "id": "documents", - "path": "/nx-api/cypress/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/cypress/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/cypress/executors", - "name": "executors", - "children": [ - { - "id": "cypress", - "path": "/nx-api/cypress/executors/cypress", - "name": "cypress", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/cypress/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/cypress/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress-project", - "path": "/nx-api/cypress/generators/cypress-project", - "name": "cypress-project", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/cypress/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-configuration", - "path": "/nx-api/cypress/generators/component-configuration", - "name": "component-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "migrate-to-cypress-11", - "path": "/nx-api/cypress/generators/migrate-to-cypress-11", - "name": "migrate-to-cypress-11", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "detox", - "path": "/nx-api/detox", - "name": "detox", - "children": [ - { - "id": "documents", - "path": "/nx-api/detox/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/detox/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/detox/executors", - "name": "executors", - "children": [ - { - "id": "build", - "path": "/nx-api/detox/executors/build", - "name": "build", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "test", - "path": "/nx-api/detox/executors/test", - "name": "test", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/detox/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/detox/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/detox/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "devkit", - "path": "/nx-api/devkit", - "name": "devkit", - "children": [ - { - "id": "documents", - "path": "/nx-api/devkit/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/devkit/documents/nx_devkit", - "id": "nx_devkit", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Ng CLI Adapter", - "path": "/nx-api/devkit/documents/ngcli_adapter", - "id": "ngcli_adapter", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "esbuild", - "path": "/nx-api/esbuild", - "name": "esbuild", - "children": [ - { - "id": "documents", - "path": "/nx-api/esbuild/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/esbuild/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/esbuild/executors", - "name": "executors", - "children": [ - { - "id": "esbuild", - "path": "/nx-api/esbuild/executors/esbuild", - "name": "esbuild", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/esbuild/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/esbuild/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/esbuild/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "eslint", - "path": "/nx-api/eslint", - "name": "eslint", - "children": [ - { - "id": "documents", - "path": "/nx-api/eslint/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/eslint/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/eslint/executors", - "name": "executors", - "children": [ - { - "id": "lint", - "path": "/nx-api/eslint/executors/lint", - "name": "lint", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/eslint/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/eslint/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "workspace-rules-project", - "path": "/nx-api/eslint/generators/workspace-rules-project", - "name": "workspace-rules-project", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "workspace-rule", - "path": "/nx-api/eslint/generators/workspace-rule", - "name": "workspace-rule", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "convert-to-flat-config", - "path": "/nx-api/eslint/generators/convert-to-flat-config", - "name": "convert-to-flat-config", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "eslint-plugin", - "path": "/nx-api/eslint-plugin", - "name": "eslint-plugin", - "children": [ - { - "id": "documents", - "path": "/nx-api/eslint-plugin/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/eslint-plugin/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "The `enforce-module-boundaries` rule", - "path": "/nx-api/eslint-plugin/documents/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "The `dependency-checks` rule", - "path": "/nx-api/eslint-plugin/documents/dependency-checks", - "id": "dependency-checks", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "expo", - "path": "/nx-api/expo", - "name": "expo", - "children": [ - { - "id": "documents", - "path": "/nx-api/expo/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/expo/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/expo/executors", - "name": "executors", - "children": [ - { - "id": "update", - "path": "/nx-api/expo/executors/update", - "name": "update", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build", - "path": "/nx-api/expo/executors/build", - "name": "build", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build-list", - "path": "/nx-api/expo/executors/build-list", - "name": "build-list", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "run", - "path": "/nx-api/expo/executors/run", - "name": "run", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "start", - "path": "/nx-api/expo/executors/start", - "name": "start", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "sync-deps", - "path": "/nx-api/expo/executors/sync-deps", - "name": "sync-deps", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ensure-symlink", - "path": "/nx-api/expo/executors/ensure-symlink", - "name": "ensure-symlink", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "prebuild", - "path": "/nx-api/expo/executors/prebuild", - "name": "prebuild", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "install", - "path": "/nx-api/expo/executors/install", - "name": "install", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "export", - "path": "/nx-api/expo/executors/export", - "name": "export", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "submit", - "path": "/nx-api/expo/executors/submit", - "name": "submit", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "serve", - "path": "/nx-api/expo/executors/serve", - "name": "serve", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/expo/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/expo/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/expo/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/expo/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component", - "path": "/nx-api/expo/generators/component", - "name": "component", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "express", - "path": "/nx-api/express", - "name": "express", - "children": [ - { - "id": "documents", - "path": "/nx-api/express/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/express/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/express/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/express/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/express/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "jest", - "path": "/nx-api/jest", - "name": "jest", - "children": [ - { - "id": "documents", - "path": "/nx-api/jest/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/jest/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/jest/executors", - "name": "executors", - "children": [ - { - "id": "jest", - "path": "/nx-api/jest/executors/jest", - "name": "jest", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/jest/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/jest/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/jest/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "js", - "path": "/nx-api/js", - "name": "js", - "children": [ - { - "id": "documents", - "path": "/nx-api/js/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/js/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/js/executors", - "name": "executors", - "children": [ - { - "id": "tsc", - "path": "/nx-api/js/executors/tsc", - "name": "tsc", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "swc", - "path": "/nx-api/js/executors/swc", - "name": "swc", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "node", - "path": "/nx-api/js/executors/node", - "name": "node", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "release-publish", - "path": "/nx-api/js/executors/release-publish", - "name": "release-publish", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "verdaccio", - "path": "/nx-api/js/executors/verdaccio", - "name": "verdaccio", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/js/generators", - "name": "generators", - "children": [ - { - "id": "library", - "path": "/nx-api/js/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "init", - "path": "/nx-api/js/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "convert-to-swc", - "path": "/nx-api/js/generators/convert-to-swc", - "name": "convert-to-swc", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "release-version", - "path": "/nx-api/js/generators/release-version", - "name": "release-version", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-verdaccio", - "path": "/nx-api/js/generators/setup-verdaccio", - "name": "setup-verdaccio", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-build", - "path": "/nx-api/js/generators/setup-build", - "name": "setup-build", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "nest", - "path": "/nx-api/nest", - "name": "nest", - "children": [ - { - "id": "documents", - "path": "/nx-api/nest/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/nest/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/nest/generators", - "name": "generators", - "children": [ - { - "id": "application", - "path": "/nx-api/nest/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "init", - "path": "/nx-api/nest/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/nest/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "class", - "path": "/nx-api/nest/generators/class", - "name": "class", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "controller", - "path": "/nx-api/nest/generators/controller", - "name": "controller", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "decorator", - "path": "/nx-api/nest/generators/decorator", - "name": "decorator", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "filter", - "path": "/nx-api/nest/generators/filter", - "name": "filter", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "gateway", - "path": "/nx-api/nest/generators/gateway", - "name": "gateway", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "guard", - "path": "/nx-api/nest/generators/guard", - "name": "guard", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "interceptor", - "path": "/nx-api/nest/generators/interceptor", - "name": "interceptor", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "interface", - "path": "/nx-api/nest/generators/interface", - "name": "interface", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "middleware", - "path": "/nx-api/nest/generators/middleware", - "name": "middleware", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "module", - "path": "/nx-api/nest/generators/module", - "name": "module", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "pipe", - "path": "/nx-api/nest/generators/pipe", - "name": "pipe", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "provider", - "path": "/nx-api/nest/generators/provider", - "name": "provider", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "resolver", - "path": "/nx-api/nest/generators/resolver", - "name": "resolver", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "resource", - "path": "/nx-api/nest/generators/resource", - "name": "resource", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "service", - "path": "/nx-api/nest/generators/service", - "name": "service", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "next", - "path": "/nx-api/next", - "name": "next", - "children": [ - { - "id": "documents", - "path": "/nx-api/next/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/next/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/next/executors", - "name": "executors", - "children": [ - { - "id": "build", - "path": "/nx-api/next/executors/build", - "name": "build", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "server", - "path": "/nx-api/next/executors/server", - "name": "server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "export", - "path": "/nx-api/next/executors/export", - "name": "export", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/next/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/next/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/next/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "page", - "path": "/nx-api/next/generators/page", - "name": "page", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component", - "path": "/nx-api/next/generators/component", - "name": "component", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/next/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "custom-server", - "path": "/nx-api/next/generators/custom-server", - "name": "custom-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress-component-configuration", - "path": "/nx-api/next/generators/cypress-component-configuration", - "name": "cypress-component-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "node", - "path": "/nx-api/node", - "name": "node", - "children": [ - { - "id": "documents", - "path": "/nx-api/node/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/node/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/node/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/node/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/node/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/node/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-docker", - "path": "/nx-api/node/generators/setup-docker", - "name": "setup-docker", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "nuxt", - "path": "/nx-api/nuxt", - "name": "nuxt", - "children": [ - { - "id": "documents", - "path": "/nx-api/nuxt/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/nuxt/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/nuxt/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/nuxt/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/nuxt/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook-configuration", - "path": "/nx-api/nuxt/generators/storybook-configuration", - "name": "storybook-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "nx", - "path": "/nx-api/nx", - "name": "nx", - "children": [ - { - "id": "documents", - "path": "/nx-api/nx/documents", - "name": "documents", - "children": [ - { - "name": "create-nx-workspace", - "path": "/nx-api/nx/documents/create-nx-workspace", - "id": "create-nx-workspace", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "init", - "path": "/nx-api/nx/documents/init", - "id": "init", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "generate", - "path": "/nx-api/nx/documents/generate", - "id": "generate", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "run", - "path": "/nx-api/nx/documents/run", - "id": "run", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "daemon", - "path": "/nx-api/nx/documents/daemon", - "id": "daemon", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "graph", - "path": "/nx-api/nx/documents/dep-graph", - "id": "dep-graph", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "run-many", - "path": "/nx-api/nx/documents/run-many", - "id": "run-many", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "affected", - "path": "/nx-api/nx/documents/affected", - "id": "affected", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "affected:graph", - "path": "/nx-api/nx/documents/affected-dep-graph", - "id": "affected-dep-graph", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "print-affected", - "path": "/nx-api/nx/documents/print-affected", - "id": "print-affected", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "format:check", - "path": "/nx-api/nx/documents/format-check", - "id": "format-check", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "format:write", - "path": "/nx-api/nx/documents/format-write", - "id": "format-write", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "migrate", - "path": "/nx-api/nx/documents/migrate", - "id": "migrate", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "report", - "path": "/nx-api/nx/documents/report", - "id": "report", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "list", - "path": "/nx-api/nx/documents/list", - "id": "list", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "connect-to-nx-cloud", - "path": "/nx-api/nx/documents/connect-to-nx-cloud", - "id": "connect-to-nx-cloud", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "reset", - "path": "/nx-api/nx/documents/reset", - "id": "reset", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "repair", - "path": "/nx-api/nx/documents/repair", - "id": "repair", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "exec", - "path": "/nx-api/nx/documents/exec", - "id": "exec", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "watch", - "path": "/nx-api/nx/documents/watch", - "id": "watch", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "show", - "path": "/nx-api/nx/documents/show", - "id": "show", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "view-logs", - "path": "/nx-api/nx/documents/view-logs", - "id": "view-logs", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "release", - "path": "/nx-api/nx/documents/release", - "id": "release", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "add", - "path": "/nx-api/nx/documents/add", - "id": "add", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/nx/executors", - "name": "executors", - "children": [ - { - "id": "noop", - "path": "/nx-api/nx/executors/noop", - "name": "noop", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "run-commands", - "path": "/nx-api/nx/executors/run-commands", - "name": "run-commands", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "run-script", - "path": "/nx-api/nx/executors/run-script", - "name": "run-script", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/nx/generators", - "name": "generators", - "children": [ - { - "id": "connect-to-nx-cloud", - "path": "/nx-api/nx/generators/connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "playwright", - "path": "/nx-api/playwright", - "name": "playwright", - "children": [ - { - "id": "documents", - "path": "/nx-api/playwright/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/playwright/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/playwright/executors", - "name": "executors", - "children": [ - { - "id": "playwright", - "path": "/nx-api/playwright/executors/playwright", - "name": "playwright", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/playwright/generators", - "name": "generators", - "children": [ - { - "id": "configuration", - "path": "/nx-api/playwright/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "init", - "path": "/nx-api/playwright/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "plugin", - "path": "/nx-api/plugin", - "name": "plugin", - "children": [ - { - "id": "documents", - "path": "/nx-api/plugin/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/plugin/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/plugin/executors", - "name": "executors", - "children": [ - { - "id": "e2e", - "path": "/nx-api/plugin/executors/e2e", - "name": "e2e", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/plugin/generators", - "name": "generators", - "children": [ - { - "id": "plugin", - "path": "/nx-api/plugin/generators/plugin", - "name": "plugin", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "create-package", - "path": "/nx-api/plugin/generators/create-package", - "name": "create-package", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "e2e-project", - "path": "/nx-api/plugin/generators/e2e-project", - "name": "e2e-project", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "migration", - "path": "/nx-api/plugin/generators/migration", - "name": "migration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generator", - "path": "/nx-api/plugin/generators/generator", - "name": "generator", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executor", - "path": "/nx-api/plugin/generators/executor", - "name": "executor", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "plugin-lint-checks", - "path": "/nx-api/plugin/generators/plugin-lint-checks", - "name": "plugin-lint-checks", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "preset", - "path": "/nx-api/plugin/generators/preset", - "name": "preset", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "react", - "path": "/nx-api/react", - "name": "react", - "children": [ - { - "id": "documents", - "path": "/nx-api/react/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/react/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/react/executors", - "name": "executors", - "children": [ - { - "id": "module-federation-dev-server", - "path": "/nx-api/react/executors/module-federation-dev-server", - "name": "module-federation-dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "module-federation-ssr-dev-server", - "path": "/nx-api/react/executors/module-federation-ssr-dev-server", - "name": "module-federation-ssr-dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/react/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/react/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/react/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/react/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component", - "path": "/nx-api/react/generators/component", - "name": "component", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "redux", - "path": "/nx-api/react/generators/redux", - "name": "redux", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook-configuration", - "path": "/nx-api/react/generators/storybook-configuration", - "name": "storybook-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-story", - "path": "/nx-api/react/generators/component-story", - "name": "component-story", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "stories", - "path": "/nx-api/react/generators/stories", - "name": "stories", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-cypress-spec", - "path": "/nx-api/react/generators/component-cypress-spec", - "name": "component-cypress-spec", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "hook", - "path": "/nx-api/react/generators/hook", - "name": "hook", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "host", - "path": "/nx-api/react/generators/host", - "name": "host", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "remote", - "path": "/nx-api/react/generators/remote", - "name": "remote", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress-component-configuration", - "path": "/nx-api/react/generators/cypress-component-configuration", - "name": "cypress-component-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-test", - "path": "/nx-api/react/generators/component-test", - "name": "component-test", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-tailwind", - "path": "/nx-api/react/generators/setup-tailwind", - "name": "setup-tailwind", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-ssr", - "path": "/nx-api/react/generators/setup-ssr", - "name": "setup-ssr", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "federate-module", - "path": "/nx-api/react/generators/federate-module", - "name": "federate-module", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "react-native", - "path": "/nx-api/react-native", - "name": "react-native", - "children": [ - { - "id": "documents", - "path": "/nx-api/react-native/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/react-native/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/react-native/executors", - "name": "executors", - "children": [ - { - "id": "run-android", - "path": "/nx-api/react-native/executors/run-android", - "name": "run-android", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "run-ios", - "path": "/nx-api/react-native/executors/run-ios", - "name": "run-ios", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "bundle", - "path": "/nx-api/react-native/executors/bundle", - "name": "bundle", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build-android", - "path": "/nx-api/react-native/executors/build-android", - "name": "build-android", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build-ios", - "path": "/nx-api/react-native/executors/build-ios", - "name": "build-ios", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "start", - "path": "/nx-api/react-native/executors/start", - "name": "start", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "sync-deps", - "path": "/nx-api/react-native/executors/sync-deps", - "name": "sync-deps", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ensure-symlink", - "path": "/nx-api/react-native/executors/ensure-symlink", - "name": "ensure-symlink", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook", - "path": "/nx-api/react-native/executors/storybook", - "name": "storybook", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "pod-install", - "path": "/nx-api/react-native/executors/pod-install", - "name": "pod-install", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "upgrade", - "path": "/nx-api/react-native/executors/upgrade", - "name": "upgrade", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/react-native/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/react-native/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/react-native/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/react-native/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component", - "path": "/nx-api/react-native/generators/component", - "name": "component", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook-configuration", - "path": "/nx-api/react-native/generators/storybook-configuration", - "name": "storybook-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component-story", - "path": "/nx-api/react-native/generators/component-story", - "name": "component-story", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "stories", - "path": "/nx-api/react-native/generators/stories", - "name": "stories", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "upgrade-native", - "path": "/nx-api/react-native/generators/upgrade-native", - "name": "upgrade-native", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "web-configuration", - "path": "/nx-api/react-native/generators/web-configuration", - "name": "web-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "remix", - "path": "/nx-api/remix", - "name": "remix", - "children": [ - { - "id": "documents", - "path": "/nx-api/remix/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/remix/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/remix/executors", - "name": "executors", - "children": [ - { - "id": "serve", - "path": "/nx-api/remix/executors/serve", - "name": "serve", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build", - "path": "/nx-api/remix/executors/build", - "name": "build", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/remix/generators", - "name": "generators", - "children": [ - { - "id": "preset", - "path": "/nx-api/remix/generators/preset", - "name": "preset", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup", - "path": "/nx-api/remix/generators/setup", - "name": "setup", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/remix/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress-component-configuration", - "path": "/nx-api/remix/generators/cypress-component-configuration", - "name": "cypress-component-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/remix/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "init", - "path": "/nx-api/remix/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "route", - "path": "/nx-api/remix/generators/route", - "name": "route", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "resource-route", - "path": "/nx-api/remix/generators/resource-route", - "name": "resource-route", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "action", - "path": "/nx-api/remix/generators/action", - "name": "action", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "loader", - "path": "/nx-api/remix/generators/loader", - "name": "loader", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "style", - "path": "/nx-api/remix/generators/style", - "name": "style", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-tailwind", - "path": "/nx-api/remix/generators/setup-tailwind", - "name": "setup-tailwind", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook-configuration", - "path": "/nx-api/remix/generators/storybook-configuration", - "name": "storybook-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "meta", - "path": "/nx-api/remix/generators/meta", - "name": "meta", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "error-boundary", - "path": "/nx-api/remix/generators/error-boundary", - "name": "error-boundary", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "rollup", - "path": "/nx-api/rollup", - "name": "rollup", - "children": [ - { - "id": "executors", - "path": "/nx-api/rollup/executors", - "name": "executors", - "children": [ - { - "id": "rollup", - "path": "/nx-api/rollup/executors/rollup", - "name": "rollup", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/rollup/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/rollup/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/rollup/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook", - "path": "/nx-api/storybook", - "name": "storybook", - "children": [ - { - "id": "documents", - "path": "/nx-api/storybook/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/storybook/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook best practices for making the most out of Nx", - "path": "/nx-api/storybook/documents/best-practices", - "id": "best-practices", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Storybook 7", - "path": "/nx-api/storybook/documents/storybook-7-setup", - "id": "storybook-7-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/storybook/executors", - "name": "executors", - "children": [ - { - "id": "storybook", - "path": "/nx-api/storybook/executors/storybook", - "name": "storybook", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build", - "path": "/nx-api/storybook/executors/build", - "name": "build", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/storybook/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/storybook/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/storybook/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "cypress-project", - "path": "/nx-api/storybook/generators/cypress-project", - "name": "cypress-project", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "migrate-7", - "path": "/nx-api/storybook/generators/migrate-7", - "name": "migrate-7", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "tao", - "path": "/nx-api/tao", - "name": "tao", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "vite", - "path": "/nx-api/vite", - "name": "vite", - "children": [ - { - "id": "documents", - "path": "/nx-api/vite/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/vite/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/vite/executors", - "name": "executors", - "children": [ - { - "id": "dev-server", - "path": "/nx-api/vite/executors/dev-server", - "name": "dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "build", - "path": "/nx-api/vite/executors/build", - "name": "build", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "test", - "path": "/nx-api/vite/executors/test", - "name": "test", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "preview-server", - "path": "/nx-api/vite/executors/preview-server", - "name": "preview-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/vite/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/vite/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/vite/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "vitest", - "path": "/nx-api/vite/generators/vitest", - "name": "vitest", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "vue", - "path": "/nx-api/vue", - "name": "vue", - "children": [ - { - "id": "documents", - "path": "/nx-api/vue/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/vue/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/vue/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/vue/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/vue/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "library", - "path": "/nx-api/vue/generators/library", - "name": "library", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "component", - "path": "/nx-api/vue/generators/component", - "name": "component", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "setup-tailwind", - "path": "/nx-api/vue/generators/setup-tailwind", - "name": "setup-tailwind", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "storybook-configuration", - "path": "/nx-api/vue/generators/storybook-configuration", - "name": "storybook-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "stories", - "path": "/nx-api/vue/generators/stories", - "name": "stories", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "web", - "path": "/nx-api/web", - "name": "web", - "children": [ - { - "id": "documents", - "path": "/nx-api/web/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/web/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/web/executors", - "name": "executors", - "children": [ - { - "id": "file-server", - "path": "/nx-api/web/executors/file-server", - "name": "file-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/web/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/web/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "application", - "path": "/nx-api/web/generators/application", - "name": "application", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "static-config", - "path": "/nx-api/web/generators/static-config", - "name": "static-config", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "webpack", - "path": "/nx-api/webpack", - "name": "webpack", - "children": [ - { - "id": "documents", - "path": "/nx-api/webpack/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/webpack/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/webpack/executors", - "name": "executors", - "children": [ - { - "id": "webpack", - "path": "/nx-api/webpack/executors/webpack", - "name": "webpack", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "dev-server", - "path": "/nx-api/webpack/executors/dev-server", - "name": "dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ssr-dev-server", - "path": "/nx-api/webpack/executors/ssr-dev-server", - "name": "ssr-dev-server", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/webpack/generators", - "name": "generators", - "children": [ - { - "id": "init", - "path": "/nx-api/webpack/generators/init", - "name": "init", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "configuration", - "path": "/nx-api/webpack/generators/configuration", - "name": "configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "workspace", - "path": "/nx-api/workspace", - "name": "workspace", - "children": [ - { - "id": "documents", - "path": "/nx-api/workspace/documents", - "name": "documents", - "children": [ - { - "name": "Overview", - "path": "/nx-api/workspace/documents/overview", - "id": "overview", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Nx, NodeJS and Typescript Versions", - "path": "/nx-api/workspace/documents/nx-nodejs-typescript-version-matrix", - "id": "nx-nodejs-typescript-version-matrix", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "executors", - "path": "/nx-api/workspace/executors", - "name": "executors", - "children": [ - { - "id": "counter", - "path": "/nx-api/workspace/executors/counter", - "name": "counter", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "generators", - "path": "/nx-api/workspace/generators", - "name": "generators", - "children": [ - { - "id": "preset", - "path": "/nx-api/workspace/generators/preset", - "name": "preset", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "move", - "path": "/nx-api/workspace/generators/move", - "name": "move", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "remove", - "path": "/nx-api/workspace/generators/remove", - "name": "remove", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "convert-to-monorepo", - "path": "/nx-api/workspace/generators/convert-to-monorepo", - "name": "convert-to-monorepo", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "new", - "path": "/nx-api/workspace/generators/new", - "name": "new", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "run-commands", - "path": "/nx-api/workspace/generators/run-commands", - "name": "run-commands", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "fix-configuration", - "path": "/nx-api/workspace/generators/fix-configuration", - "name": "fix-configuration", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "npm-package", - "path": "/nx-api/workspace/generators/npm-package", - "name": "npm-package", - "children": [], - "isExternal": false, - "disableCollapsible": false - }, - { - "id": "ci-workflow", - "path": "/nx-api/workspace/generators/ci-workflow", - "name": "ci-workflow", - "children": [], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ], - "isExternal": false, - "disableCollapsible": false - } - ] - } -] diff --git a/docs/generated/manifests/nx-api.json b/docs/generated/manifests/nx-api.json deleted file mode 100644 index da21e9ef07cb0..0000000000000 --- a/docs/generated/manifests/nx-api.json +++ /dev/null @@ -1,3253 +0,0 @@ -{ - "angular": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "angular", - "packageName": "@nx/angular", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/angular/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/angular/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/angular/angular-plugin" - }, - "/nx-api/angular/documents/angular-nx-version-matrix": { - "id": "angular-nx-version-matrix", - "name": "Angular and Nx Version Matrix", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/angular-nx-version-matrix", - "itemList": [], - "isExternal": false, - "path": "/nx-api/angular/documents/angular-nx-version-matrix", - "tags": [], - "originalFilePath": "shared/packages/angular/angular-nx-version-matrix" - } - }, - "root": "/packages/angular", - "source": "/packages/angular/src", - "executors": { - "/nx-api/angular/executors/delegate-build": { - "description": "Delegates the build to a different target while supporting incremental builds.", - "file": "generated/packages/angular/executors/delegate-build.json", - "hidden": false, - "name": "delegate-build", - "originalFilePath": "/packages/angular/src/executors/delegate-build/schema.json", - "path": "/nx-api/angular/executors/delegate-build", - "type": "executor" - }, - "/nx-api/angular/executors/ng-packagr-lite": { - "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`.", - "file": "generated/packages/angular/executors/ng-packagr-lite.json", - "hidden": false, - "name": "ng-packagr-lite", - "originalFilePath": "/packages/angular/src/executors/ng-packagr-lite/schema.json", - "path": "/nx-api/angular/executors/ng-packagr-lite", - "type": "executor" - }, - "/nx-api/angular/executors/package": { - "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", - "file": "generated/packages/angular/executors/package.json", - "hidden": false, - "name": "package", - "originalFilePath": "/packages/angular/src/executors/package/schema.json", - "path": "/nx-api/angular/executors/package", - "type": "executor" - }, - "/nx-api/angular/executors/browser-esbuild": { - "description": "Builds your application with esbuild and adds support for incremental builds.", - "file": "generated/packages/angular/executors/browser-esbuild.json", - "hidden": false, - "name": "browser-esbuild", - "originalFilePath": "/packages/angular/src/executors/browser-esbuild/schema.json", - "path": "/nx-api/angular/executors/browser-esbuild", - "type": "executor" - }, - "/nx-api/angular/executors/module-federation-dev-server": { - "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", - "file": "generated/packages/angular/executors/module-federation-dev-server.json", - "hidden": false, - "name": "module-federation-dev-server", - "originalFilePath": "/packages/angular/src/executors/module-federation-dev-server/schema.json", - "path": "/nx-api/angular/executors/module-federation-dev-server", - "type": "executor" - }, - "/nx-api/angular/executors/application": { - "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", - "file": "generated/packages/angular/executors/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/angular/src/executors/application/schema.json", - "path": "/nx-api/angular/executors/application", - "type": "executor" - }, - "/nx-api/angular/executors/extract-i18n": { - "description": "Extracts i18n messages from source code.", - "file": "generated/packages/angular/executors/extract-i18n.json", - "hidden": false, - "name": "extract-i18n", - "originalFilePath": "/packages/angular/src/executors/extract-i18n/schema.json", - "path": "/nx-api/angular/executors/extract-i18n", - "type": "executor" - }, - "/nx-api/angular/executors/webpack-browser": { - "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", - "file": "generated/packages/angular/executors/webpack-browser.json", - "hidden": false, - "name": "webpack-browser", - "originalFilePath": "/packages/angular/src/builders/webpack-browser/schema.json", - "path": "/nx-api/angular/executors/webpack-browser", - "type": "executor" - }, - "/nx-api/angular/executors/dev-server": { - "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", - "file": "generated/packages/angular/executors/dev-server.json", - "hidden": false, - "name": "dev-server", - "originalFilePath": "/packages/angular/src/builders/dev-server/schema.json", - "path": "/nx-api/angular/executors/dev-server", - "type": "executor" - }, - "/nx-api/angular/executors/webpack-server": { - "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", - "file": "generated/packages/angular/executors/webpack-server.json", - "hidden": false, - "name": "webpack-server", - "originalFilePath": "/packages/angular/src/builders/webpack-server/schema.json", - "path": "/nx-api/angular/executors/webpack-server", - "type": "executor" - }, - "/nx-api/angular/executors/module-federation-dev-ssr": { - "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host.", - "file": "generated/packages/angular/executors/module-federation-dev-ssr.json", - "hidden": false, - "name": "module-federation-dev-ssr", - "originalFilePath": "/packages/angular/src/builders/module-federation-dev-ssr/schema.json", - "path": "/nx-api/angular/executors/module-federation-dev-ssr", - "type": "executor" - } - }, - "generators": { - "/nx-api/angular/generators/add-linting": { - "description": "Adds linting configuration to an Angular project.", - "file": "generated/packages/angular/generators/add-linting.json", - "hidden": true, - "name": "add-linting", - "originalFilePath": "/packages/angular/src/generators/add-linting/schema.json", - "path": "/nx-api/angular/generators/add-linting", - "type": "generator" - }, - "/nx-api/angular/generators/application": { - "description": "Creates an Angular application.", - "file": "generated/packages/angular/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/angular/src/generators/application/schema.json", - "path": "/nx-api/angular/generators/application", - "type": "generator" - }, - "/nx-api/angular/generators/component": { - "description": "Generate an Angular Component.", - "file": "generated/packages/angular/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/angular/src/generators/component/schema.json", - "path": "/nx-api/angular/generators/component", - "type": "generator" - }, - "/nx-api/angular/generators/component-cypress-spec": { - "description": "Creates a Cypress spec for a UI component that has a story.", - "file": "generated/packages/angular/generators/component-cypress-spec.json", - "hidden": true, - "name": "component-cypress-spec", - "originalFilePath": "/packages/angular/src/generators/component-cypress-spec/schema.json", - "path": "/nx-api/angular/generators/component-cypress-spec", - "type": "generator" - }, - "/nx-api/angular/generators/component-story": { - "description": "Creates a stories.ts file for a component.", - "file": "generated/packages/angular/generators/component-story.json", - "hidden": true, - "name": "component-story", - "originalFilePath": "/packages/angular/src/generators/component-story/schema.json", - "path": "/nx-api/angular/generators/component-story", - "type": "generator" - }, - "/nx-api/angular/generators/component-test": { - "description": "Creates a cypress component test file for a component.", - "file": "generated/packages/angular/generators/component-test.json", - "hidden": false, - "name": "component-test", - "originalFilePath": "/packages/angular/src/generators/component-test/schema.json", - "path": "/nx-api/angular/generators/component-test", - "type": "generator" - }, - "/nx-api/angular/generators/convert-to-application-executor": { - "description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", - "file": "generated/packages/angular/generators/convert-to-application-executor.json", - "hidden": false, - "name": "convert-to-application-executor", - "originalFilePath": "/packages/angular/src/generators/convert-to-application-executor/schema.json", - "path": "/nx-api/angular/generators/convert-to-application-executor", - "type": "generator" - }, - "/nx-api/angular/generators/directive": { - "description": "Generate an Angular directive.", - "file": "generated/packages/angular/generators/directive.json", - "hidden": false, - "name": "directive", - "originalFilePath": "/packages/angular/src/generators/directive/schema.json", - "path": "/nx-api/angular/generators/directive", - "type": "generator" - }, - "/nx-api/angular/generators/federate-module": { - "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", - "file": "generated/packages/angular/generators/federate-module.json", - "hidden": false, - "name": "federate-module", - "originalFilePath": "/packages/angular/src/generators/federate-module/schema.json", - "path": "/nx-api/angular/generators/federate-module", - "type": "generator" - }, - "/nx-api/angular/generators/init": { - "description": "Initializes the `@nrwl/angular` plugin.", - "file": "generated/packages/angular/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/angular/src/generators/init/schema.json", - "path": "/nx-api/angular/generators/init", - "type": "generator" - }, - "/nx-api/angular/generators/library": { - "description": "Creates an Angular library.", - "file": "generated/packages/angular/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/angular/src/generators/library/schema.json", - "path": "/nx-api/angular/generators/library", - "type": "generator" - }, - "/nx-api/angular/generators/library-secondary-entry-point": { - "description": "Creates a secondary entry point for an Angular publishable library.", - "file": "generated/packages/angular/generators/library-secondary-entry-point.json", - "hidden": false, - "name": "library-secondary-entry-point", - "originalFilePath": "/packages/angular/src/generators/library-secondary-entry-point/schema.json", - "path": "/nx-api/angular/generators/library-secondary-entry-point", - "type": "generator" - }, - "/nx-api/angular/generators/remote": { - "description": "Generate a Remote Angular Module Federation Application.", - "file": "generated/packages/angular/generators/remote.json", - "hidden": false, - "name": "remote", - "originalFilePath": "/packages/angular/src/generators/remote/schema.json", - "path": "/nx-api/angular/generators/remote", - "type": "generator" - }, - "/nx-api/angular/generators/move": { - "description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.", - "file": "generated/packages/angular/generators/move.json", - "hidden": false, - "name": "move", - "originalFilePath": "/packages/angular/src/generators/move/schema.json", - "path": "/nx-api/angular/generators/move", - "type": "generator" - }, - "/nx-api/angular/generators/convert-to-with-mf": { - "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}", - "file": "generated/packages/angular/generators/convert-to-with-mf.json", - "hidden": false, - "name": "convert-to-with-mf", - "originalFilePath": "/packages/angular/src/generators/convert-to-with-mf/schema.json", - "path": "/nx-api/angular/generators/convert-to-with-mf", - "type": "generator" - }, - "/nx-api/angular/generators/host": { - "description": "Generate a Host Angular Module Federation Application.", - "file": "generated/packages/angular/generators/host.json", - "hidden": false, - "name": "host", - "originalFilePath": "/packages/angular/src/generators/host/schema.json", - "path": "/nx-api/angular/generators/host", - "type": "generator" - }, - "/nx-api/angular/generators/ng-add": { - "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", - "file": "generated/packages/angular/generators/ng-add.json", - "hidden": true, - "name": "ng-add", - "originalFilePath": "/packages/angular/src/generators/ng-add/schema.json", - "path": "/nx-api/angular/generators/ng-add", - "type": "generator" - }, - "/nx-api/angular/generators/ngrx": { - "description": "Adds NgRx support to an application or library.", - "file": "generated/packages/angular/generators/ngrx.json", - "hidden": false, - "name": "ngrx", - "originalFilePath": "/packages/angular/src/generators/ngrx/schema.json", - "path": "/nx-api/angular/generators/ngrx", - "type": "generator" - }, - "/nx-api/angular/generators/ngrx-feature-store": { - "description": "Adds an NgRx Feature Store to an application or library.", - "file": "generated/packages/angular/generators/ngrx-feature-store.json", - "hidden": false, - "name": "ngrx-feature-store", - "originalFilePath": "/packages/angular/src/generators/ngrx-feature-store/schema.json", - "path": "/nx-api/angular/generators/ngrx-feature-store", - "type": "generator" - }, - "/nx-api/angular/generators/ngrx-root-store": { - "description": "Adds an NgRx Root Store to an application.", - "file": "generated/packages/angular/generators/ngrx-root-store.json", - "hidden": false, - "name": "ngrx-root-store", - "originalFilePath": "/packages/angular/src/generators/ngrx-root-store/schema.json", - "path": "/nx-api/angular/generators/ngrx-root-store", - "type": "generator" - }, - "/nx-api/angular/generators/pipe": { - "description": "Generate an Angular Pipe", - "file": "generated/packages/angular/generators/pipe.json", - "hidden": false, - "name": "pipe", - "originalFilePath": "/packages/angular/src/generators/pipe/schema.json", - "path": "/nx-api/angular/generators/pipe", - "type": "generator" - }, - "/nx-api/angular/generators/scam-to-standalone": { - "description": "Convert an existing Single Component Angular Module (SCAM) to a Standalone Component.", - "file": "generated/packages/angular/generators/scam-to-standalone.json", - "hidden": false, - "name": "scam-to-standalone", - "originalFilePath": "/packages/angular/src/generators/scam-to-standalone/schema.json", - "path": "/nx-api/angular/generators/scam-to-standalone", - "type": "generator" - }, - "/nx-api/angular/generators/scam": { - "description": "Generate a component with an accompanying Single Component Angular Module (SCAM).", - "file": "generated/packages/angular/generators/scam.json", - "hidden": false, - "name": "scam", - "originalFilePath": "/packages/angular/src/generators/scam/schema.json", - "path": "/nx-api/angular/generators/scam", - "type": "generator" - }, - "/nx-api/angular/generators/scam-directive": { - "description": "Generate a directive with an accompanying Single Component Angular Module (SCAM).", - "file": "generated/packages/angular/generators/scam-directive.json", - "hidden": false, - "name": "scam-directive", - "originalFilePath": "/packages/angular/src/generators/scam-directive/schema.json", - "path": "/nx-api/angular/generators/scam-directive", - "type": "generator" - }, - "/nx-api/angular/generators/scam-pipe": { - "description": "Generate a pipe with an accompanying Single Component Angular Module (SCAM).", - "file": "generated/packages/angular/generators/scam-pipe.json", - "hidden": false, - "name": "scam-pipe", - "originalFilePath": "/packages/angular/src/generators/scam-pipe/schema.json", - "path": "/nx-api/angular/generators/scam-pipe", - "type": "generator" - }, - "/nx-api/angular/generators/setup-mf": { - "description": "Generate a Module Federation configuration for a given Angular application.", - "file": "generated/packages/angular/generators/setup-mf.json", - "hidden": false, - "name": "setup-mf", - "originalFilePath": "/packages/angular/src/generators/setup-mf/schema.json", - "path": "/nx-api/angular/generators/setup-mf", - "type": "generator" - }, - "/nx-api/angular/generators/setup-ssr": { - "description": "Generate Angular Universal (SSR) setup for an Angular application.", - "file": "generated/packages/angular/generators/setup-ssr.json", - "hidden": false, - "name": "setup-ssr", - "originalFilePath": "/packages/angular/src/generators/setup-ssr/schema.json", - "path": "/nx-api/angular/generators/setup-ssr", - "type": "generator" - }, - "/nx-api/angular/generators/setup-tailwind": { - "description": "Configures Tailwind CSS for an application or a buildable/publishable library.", - "file": "generated/packages/angular/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/angular/src/generators/setup-tailwind/schema.json", - "path": "/nx-api/angular/generators/setup-tailwind", - "type": "generator" - }, - "/nx-api/angular/generators/stories": { - "description": "Creates stories/specs for all components declared in a project.", - "file": "generated/packages/angular/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/angular/src/generators/stories/schema.json", - "path": "/nx-api/angular/generators/stories", - "type": "generator" - }, - "/nx-api/angular/generators/storybook-configuration": { - "description": "Adds Storybook configuration to a project.", - "file": "generated/packages/angular/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/angular/src/generators/storybook-configuration/schema.json", - "path": "/nx-api/angular/generators/storybook-configuration", - "type": "generator" - }, - "/nx-api/angular/generators/cypress-component-configuration": { - "description": "Setup Cypress component testing for a project.", - "file": "generated/packages/angular/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/angular/src/generators/cypress-component-configuration/schema.json", - "path": "/nx-api/angular/generators/cypress-component-configuration", - "type": "generator" - }, - "/nx-api/angular/generators/web-worker": { - "description": "Creates a Web Worker.", - "file": "generated/packages/angular/generators/web-worker.json", - "hidden": false, - "name": "web-worker", - "originalFilePath": "/packages/angular/src/generators/web-worker/schema.json", - "path": "/nx-api/angular/generators/web-worker", - "type": "generator" - } - }, - "path": "/nx-api/angular" - }, - "create-nx-plugin": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "create-nx-plugin", - "packageName": "create-nx-plugin", - "description": "This package is used to scaffold a brand-new workspace used to develop an Nx plugin, and sets up a pre-configured plugin with the specified name. The new plugin is created with a default generator, executor, and e2e app.", - "documents": {}, - "root": "/packages/create-nx-plugin", - "source": "/packages/create-nx-plugin/src", - "executors": {}, - "generators": {}, - "path": "/nx-api/create-nx-plugin" - }, - "create-nx-workspace": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "create-nx-workspace", - "packageName": "create-nx-workspace", - "description": "Smart Monorepos · Fast CI", - "documents": {}, - "root": "/packages/create-nx-workspace", - "source": "/packages/create-nx-workspace/src", - "executors": {}, - "generators": {}, - "path": "/nx-api/create-nx-workspace" - }, - "cypress": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "cypress", - "packageName": "@nx/cypress", - "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", - "documents": { - "/nx-api/cypress/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", - "file": "generated/packages/cypress/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/cypress/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/cypress/cypress-plugin" - } - }, - "root": "/packages/cypress", - "source": "/packages/cypress/src", - "executors": { - "/nx-api/cypress/executors/cypress": { - "description": "Run Cypress E2E tests.", - "file": "generated/packages/cypress/executors/cypress.json", - "hidden": false, - "name": "cypress", - "originalFilePath": "/packages/cypress/src/executors/cypress/schema.json", - "path": "/nx-api/cypress/executors/cypress", - "type": "executor" - } - }, - "generators": { - "/nx-api/cypress/generators/init": { - "description": "Initialize the `@nrwl/cypress` plugin.", - "file": "generated/packages/cypress/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/cypress/src/generators/init/schema.json", - "path": "/nx-api/cypress/generators/init", - "type": "generator" - }, - "/nx-api/cypress/generators/cypress-project": { - "description": "Add a Cypress E2E Project.", - "file": "generated/packages/cypress/generators/cypress-project.json", - "hidden": true, - "name": "cypress-project", - "originalFilePath": "/packages/cypress/src/generators/cypress-project/schema.json", - "path": "/nx-api/cypress/generators/cypress-project", - "type": "generator" - }, - "/nx-api/cypress/generators/configuration": { - "description": "Add a Cypress E2E Configuration to an existing project.", - "file": "generated/packages/cypress/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/cypress/src/generators/configuration/schema.json", - "path": "/nx-api/cypress/generators/configuration", - "type": "generator" - }, - "/nx-api/cypress/generators/component-configuration": { - "description": "Set up Cypress Component Test for a project", - "file": "generated/packages/cypress/generators/component-configuration.json", - "hidden": true, - "name": "component-configuration", - "originalFilePath": "/packages/cypress/src/generators/component-configuration/schema.json", - "path": "/nx-api/cypress/generators/component-configuration", - "type": "generator" - }, - "/nx-api/cypress/generators/migrate-to-cypress-11": { - "description": "Migrate existing Cypress e2e projects to Cypress v11", - "file": "generated/packages/cypress/generators/migrate-to-cypress-11.json", - "hidden": false, - "name": "migrate-to-cypress-11", - "originalFilePath": "/packages/cypress/src/generators/migrate-to-cypress-11/schema.json", - "path": "/nx-api/cypress/generators/migrate-to-cypress-11", - "type": "generator" - } - }, - "path": "/nx-api/cypress" - }, - "detox": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "detox", - "packageName": "@nx/detox", - "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", - "documents": { - "/nx-api/detox/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", - "file": "generated/packages/detox/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/detox/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/detox/detox-plugin" - } - }, - "root": "/packages/detox", - "source": "/packages/detox/src", - "executors": { - "/nx-api/detox/executors/build": { - "description": "Run the command defined in build property of the specified configuration.", - "file": "generated/packages/detox/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/detox/src/executors/build/schema.json", - "path": "/nx-api/detox/executors/build", - "type": "executor" - }, - "/nx-api/detox/executors/test": { - "description": "Initiating your detox test suite.", - "file": "generated/packages/detox/executors/test.json", - "hidden": false, - "name": "test", - "originalFilePath": "/packages/detox/src/executors/test/schema.json", - "path": "/nx-api/detox/executors/test", - "type": "executor" - } - }, - "generators": { - "/nx-api/detox/generators/init": { - "description": "Initialize the `@nrwl/detox` plugin.", - "file": "generated/packages/detox/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/detox/src/generators/init/schema.json", - "path": "/nx-api/detox/generators/init", - "type": "generator" - }, - "/nx-api/detox/generators/application": { - "description": "Create a Detox application.", - "file": "generated/packages/detox/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/detox/src/generators/application/schema.json", - "path": "/nx-api/detox/generators/application", - "type": "generator" - } - }, - "path": "/nx-api/detox" - }, - "devkit": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "devkit", - "packageName": "@nx/devkit", - "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", - "documents": { - "/nx-api/devkit/documents/nx_devkit": { - "id": "nx_devkit", - "name": "Overview", - "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", - "file": "generated/packages/devkit/documents/nx_devkit", - "itemList": [], - "isExternal": false, - "path": "/nx-api/devkit/documents/nx_devkit", - "tags": [], - "originalFilePath": "generated/devkit/README" - }, - "/nx-api/devkit/documents/ngcli_adapter": { - "id": "ngcli_adapter", - "name": "Ng CLI Adapter", - "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", - "file": "generated/packages/devkit/documents/ngcli_adapter", - "itemList": [], - "isExternal": false, - "path": "/nx-api/devkit/documents/ngcli_adapter", - "tags": [], - "originalFilePath": "generated/devkit/ngcli_adapter/README" - } - }, - "root": "/packages/devkit", - "source": "/packages/devkit/src", - "executors": {}, - "generators": {}, - "path": "/nx-api/devkit" - }, - "esbuild": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "esbuild", - "packageName": "@nx/esbuild", - "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", - "documents": { - "/nx-api/esbuild/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", - "file": "generated/packages/esbuild/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/esbuild/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/esbuild/esbuild-plugin" - } - }, - "root": "/packages/esbuild", - "source": "/packages/esbuild/src", - "executors": { - "/nx-api/esbuild/executors/esbuild": { - "description": "Bundle a package using EsBuild.", - "file": "generated/packages/esbuild/executors/esbuild.json", - "hidden": false, - "name": "esbuild", - "originalFilePath": "/packages/esbuild/src/executors/esbuild/schema.json", - "path": "/nx-api/esbuild/executors/esbuild", - "type": "executor" - } - }, - "generators": { - "/nx-api/esbuild/generators/init": { - "description": "Initialize the `@nrwl/esbuild` plugin.", - "file": "generated/packages/esbuild/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/esbuild/src/generators/init/schema.json", - "path": "/nx-api/esbuild/generators/init", - "type": "generator" - }, - "/nx-api/esbuild/generators/configuration": { - "description": "Add esbuild configuration to a project.", - "file": "generated/packages/esbuild/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/esbuild/src/generators/configuration/schema.json", - "path": "/nx-api/esbuild/generators/configuration", - "type": "generator" - } - }, - "path": "/nx-api/esbuild" - }, - "eslint": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "eslint", - "packageName": "@nx/eslint", - "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", - "documents": { - "/nx-api/eslint/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", - "file": "generated/packages/eslint/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/eslint/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/eslint/eslint" - } - }, - "root": "/packages/eslint", - "source": "/packages/eslint/src", - "executors": { - "/nx-api/eslint/executors/lint": { - "description": "Run ESLint on a project.", - "file": "generated/packages/eslint/executors/lint.json", - "hidden": false, - "name": "lint", - "originalFilePath": "/packages/eslint/src/executors/lint/schema.json", - "path": "/nx-api/eslint/executors/lint", - "type": "executor" - } - }, - "generators": { - "/nx-api/eslint/generators/init": { - "description": "Set up the ESLint plugin.", - "file": "generated/packages/eslint/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/eslint/src/generators/init/schema.json", - "path": "/nx-api/eslint/generators/init", - "type": "generator" - }, - "/nx-api/eslint/generators/workspace-rules-project": { - "description": "Create the Workspace Lint Rules Project.", - "file": "generated/packages/eslint/generators/workspace-rules-project.json", - "hidden": true, - "name": "workspace-rules-project", - "originalFilePath": "/packages/eslint/src/generators/workspace-rules-project/schema.json", - "path": "/nx-api/eslint/generators/workspace-rules-project", - "type": "generator" - }, - "/nx-api/eslint/generators/workspace-rule": { - "description": "Create a new Workspace ESLint rule.", - "file": "generated/packages/eslint/generators/workspace-rule.json", - "hidden": false, - "name": "workspace-rule", - "originalFilePath": "/packages/eslint/src/generators/workspace-rule/schema.json", - "path": "/nx-api/eslint/generators/workspace-rule", - "type": "generator" - }, - "/nx-api/eslint/generators/convert-to-flat-config": { - "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", - "file": "generated/packages/eslint/generators/convert-to-flat-config.json", - "hidden": false, - "name": "convert-to-flat-config", - "originalFilePath": "/packages/eslint/src/generators/convert-to-flat-config/schema.json", - "path": "/nx-api/eslint/generators/convert-to-flat-config", - "type": "generator" - } - }, - "path": "/nx-api/eslint" - }, - "eslint-plugin": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "eslint-plugin", - "packageName": "@nx/eslint-plugin", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "documents": { - "/nx-api/eslint-plugin/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/eslint-plugin/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/eslint/eslint-plugin" - }, - "/nx-api/eslint-plugin/documents/enforce-module-boundaries": { - "id": "enforce-module-boundaries", - "name": "The `enforce-module-boundaries` rule", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/enforce-module-boundaries", - "itemList": [], - "isExternal": false, - "path": "/nx-api/eslint-plugin/documents/enforce-module-boundaries", - "tags": [], - "originalFilePath": "shared/packages/eslint/enforce-module-boundaries" - }, - "/nx-api/eslint-plugin/documents/dependency-checks": { - "id": "dependency-checks", - "name": "The `dependency-checks` rule", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/dependency-checks", - "itemList": [], - "isExternal": false, - "path": "/nx-api/eslint-plugin/documents/dependency-checks", - "tags": [], - "originalFilePath": "shared/packages/eslint/dependency-checks" - } - }, - "root": "/packages/eslint-plugin", - "source": "/packages/eslint-plugin/src", - "executors": {}, - "generators": {}, - "path": "/nx-api/eslint-plugin" - }, - "expo": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "expo", - "packageName": "@nx/expo", - "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", - "documents": { - "/nx-api/expo/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", - "file": "generated/packages/expo/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/expo/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/expo/expo-plugin" - } - }, - "root": "/packages/expo", - "source": "/packages/expo/src", - "executors": { - "/nx-api/expo/executors/update": { - "description": "Start an EAS update for your expo project", - "file": "generated/packages/expo/executors/update.json", - "hidden": false, - "name": "update", - "originalFilePath": "/packages/expo/src/executors/update/schema.json", - "path": "/nx-api/expo/executors/update", - "type": "executor" - }, - "/nx-api/expo/executors/build": { - "description": "Start an EAS build for your expo project", - "file": "generated/packages/expo/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/expo/src/executors/build/schema.json", - "path": "/nx-api/expo/executors/build", - "type": "executor" - }, - "/nx-api/expo/executors/build-list": { - "description": "List all EAS builds for your Expo project", - "file": "generated/packages/expo/executors/build-list.json", - "hidden": false, - "name": "build-list", - "originalFilePath": "/packages/expo/src/executors/build-list/schema.json", - "path": "/nx-api/expo/executors/build-list", - "type": "executor" - }, - "/nx-api/expo/executors/run": { - "description": "Run the Android app binary locally or run the iOS app binary locally", - "file": "generated/packages/expo/executors/run.json", - "hidden": false, - "name": "run", - "originalFilePath": "/packages/expo/src/executors/run/schema.json", - "path": "/nx-api/expo/executors/run", - "type": "executor" - }, - "/nx-api/expo/executors/start": { - "description": "Start a local dev server for the app or start a Webpack dev server for the web app", - "file": "generated/packages/expo/executors/start.json", - "hidden": false, - "name": "start", - "originalFilePath": "/packages/expo/src/executors/start/schema.json", - "path": "/nx-api/expo/executors/start", - "type": "executor" - }, - "/nx-api/expo/executors/sync-deps": { - "description": "Syncs dependencies to package.json (required for autolinking).", - "file": "generated/packages/expo/executors/sync-deps.json", - "hidden": false, - "name": "sync-deps", - "originalFilePath": "/packages/expo/src/executors/sync-deps/schema.json", - "path": "/nx-api/expo/executors/sync-deps", - "type": "executor" - }, - "/nx-api/expo/executors/ensure-symlink": { - "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", - "file": "generated/packages/expo/executors/ensure-symlink.json", - "hidden": false, - "name": "ensure-symlink", - "originalFilePath": "/packages/expo/src/executors/ensure-symlink/schema.json", - "path": "/nx-api/expo/executors/ensure-symlink", - "type": "executor" - }, - "/nx-api/expo/executors/prebuild": { - "description": "Create native iOS and Android project files for building natively.", - "file": "generated/packages/expo/executors/prebuild.json", - "hidden": false, - "name": "prebuild", - "originalFilePath": "/packages/expo/src/executors/prebuild/schema.json", - "path": "/nx-api/expo/executors/prebuild", - "type": "executor" - }, - "/nx-api/expo/executors/install": { - "description": "Install a module or other package to a project.", - "file": "generated/packages/expo/executors/install.json", - "hidden": false, - "name": "install", - "originalFilePath": "/packages/expo/src/executors/install/schema.json", - "path": "/nx-api/expo/executors/install", - "type": "executor" - }, - "/nx-api/expo/executors/export": { - "description": "Export the JavaScript and assets for your app using Metro/webpack bundler", - "file": "generated/packages/expo/executors/export.json", - "hidden": false, - "name": "export", - "originalFilePath": "/packages/expo/src/executors/export/schema.json", - "path": "/nx-api/expo/executors/export", - "type": "executor" - }, - "/nx-api/expo/executors/submit": { - "description": "Submit app binary to App Store and/or Play Store", - "file": "generated/packages/expo/executors/submit.json", - "hidden": false, - "name": "submit", - "originalFilePath": "/packages/expo/src/executors/submit/schema.json", - "path": "/nx-api/expo/executors/submit", - "type": "executor" - }, - "/nx-api/expo/executors/serve": { - "description": "Serve up the Expo web app locally", - "file": "generated/packages/expo/executors/serve.json", - "hidden": false, - "name": "serve", - "originalFilePath": "/packages/expo/src/executors/serve/schema.json", - "path": "/nx-api/expo/executors/serve", - "type": "executor" - } - }, - "generators": { - "/nx-api/expo/generators/init": { - "description": "Initialize the @nx/expo plugin", - "file": "generated/packages/expo/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/expo/src/generators/init/schema.json", - "path": "/nx-api/expo/generators/init", - "type": "generator" - }, - "/nx-api/expo/generators/application": { - "description": "Create an application", - "file": "generated/packages/expo/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/expo/src/generators/application/schema.json", - "path": "/nx-api/expo/generators/application", - "type": "generator" - }, - "/nx-api/expo/generators/library": { - "description": "Create a library", - "file": "generated/packages/expo/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/expo/src/generators/library/schema.json", - "path": "/nx-api/expo/generators/library", - "type": "generator" - }, - "/nx-api/expo/generators/component": { - "description": "Create a component", - "file": "generated/packages/expo/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/expo/src/generators/component/schema.json", - "path": "/nx-api/expo/generators/component", - "type": "generator" - } - }, - "path": "/nx-api/expo" - }, - "express": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "express", - "packageName": "@nx/express", - "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", - "documents": { - "/nx-api/express/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", - "file": "generated/packages/express/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/express/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/express/express-plugin" - } - }, - "root": "/packages/express", - "source": "/packages/express/src", - "executors": {}, - "generators": { - "/nx-api/express/generators/init": { - "description": "Initialize the `@nrwl/express` plugin.", - "file": "generated/packages/express/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/express/src/generators/init/schema.json", - "path": "/nx-api/express/generators/init", - "type": "generator" - }, - "/nx-api/express/generators/application": { - "description": "Create an Express application.", - "file": "generated/packages/express/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/express/src/generators/application/schema.json", - "path": "/nx-api/express/generators/application", - "type": "generator" - } - }, - "path": "/nx-api/express" - }, - "jest": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "jest", - "packageName": "@nx/jest", - "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", - "documents": { - "/nx-api/jest/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", - "file": "generated/packages/jest/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/jest/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/jest/jest-plugin" - } - }, - "root": "/packages/jest", - "source": "/packages/jest/src", - "executors": { - "/nx-api/jest/executors/jest": { - "description": "Run Jest unit tests.", - "file": "generated/packages/jest/executors/jest.json", - "hidden": false, - "name": "jest", - "originalFilePath": "/packages/jest/src/executors/jest/schema.json", - "path": "/nx-api/jest/executors/jest", - "type": "executor" - } - }, - "generators": { - "/nx-api/jest/generators/init": { - "description": "Initialize the `@nrwl/jest` plugin.", - "file": "generated/packages/jest/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/jest/src/generators/init/schema.json", - "path": "/nx-api/jest/generators/init", - "type": "generator" - }, - "/nx-api/jest/generators/configuration": { - "description": "Add Jest configuration to a project.", - "file": "generated/packages/jest/generators/configuration.json", - "hidden": true, - "name": "configuration", - "originalFilePath": "/packages/jest/src/generators/configuration/schema.json", - "path": "/nx-api/jest/generators/configuration", - "type": "generator" - } - }, - "path": "/nx-api/jest" - }, - "js": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "js", - "packageName": "@nx/js", - "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", - "documents": { - "/nx-api/js/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", - "file": "generated/packages/js/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/js/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/js/js-plugin" - } - }, - "root": "/packages/js", - "source": "/packages/js/src", - "executors": { - "/nx-api/js/executors/tsc": { - "description": "Build a project using TypeScript.", - "file": "generated/packages/js/executors/tsc.json", - "hidden": false, - "name": "tsc", - "originalFilePath": "/packages/js/src/executors/tsc/schema.json", - "path": "/nx-api/js/executors/tsc", - "type": "executor" - }, - "/nx-api/js/executors/swc": { - "description": "Build a project using SWC.", - "file": "generated/packages/js/executors/swc.json", - "hidden": false, - "name": "swc", - "originalFilePath": "/packages/js/src/executors/swc/schema.json", - "path": "/nx-api/js/executors/swc", - "type": "executor" - }, - "/nx-api/js/executors/node": { - "description": "Execute a Node application.", - "file": "generated/packages/js/executors/node.json", - "hidden": false, - "name": "node", - "originalFilePath": "/packages/js/src/executors/node/schema.json", - "path": "/nx-api/js/executors/node", - "type": "executor" - }, - "/nx-api/js/executors/release-publish": { - "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", - "file": "generated/packages/js/executors/release-publish.json", - "hidden": true, - "name": "release-publish", - "originalFilePath": "/packages/js/src/executors/release-publish/schema.json", - "path": "/nx-api/js/executors/release-publish", - "type": "executor" - }, - "/nx-api/js/executors/verdaccio": { - "description": "Start local registry with verdaccio", - "file": "generated/packages/js/executors/verdaccio.json", - "hidden": false, - "name": "verdaccio", - "originalFilePath": "/packages/js/src/executors/verdaccio/schema.json", - "path": "/nx-api/js/executors/verdaccio", - "type": "executor" - } - }, - "generators": { - "/nx-api/js/generators/library": { - "description": "Create a library", - "file": "generated/packages/js/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/js/src/generators/library/schema.json", - "path": "/nx-api/js/generators/library", - "type": "generator" - }, - "/nx-api/js/generators/init": { - "description": "Initialize a TS/JS workspace.", - "file": "generated/packages/js/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/js/src/generators/init/schema.json", - "path": "/nx-api/js/generators/init", - "type": "generator" - }, - "/nx-api/js/generators/convert-to-swc": { - "description": "Convert a TypeScript library to compile with SWC.", - "file": "generated/packages/js/generators/convert-to-swc.json", - "hidden": false, - "name": "convert-to-swc", - "originalFilePath": "/packages/js/src/generators/convert-to-swc/schema.json", - "path": "/nx-api/js/generators/convert-to-swc", - "type": "generator" - }, - "/nx-api/js/generators/release-version": { - "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", - "file": "generated/packages/js/generators/release-version.json", - "hidden": true, - "name": "release-version", - "originalFilePath": "/packages/js/src/generators/release-version/schema.json", - "path": "/nx-api/js/generators/release-version", - "type": "generator" - }, - "/nx-api/js/generators/setup-verdaccio": { - "description": "Setup Verdaccio for local package management.", - "file": "generated/packages/js/generators/setup-verdaccio.json", - "hidden": false, - "name": "setup-verdaccio", - "originalFilePath": "/packages/js/src/generators/setup-verdaccio/schema.json", - "path": "/nx-api/js/generators/setup-verdaccio", - "type": "generator" - }, - "/nx-api/js/generators/setup-build": { - "description": "setup-build generator", - "file": "generated/packages/js/generators/setup-build.json", - "hidden": false, - "name": "setup-build", - "originalFilePath": "/packages/js/src/generators/setup-build/schema.json", - "path": "/nx-api/js/generators/setup-build", - "type": "generator" - } - }, - "path": "/nx-api/js" - }, - "nest": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "nest", - "packageName": "@nx/nest", - "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", - "documents": { - "/nx-api/nest/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", - "file": "generated/packages/nest/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nest/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/nest/nest-plugin" - } - }, - "root": "/packages/nest", - "source": "/packages/nest/src", - "executors": {}, - "generators": { - "/nx-api/nest/generators/application": { - "description": "Create a NestJS application.", - "file": "generated/packages/nest/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/nest/src/generators/application/schema.json", - "path": "/nx-api/nest/generators/application", - "type": "generator" - }, - "/nx-api/nest/generators/init": { - "description": "Initialize the `@nrwl/nest` plugin.", - "file": "generated/packages/nest/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/nest/src/generators/init/schema.json", - "path": "/nx-api/nest/generators/init", - "type": "generator" - }, - "/nx-api/nest/generators/library": { - "description": "Create a new NestJS library.", - "file": "generated/packages/nest/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/nest/src/generators/library/schema.json", - "path": "/nx-api/nest/generators/library", - "type": "generator" - }, - "/nx-api/nest/generators/class": { - "description": "Run the `class` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/class.json", - "hidden": false, - "name": "class", - "originalFilePath": "/packages/nest/src/generators/class/schema.json", - "path": "/nx-api/nest/generators/class", - "type": "generator" - }, - "/nx-api/nest/generators/controller": { - "description": "Run the `controller` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/controller.json", - "hidden": false, - "name": "controller", - "originalFilePath": "/packages/nest/src/generators/controller/schema.json", - "path": "/nx-api/nest/generators/controller", - "type": "generator" - }, - "/nx-api/nest/generators/decorator": { - "description": "Run the `decorator` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/decorator.json", - "hidden": false, - "name": "decorator", - "originalFilePath": "/packages/nest/src/generators/decorator/schema.json", - "path": "/nx-api/nest/generators/decorator", - "type": "generator" - }, - "/nx-api/nest/generators/filter": { - "description": "Run the `filter` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/filter.json", - "hidden": false, - "name": "filter", - "originalFilePath": "/packages/nest/src/generators/filter/schema.json", - "path": "/nx-api/nest/generators/filter", - "type": "generator" - }, - "/nx-api/nest/generators/gateway": { - "description": "Run the `gateway` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/gateway.json", - "hidden": false, - "name": "gateway", - "originalFilePath": "/packages/nest/src/generators/gateway/schema.json", - "path": "/nx-api/nest/generators/gateway", - "type": "generator" - }, - "/nx-api/nest/generators/guard": { - "description": "Run the `guard` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/guard.json", - "hidden": false, - "name": "guard", - "originalFilePath": "/packages/nest/src/generators/guard/schema.json", - "path": "/nx-api/nest/generators/guard", - "type": "generator" - }, - "/nx-api/nest/generators/interceptor": { - "description": "Run the `interceptor` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/interceptor.json", - "hidden": false, - "name": "interceptor", - "originalFilePath": "/packages/nest/src/generators/interceptor/schema.json", - "path": "/nx-api/nest/generators/interceptor", - "type": "generator" - }, - "/nx-api/nest/generators/interface": { - "description": "Run the `interface` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/interface.json", - "hidden": false, - "name": "interface", - "originalFilePath": "/packages/nest/src/generators/interface/schema.json", - "path": "/nx-api/nest/generators/interface", - "type": "generator" - }, - "/nx-api/nest/generators/middleware": { - "description": "Run the `middleware` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/middleware.json", - "hidden": false, - "name": "middleware", - "originalFilePath": "/packages/nest/src/generators/middleware/schema.json", - "path": "/nx-api/nest/generators/middleware", - "type": "generator" - }, - "/nx-api/nest/generators/module": { - "description": "Run the `module` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/module.json", - "hidden": false, - "name": "module", - "originalFilePath": "/packages/nest/src/generators/module/schema.json", - "path": "/nx-api/nest/generators/module", - "type": "generator" - }, - "/nx-api/nest/generators/pipe": { - "description": "Run the `pipe` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/pipe.json", - "hidden": false, - "name": "pipe", - "originalFilePath": "/packages/nest/src/generators/pipe/schema.json", - "path": "/nx-api/nest/generators/pipe", - "type": "generator" - }, - "/nx-api/nest/generators/provider": { - "description": "Run the `provider` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/provider.json", - "hidden": false, - "name": "provider", - "originalFilePath": "/packages/nest/src/generators/provider/schema.json", - "path": "/nx-api/nest/generators/provider", - "type": "generator" - }, - "/nx-api/nest/generators/resolver": { - "description": "Run the `resolver` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/resolver.json", - "hidden": false, - "name": "resolver", - "originalFilePath": "/packages/nest/src/generators/resolver/schema.json", - "path": "/nx-api/nest/generators/resolver", - "type": "generator" - }, - "/nx-api/nest/generators/resource": { - "description": "Run the `resource` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/resource.json", - "hidden": false, - "name": "resource", - "originalFilePath": "/packages/nest/src/generators/resource/schema.json", - "path": "/nx-api/nest/generators/resource", - "type": "generator" - }, - "/nx-api/nest/generators/service": { - "description": "Run the `service` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/service.json", - "hidden": false, - "name": "service", - "originalFilePath": "/packages/nest/src/generators/service/schema.json", - "path": "/nx-api/nest/generators/service", - "type": "generator" - } - }, - "path": "/nx-api/nest" - }, - "next": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "next", - "packageName": "@nx/next", - "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", - "documents": { - "/nx-api/next/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", - "file": "generated/packages/next/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/next/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/next/plugin-overview" - } - }, - "root": "/packages/next", - "source": "/packages/next/src", - "executors": { - "/nx-api/next/executors/build": { - "description": "Build a Next.js application.", - "file": "generated/packages/next/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/next/src/executors/build/schema.json", - "path": "/nx-api/next/executors/build", - "type": "executor" - }, - "/nx-api/next/executors/server": { - "description": "Serve a Next.js application.", - "file": "generated/packages/next/executors/server.json", - "hidden": false, - "name": "server", - "originalFilePath": "/packages/next/src/executors/server/schema.json", - "path": "/nx-api/next/executors/server", - "type": "executor" - }, - "/nx-api/next/executors/export": { - "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", - "file": "generated/packages/next/executors/export.json", - "hidden": false, - "name": "export", - "originalFilePath": "/packages/next/src/executors/export/schema.json", - "path": "/nx-api/next/executors/export", - "type": "executor" - } - }, - "generators": { - "/nx-api/next/generators/init": { - "description": "Initialize the `@nrwl/next` plugin.", - "file": "generated/packages/next/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/next/src/generators/init/schema.json", - "path": "/nx-api/next/generators/init", - "type": "generator" - }, - "/nx-api/next/generators/application": { - "description": "Create an application.", - "file": "generated/packages/next/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/next/src/generators/application/schema.json", - "path": "/nx-api/next/generators/application", - "type": "generator" - }, - "/nx-api/next/generators/page": { - "description": "Create a page.", - "file": "generated/packages/next/generators/page.json", - "hidden": false, - "name": "page", - "originalFilePath": "/packages/next/src/generators/page/schema.json", - "path": "/nx-api/next/generators/page", - "type": "generator" - }, - "/nx-api/next/generators/component": { - "description": "Create a component.", - "file": "generated/packages/next/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/next/src/generators/component/schema.json", - "path": "/nx-api/next/generators/component", - "type": "generator" - }, - "/nx-api/next/generators/library": { - "description": "Create a library.", - "file": "generated/packages/next/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/next/src/generators/library/schema.json", - "path": "/nx-api/next/generators/library", - "type": "generator" - }, - "/nx-api/next/generators/custom-server": { - "description": "Set up a custom server.", - "file": "generated/packages/next/generators/custom-server.json", - "hidden": false, - "name": "custom-server", - "originalFilePath": "/packages/next/src/generators/custom-server/schema.json", - "path": "/nx-api/next/generators/custom-server", - "type": "generator" - }, - "/nx-api/next/generators/cypress-component-configuration": { - "description": "cypress-component-configuration generator", - "file": "generated/packages/next/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/next/src/generators/cypress-component-configuration/schema.json", - "path": "/nx-api/next/generators/cypress-component-configuration", - "type": "generator" - } - }, - "path": "/nx-api/next" - }, - "node": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "node", - "packageName": "@nx/node", - "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", - "documents": { - "/nx-api/node/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", - "file": "generated/packages/node/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/node/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/node/node-plugin" - } - }, - "root": "/packages/node", - "source": "/packages/node/src", - "executors": {}, - "generators": { - "/nx-api/node/generators/init": { - "description": "Initialize the `@nrwl/node` plugin.", - "file": "generated/packages/node/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/node/src/generators/init/schema.json", - "path": "/nx-api/node/generators/init", - "type": "generator" - }, - "/nx-api/node/generators/application": { - "description": "Create a node application.", - "file": "generated/packages/node/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/node/src/generators/application/schema.json", - "path": "/nx-api/node/generators/application", - "type": "generator" - }, - "/nx-api/node/generators/library": { - "description": "Create a node library.", - "file": "generated/packages/node/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/node/src/generators/library/schema.json", - "path": "/nx-api/node/generators/library", - "type": "generator" - }, - "/nx-api/node/generators/setup-docker": { - "description": "Set up Docker configuration for a project.", - "file": "generated/packages/node/generators/setup-docker.json", - "hidden": false, - "name": "setup-docker", - "originalFilePath": "/packages/node/src/generators/setup-docker/schema.json", - "path": "/nx-api/node/generators/setup-docker", - "type": "generator" - } - }, - "path": "/nx-api/node" - }, - "nuxt": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "nuxt", - "packageName": "@nx/nuxt", - "description": "The Nuxt plugin for Nx contains executors and generators for managing Nuxt applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/nuxt/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace.", - "file": "generated/packages/nuxt/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nuxt/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/nuxt/nuxt-plugin" - } - }, - "root": "/packages/nuxt", - "source": "/packages/nuxt/src", - "executors": {}, - "generators": { - "/nx-api/nuxt/generators/init": { - "description": "Initialize the `@nx/nuxt` plugin.", - "file": "generated/packages/nuxt/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/nuxt/src/generators/init/schema.json", - "path": "/nx-api/nuxt/generators/init", - "type": "generator" - }, - "/nx-api/nuxt/generators/application": { - "description": "Create a Nuxt application.", - "file": "generated/packages/nuxt/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/nuxt/src/generators/application/schema.json", - "path": "/nx-api/nuxt/generators/application", - "type": "generator" - }, - "/nx-api/nuxt/generators/storybook-configuration": { - "description": "Set up storybook for a Nuxt app.", - "file": "generated/packages/nuxt/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/nuxt/src/generators/storybook-configuration/schema.json", - "path": "/nx-api/nuxt/generators/storybook-configuration", - "type": "generator" - } - }, - "path": "/nx-api/nuxt" - }, - "nx": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "nx", - "packageName": "nx", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "documents": { - "/nx-api/nx/documents/create-nx-workspace": { - "id": "create-nx-workspace", - "name": "create-nx-workspace", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/create-nx-workspace", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/create-nx-workspace", - "tags": [], - "originalFilePath": "generated/cli/create-nx-workspace" - }, - "/nx-api/nx/documents/init": { - "id": "init", - "name": "init", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/init", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/init", - "tags": [], - "originalFilePath": "generated/cli/init" - }, - "/nx-api/nx/documents/generate": { - "id": "generate", - "name": "generate", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/generate", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/generate", - "tags": ["generate-code"], - "originalFilePath": "generated/cli/generate" - }, - "/nx-api/nx/documents/run": { - "id": "run", - "name": "run", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/run", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/run", - "tags": ["run-tasks"], - "originalFilePath": "generated/cli/run" - }, - "/nx-api/nx/documents/daemon": { - "id": "daemon", - "name": "daemon", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/daemon", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/daemon", - "tags": [], - "originalFilePath": "generated/cli/daemon" - }, - "/nx-api/nx/documents/dep-graph": { - "id": "dep-graph", - "name": "graph", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/dep-graph", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/dep-graph", - "tags": ["explore-graph"], - "originalFilePath": "generated/cli/graph" - }, - "/nx-api/nx/documents/run-many": { - "id": "run-many", - "name": "run-many", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/run-many", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/run-many", - "tags": ["run-tasks"], - "originalFilePath": "generated/cli/run-many" - }, - "/nx-api/nx/documents/affected": { - "id": "affected", - "name": "affected", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/affected", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/affected", - "tags": ["run-tasks"], - "originalFilePath": "generated/cli/affected" - }, - "/nx-api/nx/documents/affected-dep-graph": { - "id": "affected-dep-graph", - "name": "affected:graph", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/affected-dep-graph", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/affected-dep-graph", - "tags": [], - "originalFilePath": "generated/cli/affected-graph" - }, - "/nx-api/nx/documents/print-affected": { - "id": "print-affected", - "name": "print-affected", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/print-affected", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/print-affected", - "tags": [], - "originalFilePath": "generated/cli/print-affected" - }, - "/nx-api/nx/documents/format-check": { - "id": "format-check", - "name": "format:check", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/format-check", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/format-check", - "tags": ["enforce-module-boundaries"], - "originalFilePath": "generated/cli/format-check" - }, - "/nx-api/nx/documents/format-write": { - "id": "format-write", - "name": "format:write", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/format-write", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/format-write", - "tags": ["enforce-module-boundaries"], - "originalFilePath": "generated/cli/format-write" - }, - "/nx-api/nx/documents/migrate": { - "id": "migrate", - "name": "migrate", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/migrate", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/migrate", - "tags": ["automate-updating-dependencies"], - "originalFilePath": "generated/cli/migrate" - }, - "/nx-api/nx/documents/report": { - "id": "report", - "name": "report", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/report", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/report", - "tags": [], - "originalFilePath": "generated/cli/report" - }, - "/nx-api/nx/documents/list": { - "id": "list", - "name": "list", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/list", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/list", - "tags": [], - "originalFilePath": "generated/cli/list" - }, - "/nx-api/nx/documents/connect-to-nx-cloud": { - "id": "connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/connect-to-nx-cloud", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/connect-to-nx-cloud", - "tags": ["cache-task-results", "distribute-task-execution"], - "originalFilePath": "generated/cli/connect" - }, - "/nx-api/nx/documents/reset": { - "id": "reset", - "name": "reset", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/reset", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/reset", - "tags": ["cache-task-results"], - "originalFilePath": "generated/cli/reset" - }, - "/nx-api/nx/documents/repair": { - "id": "repair", - "name": "repair", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/repair", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/repair", - "tags": [], - "originalFilePath": "generated/cli/repair" - }, - "/nx-api/nx/documents/exec": { - "id": "exec", - "name": "exec", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/exec", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/exec", - "tags": [], - "originalFilePath": "generated/cli/exec" - }, - "/nx-api/nx/documents/watch": { - "id": "watch", - "name": "watch", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/watch", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/watch", - "tags": ["workspace-watching"], - "originalFilePath": "generated/cli/watch" - }, - "/nx-api/nx/documents/show": { - "id": "show", - "name": "show", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/show", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/show", - "tags": [], - "originalFilePath": "generated/cli/show" - }, - "/nx-api/nx/documents/view-logs": { - "id": "view-logs", - "name": "view-logs", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/view-logs", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/view-logs", - "tags": [], - "originalFilePath": "generated/cli/view-logs" - }, - "/nx-api/nx/documents/release": { - "id": "release", - "name": "release", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/release", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/release", - "tags": [], - "originalFilePath": "generated/cli/release" - }, - "/nx-api/nx/documents/add": { - "id": "add", - "name": "add", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/add", - "itemList": [], - "isExternal": false, - "path": "/nx-api/nx/documents/add", - "tags": [], - "originalFilePath": "generated/cli/add" - } - }, - "root": "/packages/nx", - "source": "/packages/nx/src", - "executors": { - "/nx-api/nx/executors/noop": { - "description": "An executor that does nothing", - "file": "generated/packages/nx/executors/noop.json", - "hidden": false, - "name": "noop", - "originalFilePath": "/packages/nx/src/executors/noop/schema.json", - "path": "/nx-api/nx/executors/noop", - "type": "executor" - }, - "/nx-api/nx/executors/run-commands": { - "description": "Run any custom commands with Nx.", - "file": "generated/packages/nx/executors/run-commands.json", - "hidden": false, - "name": "run-commands", - "originalFilePath": "/packages/nx/src/executors/run-commands/schema.json", - "path": "/nx-api/nx/executors/run-commands", - "type": "executor" - }, - "/nx-api/nx/executors/run-script": { - "description": "Run an NPM script using Nx.", - "file": "generated/packages/nx/executors/run-script.json", - "hidden": false, - "name": "run-script", - "originalFilePath": "/packages/nx/src/executors/run-script/schema.json", - "path": "/nx-api/nx/executors/run-script", - "type": "executor" - } - }, - "generators": { - "/nx-api/nx/generators/connect-to-nx-cloud": { - "description": "Connect a workspace to Nx Cloud", - "file": "generated/packages/nx/generators/connect-to-nx-cloud.json", - "hidden": false, - "name": "connect-to-nx-cloud", - "originalFilePath": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/schema.json", - "path": "/nx-api/nx/generators/connect-to-nx-cloud", - "type": "generator" - } - }, - "path": "/nx-api/nx" - }, - "playwright": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "playwright", - "packageName": "@nx/playwright", - "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", - "documents": { - "/nx-api/playwright/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", - "file": "generated/packages/playwright/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/playwright/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/playwright/playwright-plugin" - } - }, - "root": "/packages/playwright", - "source": "/packages/playwright/src", - "executors": { - "/nx-api/playwright/executors/playwright": { - "description": "Run Playwright tests.", - "file": "generated/packages/playwright/executors/playwright.json", - "hidden": false, - "name": "playwright", - "originalFilePath": "/packages/playwright/src/executors/playwright/schema.json", - "path": "/nx-api/playwright/executors/playwright", - "type": "executor" - } - }, - "generators": { - "/nx-api/playwright/generators/configuration": { - "description": "Add Nx Playwright configuration to your project", - "file": "generated/packages/playwright/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/playwright/src/generators/configuration/schema.json", - "path": "/nx-api/playwright/generators/configuration", - "type": "generator" - }, - "/nx-api/playwright/generators/init": { - "description": "Initializes a Playwright project in the current workspace", - "file": "generated/packages/playwright/generators/init.json", - "hidden": false, - "name": "init", - "originalFilePath": "/packages/playwright/src/generators/init/schema.json", - "path": "/nx-api/playwright/generators/init", - "type": "generator" - } - }, - "path": "/nx-api/playwright" - }, - "plugin": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "plugin", - "packageName": "@nx/plugin", - "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", - "documents": { - "/nx-api/plugin/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", - "file": "generated/packages/plugin/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/plugin/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/plugin/plugin" - } - }, - "root": "/packages/plugin", - "source": "/packages/plugin/src", - "executors": { - "/nx-api/plugin/executors/e2e": { - "description": "Creates and runs the E2E tests for an Nx Plugin.", - "file": "generated/packages/plugin/executors/e2e.json", - "hidden": false, - "name": "e2e", - "originalFilePath": "/packages/plugin/src/executors/e2e/schema.json", - "path": "/nx-api/plugin/executors/e2e", - "type": "executor" - } - }, - "generators": { - "/nx-api/plugin/generators/plugin": { - "description": "Create a Nx Plugin.", - "file": "generated/packages/plugin/generators/plugin.json", - "hidden": false, - "name": "plugin", - "originalFilePath": "/packages/plugin/src/generators/plugin/schema.json", - "path": "/nx-api/plugin/generators/plugin", - "type": "generator" - }, - "/nx-api/plugin/generators/create-package": { - "description": "Create a package which can be used by npx to create a new workspace", - "file": "generated/packages/plugin/generators/create-package.json", - "hidden": false, - "name": "create-package", - "originalFilePath": "/packages/plugin/src/generators/create-package/schema.json", - "path": "/nx-api/plugin/generators/create-package", - "type": "generator" - }, - "/nx-api/plugin/generators/e2e-project": { - "description": "Create a E2E application for a Nx Plugin.", - "file": "generated/packages/plugin/generators/e2e-project.json", - "hidden": false, - "name": "e2e-project", - "originalFilePath": "/packages/plugin/src/generators/e2e-project/schema.json", - "path": "/nx-api/plugin/generators/e2e-project", - "type": "generator" - }, - "/nx-api/plugin/generators/migration": { - "description": "Create a migration for an Nx Plugin.", - "file": "generated/packages/plugin/generators/migration.json", - "hidden": false, - "name": "migration", - "originalFilePath": "/packages/plugin/src/generators/migration/schema.json", - "path": "/nx-api/plugin/generators/migration", - "type": "generator" - }, - "/nx-api/plugin/generators/generator": { - "description": "Create a generator for an Nx Plugin.", - "file": "generated/packages/plugin/generators/generator.json", - "hidden": false, - "name": "generator", - "originalFilePath": "/packages/plugin/src/generators/generator/schema.json", - "path": "/nx-api/plugin/generators/generator", - "type": "generator" - }, - "/nx-api/plugin/generators/executor": { - "description": "Create an executor for an Nx Plugin.", - "file": "generated/packages/plugin/generators/executor.json", - "hidden": false, - "name": "executor", - "originalFilePath": "/packages/plugin/src/generators/executor/schema.json", - "path": "/nx-api/plugin/generators/executor", - "type": "generator" - }, - "/nx-api/plugin/generators/plugin-lint-checks": { - "description": "Adds linting configuration to validate common json files for nx plugins.", - "file": "generated/packages/plugin/generators/plugin-lint-checks.json", - "hidden": false, - "name": "plugin-lint-checks", - "originalFilePath": "/packages/plugin/src/generators/lint-checks/schema.json", - "path": "/nx-api/plugin/generators/plugin-lint-checks", - "type": "generator" - }, - "/nx-api/plugin/generators/preset": { - "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-workspace --preset @nx/plugin`.", - "file": "generated/packages/plugin/generators/preset.json", - "hidden": true, - "name": "preset", - "originalFilePath": "/packages/plugin/src/generators/preset/schema.json", - "path": "/nx-api/plugin/generators/preset", - "type": "generator" - } - }, - "path": "/nx-api/plugin" - }, - "react": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "react", - "packageName": "@nx/react", - "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/react/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/react/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/react/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/react/react-plugin" - } - }, - "root": "/packages/react", - "source": "/packages/react/src", - "executors": { - "/nx-api/react/executors/module-federation-dev-server": { - "description": "Serve a host or remote application.", - "file": "generated/packages/react/executors/module-federation-dev-server.json", - "hidden": false, - "name": "module-federation-dev-server", - "originalFilePath": "/packages/react/src/executors/module-federation-dev-server/schema.json", - "path": "/nx-api/react/executors/module-federation-dev-server", - "type": "executor" - }, - "/nx-api/react/executors/module-federation-ssr-dev-server": { - "description": "Serve a host application along with it's known remotes.", - "file": "generated/packages/react/executors/module-federation-ssr-dev-server.json", - "hidden": false, - "name": "module-federation-ssr-dev-server", - "originalFilePath": "/packages/react/src/executors/module-federation-ssr-dev-server/schema.json", - "path": "/nx-api/react/executors/module-federation-ssr-dev-server", - "type": "executor" - } - }, - "generators": { - "/nx-api/react/generators/init": { - "description": "Initialize the `@nrwl/react` plugin.", - "file": "generated/packages/react/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/react/src/generators/init/schema.json", - "path": "/nx-api/react/generators/init", - "type": "generator" - }, - "/nx-api/react/generators/application": { - "description": "Create a React application.", - "file": "generated/packages/react/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/react/src/generators/application/schema.json", - "path": "/nx-api/react/generators/application", - "type": "generator" - }, - "/nx-api/react/generators/library": { - "description": "Create a React library.", - "file": "generated/packages/react/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/react/src/generators/library/schema.json", - "path": "/nx-api/react/generators/library", - "type": "generator" - }, - "/nx-api/react/generators/component": { - "description": "Create a React component.", - "file": "generated/packages/react/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/react/src/generators/component/schema.json", - "path": "/nx-api/react/generators/component", - "type": "generator" - }, - "/nx-api/react/generators/redux": { - "description": "Create a Redux slice for a project.", - "file": "generated/packages/react/generators/redux.json", - "hidden": false, - "name": "redux", - "originalFilePath": "/packages/react/src/generators/redux/schema.json", - "path": "/nx-api/react/generators/redux", - "type": "generator" - }, - "/nx-api/react/generators/storybook-configuration": { - "description": "Set up storybook for a React app or library.", - "file": "generated/packages/react/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/react/src/generators/storybook-configuration/schema.json", - "path": "/nx-api/react/generators/storybook-configuration", - "type": "generator" - }, - "/nx-api/react/generators/component-story": { - "description": "Generate storybook story for a React component", - "file": "generated/packages/react/generators/component-story.json", - "hidden": false, - "name": "component-story", - "originalFilePath": "/packages/react/src/generators/component-story/schema.json", - "path": "/nx-api/react/generators/component-story", - "type": "generator" - }, - "/nx-api/react/generators/stories": { - "description": "Create stories/specs for all components declared in an app or library.", - "file": "generated/packages/react/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/react/src/generators/stories/schema.json", - "path": "/nx-api/react/generators/stories", - "type": "generator" - }, - "/nx-api/react/generators/component-cypress-spec": { - "description": "Create a Cypress spec for a UI component that has a story.", - "file": "generated/packages/react/generators/component-cypress-spec.json", - "hidden": false, - "name": "component-cypress-spec", - "originalFilePath": "/packages/react/src/generators/component-cypress-spec/schema.json", - "path": "/nx-api/react/generators/component-cypress-spec", - "type": "generator" - }, - "/nx-api/react/generators/hook": { - "description": "Create a hook.", - "file": "generated/packages/react/generators/hook.json", - "hidden": false, - "name": "hook", - "originalFilePath": "/packages/react/src/generators/hook/schema.json", - "path": "/nx-api/react/generators/hook", - "type": "generator" - }, - "/nx-api/react/generators/host": { - "description": "Generate a host react application", - "file": "generated/packages/react/generators/host.json", - "hidden": false, - "name": "host", - "originalFilePath": "/packages/react/src/generators/host/schema.json", - "path": "/nx-api/react/generators/host", - "type": "generator" - }, - "/nx-api/react/generators/remote": { - "description": "Generate a remote react application", - "file": "generated/packages/react/generators/remote.json", - "hidden": false, - "name": "remote", - "originalFilePath": "/packages/react/src/generators/remote/schema.json", - "path": "/nx-api/react/generators/remote", - "type": "generator" - }, - "/nx-api/react/generators/cypress-component-configuration": { - "description": "Setup Cypress component testing for a React project", - "file": "generated/packages/react/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/react/src/generators/cypress-component-configuration/schema.json", - "path": "/nx-api/react/generators/cypress-component-configuration", - "type": "generator" - }, - "/nx-api/react/generators/component-test": { - "description": "Generate a Cypress component test for a React component", - "file": "generated/packages/react/generators/component-test.json", - "hidden": false, - "name": "component-test", - "originalFilePath": "/packages/react/src/generators/component-test/schema.json", - "path": "/nx-api/react/generators/component-test", - "type": "generator" - }, - "/nx-api/react/generators/setup-tailwind": { - "description": "Set up Tailwind configuration for a project.", - "file": "generated/packages/react/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/react/src/generators/setup-tailwind/schema.json", - "path": "/nx-api/react/generators/setup-tailwind", - "type": "generator" - }, - "/nx-api/react/generators/setup-ssr": { - "description": "Set up SSR configuration for a project.", - "file": "generated/packages/react/generators/setup-ssr.json", - "hidden": false, - "name": "setup-ssr", - "originalFilePath": "/packages/react/src/generators/setup-ssr/schema.json", - "path": "/nx-api/react/generators/setup-ssr", - "type": "generator" - }, - "/nx-api/react/generators/federate-module": { - "description": "Federate a module.", - "file": "generated/packages/react/generators/federate-module.json", - "hidden": false, - "name": "federate-module", - "originalFilePath": "/packages/react/src/generators/federate-module/schema.json", - "path": "/nx-api/react/generators/federate-module", - "type": "generator" - } - }, - "path": "/nx-api/react" - }, - "react-native": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "react-native", - "packageName": "@nx/react-native", - "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/react-native/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", - "file": "generated/packages/react-native/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/react-native/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/react-native/react-native-plugin" - } - }, - "root": "/packages/react-native", - "source": "/packages/react-native/src", - "executors": { - "/nx-api/react-native/executors/run-android": { - "description": "Runs Android application.", - "file": "generated/packages/react-native/executors/run-android.json", - "hidden": false, - "name": "run-android", - "originalFilePath": "/packages/react-native/src/executors/run-android/schema.json", - "path": "/nx-api/react-native/executors/run-android", - "type": "executor" - }, - "/nx-api/react-native/executors/run-ios": { - "description": "Runs iOS application.", - "file": "generated/packages/react-native/executors/run-ios.json", - "hidden": false, - "name": "run-ios", - "originalFilePath": "/packages/react-native/src/executors/run-ios/schema.json", - "path": "/nx-api/react-native/executors/run-ios", - "type": "executor" - }, - "/nx-api/react-native/executors/bundle": { - "description": "Builds the JavaScript bundle for offline use.", - "file": "generated/packages/react-native/executors/bundle.json", - "hidden": false, - "name": "bundle", - "originalFilePath": "/packages/react-native/src/executors/bundle/schema.json", - "path": "/nx-api/react-native/executors/bundle", - "type": "executor" - }, - "/nx-api/react-native/executors/build-android": { - "description": "Release Build for Android.", - "file": "generated/packages/react-native/executors/build-android.json", - "hidden": false, - "name": "build-android", - "originalFilePath": "/packages/react-native/src/executors/build-android/schema.json", - "path": "/nx-api/react-native/executors/build-android", - "type": "executor" - }, - "/nx-api/react-native/executors/build-ios": { - "description": "Build iOS app", - "file": "generated/packages/react-native/executors/build-ios.json", - "hidden": false, - "name": "build-ios", - "originalFilePath": "/packages/react-native/src/executors/build-ios/schema.json", - "path": "/nx-api/react-native/executors/build-ios", - "type": "executor" - }, - "/nx-api/react-native/executors/start": { - "description": "Starts the Javascript server that communicates with connected devices.", - "file": "generated/packages/react-native/executors/start.json", - "hidden": false, - "name": "start", - "originalFilePath": "/packages/react-native/src/executors/start/schema.json", - "path": "/nx-api/react-native/executors/start", - "type": "executor" - }, - "/nx-api/react-native/executors/sync-deps": { - "description": "Syncs dependencies to `package.json` (required for autolinking).", - "file": "generated/packages/react-native/executors/sync-deps.json", - "hidden": false, - "name": "sync-deps", - "originalFilePath": "/packages/react-native/src/executors/sync-deps/schema.json", - "path": "/nx-api/react-native/executors/sync-deps", - "type": "executor" - }, - "/nx-api/react-native/executors/ensure-symlink": { - "description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder.", - "file": "generated/packages/react-native/executors/ensure-symlink.json", - "hidden": false, - "name": "ensure-symlink", - "originalFilePath": "/packages/react-native/src/executors/ensure-symlink/schema.json", - "path": "/nx-api/react-native/executors/ensure-symlink", - "type": "executor" - }, - "/nx-api/react-native/executors/storybook": { - "description": "Serve React Native Storybook.", - "file": "generated/packages/react-native/executors/storybook.json", - "hidden": false, - "name": "storybook", - "originalFilePath": "/packages/react-native/src/executors/storybook/schema.json", - "path": "/nx-api/react-native/executors/storybook", - "type": "executor" - }, - "/nx-api/react-native/executors/pod-install": { - "description": "Run `pod install` in the `ios` directory.", - "file": "generated/packages/react-native/executors/pod-install.json", - "hidden": false, - "name": "pod-install", - "originalFilePath": "/packages/react-native/src/executors/pod-install/schema.json", - "path": "/nx-api/react-native/executors/pod-install", - "type": "executor" - }, - "/nx-api/react-native/executors/upgrade": { - "description": "upgrade executor", - "file": "generated/packages/react-native/executors/upgrade.json", - "hidden": false, - "name": "upgrade", - "originalFilePath": "/packages/react-native/src/executors/upgrade/schema.json", - "path": "/nx-api/react-native/executors/upgrade", - "type": "executor" - } - }, - "generators": { - "/nx-api/react-native/generators/init": { - "description": "Initialize the `@nx/react-native` plugin.", - "file": "generated/packages/react-native/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/react-native/src/generators/init/schema.json", - "path": "/nx-api/react-native/generators/init", - "type": "generator" - }, - "/nx-api/react-native/generators/application": { - "description": "Create a React Native application.", - "file": "generated/packages/react-native/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/react-native/src/generators/application/schema.json", - "path": "/nx-api/react-native/generators/application", - "type": "generator" - }, - "/nx-api/react-native/generators/library": { - "description": "Create a React Native library.", - "file": "generated/packages/react-native/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/react-native/src/generators/library/schema.json", - "path": "/nx-api/react-native/generators/library", - "type": "generator" - }, - "/nx-api/react-native/generators/component": { - "description": "Create a React Native component.", - "file": "generated/packages/react-native/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/react-native/src/generators/component/schema.json", - "path": "/nx-api/react-native/generators/component", - "type": "generator" - }, - "/nx-api/react-native/generators/storybook-configuration": { - "description": "Set up Storybook for a React Native application or library.", - "file": "generated/packages/react-native/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/react-native/src/generators/storybook-configuration/schema.json", - "path": "/nx-api/react-native/generators/storybook-configuration", - "type": "generator" - }, - "/nx-api/react-native/generators/component-story": { - "description": "Generate Storybook story for a React Native component.", - "file": "generated/packages/react-native/generators/component-story.json", - "hidden": false, - "name": "component-story", - "originalFilePath": "/packages/react-native/src/generators/component-story/schema.json", - "path": "/nx-api/react-native/generators/component-story", - "type": "generator" - }, - "/nx-api/react-native/generators/stories": { - "description": "Create stories for all components declared in an application or library.", - "file": "generated/packages/react-native/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/react-native/src/generators/stories/schema.json", - "path": "/nx-api/react-native/generators/stories", - "type": "generator" - }, - "/nx-api/react-native/generators/upgrade-native": { - "description": "Destructive command to upgrade native iOS and Android code to latest.", - "file": "generated/packages/react-native/generators/upgrade-native.json", - "hidden": false, - "name": "upgrade-native", - "originalFilePath": "/packages/react-native/src/generators/upgrade-native/schema.json", - "path": "/nx-api/react-native/generators/upgrade-native", - "type": "generator" - }, - "/nx-api/react-native/generators/web-configuration": { - "description": "Set up web configuration for a React Native app", - "file": "generated/packages/react-native/generators/web-configuration.json", - "hidden": false, - "name": "web-configuration", - "originalFilePath": "/packages/react-native/src/generators/web-configuration/schema.json", - "path": "/nx-api/react-native/generators/web-configuration", - "type": "generator" - } - }, - "path": "/nx-api/react-native" - }, - "remix": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "remix", - "packageName": "@nx/remix", - "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/remix/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/remix/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/remix/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/remix/remix-plugin" - } - }, - "root": "/packages/remix", - "source": "/packages/remix/src", - "executors": { - "/nx-api/remix/executors/serve": { - "description": "Serve a Remix application.", - "file": "generated/packages/remix/executors/serve.json", - "hidden": false, - "name": "serve", - "originalFilePath": "/packages/remix/src/executors/serve/schema.json", - "path": "/nx-api/remix/executors/serve", - "type": "executor" - }, - "/nx-api/remix/executors/build": { - "description": "Build a Remix application.", - "file": "generated/packages/remix/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/remix/src/executors/build/schema.json", - "path": "/nx-api/remix/executors/build", - "type": "executor" - } - }, - "generators": { - "/nx-api/remix/generators/preset": { - "description": "Generate a new Remix workspace", - "file": "generated/packages/remix/generators/preset.json", - "hidden": true, - "name": "preset", - "originalFilePath": "/packages/remix/src/generators/preset/schema.json", - "path": "/nx-api/remix/generators/preset", - "type": "generator" - }, - "/nx-api/remix/generators/setup": { - "description": "Setup a Remix in an existing workspace", - "file": "generated/packages/remix/generators/setup.json", - "hidden": true, - "name": "setup", - "originalFilePath": "/packages/remix/src/generators/setup/schema.json", - "path": "/nx-api/remix/generators/setup", - "type": "generator" - }, - "/nx-api/remix/generators/application": { - "description": "Generate a new Remix application", - "file": "generated/packages/remix/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/remix/src/generators/application/schema.json", - "path": "/nx-api/remix/generators/application", - "type": "generator" - }, - "/nx-api/remix/generators/cypress-component-configuration": { - "description": "Generate a Cypress Component Testing configuration for a Remix project", - "file": "generated/packages/remix/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/remix/src/generators/cypress-component-configuration/schema.json", - "path": "/nx-api/remix/generators/cypress-component-configuration", - "type": "generator" - }, - "/nx-api/remix/generators/library": { - "description": "Generate a new library", - "file": "generated/packages/remix/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/remix/src/generators/library/schema.json", - "path": "/nx-api/remix/generators/library", - "type": "generator" - }, - "/nx-api/remix/generators/init": { - "description": "Initialize the `@nx/remix` plugin.", - "file": "generated/packages/remix/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/remix/src/generators/init/schema.json", - "path": "/nx-api/remix/generators/init", - "type": "generator" - }, - "/nx-api/remix/generators/route": { - "description": "Generate a new route", - "file": "generated/packages/remix/generators/route.json", - "hidden": false, - "name": "route", - "originalFilePath": "/packages/remix/src/generators/route/schema.json", - "path": "/nx-api/remix/generators/route", - "type": "generator" - }, - "/nx-api/remix/generators/resource-route": { - "description": "Generate a new resource route", - "file": "generated/packages/remix/generators/resource-route.json", - "hidden": false, - "name": "resource-route", - "originalFilePath": "/packages/remix/src/generators/resource-route/schema.json", - "path": "/nx-api/remix/generators/resource-route", - "type": "generator" - }, - "/nx-api/remix/generators/action": { - "description": "Add an action function to an existing route", - "file": "generated/packages/remix/generators/action.json", - "hidden": false, - "name": "action", - "originalFilePath": "/packages/remix/src/generators/action/schema.json", - "path": "/nx-api/remix/generators/action", - "type": "generator" - }, - "/nx-api/remix/generators/loader": { - "description": "Add a loader function to an existing route", - "file": "generated/packages/remix/generators/loader.json", - "hidden": false, - "name": "loader", - "originalFilePath": "/packages/remix/src/generators/loader/schema.json", - "path": "/nx-api/remix/generators/loader", - "type": "generator" - }, - "/nx-api/remix/generators/style": { - "description": "Generates a new stylesheet and adds it to an existing route", - "file": "generated/packages/remix/generators/style.json", - "hidden": false, - "name": "style", - "originalFilePath": "/packages/remix/src/generators/style/schema.json", - "path": "/nx-api/remix/generators/style", - "type": "generator" - }, - "/nx-api/remix/generators/setup-tailwind": { - "description": "Generates a TailwindCSS configuration for the Remix application", - "file": "generated/packages/remix/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/remix/src/generators/setup-tailwind/schema.json", - "path": "/nx-api/remix/generators/setup-tailwind", - "type": "generator" - }, - "/nx-api/remix/generators/storybook-configuration": { - "description": "Generates a Storybook configuration for a Remix application", - "file": "generated/packages/remix/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/remix/src/generators/storybook-configuration/schema.json", - "path": "/nx-api/remix/generators/storybook-configuration", - "type": "generator" - }, - "/nx-api/remix/generators/meta": { - "description": "Add a meta function to an existing route", - "file": "generated/packages/remix/generators/meta.json", - "hidden": false, - "name": "meta", - "originalFilePath": "/packages/remix/src/generators/meta/schema.json", - "path": "/nx-api/remix/generators/meta", - "type": "generator" - }, - "/nx-api/remix/generators/error-boundary": { - "description": "Add an ErrorBoundary to an existing route", - "file": "generated/packages/remix/generators/error-boundary.json", - "hidden": false, - "name": "error-boundary", - "originalFilePath": "/packages/remix/src/generators/error-boundary/schema.json", - "path": "/nx-api/remix/generators/error-boundary", - "type": "generator" - } - }, - "path": "/nx-api/remix" - }, - "rollup": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "rollup", - "packageName": "@nx/rollup", - "description": "The Nx Plugin for Rollup contains executors and generators that support building applications using Rollup.", - "documents": {}, - "root": "/packages/rollup", - "source": "/packages/rollup/src", - "executors": { - "/nx-api/rollup/executors/rollup": { - "description": "Bundle a package using Rollup.", - "file": "generated/packages/rollup/executors/rollup.json", - "hidden": false, - "name": "rollup", - "originalFilePath": "/packages/rollup/src/executors/rollup/schema.json", - "path": "/nx-api/rollup/executors/rollup", - "type": "executor" - } - }, - "generators": { - "/nx-api/rollup/generators/init": { - "description": "Initialize the `@nrwl/rollup` plugin.", - "file": "generated/packages/rollup/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/rollup/src/generators/init/schema.json", - "path": "/nx-api/rollup/generators/init", - "type": "generator" - }, - "/nx-api/rollup/generators/configuration": { - "description": "Add rollup configuration to a project.", - "file": "generated/packages/rollup/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/rollup/src/generators/configuration/schema.json", - "path": "/nx-api/rollup/generators/configuration", - "type": "generator" - } - }, - "path": "/nx-api/rollup" - }, - "storybook": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "storybook", - "packageName": "@nx/storybook", - "description": "The Nx Plugin for Storybook contains executors and generators for allowing your workspace to use the powerful Storybook integration testing & documenting capabilities.", - "documents": { - "/nx-api/storybook/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace.", - "file": "generated/packages/storybook/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/storybook/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/storybook/plugin-overview" - }, - "/nx-api/storybook/documents/best-practices": { - "id": "best-practices", - "name": "Storybook best practices for making the most out of Nx", - "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", - "file": "generated/packages/storybook/documents/best-practices", - "itemList": [], - "isExternal": false, - "path": "/nx-api/storybook/documents/best-practices", - "tags": [], - "originalFilePath": "shared/packages/storybook/best-practices" - }, - "/nx-api/storybook/documents/storybook-7-setup": { - "id": "storybook-7-setup", - "name": "Storybook 7", - "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", - "file": "generated/packages/storybook/documents/storybook-7-setup", - "itemList": [], - "isExternal": false, - "path": "/nx-api/storybook/documents/storybook-7-setup", - "tags": [], - "originalFilePath": "shared/packages/storybook/storybook-7-setup" - } - }, - "root": "/packages/storybook", - "source": "/packages/storybook/src", - "executors": { - "/nx-api/storybook/executors/storybook": { - "description": "Serve Storybook.", - "file": "generated/packages/storybook/executors/storybook.json", - "hidden": false, - "name": "storybook", - "originalFilePath": "/packages/storybook/src/executors/storybook/schema.json", - "path": "/nx-api/storybook/executors/storybook", - "type": "executor" - }, - "/nx-api/storybook/executors/build": { - "description": "Build Storybook.", - "file": "generated/packages/storybook/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/storybook/src/executors/build-storybook/schema.json", - "path": "/nx-api/storybook/executors/build", - "type": "executor" - } - }, - "generators": { - "/nx-api/storybook/generators/init": { - "description": "Add Storybook configuration to the workspace.", - "file": "generated/packages/storybook/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/storybook/src/generators/init/schema.json", - "path": "/nx-api/storybook/generators/init", - "type": "generator" - }, - "/nx-api/storybook/generators/configuration": { - "description": "Add Storybook configuration to a UI library or an application.", - "file": "generated/packages/storybook/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/storybook/src/generators/configuration/schema.json", - "path": "/nx-api/storybook/generators/configuration", - "type": "generator" - }, - "/nx-api/storybook/generators/cypress-project": { - "description": "Add cypress e2e app to test a UI library that is set up for Storybook.", - "file": "generated/packages/storybook/generators/cypress-project.json", - "hidden": false, - "name": "cypress-project", - "originalFilePath": "/packages/storybook/src/generators/cypress-project/schema.json", - "path": "/nx-api/storybook/generators/cypress-project", - "type": "generator" - }, - "/nx-api/storybook/generators/migrate-7": { - "description": "Migrate to Storybook version 7.", - "file": "generated/packages/storybook/generators/migrate-7.json", - "hidden": false, - "name": "migrate-7", - "originalFilePath": "/packages/storybook/src/generators/migrate-7/schema.json", - "path": "/nx-api/storybook/generators/migrate-7", - "type": "generator" - } - }, - "path": "/nx-api/storybook" - }, - "tao": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "tao", - "packageName": "@nrwl/tao", - "description": "CLI for generating code and running commands", - "documents": {}, - "root": "/packages/tao", - "source": "/packages/tao/src", - "executors": {}, - "generators": {}, - "path": "/nx-api/tao" - }, - "vite": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "vite", - "packageName": "@nx/vite", - "description": "The Nx Plugin for building and testing applications using Vite", - "documents": { - "/nx-api/vite/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace.", - "file": "generated/packages/vite/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/vite/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/vite/vite-plugin" - } - }, - "root": "/packages/vite", - "source": "/packages/vite/src", - "executors": { - "/nx-api/vite/executors/dev-server": { - "description": "Vite dev server.", - "file": "generated/packages/vite/executors/dev-server.json", - "hidden": false, - "name": "dev-server", - "originalFilePath": "/packages/vite/src/executors/dev-server/schema.json", - "path": "/nx-api/vite/executors/dev-server", - "type": "executor" - }, - "/nx-api/vite/executors/build": { - "description": "Build with Vite.", - "file": "generated/packages/vite/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/vite/src/executors/build/schema.json", - "path": "/nx-api/vite/executors/build", - "type": "executor" - }, - "/nx-api/vite/executors/test": { - "description": "Test with Vitest", - "file": "generated/packages/vite/executors/test.json", - "hidden": false, - "name": "test", - "originalFilePath": "/packages/vite/src/executors/test/schema.json", - "path": "/nx-api/vite/executors/test", - "type": "executor" - }, - "/nx-api/vite/executors/preview-server": { - "description": "Vite preview server", - "file": "generated/packages/vite/executors/preview-server.json", - "hidden": false, - "name": "preview-server", - "originalFilePath": "/packages/vite/src/executors/preview-server/schema.json", - "path": "/nx-api/vite/executors/preview-server", - "type": "executor" - } - }, - "generators": { - "/nx-api/vite/generators/init": { - "description": "Initialize Vite in the workspace.", - "file": "generated/packages/vite/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/vite/src/generators/init/schema.json", - "path": "/nx-api/vite/generators/init", - "type": "generator" - }, - "/nx-api/vite/generators/configuration": { - "description": "Add Vite configuration to an application.", - "file": "generated/packages/vite/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/vite/src/generators/configuration/schema.json", - "path": "/nx-api/vite/generators/configuration", - "type": "generator" - }, - "/nx-api/vite/generators/vitest": { - "description": "Generate a vitest configuration", - "file": "generated/packages/vite/generators/vitest.json", - "hidden": false, - "name": "vitest", - "originalFilePath": "/packages/vite/src/generators/vitest/schema.json", - "path": "/nx-api/vite/generators/vitest", - "type": "generator" - } - }, - "path": "/nx-api/vite" - }, - "vue": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "vue", - "packageName": "@nx/vue", - "description": "The Vue plugin for Nx contains executors and generators for managing Vue applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/vue/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace.", - "file": "generated/packages/vue/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/vue/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/vue/vue-plugin" - } - }, - "root": "/packages/vue", - "source": "/packages/vue/src", - "executors": {}, - "generators": { - "/nx-api/vue/generators/init": { - "description": "Initialize the `@nx/vue` plugin.", - "file": "generated/packages/vue/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/vue/src/generators/init/schema.json", - "path": "/nx-api/vue/generators/init", - "type": "generator" - }, - "/nx-api/vue/generators/application": { - "description": "Create a Vue application.", - "file": "generated/packages/vue/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/vue/src/generators/application/schema.json", - "path": "/nx-api/vue/generators/application", - "type": "generator" - }, - "/nx-api/vue/generators/library": { - "description": "Create a Vue library.", - "file": "generated/packages/vue/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/vue/src/generators/library/schema.json", - "path": "/nx-api/vue/generators/library", - "type": "generator" - }, - "/nx-api/vue/generators/component": { - "description": "Create a Vue component.", - "file": "generated/packages/vue/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/vue/src/generators/component/schema.json", - "path": "/nx-api/vue/generators/component", - "type": "generator" - }, - "/nx-api/vue/generators/setup-tailwind": { - "description": "Set up Tailwind configuration for a project.", - "file": "generated/packages/vue/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/vue/src/generators/setup-tailwind/schema.json", - "path": "/nx-api/vue/generators/setup-tailwind", - "type": "generator" - }, - "/nx-api/vue/generators/storybook-configuration": { - "description": "Set up storybook for a Vue app or library.", - "file": "generated/packages/vue/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/vue/src/generators/storybook-configuration/schema.json", - "path": "/nx-api/vue/generators/storybook-configuration", - "type": "generator" - }, - "/nx-api/vue/generators/stories": { - "description": "Create stories for all components declared in an app or library.", - "file": "generated/packages/vue/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/vue/src/generators/stories/schema.json", - "path": "/nx-api/vue/generators/stories", - "type": "generator" - } - }, - "path": "/nx-api/vue" - }, - "web": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "web", - "packageName": "@nx/web", - "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", - "documents": { - "/nx-api/web/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/web/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/web/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/web/web-plugin" - } - }, - "root": "/packages/web", - "source": "/packages/web/src", - "executors": { - "/nx-api/web/executors/file-server": { - "description": "Serve a web application from a folder.", - "file": "generated/packages/web/executors/file-server.json", - "hidden": false, - "name": "file-server", - "originalFilePath": "/packages/web/src/executors/file-server/schema.json", - "path": "/nx-api/web/executors/file-server", - "type": "executor" - } - }, - "generators": { - "/nx-api/web/generators/init": { - "description": "Add `@nrwl/web` to a project.", - "file": "generated/packages/web/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/web/src/generators/init/schema.json", - "path": "/nx-api/web/generators/init", - "type": "generator" - }, - "/nx-api/web/generators/application": { - "description": "Create an web application.", - "file": "generated/packages/web/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/web/src/generators/application/schema.json", - "path": "/nx-api/web/generators/application", - "type": "generator" - }, - "/nx-api/web/generators/static-config": { - "description": "Add a new static-serve target to a project.", - "file": "generated/packages/web/generators/static-config.json", - "hidden": false, - "name": "static-config", - "originalFilePath": "/packages/web/src/generators/static-serve/schema.json", - "path": "/nx-api/web/generators/static-config", - "type": "generator" - } - }, - "path": "/nx-api/web" - }, - "webpack": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "webpack", - "packageName": "@nx/webpack", - "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", - "documents": { - "/nx-api/webpack/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", - "file": "generated/packages/webpack/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/webpack/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/webpack/plugin-overview" - } - }, - "root": "/packages/webpack", - "source": "/packages/webpack/src", - "executors": { - "/nx-api/webpack/executors/webpack": { - "description": "Run webpack build.", - "file": "generated/packages/webpack/executors/webpack.json", - "hidden": false, - "name": "webpack", - "originalFilePath": "/packages/webpack/src/executors/webpack/schema.json", - "path": "/nx-api/webpack/executors/webpack", - "type": "executor" - }, - "/nx-api/webpack/executors/dev-server": { - "description": "Serve a web application.", - "file": "generated/packages/webpack/executors/dev-server.json", - "hidden": false, - "name": "dev-server", - "originalFilePath": "/packages/webpack/src/executors/dev-server/schema.json", - "path": "/nx-api/webpack/executors/dev-server", - "type": "executor" - }, - "/nx-api/webpack/executors/ssr-dev-server": { - "description": "Serve a SSR application.", - "file": "generated/packages/webpack/executors/ssr-dev-server.json", - "hidden": false, - "name": "ssr-dev-server", - "originalFilePath": "/packages/webpack/src/executors/ssr-dev-server/schema.json", - "path": "/nx-api/webpack/executors/ssr-dev-server", - "type": "executor" - } - }, - "generators": { - "/nx-api/webpack/generators/init": { - "description": "Initialize the `@nrwl/webpack` plugin.", - "file": "generated/packages/webpack/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/webpack/src/generators/init/schema.json", - "path": "/nx-api/webpack/generators/init", - "type": "generator" - }, - "/nx-api/webpack/generators/configuration": { - "description": "Add webpack configuration to a project.", - "file": "generated/packages/webpack/generators/configuration.json", - "hidden": true, - "name": "configuration", - "originalFilePath": "/packages/webpack/src/generators/configuration/schema.json", - "path": "/nx-api/webpack/generators/configuration", - "type": "generator" - } - }, - "path": "/nx-api/webpack" - }, - "workspace": { - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "workspace", - "packageName": "@nx/workspace", - "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", - "documents": { - "/nx-api/workspace/documents/overview": { - "id": "overview", - "name": "Overview", - "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", - "file": "generated/packages/workspace/documents/overview", - "itemList": [], - "isExternal": false, - "path": "/nx-api/workspace/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/workspace/workspace-plugin" - }, - "/nx-api/workspace/documents/nx-nodejs-typescript-version-matrix": { - "id": "nx-nodejs-typescript-version-matrix", - "name": "Nx, NodeJS and Typescript Versions", - "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", - "file": "generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix", - "itemList": [], - "isExternal": false, - "path": "/nx-api/workspace/documents/nx-nodejs-typescript-version-matrix", - "tags": [], - "originalFilePath": "shared/packages/workspace/nx-compatibility-matrix" - } - }, - "root": "/packages/workspace", - "source": "/packages/workspace/src", - "executors": { - "/nx-api/workspace/executors/counter": { - "description": "A dummy executor useful for E2E tests.", - "file": "generated/packages/workspace/executors/counter.json", - "hidden": true, - "name": "counter", - "originalFilePath": "/packages/workspace/src/executors/counter/schema.json", - "path": "/nx-api/workspace/executors/counter", - "type": "executor" - } - }, - "generators": { - "/nx-api/workspace/generators/preset": { - "description": "Create application in an empty workspace.", - "file": "generated/packages/workspace/generators/preset.json", - "hidden": true, - "name": "preset", - "originalFilePath": "/packages/workspace/src/generators/preset/schema.json", - "path": "/nx-api/workspace/generators/preset", - "type": "generator" - }, - "/nx-api/workspace/generators/move": { - "description": "Move an application or library to another folder.", - "file": "generated/packages/workspace/generators/move.json", - "hidden": false, - "name": "move", - "originalFilePath": "/packages/workspace/src/generators/move/schema.json", - "path": "/nx-api/workspace/generators/move", - "type": "generator" - }, - "/nx-api/workspace/generators/remove": { - "description": "Remove an application or library.", - "file": "generated/packages/workspace/generators/remove.json", - "hidden": false, - "name": "remove", - "originalFilePath": "/packages/workspace/src/generators/remove/schema.json", - "path": "/nx-api/workspace/generators/remove", - "type": "generator" - }, - "/nx-api/workspace/generators/convert-to-monorepo": { - "description": "Convert a Nx project to a monorepo.", - "file": "generated/packages/workspace/generators/convert-to-monorepo.json", - "hidden": false, - "name": "convert-to-monorepo", - "originalFilePath": "/packages/workspace/src/generators/convert-to-monorepo/schema.json", - "path": "/nx-api/workspace/generators/convert-to-monorepo", - "type": "generator" - }, - "/nx-api/workspace/generators/new": { - "description": "Create a workspace.", - "file": "generated/packages/workspace/generators/new.json", - "hidden": true, - "name": "new", - "originalFilePath": "/packages/workspace/src/generators/new/schema.json", - "path": "/nx-api/workspace/generators/new", - "type": "generator" - }, - "/nx-api/workspace/generators/run-commands": { - "description": "Generates a target to run any command in the terminal.", - "file": "generated/packages/workspace/generators/run-commands.json", - "hidden": false, - "name": "run-commands", - "originalFilePath": "/packages/workspace/src/generators/run-commands/schema.json", - "path": "/nx-api/workspace/generators/run-commands", - "type": "generator" - }, - "/nx-api/workspace/generators/fix-configuration": { - "description": "Fixes projects configuration", - "file": "generated/packages/workspace/generators/fix-configuration.json", - "hidden": false, - "name": "fix-configuration", - "originalFilePath": "/packages/workspace/src/generators/convert-to-nx-project/schema.json", - "path": "/nx-api/workspace/generators/fix-configuration", - "type": "generator" - }, - "/nx-api/workspace/generators/npm-package": { - "description": "Create a minimal NPM package.", - "file": "generated/packages/workspace/generators/npm-package.json", - "hidden": false, - "name": "npm-package", - "originalFilePath": "/packages/workspace/src/generators/npm-package/schema.json", - "path": "/nx-api/workspace/generators/npm-package", - "type": "generator" - }, - "/nx-api/workspace/generators/ci-workflow": { - "description": "Generate a CI workflow.", - "file": "generated/packages/workspace/generators/ci-workflow.json", - "hidden": false, - "name": "ci-workflow", - "originalFilePath": "/packages/workspace/src/generators/ci-workflow/schema.json", - "path": "/nx-api/workspace/generators/ci-workflow", - "type": "generator" - } - }, - "path": "/nx-api/workspace" - } -} diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json deleted file mode 100644 index e30c388523d89..0000000000000 --- a/docs/generated/manifests/nx.json +++ /dev/null @@ -1,7381 +0,0 @@ -{ - "/getting-started": { - "id": "getting-started", - "name": "Getting Started", - "description": "Get started with basic information, concepts and tutorials.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "intro", - "name": "Intro to Nx", - "description": "", - "mediaImage": "", - "file": "shared/getting-started/intro", - "itemList": [], - "isExternal": false, - "path": "/getting-started/intro", - "tags": [] - }, - { - "id": "installation", - "name": "Installation", - "description": "", - "mediaImage": "", - "file": "shared/getting-started/installation", - "itemList": [], - "isExternal": false, - "path": "/getting-started/installation", - "tags": [] - }, - { - "id": "why-nx", - "name": "Why Nx?", - "description": "", - "mediaImage": "", - "file": "shared/getting-started/why-nx", - "itemList": [], - "isExternal": false, - "path": "/getting-started/why-nx", - "tags": [] - }, - { - "id": "tutorials", - "name": "Tutorials", - "description": "Get started with basic information, concepts and tutorials.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "npm-workspaces-tutorial", - "name": "NPM Workspaces Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/tutorials/npm-workspaces", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/npm-workspaces-tutorial", - "tags": [] - }, - { - "id": "integrated-repo-tutorial", - "name": "Integrated Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/npm-tutorial/integrated", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/integrated-repo-tutorial", - "tags": [] - }, - { - "id": "react-standalone-tutorial", - "name": "React Standalone", - "description": "", - "mediaImage": "", - "file": "shared/react-standalone-tutorial/react-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/react-standalone-tutorial", - "tags": [] - }, - { - "id": "react-monorepo-tutorial", - "name": "React Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/react-tutorial/react-monorepo", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/react-monorepo-tutorial", - "tags": [] - }, - { - "id": "angular-standalone-tutorial", - "name": "Angular Standalone", - "description": "", - "mediaImage": "", - "file": "shared/angular-standalone-tutorial/angular-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/angular-standalone-tutorial", - "tags": [] - }, - { - "id": "angular-monorepo-tutorial", - "name": "Angular Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/angular-tutorial/angular-monorepo", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/angular-monorepo-tutorial", - "tags": [] - }, - { - "id": "vue-standalone-tutorial", - "name": "Vue Standalone", - "description": "", - "mediaImage": "", - "file": "shared/vue-standalone-tutorial/vue-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/vue-standalone-tutorial", - "tags": [] - } - ], - "isExternal": false, - "path": "/getting-started/tutorials", - "tags": [] - } - ], - "isExternal": false, - "path": "/getting-started", - "tags": [] - }, - "/getting-started/intro": { - "id": "intro", - "name": "Intro to Nx", - "description": "", - "mediaImage": "", - "file": "shared/getting-started/intro", - "itemList": [], - "isExternal": false, - "path": "/getting-started/intro", - "tags": [] - }, - "/getting-started/installation": { - "id": "installation", - "name": "Installation", - "description": "", - "mediaImage": "", - "file": "shared/getting-started/installation", - "itemList": [], - "isExternal": false, - "path": "/getting-started/installation", - "tags": [] - }, - "/getting-started/why-nx": { - "id": "why-nx", - "name": "Why Nx?", - "description": "", - "mediaImage": "", - "file": "shared/getting-started/why-nx", - "itemList": [], - "isExternal": false, - "path": "/getting-started/why-nx", - "tags": [] - }, - "/getting-started/tutorials": { - "id": "tutorials", - "name": "Tutorials", - "description": "Get started with basic information, concepts and tutorials.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "npm-workspaces-tutorial", - "name": "NPM Workspaces Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/tutorials/npm-workspaces", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/npm-workspaces-tutorial", - "tags": [] - }, - { - "id": "integrated-repo-tutorial", - "name": "Integrated Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/npm-tutorial/integrated", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/integrated-repo-tutorial", - "tags": [] - }, - { - "id": "react-standalone-tutorial", - "name": "React Standalone", - "description": "", - "mediaImage": "", - "file": "shared/react-standalone-tutorial/react-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/react-standalone-tutorial", - "tags": [] - }, - { - "id": "react-monorepo-tutorial", - "name": "React Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/react-tutorial/react-monorepo", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/react-monorepo-tutorial", - "tags": [] - }, - { - "id": "angular-standalone-tutorial", - "name": "Angular Standalone", - "description": "", - "mediaImage": "", - "file": "shared/angular-standalone-tutorial/angular-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/angular-standalone-tutorial", - "tags": [] - }, - { - "id": "angular-monorepo-tutorial", - "name": "Angular Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/angular-tutorial/angular-monorepo", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/angular-monorepo-tutorial", - "tags": [] - }, - { - "id": "vue-standalone-tutorial", - "name": "Vue Standalone", - "description": "", - "mediaImage": "", - "file": "shared/vue-standalone-tutorial/vue-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/vue-standalone-tutorial", - "tags": [] - } - ], - "isExternal": false, - "path": "/getting-started/tutorials", - "tags": [] - }, - "/getting-started/tutorials/npm-workspaces-tutorial": { - "id": "npm-workspaces-tutorial", - "name": "NPM Workspaces Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/tutorials/npm-workspaces", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/npm-workspaces-tutorial", - "tags": [] - }, - "/getting-started/tutorials/integrated-repo-tutorial": { - "id": "integrated-repo-tutorial", - "name": "Integrated Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/npm-tutorial/integrated", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/integrated-repo-tutorial", - "tags": [] - }, - "/getting-started/tutorials/react-standalone-tutorial": { - "id": "react-standalone-tutorial", - "name": "React Standalone", - "description": "", - "mediaImage": "", - "file": "shared/react-standalone-tutorial/react-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/react-standalone-tutorial", - "tags": [] - }, - "/getting-started/tutorials/react-monorepo-tutorial": { - "id": "react-monorepo-tutorial", - "name": "React Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/react-tutorial/react-monorepo", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/react-monorepo-tutorial", - "tags": [] - }, - "/getting-started/tutorials/angular-standalone-tutorial": { - "id": "angular-standalone-tutorial", - "name": "Angular Standalone", - "description": "", - "mediaImage": "", - "file": "shared/angular-standalone-tutorial/angular-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/angular-standalone-tutorial", - "tags": [] - }, - "/getting-started/tutorials/angular-monorepo-tutorial": { - "id": "angular-monorepo-tutorial", - "name": "Angular Monorepo", - "description": "", - "mediaImage": "", - "file": "shared/angular-tutorial/angular-monorepo", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/angular-monorepo-tutorial", - "tags": [] - }, - "/getting-started/tutorials/vue-standalone-tutorial": { - "id": "vue-standalone-tutorial", - "name": "Vue Standalone", - "description": "", - "mediaImage": "", - "file": "shared/vue-standalone-tutorial/vue-standalone", - "itemList": [], - "isExternal": false, - "path": "/getting-started/tutorials/vue-standalone-tutorial", - "tags": [] - }, - "/core-tutorial": { - "id": "core-tutorial", - "name": "Core Tutorial", - "description": "Learn to use Nx with this core tutorial where you will learn about all its main feature with a real project.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "01-create-blog", - "name": "1 - Create Blog", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/01-create-blog", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/01-create-blog", - "tags": [] - }, - { - "id": "02-create-cli", - "name": "2 - Create CLI", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/02-create-cli", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/02-create-cli", - "tags": [] - }, - { - "id": "03-share-assets", - "name": "3 - Share Assets", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/03-share-assets", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/03-share-assets", - "tags": [] - }, - { - "id": "04-build-affected-projects", - "name": "4 - Build Affected Projects", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/04-build-affected-projects", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/04-build-affected-projects", - "tags": [] - }, - { - "id": "05-auto-detect-dependencies", - "name": "5 - Automatically Detect Dependencies", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/05-auto-detect-dependencies", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/05-auto-detect-dependencies", - "tags": [] - }, - { - "id": "06-summary", - "name": "6 - Summary", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/06-summary", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/06-summary", - "tags": [] - } - ], - "isExternal": false, - "path": "/core-tutorial", - "tags": [] - }, - "/core-tutorial/01-create-blog": { - "id": "01-create-blog", - "name": "1 - Create Blog", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/01-create-blog", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/01-create-blog", - "tags": [] - }, - "/core-tutorial/02-create-cli": { - "id": "02-create-cli", - "name": "2 - Create CLI", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/02-create-cli", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/02-create-cli", - "tags": [] - }, - "/core-tutorial/03-share-assets": { - "id": "03-share-assets", - "name": "3 - Share Assets", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/03-share-assets", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/03-share-assets", - "tags": [] - }, - "/core-tutorial/04-build-affected-projects": { - "id": "04-build-affected-projects", - "name": "4 - Build Affected Projects", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/04-build-affected-projects", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/04-build-affected-projects", - "tags": [] - }, - "/core-tutorial/05-auto-detect-dependencies": { - "id": "05-auto-detect-dependencies", - "name": "5 - Automatically Detect Dependencies", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/05-auto-detect-dependencies", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/05-auto-detect-dependencies", - "tags": [] - }, - "/core-tutorial/06-summary": { - "id": "06-summary", - "name": "6 - Summary", - "description": "", - "mediaImage": "", - "file": "shared/core-tutorial/06-summary", - "itemList": [], - "isExternal": false, - "path": "/core-tutorial/06-summary", - "tags": [] - }, - "/features": { - "id": "features", - "name": "Features", - "description": "Learn the core features of Nx with in depth guides.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "run-tasks", - "name": "Run Tasks", - "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", - "mediaImage": "", - "file": "shared/features/run-tasks", - "itemList": [], - "isExternal": false, - "path": "/features/run-tasks", - "tags": ["run-tasks", "cache-task-results"] - }, - { - "id": "cache-task-results", - "name": "Cache Task Results", - "description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.", - "mediaImage": "", - "file": "shared/features/cache-task-results", - "itemList": [], - "isExternal": false, - "path": "/features/cache-task-results", - "tags": ["cache-task-results"] - }, - { - "id": "explore-graph", - "name": "Explore your Workspace", - "description": "", - "mediaImage": "", - "file": "shared/features/explore-graph", - "itemList": [], - "isExternal": false, - "path": "/features/explore-graph", - "tags": ["explore-graph"] - }, - { - "id": "generate-code", - "name": "Generate Code", - "description": "", - "mediaImage": "", - "file": "shared/features/generate-code", - "itemList": [], - "isExternal": false, - "path": "/features/generate-code", - "tags": ["generate-code"] - }, - { - "id": "automate-updating-dependencies", - "name": "Automate Updating Dependencies", - "description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.", - "mediaImage": "", - "file": "shared/features/automate-updating-dependencies", - "itemList": [], - "isExternal": false, - "path": "/features/automate-updating-dependencies", - "tags": ["automate-updating-dependencies"] - }, - { - "id": "enforce-module-boundaries", - "name": "Enforce Module Boundaries", - "description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.", - "mediaImage": "", - "file": "shared/features/enforce-module-boundaries", - "itemList": [], - "isExternal": false, - "path": "/features/enforce-module-boundaries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "integrate-with-editors", - "name": "Integrate with Editors", - "description": "Learn about Nx Console, an extension for VS Code and WebStorm.", - "mediaImage": "", - "file": "shared/features/integrate-with-editors", - "itemList": [], - "isExternal": false, - "path": "/features/integrate-with-editors", - "tags": ["integrate-with-editors"] - }, - { - "id": "manage-releases", - "name": "Manage Releases", - "description": "Learn how Nx provides tools to help you manage releasing your projects.", - "mediaImage": "", - "file": "shared/features/manage-releases", - "itemList": [], - "isExternal": false, - "path": "/features/manage-releases", - "tags": ["manage-releases"] - }, - { - "id": "ci-features", - "name": "CI Features", - "description": "Features of Nx and Nx Cloud that improve CI", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "affected", - "name": "Run Only Tasks Affected by a PR", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/affected", - "tags": [] - }, - { - "id": "remote-cache", - "name": "Use Remote Caching (Nx Replay)", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/remote-cache", - "tags": [] - }, - { - "id": "distribute-task-execution", - "name": "Distribute Task Execution (Nx Agents)", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/distribute-task-execution", - "tags": [] - }, - { - "id": "dynamic-agents", - "name": "Dynamically Allocate Agents", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/dynamic-agents", - "tags": [] - }, - { - "id": "split-e2e-tasks", - "name": "Automatically Split E2E Tasks", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/split-e2e-tasks", - "tags": [] - }, - { - "id": "flaky-tasks", - "name": "Identify and Re-run Flaky Tasks", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/flaky-tasks", - "tags": [] - }, - { - "id": "on-premise", - "name": "Set up Nx Cloud On-Premise", - "description": "Set up Nx Cloud on machines that you control", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/on-premise", - "tags": [] - } - ], - "isExternal": false, - "path": "/features/ci-features", - "tags": [] - } - ], - "isExternal": false, - "path": "/features", - "tags": [] - }, - "/features/run-tasks": { - "id": "run-tasks", - "name": "Run Tasks", - "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", - "mediaImage": "", - "file": "shared/features/run-tasks", - "itemList": [], - "isExternal": false, - "path": "/features/run-tasks", - "tags": ["run-tasks", "cache-task-results"] - }, - "/features/cache-task-results": { - "id": "cache-task-results", - "name": "Cache Task Results", - "description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.", - "mediaImage": "", - "file": "shared/features/cache-task-results", - "itemList": [], - "isExternal": false, - "path": "/features/cache-task-results", - "tags": ["cache-task-results"] - }, - "/features/explore-graph": { - "id": "explore-graph", - "name": "Explore your Workspace", - "description": "", - "mediaImage": "", - "file": "shared/features/explore-graph", - "itemList": [], - "isExternal": false, - "path": "/features/explore-graph", - "tags": ["explore-graph"] - }, - "/features/generate-code": { - "id": "generate-code", - "name": "Generate Code", - "description": "", - "mediaImage": "", - "file": "shared/features/generate-code", - "itemList": [], - "isExternal": false, - "path": "/features/generate-code", - "tags": ["generate-code"] - }, - "/features/automate-updating-dependencies": { - "id": "automate-updating-dependencies", - "name": "Automate Updating Dependencies", - "description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.", - "mediaImage": "", - "file": "shared/features/automate-updating-dependencies", - "itemList": [], - "isExternal": false, - "path": "/features/automate-updating-dependencies", - "tags": ["automate-updating-dependencies"] - }, - "/features/enforce-module-boundaries": { - "id": "enforce-module-boundaries", - "name": "Enforce Module Boundaries", - "description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.", - "mediaImage": "", - "file": "shared/features/enforce-module-boundaries", - "itemList": [], - "isExternal": false, - "path": "/features/enforce-module-boundaries", - "tags": ["enforce-module-boundaries"] - }, - "/features/integrate-with-editors": { - "id": "integrate-with-editors", - "name": "Integrate with Editors", - "description": "Learn about Nx Console, an extension for VS Code and WebStorm.", - "mediaImage": "", - "file": "shared/features/integrate-with-editors", - "itemList": [], - "isExternal": false, - "path": "/features/integrate-with-editors", - "tags": ["integrate-with-editors"] - }, - "/features/manage-releases": { - "id": "manage-releases", - "name": "Manage Releases", - "description": "Learn how Nx provides tools to help you manage releasing your projects.", - "mediaImage": "", - "file": "shared/features/manage-releases", - "itemList": [], - "isExternal": false, - "path": "/features/manage-releases", - "tags": ["manage-releases"] - }, - "/features/ci-features": { - "id": "ci-features", - "name": "CI Features", - "description": "Features of Nx and Nx Cloud that improve CI", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "affected", - "name": "Run Only Tasks Affected by a PR", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/affected", - "tags": [] - }, - { - "id": "remote-cache", - "name": "Use Remote Caching (Nx Replay)", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/remote-cache", - "tags": [] - }, - { - "id": "distribute-task-execution", - "name": "Distribute Task Execution (Nx Agents)", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/distribute-task-execution", - "tags": [] - }, - { - "id": "dynamic-agents", - "name": "Dynamically Allocate Agents", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/dynamic-agents", - "tags": [] - }, - { - "id": "split-e2e-tasks", - "name": "Automatically Split E2E Tasks", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/split-e2e-tasks", - "tags": [] - }, - { - "id": "flaky-tasks", - "name": "Identify and Re-run Flaky Tasks", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/flaky-tasks", - "tags": [] - }, - { - "id": "on-premise", - "name": "Set up Nx Cloud On-Premise", - "description": "Set up Nx Cloud on machines that you control", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/on-premise", - "tags": [] - } - ], - "isExternal": false, - "path": "/features/ci-features", - "tags": [] - }, - "/ci/features/affected": { - "id": "affected", - "name": "Run Only Tasks Affected by a PR", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/affected", - "tags": [] - }, - "/ci/features/remote-cache": { - "id": "remote-cache", - "name": "Use Remote Caching (Nx Replay)", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/remote-cache", - "tags": [] - }, - "/ci/features/distribute-task-execution": { - "id": "distribute-task-execution", - "name": "Distribute Task Execution (Nx Agents)", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/distribute-task-execution", - "tags": [] - }, - "/ci/features/dynamic-agents": { - "id": "dynamic-agents", - "name": "Dynamically Allocate Agents", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/dynamic-agents", - "tags": [] - }, - "/ci/features/split-e2e-tasks": { - "id": "split-e2e-tasks", - "name": "Automatically Split E2E Tasks", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/split-e2e-tasks", - "tags": [] - }, - "/ci/features/flaky-tasks": { - "id": "flaky-tasks", - "name": "Identify and Re-run Flaky Tasks", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/flaky-tasks", - "tags": [] - }, - "/ci/features/on-premise": { - "id": "on-premise", - "name": "Set up Nx Cloud On-Premise", - "description": "Set up Nx Cloud on machines that you control", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/features/on-premise", - "tags": [] - }, - "/concepts": { - "id": "concepts", - "name": "Concepts", - "description": "Learn about all the different concepts Nx uses to manage your tasks and enhance your productivity.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "mental-model", - "name": "Mental Model", - "description": "", - "mediaImage": "", - "file": "shared/mental-model", - "itemList": [], - "isExternal": false, - "path": "/concepts/mental-model", - "tags": ["intro"] - }, - { - "id": "how-caching-works", - "name": "How Caching Works", - "description": "", - "mediaImage": "", - "file": "shared/concepts/how-caching-works", - "itemList": [], - "isExternal": false, - "path": "/concepts/how-caching-works", - "tags": ["cache-task-results"] - }, - { - "id": "task-pipeline-configuration", - "name": "What is a Task Pipeline", - "description": "", - "mediaImage": "", - "file": "shared/concepts/task-pipeline-configuration", - "itemList": [], - "isExternal": false, - "path": "/concepts/task-pipeline-configuration", - "tags": ["run-tasks"] - }, - { - "id": "nx-plugins", - "name": "What Are Nx Plugins", - "description": "", - "mediaImage": "", - "file": "shared/concepts/nx-plugins", - "itemList": [], - "isExternal": false, - "path": "/concepts/nx-plugins", - "tags": ["generate-code", "create-your-own-plugin"] - }, - { - "id": "inferred-tasks", - "name": "Inferred Tasks", - "description": "", - "mediaImage": "", - "file": "shared/concepts/inferred-tasks", - "itemList": [], - "isExternal": false, - "path": "/concepts/inferred-tasks", - "tags": ["inferred-tasks"] - }, - { - "id": "types-of-configuration", - "name": "Types of Configuration", - "description": "", - "mediaImage": "", - "file": "shared/concepts/types-of-configuration", - "itemList": [], - "isExternal": false, - "path": "/concepts/types-of-configuration", - "tags": [] - }, - { - "id": "executors-and-configurations", - "name": "Executors and Configurations", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/executors-and-configurations", - "itemList": [], - "isExternal": false, - "path": "/concepts/executors-and-configurations", - "tags": ["run-tasks"] - }, - { - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "description": "", - "mediaImage": "", - "file": "shared/concepts/integrated-vs-package-based", - "itemList": [], - "isExternal": false, - "path": "/concepts/integrated-vs-package-based", - "tags": ["intro", "repository-types"] - }, - { - "id": "module-federation", - "name": "Module Federation", - "description": "Understand more about Module Federation with NX", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "module-federation-and-nx", - "name": "Module Federation and Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/module-federation-and-nx", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/module-federation-and-nx", - "tags": ["module-federation", "angular", "react"] - }, - { - "id": "faster-builds-with-module-federation", - "name": "Faster Builds with Module Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/faster-builds", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/faster-builds-with-module-federation", - "tags": ["module-federation", "angular", "react"] - }, - { - "id": "micro-frontend-architecture", - "name": "Micro Frontend Architecture", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/micro-frontend-architecture", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/micro-frontend-architecture", - "tags": [] - }, - { - "id": "manage-library-versions-with-module-federation", - "name": "Manage Library Versions with Module Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/manage-library-versions-with-module-federation", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/manage-library-versions-with-module-federation", - "tags": [] - } - ], - "isExternal": false, - "path": "/concepts/module-federation", - "tags": [] - }, - { - "id": "more-concepts", - "name": "More Concepts", - "description": "Get deeper into how Nx works and its different aspects.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "incremental-builds", - "name": "Incremental Builds", - "description": "", - "mediaImage": "", - "file": "shared/incremental-builds", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/incremental-builds", - "tags": [] - }, - { - "id": "turbo-and-nx", - "name": "Nx and Turborepo", - "description": "", - "mediaImage": "./shared/guides/nx-media-monorepo.jpg", - "file": "shared/guides/turbo-and-nx", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/turbo-and-nx", - "tags": [] - }, - { - "id": "why-monorepos", - "name": "Monorepos", - "description": "", - "mediaImage": "", - "file": "shared/guides/why-monorepos", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/why-monorepos", - "tags": [] - }, - { - "id": "dependency-management", - "name": "Dependency Management", - "description": "", - "mediaImage": "", - "file": "shared/concepts/dependency-management", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/dependency-management", - "tags": [] - }, - { - "id": "code-sharing", - "name": "Code Sharing", - "description": "", - "mediaImage": "", - "file": "shared/concepts/code-sharing", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/code-sharing", - "tags": [] - }, - { - "id": "monorepo-nx-enterprise", - "name": "Using Nx at Enterprises", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-nx-enterprise", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "tags": ["enforce-module-boundaries", "generate-code"] - }, - { - "id": "nx-daemon", - "name": "Nx Daemon", - "description": "", - "mediaImage": "", - "file": "shared/daemon", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-daemon", - "tags": [] - }, - { - "id": "nx-and-angular", - "name": "Nx and the Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/guides/nx-and-angular-cli", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-and-angular", - "tags": [] - }, - { - "id": "folder-structure", - "name": "Folder Structure", - "description": "", - "mediaImage": "", - "file": "shared/guides/integrated-repo-folder-structure", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/folder-structure", - "tags": [] - }, - { - "id": "nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "description": "", - "mediaImage": "", - "file": "shared/guides/nx-devkit-angular-devkit", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-devkit-angular-devkit", - "tags": ["create-your-own-plugin"] - }, - { - "id": "applications-and-libraries", - "name": "Applications and Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/applications-and-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/applications-and-libraries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "creating-libraries", - "name": "Creating Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/creating-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/creating-libraries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "library-types", - "name": "Library Types", - "description": "", - "mediaImage": "", - "file": "shared/workspace/library-types", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/library-types", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "grouping-libraries", - "name": "Grouping Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/grouping-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/grouping-libraries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "buildable-and-publishable-libraries", - "name": "Buildable and Publishable Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/buildable-and-publishable-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/buildable-and-publishable-libraries", - "tags": [] - }, - { - "id": "how-project-graph-is-built", - "name": "How the Project Graph is Built", - "description": "", - "mediaImage": "", - "file": "shared/concepts/how-project-graph-is-built", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/how-project-graph-is-built", - "tags": ["explore-graph"] - } - ], - "isExternal": false, - "path": "/concepts/more-concepts", - "tags": [] - } - ], - "isExternal": false, - "path": "/concepts", - "tags": [] - }, - "/concepts/mental-model": { - "id": "mental-model", - "name": "Mental Model", - "description": "", - "mediaImage": "", - "file": "shared/mental-model", - "itemList": [], - "isExternal": false, - "path": "/concepts/mental-model", - "tags": ["intro"] - }, - "/concepts/how-caching-works": { - "id": "how-caching-works", - "name": "How Caching Works", - "description": "", - "mediaImage": "", - "file": "shared/concepts/how-caching-works", - "itemList": [], - "isExternal": false, - "path": "/concepts/how-caching-works", - "tags": ["cache-task-results"] - }, - "/concepts/task-pipeline-configuration": { - "id": "task-pipeline-configuration", - "name": "What is a Task Pipeline", - "description": "", - "mediaImage": "", - "file": "shared/concepts/task-pipeline-configuration", - "itemList": [], - "isExternal": false, - "path": "/concepts/task-pipeline-configuration", - "tags": ["run-tasks"] - }, - "/concepts/nx-plugins": { - "id": "nx-plugins", - "name": "What Are Nx Plugins", - "description": "", - "mediaImage": "", - "file": "shared/concepts/nx-plugins", - "itemList": [], - "isExternal": false, - "path": "/concepts/nx-plugins", - "tags": ["generate-code", "create-your-own-plugin"] - }, - "/concepts/inferred-tasks": { - "id": "inferred-tasks", - "name": "Inferred Tasks", - "description": "", - "mediaImage": "", - "file": "shared/concepts/inferred-tasks", - "itemList": [], - "isExternal": false, - "path": "/concepts/inferred-tasks", - "tags": ["inferred-tasks"] - }, - "/concepts/types-of-configuration": { - "id": "types-of-configuration", - "name": "Types of Configuration", - "description": "", - "mediaImage": "", - "file": "shared/concepts/types-of-configuration", - "itemList": [], - "isExternal": false, - "path": "/concepts/types-of-configuration", - "tags": [] - }, - "/concepts/executors-and-configurations": { - "id": "executors-and-configurations", - "name": "Executors and Configurations", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/executors-and-configurations", - "itemList": [], - "isExternal": false, - "path": "/concepts/executors-and-configurations", - "tags": ["run-tasks"] - }, - "/concepts/integrated-vs-package-based": { - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "description": "", - "mediaImage": "", - "file": "shared/concepts/integrated-vs-package-based", - "itemList": [], - "isExternal": false, - "path": "/concepts/integrated-vs-package-based", - "tags": ["intro", "repository-types"] - }, - "/concepts/module-federation": { - "id": "module-federation", - "name": "Module Federation", - "description": "Understand more about Module Federation with NX", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "module-federation-and-nx", - "name": "Module Federation and Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/module-federation-and-nx", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/module-federation-and-nx", - "tags": ["module-federation", "angular", "react"] - }, - { - "id": "faster-builds-with-module-federation", - "name": "Faster Builds with Module Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/faster-builds", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/faster-builds-with-module-federation", - "tags": ["module-federation", "angular", "react"] - }, - { - "id": "micro-frontend-architecture", - "name": "Micro Frontend Architecture", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/micro-frontend-architecture", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/micro-frontend-architecture", - "tags": [] - }, - { - "id": "manage-library-versions-with-module-federation", - "name": "Manage Library Versions with Module Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/manage-library-versions-with-module-federation", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/manage-library-versions-with-module-federation", - "tags": [] - } - ], - "isExternal": false, - "path": "/concepts/module-federation", - "tags": [] - }, - "/concepts/module-federation/module-federation-and-nx": { - "id": "module-federation-and-nx", - "name": "Module Federation and Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/module-federation-and-nx", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/module-federation-and-nx", - "tags": ["module-federation", "angular", "react"] - }, - "/concepts/module-federation/faster-builds-with-module-federation": { - "id": "faster-builds-with-module-federation", - "name": "Faster Builds with Module Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/faster-builds", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/faster-builds-with-module-federation", - "tags": ["module-federation", "angular", "react"] - }, - "/concepts/module-federation/micro-frontend-architecture": { - "id": "micro-frontend-architecture", - "name": "Micro Frontend Architecture", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/micro-frontend-architecture", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/micro-frontend-architecture", - "tags": [] - }, - "/concepts/module-federation/manage-library-versions-with-module-federation": { - "id": "manage-library-versions-with-module-federation", - "name": "Manage Library Versions with Module Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/manage-library-versions-with-module-federation", - "itemList": [], - "isExternal": false, - "path": "/concepts/module-federation/manage-library-versions-with-module-federation", - "tags": [] - }, - "/concepts/more-concepts": { - "id": "more-concepts", - "name": "More Concepts", - "description": "Get deeper into how Nx works and its different aspects.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "incremental-builds", - "name": "Incremental Builds", - "description": "", - "mediaImage": "", - "file": "shared/incremental-builds", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/incremental-builds", - "tags": [] - }, - { - "id": "turbo-and-nx", - "name": "Nx and Turborepo", - "description": "", - "mediaImage": "./shared/guides/nx-media-monorepo.jpg", - "file": "shared/guides/turbo-and-nx", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/turbo-and-nx", - "tags": [] - }, - { - "id": "why-monorepos", - "name": "Monorepos", - "description": "", - "mediaImage": "", - "file": "shared/guides/why-monorepos", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/why-monorepos", - "tags": [] - }, - { - "id": "dependency-management", - "name": "Dependency Management", - "description": "", - "mediaImage": "", - "file": "shared/concepts/dependency-management", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/dependency-management", - "tags": [] - }, - { - "id": "code-sharing", - "name": "Code Sharing", - "description": "", - "mediaImage": "", - "file": "shared/concepts/code-sharing", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/code-sharing", - "tags": [] - }, - { - "id": "monorepo-nx-enterprise", - "name": "Using Nx at Enterprises", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-nx-enterprise", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "tags": ["enforce-module-boundaries", "generate-code"] - }, - { - "id": "nx-daemon", - "name": "Nx Daemon", - "description": "", - "mediaImage": "", - "file": "shared/daemon", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-daemon", - "tags": [] - }, - { - "id": "nx-and-angular", - "name": "Nx and the Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/guides/nx-and-angular-cli", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-and-angular", - "tags": [] - }, - { - "id": "folder-structure", - "name": "Folder Structure", - "description": "", - "mediaImage": "", - "file": "shared/guides/integrated-repo-folder-structure", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/folder-structure", - "tags": [] - }, - { - "id": "nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "description": "", - "mediaImage": "", - "file": "shared/guides/nx-devkit-angular-devkit", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-devkit-angular-devkit", - "tags": ["create-your-own-plugin"] - }, - { - "id": "applications-and-libraries", - "name": "Applications and Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/applications-and-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/applications-and-libraries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "creating-libraries", - "name": "Creating Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/creating-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/creating-libraries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "library-types", - "name": "Library Types", - "description": "", - "mediaImage": "", - "file": "shared/workspace/library-types", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/library-types", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "grouping-libraries", - "name": "Grouping Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/grouping-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/grouping-libraries", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "buildable-and-publishable-libraries", - "name": "Buildable and Publishable Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/buildable-and-publishable-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/buildable-and-publishable-libraries", - "tags": [] - }, - { - "id": "how-project-graph-is-built", - "name": "How the Project Graph is Built", - "description": "", - "mediaImage": "", - "file": "shared/concepts/how-project-graph-is-built", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/how-project-graph-is-built", - "tags": ["explore-graph"] - } - ], - "isExternal": false, - "path": "/concepts/more-concepts", - "tags": [] - }, - "/concepts/more-concepts/incremental-builds": { - "id": "incremental-builds", - "name": "Incremental Builds", - "description": "", - "mediaImage": "", - "file": "shared/incremental-builds", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/incremental-builds", - "tags": [] - }, - "/concepts/more-concepts/turbo-and-nx": { - "id": "turbo-and-nx", - "name": "Nx and Turborepo", - "description": "", - "mediaImage": "./shared/guides/nx-media-monorepo.jpg", - "file": "shared/guides/turbo-and-nx", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/turbo-and-nx", - "tags": [] - }, - "/concepts/more-concepts/why-monorepos": { - "id": "why-monorepos", - "name": "Monorepos", - "description": "", - "mediaImage": "", - "file": "shared/guides/why-monorepos", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/why-monorepos", - "tags": [] - }, - "/concepts/more-concepts/dependency-management": { - "id": "dependency-management", - "name": "Dependency Management", - "description": "", - "mediaImage": "", - "file": "shared/concepts/dependency-management", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/dependency-management", - "tags": [] - }, - "/concepts/more-concepts/code-sharing": { - "id": "code-sharing", - "name": "Code Sharing", - "description": "", - "mediaImage": "", - "file": "shared/concepts/code-sharing", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/code-sharing", - "tags": [] - }, - "/concepts/more-concepts/monorepo-nx-enterprise": { - "id": "monorepo-nx-enterprise", - "name": "Using Nx at Enterprises", - "description": "", - "mediaImage": "", - "file": "shared/monorepo-nx-enterprise", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/monorepo-nx-enterprise", - "tags": ["enforce-module-boundaries", "generate-code"] - }, - "/concepts/more-concepts/nx-daemon": { - "id": "nx-daemon", - "name": "Nx Daemon", - "description": "", - "mediaImage": "", - "file": "shared/daemon", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-daemon", - "tags": [] - }, - "/concepts/more-concepts/nx-and-angular": { - "id": "nx-and-angular", - "name": "Nx and the Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/guides/nx-and-angular-cli", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-and-angular", - "tags": [] - }, - "/concepts/more-concepts/folder-structure": { - "id": "folder-structure", - "name": "Folder Structure", - "description": "", - "mediaImage": "", - "file": "shared/guides/integrated-repo-folder-structure", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/folder-structure", - "tags": [] - }, - "/concepts/more-concepts/nx-devkit-angular-devkit": { - "id": "nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "description": "", - "mediaImage": "", - "file": "shared/guides/nx-devkit-angular-devkit", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/nx-devkit-angular-devkit", - "tags": ["create-your-own-plugin"] - }, - "/concepts/more-concepts/applications-and-libraries": { - "id": "applications-and-libraries", - "name": "Applications and Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/applications-and-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/applications-and-libraries", - "tags": ["enforce-module-boundaries"] - }, - "/concepts/more-concepts/creating-libraries": { - "id": "creating-libraries", - "name": "Creating Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/creating-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/creating-libraries", - "tags": ["enforce-module-boundaries"] - }, - "/concepts/more-concepts/library-types": { - "id": "library-types", - "name": "Library Types", - "description": "", - "mediaImage": "", - "file": "shared/workspace/library-types", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/library-types", - "tags": ["enforce-module-boundaries"] - }, - "/concepts/more-concepts/grouping-libraries": { - "id": "grouping-libraries", - "name": "Grouping Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/grouping-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/grouping-libraries", - "tags": ["enforce-module-boundaries"] - }, - "/concepts/more-concepts/buildable-and-publishable-libraries": { - "id": "buildable-and-publishable-libraries", - "name": "Buildable and Publishable Libraries", - "description": "", - "mediaImage": "", - "file": "shared/workspace/buildable-and-publishable-libraries", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/buildable-and-publishable-libraries", - "tags": [] - }, - "/concepts/more-concepts/how-project-graph-is-built": { - "id": "how-project-graph-is-built", - "name": "How the Project Graph is Built", - "description": "", - "mediaImage": "", - "file": "shared/concepts/how-project-graph-is-built", - "itemList": [], - "isExternal": false, - "path": "/concepts/more-concepts/how-project-graph-is-built", - "tags": ["explore-graph"] - }, - "/recipes": { - "id": "recipes", - "name": "Recipes", - "description": "In depth recipes for common tasks", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "running-tasks", - "name": "Tasks & Caching", - "description": "A series of recipes that show how to run tasks efficiently with Nx", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "configure-inputs", - "name": "Configure Inputs for Task Caching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/configure-inputs", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/configure-inputs", - "tags": ["run-tasks", "cache-task-results"] - }, - { - "id": "configure-outputs", - "name": "Configure Outputs for Task Caching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/configure-outputs", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/configure-outputs", - "tags": ["run-tasks", "cache-task-results"] - }, - { - "id": "defining-task-pipeline", - "name": "Define a Task Pipeline", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/defining-task-pipeline", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/defining-task-pipeline", - "tags": ["run-tasks"] - }, - { - "id": "change-cache-location", - "name": "Change Cache Location", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/change-cache-location", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/change-cache-location", - "tags": [] - }, - { - "id": "run-commands-executor", - "name": "Run Custom Commands", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/run-commands-executor", - "tags": ["run-tasks"] - }, - { - "id": "run-tasks-in-parallel", - "name": "Run Tasks in Parallel", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/run-tasks-in-parallel", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/run-tasks-in-parallel", - "tags": ["run-tasks"] - }, - { - "id": "root-level-scripts", - "name": "Run Root-Level NPM Scripts with Nx", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/root-level-scripts", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/root-level-scripts", - "tags": ["run-tasks"] - }, - { - "id": "workspace-watching", - "name": "Workspace Watching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/workspace-watching", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/workspace-watching", - "tags": ["run-tasks", "workspace-watching"] - }, - { - "id": "reduce-repetitive-configuration", - "name": "Reduce Repetitive Configuration", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/reduce-repetitive-configuration", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/reduce-repetitive-configuration", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/running-tasks", - "tags": [] - }, - { - "id": "adopting-nx", - "name": "Adopting Nx", - "description": "Adopting Nx incrementally, on existing project or from scratch.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "adding-to-monorepo", - "name": "NPM/Yarn/PNPM workspaces", - "description": "", - "mediaImage": "", - "file": "shared/migration/adding-to-monorepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-monorepo", - "tags": [] - }, - { - "id": "from-turborepo", - "name": "Migrate From Turborepo", - "description": "", - "mediaImage": "", - "file": "shared/migration/from-turborepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/from-turborepo", - "tags": [] - }, - { - "id": "adding-to-existing-project", - "name": "Add to any Project", - "description": "", - "mediaImage": "", - "file": "shared/migration/adding-to-existing-project", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-existing-project", - "tags": [] - }, - { - "id": "preserving-git-histories", - "name": "Preserving Git Histories", - "description": "", - "mediaImage": "", - "file": "shared/migration/preserving-git-histories", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/preserving-git-histories", - "tags": [] - }, - { - "id": "manual", - "name": "Manual migration", - "description": "", - "mediaImage": "", - "file": "shared/migration/manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/manual", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/adopting-nx", - "tags": [] - }, - { - "id": "react", - "name": "React", - "description": "Advanced guides to adopt Nx in React.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "migration-cra", - "name": "Migrating from CRA", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-cra", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/migration-cra", - "tags": [] - }, - { - "id": "react-18", - "name": "React 18 Migration", - "description": "", - "mediaImage": "", - "file": "shared/guides/react-18", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-18", - "tags": [] - }, - { - "id": "react-native", - "name": "React Native with Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/react-native", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-native", - "tags": [] - }, - { - "id": "remix", - "name": "Remix with Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/remix", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/remix", - "tags": [] - }, - { - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "description": "", - "mediaImage": "", - "file": "shared/guides/use-environment-variables-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/use-environment-variables-in-react", - "tags": ["environment-variables"] - }, - { - "id": "using-tailwind-css-in-react", - "name": "Using Tailwind CSS in React", - "description": "", - "mediaImage": "", - "file": "shared/guides/using-tailwind-css-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/using-tailwind-css-in-react", - "tags": [] - }, - { - "id": "adding-assets-react", - "name": "Adding Images, Fonts, and Files", - "description": "", - "mediaImage": "", - "file": "shared/guides/adding-assets", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/adding-assets-react", - "tags": [] - }, - { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "description": "", - "mediaImage": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/module-federation-with-ssr", - "tags": ["module-federation", "react"] - }, - { - "id": "deploy-nextjs-to-vercel", - "name": "Deploying Next.js applications to Vercel", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/deploy-nextjs-to-vercel", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/react", - "tags": [] - }, - { - "id": "angular", - "name": "Angular", - "description": "Advanced guides to adopt Nx in Angular.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "migration", - "name": "Migration", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular/migration", - "tags": [] - }, - { - "id": "use-environment-variables-in-angular", - "name": "Use Environment Variables in Angular", - "description": "", - "mediaImage": "", - "file": "shared/guides/use-environment-variables-in-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/use-environment-variables-in-angular", - "tags": ["environment-variables"] - }, - { - "id": "using-tailwind-css-with-angular-projects", - "name": "Using Tailwind CSS with Angular projects", - "description": "", - "mediaImage": "", - "file": "shared/guides/using-tailwind-css-with-angular-projects", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "tags": [] - }, - { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "description": "", - "mediaImage": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/module-federation-with-ssr", - "tags": ["module-federation", "angular"] - }, - { - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "tags": ["module-federation", "angular"] - }, - { - "id": "setup-incremental-builds-angular", - "name": "Setup incremental builds for Angular applications", - "description": "", - "mediaImage": "", - "file": "shared/guides/setup-incremental-builds-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/setup-incremental-builds-angular", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular", - "tags": [] - }, - { - "id": "node", - "name": "Node", - "description": "Set of Node related recipes.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-server-fly-io", - "tags": ["deployment", "node"] - }, - { - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-serverless-functions-netlify", - "tags": ["deployment", "node"] - }, - { - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-aws-lambda", - "tags": ["deployment", "node"] - }, - { - "id": "application-proxies", - "name": "Set Up Application Proxies", - "description": "", - "mediaImage": "", - "file": "shared/recipes/node/application-proxies", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/application-proxies", - "tags": ["node"] - }, - { - "id": "wait-for-tasks", - "name": "Wait for Tasks to Finish", - "description": "", - "mediaImage": "", - "file": "shared/recipes/node/wait-for-tasks", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/wait-for-tasks", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/node", - "tags": [] - }, - { - "id": "storybook", - "name": "Storybook", - "description": "Storybook strategies and setups.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "overview-react", - "name": "Set up Storybook for React Projects", - "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-react", - "tags": ["storybook"] - }, - { - "id": "overview-angular", - "name": "Set up Storybook for Angular Projects", - "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-angular", - "tags": ["storybook"] - }, - { - "id": "overview-vue", - "name": "Set up Storybook for Vue Projects", - "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-vue", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-vue", - "tags": ["storybook"] - }, - { - "id": "configuring-storybook", - "name": "Configuring Storybook on Nx", - "description": "This guide explains how Storybook is configured on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/configuring-storybook", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/configuring-storybook", - "tags": ["storybook"] - }, - { - "id": "one-storybook-for-all", - "name": "One main Storybook instance for all projects", - "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-for-all", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-for-all", - "tags": ["storybook"] - }, - { - "id": "one-storybook-per-scope", - "name": "One Storybook instance per scope", - "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-per-scope", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-per-scope", - "tags": ["storybook"] - }, - { - "id": "one-storybook-with-composition", - "name": "One main Storybook instance using Storybook Composition", - "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-with-composition", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-with-composition", - "tags": ["storybook"] - }, - { - "id": "custom-builder-configs", - "name": "How to configure Webpack and Vite for Storybook", - "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", - "mediaImage": "", - "file": "shared/recipes/storybook/custom-builder-configs", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/custom-builder-configs", - "tags": ["storybook"] - }, - { - "id": "storybook-interaction-tests", - "name": "Setting up Storybook Interaction Tests with Nx", - "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/interaction-tests", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/storybook-interaction-tests", - "tags": ["storybook"] - }, - { - "id": "upgrading-storybook", - "name": "Upgrading Storybook using the Storybook CLI", - "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", - "mediaImage": "", - "file": "shared/recipes/storybook/upgrading-storybook", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/upgrading-storybook", - "tags": ["storybook"] - }, - { - "id": "storybook-composition-setup", - "name": "Setting up Storybook Composition with Nx", - "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/storybook-composition-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/storybook-composition-setup", - "tags": ["storybook"] - }, - { - "id": "angular-storybook-compodoc", - "name": "Angular: Set up Compodoc for Storybook on Nx", - "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/angular-storybook-compodoc", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/angular-storybook-compodoc", - "tags": ["storybook"] - }, - { - "id": "angular-configuring-styles", - "name": "Angular: Configuring styles and preprocessor options", - "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", - "mediaImage": "", - "file": "shared/recipes/storybook/angular-configuring-styles", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/angular-configuring-styles", - "tags": ["storybook"] - } - ], - "isExternal": false, - "path": "/recipes/storybook", - "tags": [] - }, - { - "id": "cypress", - "name": "Cypress", - "description": "Cypress related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "cypress-component-testing", - "name": "Component Testing", - "description": "Component Testing", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-component-testing", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-component-testing", - "tags": [] - }, - { - "id": "cypress-setup-node-events", - "name": "Using setupNodeEvents with Cypress preset", - "description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-setup-node-events", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-setup-node-events", - "tags": [] - }, - { - "id": "cypress-v11-migration", - "name": "Cypress v11 Migration Guide", - "description": "Cypress v11 Migration Guide", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-v11-migration", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-v11-migration", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/cypress", - "tags": [] - }, - { - "id": "next", - "name": "Next", - "description": "Next related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "next-config-setup", - "name": "How to configure Next.js plugins", - "description": "How to configure Next.js plugins", - "mediaImage": "", - "file": "shared/packages/next/next-config-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/next/next-config-setup", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/next", - "tags": [] - }, - { - "id": "nuxt", - "name": "Nuxt", - "description": "Nuxt related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "deploy-nuxt-to-vercel", - "name": "Deploying Nuxt applications to Vercel", - "description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.", - "mediaImage": "", - "file": "shared/recipes/deployment/deploy-nuxt-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/nuxt/deploy-nuxt-to-vercel", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/nuxt", - "tags": [] - }, - { - "id": "vite", - "name": "Vite", - "description": "Vite related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "configure-vite", - "name": "Configure Vite on your Nx workspace", - "description": "Configure Vite on your Nx workspace", - "mediaImage": "", - "file": "shared/packages/vite/configure-vite", - "itemList": [], - "isExternal": false, - "path": "/recipes/vite/configure-vite", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/vite", - "tags": [] - }, - { - "id": "webpack", - "name": "Webpack", - "description": "Webpack related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "webpack-config-setup", - "name": "How to configure Webpack in your Nx workspace", - "description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration", - "mediaImage": "", - "file": "shared/packages/webpack/webpack-config-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/webpack/webpack-config-setup", - "tags": [] - }, - { - "id": "webpack-plugins", - "name": "Webpack plugins", - "description": "Webpack plugins", - "mediaImage": "", - "file": "shared/packages/webpack/webpack-plugins", - "itemList": [], - "isExternal": false, - "path": "/recipes/webpack/webpack-plugins", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/webpack", - "tags": [] - }, - { - "id": "module-federation", - "name": "Module Federation", - "description": "Advanced guides to utilize Module Federation with Nx.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "create-a-host", - "name": "How to create a Module Federation Host Application", - "description": "A guide on how to create a Module Federation Host Application in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/creating-a-host", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/create-a-host", - "tags": [] - }, - { - "id": "create-a-remote", - "name": "How to create a Module Federation Remote Application", - "description": "A guide on how to create a Module Federation Remote Application in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/creating-a-remote", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/create-a-remote", - "tags": [] - }, - { - "id": "federate-a-module", - "name": "How to Federate a Module", - "description": "A guide on how to federate a module in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/federate-a-module", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/federate-a-module", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/module-federation", - "tags": [] - }, - { - "id": "enforce-module-boundaries", - "name": "Enforce Module Boundaries", - "description": "Configuring the enforce module boundaries rule", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "ban-dependencies-with-tags", - "name": "Ban Dependencies with Certain Tags", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ban-dependencies-with-tags", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "tag-multiple-dimensions", - "name": "Tag in Multiple Dimensions", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tag-multiple-dimensions", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "ban-external-imports", - "name": "Ban External Imports", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ban-external-imports", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "tags-allow-list", - "name": "Tags Allow List", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tags-allow-list", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-module-boundaries"] - } - ], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries", - "tags": [] - }, - { - "id": "installation", - "name": "Installation", - "description": "Installing Nx", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "install-non-javascript", - "name": "Install Nx in a Non-Javascript Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/install-non-javascript", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/install-non-javascript", - "tags": ["installation"] - }, - { - "id": "update-global-installation", - "name": "Update Your Global Nx Installation", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/update-global-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/update-global-installation", - "tags": ["installation"] - } - ], - "isExternal": false, - "path": "/recipes/installation", - "tags": [] - }, - { - "id": "tips-n-tricks", - "name": "Tips and tricks", - "description": "Various tips and tricks for using Nx.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "tags": ["repository-types"] - }, - { - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "tags": ["repository-types"] - }, - { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] - }, - { - "id": "eslint", - "name": "Configuring ESLint with Typescript", - "description": "", - "mediaImage": "", - "file": "shared/eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/eslint", - "tags": [] - }, - { - "id": "enable-tsc-batch-mode", - "name": "Enable Typescript Batch Mode", - "description": "", - "mediaImage": "", - "file": "shared/recipes/enable-tsc-batch-mode", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", - "tags": [] - }, - { - "id": "define-secondary-entrypoints", - "name": "Define Secondary Entrypoints for Typescript Packages", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", - "tags": [] - }, - { - "id": "compile-multiple-formats", - "name": "Compile Typescript Packages to Multiple Formats", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/compile-multiple-formats", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/compile-multiple-formats", - "tags": [] - }, - { - "id": "keep-nx-versions-in-sync", - "name": "Keep Nx Versions in Sync", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "tags": ["automate-updating-dependencies"] - }, - { - "id": "define-environment-variables", - "name": "Define Environment Variables", - "description": "", - "mediaImage": "", - "file": "shared/guides/define-environment-variables", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-environment-variables", - "tags": ["environment-variables"] - }, - { - "id": "browser-support", - "name": "Configuring Browser Support", - "description": "", - "mediaImage": "", - "file": "shared/guides/browser-support", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/browser-support", - "tags": [] - }, - { - "id": "include-assets-in-build", - "name": "Include Assets in Build", - "description": "", - "mediaImage": "", - "file": "shared/recipes/include-assets-in-build", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "tags": [] - }, - { - "id": "include-all-packagejson", - "name": "Include All package.json Files as Projects", - "description": "", - "mediaImage": "", - "file": "shared/recipes/include-all-packagejson", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "tags": [] - }, - { - "id": "identify-dependencies-between-folders", - "name": "Identify Dependencies Between Folders", - "description": "", - "mediaImage": "", - "file": "shared/recipes/identify-dependencies-between-folders", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "tags": [] - }, - { - "id": "analyze-source-files", - "name": "Disable Graph Links Created from Analyzing Source Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/analyze-source-files", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/analyze-source-files", - "tags": ["explore-graph"] - }, - { - "id": "js-and-ts", - "name": "Use JavaScript instead TypeScript", - "description": "", - "mediaImage": "", - "file": "shared/guides/js-and-ts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/js-and-ts", - "tags": [] - }, - { - "id": "advanced-update", - "name": "Altering Migration Process", - "description": "", - "mediaImage": "", - "file": "shared/recipes/advanced-update", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/advanced-update", - "tags": ["automate-updating-dependencies"] - }, - { - "id": "yarn-pnp", - "name": "Using Yarn PnP", - "description": "", - "mediaImage": "", - "file": "shared/recipes/yarn-pnp", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/yarn-pnp", - "tags": ["yarn", "Plug and Play"] - }, - { - "id": "flat-config", - "name": "Switching to ESLint's flat config format", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/flat-config", - "tags": ["eslint", "flat config"] - } - ], - "isExternal": false, - "path": "/recipes/tips-n-tricks", - "tags": [] - }, - { - "id": "troubleshooting", - "name": "Troubleshooting", - "description": "Learn how to troubleshoot common problems.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "resolve-circular-dependencies", - "name": "Resolve Circular Dependencies", - "description": "", - "mediaImage": "", - "file": "shared/recipes/resolve-circular-dependencies", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "tags": ["explore-graph"] - }, - { - "id": "troubleshoot-nx-install-issues", - "name": "Troubleshooting Nx Install Issues", - "description": "", - "mediaImage": "", - "file": "shared/installation/troubleshoot-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "tags": [] - }, - { - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "description": "", - "mediaImage": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "tags": ["cache-task-results"] - }, - { - "id": "unknown-local-cache", - "name": "Unknown Local Cache Error", - "description": "", - "mediaImage": "", - "file": "shared/guides/unknown-local-cache", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/unknown-local-cache", - "tags": [] - }, - { - "id": "performance-profiling", - "name": "Profiling Build Performance", - "description": "", - "mediaImage": "", - "file": "shared/guides/performance-profiling", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/performance-profiling", - "tags": ["environment-variables"] - } - ], - "isExternal": false, - "path": "/recipes/troubleshooting", - "tags": [] - }, - { - "id": "nx-console", - "name": "Nx Console", - "description": "Checkout all the recipes related to Nx Console.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "console-telemetry", - "name": "Telemetry", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-telemetry", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-telemetry", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-project-details", - "name": "Project Details View", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-project-details", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-details", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-generate-command", - "name": "Generate Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-generate-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-generate-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-run-command", - "name": "Run Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-run-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-run-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-add-dependency-command", - "name": "Add Dependency Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-add-dependency-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-add-dependency-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-project-pane", - "name": "Project Pane", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-project-pane", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-pane", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-shortcuts", - "name": "Keyboard Shortcuts", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-shortcuts", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-shortcuts", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-troubleshooting", - "name": "Troubleshooting", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-troubleshooting", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-troubleshooting", - "tags": ["integrate-with-editors"] - } - ], - "isExternal": false, - "path": "/recipes/nx-console", - "tags": [] - }, - { - "id": "nx-release", - "name": "Nx Release", - "description": "Recipes for releasing with Nx release.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "get-started-with-nx-release", - "name": "Get Started with Nx Release", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/get-started-with-nx-release", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/get-started-with-nx-release", - "tags": ["nx-release"] - }, - { - "id": "release-projects-independently", - "name": "Release Projects Independently", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/release-projects-independently", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/release-projects-independently", - "tags": ["nx-release"] - }, - { - "id": "automatically-version-with-conventional-commits", - "name": "Automatically Version with Conventional Commits", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/automatically-version-with-conventional-commits", - "tags": ["nx-release"] - }, - { - "id": "publish-in-ci-cd", - "name": "Publish in CI/CD", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/publish-in-ci-cd", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/publish-in-ci-cd", - "tags": ["nx-release"] - }, - { - "id": "automate-github-releases", - "name": "Automate GitHub Releases", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/automate-github-releases", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/automate-github-releases", - "tags": ["nx-release"] - }, - { - "id": "publish-rust-crates", - "name": "Publish Rust Crates", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/publish-rust-crates", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/publish-rust-crates", - "tags": ["nx-release"] - }, - { - "id": "update-local-registry-setup", - "name": "Update Your Local Registry Setup to use Nx Release", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/update-local-registry-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/update-local-registry-setup", - "tags": ["nx-release"] - }, - { - "id": "customize-conventional-commit-types", - "name": "Customize Conventional Commit Types", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/customize-conventional-commit-types", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/customize-conventional-commit-types", - "tags": ["nx-release"] - } - ], - "isExternal": false, - "path": "/recipes/nx-release", - "tags": [] - }, - { - "id": "other", - "name": "Other", - "description": "Other recipes you will find useful.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "rescope", - "name": "Rescope Packages from @nrwl to @nx", - "description": "", - "mediaImage": "", - "file": "shared/recipes/rescope", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/rescope", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/other", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes", - "tags": [] - }, - "/recipes/running-tasks": { - "id": "running-tasks", - "name": "Tasks & Caching", - "description": "A series of recipes that show how to run tasks efficiently with Nx", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "configure-inputs", - "name": "Configure Inputs for Task Caching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/configure-inputs", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/configure-inputs", - "tags": ["run-tasks", "cache-task-results"] - }, - { - "id": "configure-outputs", - "name": "Configure Outputs for Task Caching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/configure-outputs", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/configure-outputs", - "tags": ["run-tasks", "cache-task-results"] - }, - { - "id": "defining-task-pipeline", - "name": "Define a Task Pipeline", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/defining-task-pipeline", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/defining-task-pipeline", - "tags": ["run-tasks"] - }, - { - "id": "change-cache-location", - "name": "Change Cache Location", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/change-cache-location", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/change-cache-location", - "tags": [] - }, - { - "id": "run-commands-executor", - "name": "Run Custom Commands", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/run-commands-executor", - "tags": ["run-tasks"] - }, - { - "id": "run-tasks-in-parallel", - "name": "Run Tasks in Parallel", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/run-tasks-in-parallel", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/run-tasks-in-parallel", - "tags": ["run-tasks"] - }, - { - "id": "root-level-scripts", - "name": "Run Root-Level NPM Scripts with Nx", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/root-level-scripts", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/root-level-scripts", - "tags": ["run-tasks"] - }, - { - "id": "workspace-watching", - "name": "Workspace Watching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/workspace-watching", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/workspace-watching", - "tags": ["run-tasks", "workspace-watching"] - }, - { - "id": "reduce-repetitive-configuration", - "name": "Reduce Repetitive Configuration", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/reduce-repetitive-configuration", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/reduce-repetitive-configuration", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/running-tasks", - "tags": [] - }, - "/recipes/running-tasks/configure-inputs": { - "id": "configure-inputs", - "name": "Configure Inputs for Task Caching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/configure-inputs", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/configure-inputs", - "tags": ["run-tasks", "cache-task-results"] - }, - "/recipes/running-tasks/configure-outputs": { - "id": "configure-outputs", - "name": "Configure Outputs for Task Caching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/configure-outputs", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/configure-outputs", - "tags": ["run-tasks", "cache-task-results"] - }, - "/recipes/running-tasks/defining-task-pipeline": { - "id": "defining-task-pipeline", - "name": "Define a Task Pipeline", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/defining-task-pipeline", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/defining-task-pipeline", - "tags": ["run-tasks"] - }, - "/recipes/running-tasks/change-cache-location": { - "id": "change-cache-location", - "name": "Change Cache Location", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/change-cache-location", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/change-cache-location", - "tags": [] - }, - "/recipes/running-tasks/run-commands-executor": { - "id": "run-commands-executor", - "name": "Run Custom Commands", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/running-custom-commands", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/run-commands-executor", - "tags": ["run-tasks"] - }, - "/recipes/running-tasks/run-tasks-in-parallel": { - "id": "run-tasks-in-parallel", - "name": "Run Tasks in Parallel", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/run-tasks-in-parallel", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/run-tasks-in-parallel", - "tags": ["run-tasks"] - }, - "/recipes/running-tasks/root-level-scripts": { - "id": "root-level-scripts", - "name": "Run Root-Level NPM Scripts with Nx", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/root-level-scripts", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/root-level-scripts", - "tags": ["run-tasks"] - }, - "/recipes/running-tasks/workspace-watching": { - "id": "workspace-watching", - "name": "Workspace Watching", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/workspace-watching", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/workspace-watching", - "tags": ["run-tasks", "workspace-watching"] - }, - "/recipes/running-tasks/reduce-repetitive-configuration": { - "id": "reduce-repetitive-configuration", - "name": "Reduce Repetitive Configuration", - "description": "", - "mediaImage": "", - "file": "shared/recipes/running-tasks/reduce-repetitive-configuration", - "itemList": [], - "isExternal": false, - "path": "/recipes/running-tasks/reduce-repetitive-configuration", - "tags": [] - }, - "/recipes/adopting-nx": { - "id": "adopting-nx", - "name": "Adopting Nx", - "description": "Adopting Nx incrementally, on existing project or from scratch.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "adding-to-monorepo", - "name": "NPM/Yarn/PNPM workspaces", - "description": "", - "mediaImage": "", - "file": "shared/migration/adding-to-monorepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-monorepo", - "tags": [] - }, - { - "id": "from-turborepo", - "name": "Migrate From Turborepo", - "description": "", - "mediaImage": "", - "file": "shared/migration/from-turborepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/from-turborepo", - "tags": [] - }, - { - "id": "adding-to-existing-project", - "name": "Add to any Project", - "description": "", - "mediaImage": "", - "file": "shared/migration/adding-to-existing-project", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-existing-project", - "tags": [] - }, - { - "id": "preserving-git-histories", - "name": "Preserving Git Histories", - "description": "", - "mediaImage": "", - "file": "shared/migration/preserving-git-histories", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/preserving-git-histories", - "tags": [] - }, - { - "id": "manual", - "name": "Manual migration", - "description": "", - "mediaImage": "", - "file": "shared/migration/manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/manual", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/adopting-nx", - "tags": [] - }, - "/recipes/adopting-nx/adding-to-monorepo": { - "id": "adding-to-monorepo", - "name": "NPM/Yarn/PNPM workspaces", - "description": "", - "mediaImage": "", - "file": "shared/migration/adding-to-monorepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-monorepo", - "tags": [] - }, - "/recipes/adopting-nx/from-turborepo": { - "id": "from-turborepo", - "name": "Migrate From Turborepo", - "description": "", - "mediaImage": "", - "file": "shared/migration/from-turborepo", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/from-turborepo", - "tags": [] - }, - "/recipes/adopting-nx/adding-to-existing-project": { - "id": "adding-to-existing-project", - "name": "Add to any Project", - "description": "", - "mediaImage": "", - "file": "shared/migration/adding-to-existing-project", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/adding-to-existing-project", - "tags": [] - }, - "/recipes/adopting-nx/preserving-git-histories": { - "id": "preserving-git-histories", - "name": "Preserving Git Histories", - "description": "", - "mediaImage": "", - "file": "shared/migration/preserving-git-histories", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/preserving-git-histories", - "tags": [] - }, - "/recipes/adopting-nx/manual": { - "id": "manual", - "name": "Manual migration", - "description": "", - "mediaImage": "", - "file": "shared/migration/manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/adopting-nx/manual", - "tags": [] - }, - "/recipes/react": { - "id": "react", - "name": "React", - "description": "Advanced guides to adopt Nx in React.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "migration-cra", - "name": "Migrating from CRA", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-cra", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/migration-cra", - "tags": [] - }, - { - "id": "react-18", - "name": "React 18 Migration", - "description": "", - "mediaImage": "", - "file": "shared/guides/react-18", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-18", - "tags": [] - }, - { - "id": "react-native", - "name": "React Native with Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/react-native", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-native", - "tags": [] - }, - { - "id": "remix", - "name": "Remix with Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/remix", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/remix", - "tags": [] - }, - { - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "description": "", - "mediaImage": "", - "file": "shared/guides/use-environment-variables-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/use-environment-variables-in-react", - "tags": ["environment-variables"] - }, - { - "id": "using-tailwind-css-in-react", - "name": "Using Tailwind CSS in React", - "description": "", - "mediaImage": "", - "file": "shared/guides/using-tailwind-css-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/using-tailwind-css-in-react", - "tags": [] - }, - { - "id": "adding-assets-react", - "name": "Adding Images, Fonts, and Files", - "description": "", - "mediaImage": "", - "file": "shared/guides/adding-assets", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/adding-assets-react", - "tags": [] - }, - { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "description": "", - "mediaImage": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/module-federation-with-ssr", - "tags": ["module-federation", "react"] - }, - { - "id": "deploy-nextjs-to-vercel", - "name": "Deploying Next.js applications to Vercel", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/deploy-nextjs-to-vercel", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/react", - "tags": [] - }, - "/recipes/react/migration-cra": { - "id": "migration-cra", - "name": "Migrating from CRA", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-cra", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/migration-cra", - "tags": [] - }, - "/recipes/react/react-18": { - "id": "react-18", - "name": "React 18 Migration", - "description": "", - "mediaImage": "", - "file": "shared/guides/react-18", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-18", - "tags": [] - }, - "/recipes/react/react-native": { - "id": "react-native", - "name": "React Native with Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/react-native", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/react-native", - "tags": [] - }, - "/recipes/react/remix": { - "id": "remix", - "name": "Remix with Nx", - "description": "", - "mediaImage": "", - "file": "shared/guides/remix", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/remix", - "tags": [] - }, - "/recipes/react/use-environment-variables-in-react": { - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "description": "", - "mediaImage": "", - "file": "shared/guides/use-environment-variables-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/use-environment-variables-in-react", - "tags": ["environment-variables"] - }, - "/recipes/react/using-tailwind-css-in-react": { - "id": "using-tailwind-css-in-react", - "name": "Using Tailwind CSS in React", - "description": "", - "mediaImage": "", - "file": "shared/guides/using-tailwind-css-in-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/using-tailwind-css-in-react", - "tags": [] - }, - "/recipes/react/adding-assets-react": { - "id": "adding-assets-react", - "name": "Adding Images, Fonts, and Files", - "description": "", - "mediaImage": "", - "file": "shared/guides/adding-assets", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/adding-assets-react", - "tags": [] - }, - "/recipes/react/module-federation-with-ssr": { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "description": "", - "mediaImage": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/module-federation-with-ssr", - "tags": ["module-federation", "react"] - }, - "/recipes/react/deploy-nextjs-to-vercel": { - "id": "deploy-nextjs-to-vercel", - "name": "Deploying Next.js applications to Vercel", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/react/deploy-nextjs-to-vercel", - "tags": [] - }, - "/recipes/angular": { - "id": "angular", - "name": "Angular", - "description": "Advanced guides to adopt Nx in Angular.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "migration", - "name": "Migration", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular/migration", - "tags": [] - }, - { - "id": "use-environment-variables-in-angular", - "name": "Use Environment Variables in Angular", - "description": "", - "mediaImage": "", - "file": "shared/guides/use-environment-variables-in-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/use-environment-variables-in-angular", - "tags": ["environment-variables"] - }, - { - "id": "using-tailwind-css-with-angular-projects", - "name": "Using Tailwind CSS with Angular projects", - "description": "", - "mediaImage": "", - "file": "shared/guides/using-tailwind-css-with-angular-projects", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "tags": [] - }, - { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "description": "", - "mediaImage": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/module-federation-with-ssr", - "tags": ["module-federation", "angular"] - }, - { - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "tags": ["module-federation", "angular"] - }, - { - "id": "setup-incremental-builds-angular", - "name": "Setup incremental builds for Angular applications", - "description": "", - "mediaImage": "", - "file": "shared/guides/setup-incremental-builds-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/setup-incremental-builds-angular", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular", - "tags": [] - }, - "/recipes/angular/migration": { - "id": "migration", - "name": "Migration", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/angular/migration", - "tags": [] - }, - "/recipes/angular/migration/angular": { - "id": "angular", - "name": "Migrating from Angular CLI", - "description": "", - "mediaImage": "", - "file": "shared/migration/migration-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular", - "tags": [] - }, - "/recipes/angular/migration/angular-multiple": { - "id": "angular-multiple", - "name": "Migrating From Multiple Angular CLI Repos", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-multiple", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-multiple", - "tags": [] - }, - "/recipes/angular/migration/angular-manual": { - "id": "angular-manual", - "name": "Migrating Angular Application manually", - "description": "", - "mediaImage": "", - "file": "shared/migration/angular-manual", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/migration/angular-manual", - "tags": [] - }, - "/recipes/angular/use-environment-variables-in-angular": { - "id": "use-environment-variables-in-angular", - "name": "Use Environment Variables in Angular", - "description": "", - "mediaImage": "", - "file": "shared/guides/use-environment-variables-in-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/use-environment-variables-in-angular", - "tags": ["environment-variables"] - }, - "/recipes/angular/using-tailwind-css-with-angular-projects": { - "id": "using-tailwind-css-with-angular-projects", - "name": "Using Tailwind CSS with Angular projects", - "description": "", - "mediaImage": "", - "file": "shared/guides/using-tailwind-css-with-angular-projects", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/using-tailwind-css-with-angular-projects", - "tags": [] - }, - "/recipes/angular/module-federation-with-ssr": { - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "description": "", - "mediaImage": "", - "file": "shared/recipes/module-federation-with-ssr", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/module-federation-with-ssr", - "tags": ["module-federation", "angular"] - }, - "/recipes/angular/dynamic-module-federation-with-angular": { - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "description": "", - "mediaImage": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/dynamic-module-federation-with-angular", - "tags": ["module-federation", "angular"] - }, - "/recipes/angular/setup-incremental-builds-angular": { - "id": "setup-incremental-builds-angular", - "name": "Setup incremental builds for Angular applications", - "description": "", - "mediaImage": "", - "file": "shared/guides/setup-incremental-builds-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/angular/setup-incremental-builds-angular", - "tags": [] - }, - "/recipes/node": { - "id": "node", - "name": "Node", - "description": "Set of Node related recipes.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-server-fly-io", - "tags": ["deployment", "node"] - }, - { - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-serverless-functions-netlify", - "tags": ["deployment", "node"] - }, - { - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-aws-lambda", - "tags": ["deployment", "node"] - }, - { - "id": "application-proxies", - "name": "Set Up Application Proxies", - "description": "", - "mediaImage": "", - "file": "shared/recipes/node/application-proxies", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/application-proxies", - "tags": ["node"] - }, - { - "id": "wait-for-tasks", - "name": "Wait for Tasks to Finish", - "description": "", - "mediaImage": "", - "file": "shared/recipes/node/wait-for-tasks", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/wait-for-tasks", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/node", - "tags": [] - }, - "/recipes/node/node-server-fly-io": { - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-server-fly-io", - "tags": ["deployment", "node"] - }, - "/recipes/node/node-serverless-functions-netlify": { - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-serverless-functions-netlify", - "tags": ["deployment", "node"] - }, - "/recipes/node/node-aws-lambda": { - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "description": "", - "mediaImage": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/node-aws-lambda", - "tags": ["deployment", "node"] - }, - "/recipes/node/application-proxies": { - "id": "application-proxies", - "name": "Set Up Application Proxies", - "description": "", - "mediaImage": "", - "file": "shared/recipes/node/application-proxies", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/application-proxies", - "tags": ["node"] - }, - "/recipes/node/wait-for-tasks": { - "id": "wait-for-tasks", - "name": "Wait for Tasks to Finish", - "description": "", - "mediaImage": "", - "file": "shared/recipes/node/wait-for-tasks", - "itemList": [], - "isExternal": false, - "path": "/recipes/node/wait-for-tasks", - "tags": [] - }, - "/recipes/storybook": { - "id": "storybook", - "name": "Storybook", - "description": "Storybook strategies and setups.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "overview-react", - "name": "Set up Storybook for React Projects", - "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-react", - "tags": ["storybook"] - }, - { - "id": "overview-angular", - "name": "Set up Storybook for Angular Projects", - "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-angular", - "tags": ["storybook"] - }, - { - "id": "overview-vue", - "name": "Set up Storybook for Vue Projects", - "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-vue", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-vue", - "tags": ["storybook"] - }, - { - "id": "configuring-storybook", - "name": "Configuring Storybook on Nx", - "description": "This guide explains how Storybook is configured on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/configuring-storybook", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/configuring-storybook", - "tags": ["storybook"] - }, - { - "id": "one-storybook-for-all", - "name": "One main Storybook instance for all projects", - "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-for-all", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-for-all", - "tags": ["storybook"] - }, - { - "id": "one-storybook-per-scope", - "name": "One Storybook instance per scope", - "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-per-scope", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-per-scope", - "tags": ["storybook"] - }, - { - "id": "one-storybook-with-composition", - "name": "One main Storybook instance using Storybook Composition", - "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-with-composition", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-with-composition", - "tags": ["storybook"] - }, - { - "id": "custom-builder-configs", - "name": "How to configure Webpack and Vite for Storybook", - "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", - "mediaImage": "", - "file": "shared/recipes/storybook/custom-builder-configs", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/custom-builder-configs", - "tags": ["storybook"] - }, - { - "id": "storybook-interaction-tests", - "name": "Setting up Storybook Interaction Tests with Nx", - "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/interaction-tests", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/storybook-interaction-tests", - "tags": ["storybook"] - }, - { - "id": "upgrading-storybook", - "name": "Upgrading Storybook using the Storybook CLI", - "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", - "mediaImage": "", - "file": "shared/recipes/storybook/upgrading-storybook", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/upgrading-storybook", - "tags": ["storybook"] - }, - { - "id": "storybook-composition-setup", - "name": "Setting up Storybook Composition with Nx", - "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/storybook-composition-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/storybook-composition-setup", - "tags": ["storybook"] - }, - { - "id": "angular-storybook-compodoc", - "name": "Angular: Set up Compodoc for Storybook on Nx", - "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/angular-storybook-compodoc", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/angular-storybook-compodoc", - "tags": ["storybook"] - }, - { - "id": "angular-configuring-styles", - "name": "Angular: Configuring styles and preprocessor options", - "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", - "mediaImage": "", - "file": "shared/recipes/storybook/angular-configuring-styles", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/angular-configuring-styles", - "tags": ["storybook"] - } - ], - "isExternal": false, - "path": "/recipes/storybook", - "tags": [] - }, - "/recipes/storybook/overview-react": { - "id": "overview-react", - "name": "Set up Storybook for React Projects", - "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-react", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-react", - "tags": ["storybook"] - }, - "/recipes/storybook/overview-angular": { - "id": "overview-angular", - "name": "Set up Storybook for Angular Projects", - "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-angular", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-angular", - "tags": ["storybook"] - }, - "/recipes/storybook/overview-vue": { - "id": "overview-vue", - "name": "Set up Storybook for Vue Projects", - "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/plugin-vue", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/overview-vue", - "tags": ["storybook"] - }, - "/recipes/storybook/configuring-storybook": { - "id": "configuring-storybook", - "name": "Configuring Storybook on Nx", - "description": "This guide explains how Storybook is configured on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/configuring-storybook", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/configuring-storybook", - "tags": ["storybook"] - }, - "/recipes/storybook/one-storybook-for-all": { - "id": "one-storybook-for-all", - "name": "One main Storybook instance for all projects", - "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-for-all", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-for-all", - "tags": ["storybook"] - }, - "/recipes/storybook/one-storybook-per-scope": { - "id": "one-storybook-per-scope", - "name": "One Storybook instance per scope", - "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-per-scope", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-per-scope", - "tags": ["storybook"] - }, - "/recipes/storybook/one-storybook-with-composition": { - "id": "one-storybook-with-composition", - "name": "One main Storybook instance using Storybook Composition", - "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", - "mediaImage": "", - "file": "shared/recipes/storybook/one-storybook-with-composition", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/one-storybook-with-composition", - "tags": ["storybook"] - }, - "/recipes/storybook/custom-builder-configs": { - "id": "custom-builder-configs", - "name": "How to configure Webpack and Vite for Storybook", - "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", - "mediaImage": "", - "file": "shared/recipes/storybook/custom-builder-configs", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/custom-builder-configs", - "tags": ["storybook"] - }, - "/recipes/storybook/storybook-interaction-tests": { - "id": "storybook-interaction-tests", - "name": "Setting up Storybook Interaction Tests with Nx", - "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/interaction-tests", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/storybook-interaction-tests", - "tags": ["storybook"] - }, - "/recipes/storybook/upgrading-storybook": { - "id": "upgrading-storybook", - "name": "Upgrading Storybook using the Storybook CLI", - "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", - "mediaImage": "", - "file": "shared/recipes/storybook/upgrading-storybook", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/upgrading-storybook", - "tags": ["storybook"] - }, - "/recipes/storybook/storybook-composition-setup": { - "id": "storybook-composition-setup", - "name": "Setting up Storybook Composition with Nx", - "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/storybook-composition-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/storybook-composition-setup", - "tags": ["storybook"] - }, - "/recipes/storybook/angular-storybook-compodoc": { - "id": "angular-storybook-compodoc", - "name": "Angular: Set up Compodoc for Storybook on Nx", - "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", - "mediaImage": "", - "file": "shared/recipes/storybook/angular-storybook-compodoc", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/angular-storybook-compodoc", - "tags": ["storybook"] - }, - "/recipes/storybook/angular-configuring-styles": { - "id": "angular-configuring-styles", - "name": "Angular: Configuring styles and preprocessor options", - "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", - "mediaImage": "", - "file": "shared/recipes/storybook/angular-configuring-styles", - "itemList": [], - "isExternal": false, - "path": "/recipes/storybook/angular-configuring-styles", - "tags": ["storybook"] - }, - "/recipes/cypress": { - "id": "cypress", - "name": "Cypress", - "description": "Cypress related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "cypress-component-testing", - "name": "Component Testing", - "description": "Component Testing", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-component-testing", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-component-testing", - "tags": [] - }, - { - "id": "cypress-setup-node-events", - "name": "Using setupNodeEvents with Cypress preset", - "description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-setup-node-events", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-setup-node-events", - "tags": [] - }, - { - "id": "cypress-v11-migration", - "name": "Cypress v11 Migration Guide", - "description": "Cypress v11 Migration Guide", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-v11-migration", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-v11-migration", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/cypress", - "tags": [] - }, - "/recipes/cypress/cypress-component-testing": { - "id": "cypress-component-testing", - "name": "Component Testing", - "description": "Component Testing", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-component-testing", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-component-testing", - "tags": [] - }, - "/recipes/cypress/cypress-setup-node-events": { - "id": "cypress-setup-node-events", - "name": "Using setupNodeEvents with Cypress preset", - "description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-setup-node-events", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-setup-node-events", - "tags": [] - }, - "/recipes/cypress/cypress-v11-migration": { - "id": "cypress-v11-migration", - "name": "Cypress v11 Migration Guide", - "description": "Cypress v11 Migration Guide", - "mediaImage": "", - "file": "shared/packages/cypress/cypress-v11-migration", - "itemList": [], - "isExternal": false, - "path": "/recipes/cypress/cypress-v11-migration", - "tags": [] - }, - "/recipes/next": { - "id": "next", - "name": "Next", - "description": "Next related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "next-config-setup", - "name": "How to configure Next.js plugins", - "description": "How to configure Next.js plugins", - "mediaImage": "", - "file": "shared/packages/next/next-config-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/next/next-config-setup", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/next", - "tags": [] - }, - "/recipes/next/next-config-setup": { - "id": "next-config-setup", - "name": "How to configure Next.js plugins", - "description": "How to configure Next.js plugins", - "mediaImage": "", - "file": "shared/packages/next/next-config-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/next/next-config-setup", - "tags": [] - }, - "/recipes/nuxt": { - "id": "nuxt", - "name": "Nuxt", - "description": "Nuxt related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "deploy-nuxt-to-vercel", - "name": "Deploying Nuxt applications to Vercel", - "description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.", - "mediaImage": "", - "file": "shared/recipes/deployment/deploy-nuxt-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/nuxt/deploy-nuxt-to-vercel", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/nuxt", - "tags": [] - }, - "/recipes/nuxt/deploy-nuxt-to-vercel": { - "id": "deploy-nuxt-to-vercel", - "name": "Deploying Nuxt applications to Vercel", - "description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.", - "mediaImage": "", - "file": "shared/recipes/deployment/deploy-nuxt-to-vercel", - "itemList": [], - "isExternal": false, - "path": "/recipes/nuxt/deploy-nuxt-to-vercel", - "tags": [] - }, - "/recipes/vite": { - "id": "vite", - "name": "Vite", - "description": "Vite related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "configure-vite", - "name": "Configure Vite on your Nx workspace", - "description": "Configure Vite on your Nx workspace", - "mediaImage": "", - "file": "shared/packages/vite/configure-vite", - "itemList": [], - "isExternal": false, - "path": "/recipes/vite/configure-vite", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/vite", - "tags": [] - }, - "/recipes/vite/configure-vite": { - "id": "configure-vite", - "name": "Configure Vite on your Nx workspace", - "description": "Configure Vite on your Nx workspace", - "mediaImage": "", - "file": "shared/packages/vite/configure-vite", - "itemList": [], - "isExternal": false, - "path": "/recipes/vite/configure-vite", - "tags": [] - }, - "/recipes/webpack": { - "id": "webpack", - "name": "Webpack", - "description": "Webpack related recipes", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "webpack-config-setup", - "name": "How to configure Webpack in your Nx workspace", - "description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration", - "mediaImage": "", - "file": "shared/packages/webpack/webpack-config-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/webpack/webpack-config-setup", - "tags": [] - }, - { - "id": "webpack-plugins", - "name": "Webpack plugins", - "description": "Webpack plugins", - "mediaImage": "", - "file": "shared/packages/webpack/webpack-plugins", - "itemList": [], - "isExternal": false, - "path": "/recipes/webpack/webpack-plugins", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/webpack", - "tags": [] - }, - "/recipes/webpack/webpack-config-setup": { - "id": "webpack-config-setup", - "name": "How to configure Webpack in your Nx workspace", - "description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration", - "mediaImage": "", - "file": "shared/packages/webpack/webpack-config-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/webpack/webpack-config-setup", - "tags": [] - }, - "/recipes/webpack/webpack-plugins": { - "id": "webpack-plugins", - "name": "Webpack plugins", - "description": "Webpack plugins", - "mediaImage": "", - "file": "shared/packages/webpack/webpack-plugins", - "itemList": [], - "isExternal": false, - "path": "/recipes/webpack/webpack-plugins", - "tags": [] - }, - "/recipes/module-federation": { - "id": "module-federation", - "name": "Module Federation", - "description": "Advanced guides to utilize Module Federation with Nx.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "create-a-host", - "name": "How to create a Module Federation Host Application", - "description": "A guide on how to create a Module Federation Host Application in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/creating-a-host", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/create-a-host", - "tags": [] - }, - { - "id": "create-a-remote", - "name": "How to create a Module Federation Remote Application", - "description": "A guide on how to create a Module Federation Remote Application in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/creating-a-remote", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/create-a-remote", - "tags": [] - }, - { - "id": "federate-a-module", - "name": "How to Federate a Module", - "description": "A guide on how to federate a module in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/federate-a-module", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/federate-a-module", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/module-federation", - "tags": [] - }, - "/recipes/module-federation/create-a-host": { - "id": "create-a-host", - "name": "How to create a Module Federation Host Application", - "description": "A guide on how to create a Module Federation Host Application in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/creating-a-host", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/create-a-host", - "tags": [] - }, - "/recipes/module-federation/create-a-remote": { - "id": "create-a-remote", - "name": "How to create a Module Federation Remote Application", - "description": "A guide on how to create a Module Federation Remote Application in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/creating-a-remote", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/create-a-remote", - "tags": [] - }, - "/recipes/module-federation/federate-a-module": { - "id": "federate-a-module", - "name": "How to Federate a Module", - "description": "A guide on how to federate a module in your Nx workspace", - "mediaImage": "", - "file": "shared/recipes/module-federation/federate-a-module", - "itemList": [], - "isExternal": false, - "path": "/recipes/module-federation/federate-a-module", - "tags": [] - }, - "/recipes/enforce-module-boundaries": { - "id": "enforce-module-boundaries", - "name": "Enforce Module Boundaries", - "description": "Configuring the enforce module boundaries rule", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "ban-dependencies-with-tags", - "name": "Ban Dependencies with Certain Tags", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ban-dependencies-with-tags", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "tag-multiple-dimensions", - "name": "Tag in Multiple Dimensions", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tag-multiple-dimensions", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "ban-external-imports", - "name": "Ban External Imports", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ban-external-imports", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "tags-allow-list", - "name": "Tags Allow List", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tags-allow-list", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-module-boundaries"] - } - ], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries", - "tags": [] - }, - "/recipes/enforce-module-boundaries/ban-dependencies-with-tags": { - "id": "ban-dependencies-with-tags", - "name": "Ban Dependencies with Certain Tags", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ban-dependencies-with-tags", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", - "tags": ["enforce-module-boundaries"] - }, - "/recipes/enforce-module-boundaries/tag-multiple-dimensions": { - "id": "tag-multiple-dimensions", - "name": "Tag in Multiple Dimensions", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tag-multiple-dimensions", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", - "tags": ["enforce-module-boundaries"] - }, - "/recipes/enforce-module-boundaries/ban-external-imports": { - "id": "ban-external-imports", - "name": "Ban External Imports", - "description": "", - "mediaImage": "", - "file": "shared/recipes/ban-external-imports", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/ban-external-imports", - "tags": ["enforce-module-boundaries"] - }, - "/recipes/enforce-module-boundaries/tags-allow-list": { - "id": "tags-allow-list", - "name": "Tags Allow List", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tags-allow-list", - "itemList": [], - "isExternal": false, - "path": "/recipes/enforce-module-boundaries/tags-allow-list", - "tags": ["enforce-module-boundaries"] - }, - "/recipes/installation": { - "id": "installation", - "name": "Installation", - "description": "Installing Nx", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "install-non-javascript", - "name": "Install Nx in a Non-Javascript Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/install-non-javascript", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/install-non-javascript", - "tags": ["installation"] - }, - { - "id": "update-global-installation", - "name": "Update Your Global Nx Installation", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/update-global-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/update-global-installation", - "tags": ["installation"] - } - ], - "isExternal": false, - "path": "/recipes/installation", - "tags": [] - }, - "/recipes/installation/install-non-javascript": { - "id": "install-non-javascript", - "name": "Install Nx in a Non-Javascript Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/install-non-javascript", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/install-non-javascript", - "tags": ["installation"] - }, - "/recipes/installation/update-global-installation": { - "id": "update-global-installation", - "name": "Update Your Global Nx Installation", - "description": "", - "mediaImage": "", - "file": "shared/recipes/installation/update-global-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/installation/update-global-installation", - "tags": ["installation"] - }, - "/recipes/tips-n-tricks": { - "id": "tips-n-tricks", - "name": "Tips and tricks", - "description": "Various tips and tricks for using Nx.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "tags": ["repository-types"] - }, - { - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "tags": ["repository-types"] - }, - { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] - }, - { - "id": "eslint", - "name": "Configuring ESLint with Typescript", - "description": "", - "mediaImage": "", - "file": "shared/eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/eslint", - "tags": [] - }, - { - "id": "enable-tsc-batch-mode", - "name": "Enable Typescript Batch Mode", - "description": "", - "mediaImage": "", - "file": "shared/recipes/enable-tsc-batch-mode", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", - "tags": [] - }, - { - "id": "define-secondary-entrypoints", - "name": "Define Secondary Entrypoints for Typescript Packages", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", - "tags": [] - }, - { - "id": "compile-multiple-formats", - "name": "Compile Typescript Packages to Multiple Formats", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/compile-multiple-formats", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/compile-multiple-formats", - "tags": [] - }, - { - "id": "keep-nx-versions-in-sync", - "name": "Keep Nx Versions in Sync", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "tags": ["automate-updating-dependencies"] - }, - { - "id": "define-environment-variables", - "name": "Define Environment Variables", - "description": "", - "mediaImage": "", - "file": "shared/guides/define-environment-variables", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-environment-variables", - "tags": ["environment-variables"] - }, - { - "id": "browser-support", - "name": "Configuring Browser Support", - "description": "", - "mediaImage": "", - "file": "shared/guides/browser-support", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/browser-support", - "tags": [] - }, - { - "id": "include-assets-in-build", - "name": "Include Assets in Build", - "description": "", - "mediaImage": "", - "file": "shared/recipes/include-assets-in-build", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "tags": [] - }, - { - "id": "include-all-packagejson", - "name": "Include All package.json Files as Projects", - "description": "", - "mediaImage": "", - "file": "shared/recipes/include-all-packagejson", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "tags": [] - }, - { - "id": "identify-dependencies-between-folders", - "name": "Identify Dependencies Between Folders", - "description": "", - "mediaImage": "", - "file": "shared/recipes/identify-dependencies-between-folders", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "tags": [] - }, - { - "id": "analyze-source-files", - "name": "Disable Graph Links Created from Analyzing Source Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/analyze-source-files", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/analyze-source-files", - "tags": ["explore-graph"] - }, - { - "id": "js-and-ts", - "name": "Use JavaScript instead TypeScript", - "description": "", - "mediaImage": "", - "file": "shared/guides/js-and-ts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/js-and-ts", - "tags": [] - }, - { - "id": "advanced-update", - "name": "Altering Migration Process", - "description": "", - "mediaImage": "", - "file": "shared/recipes/advanced-update", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/advanced-update", - "tags": ["automate-updating-dependencies"] - }, - { - "id": "yarn-pnp", - "name": "Using Yarn PnP", - "description": "", - "mediaImage": "", - "file": "shared/recipes/yarn-pnp", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/yarn-pnp", - "tags": ["yarn", "Plug and Play"] - }, - { - "id": "flat-config", - "name": "Switching to ESLint's flat config format", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/flat-config", - "tags": ["eslint", "flat config"] - } - ], - "isExternal": false, - "path": "/recipes/tips-n-tricks", - "tags": [] - }, - "/recipes/tips-n-tricks/package-based-in-integrated": { - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/package-based-in-integrated", - "tags": ["repository-types"] - }, - "/recipes/tips-n-tricks/integrated-in-package-based": { - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/integrated-in-package-based", - "tags": ["repository-types"] - }, - "/recipes/tips-n-tricks/standalone-to-integrated": { - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "description": "", - "mediaImage": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/standalone-to-integrated", - "tags": ["repository-types"] - }, - "/recipes/tips-n-tricks/eslint": { - "id": "eslint", - "name": "Configuring ESLint with Typescript", - "description": "", - "mediaImage": "", - "file": "shared/eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/eslint", - "tags": [] - }, - "/recipes/tips-n-tricks/enable-tsc-batch-mode": { - "id": "enable-tsc-batch-mode", - "name": "Enable Typescript Batch Mode", - "description": "", - "mediaImage": "", - "file": "shared/recipes/enable-tsc-batch-mode", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", - "tags": [] - }, - "/recipes/tips-n-tricks/define-secondary-entrypoints": { - "id": "define-secondary-entrypoints", - "name": "Define Secondary Entrypoints for Typescript Packages", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", - "tags": [] - }, - "/recipes/tips-n-tricks/compile-multiple-formats": { - "id": "compile-multiple-formats", - "name": "Compile Typescript Packages to Multiple Formats", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/compile-multiple-formats", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/compile-multiple-formats", - "tags": [] - }, - "/recipes/tips-n-tricks/keep-nx-versions-in-sync": { - "id": "keep-nx-versions-in-sync", - "name": "Keep Nx Versions in Sync", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "tags": ["automate-updating-dependencies"] - }, - "/recipes/tips-n-tricks/define-environment-variables": { - "id": "define-environment-variables", - "name": "Define Environment Variables", - "description": "", - "mediaImage": "", - "file": "shared/guides/define-environment-variables", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/define-environment-variables", - "tags": ["environment-variables"] - }, - "/recipes/tips-n-tricks/browser-support": { - "id": "browser-support", - "name": "Configuring Browser Support", - "description": "", - "mediaImage": "", - "file": "shared/guides/browser-support", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/browser-support", - "tags": [] - }, - "/recipes/tips-n-tricks/include-assets-in-build": { - "id": "include-assets-in-build", - "name": "Include Assets in Build", - "description": "", - "mediaImage": "", - "file": "shared/recipes/include-assets-in-build", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-assets-in-build", - "tags": [] - }, - "/recipes/tips-n-tricks/include-all-packagejson": { - "id": "include-all-packagejson", - "name": "Include All package.json Files as Projects", - "description": "", - "mediaImage": "", - "file": "shared/recipes/include-all-packagejson", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/include-all-packagejson", - "tags": [] - }, - "/recipes/tips-n-tricks/identify-dependencies-between-folders": { - "id": "identify-dependencies-between-folders", - "name": "Identify Dependencies Between Folders", - "description": "", - "mediaImage": "", - "file": "shared/recipes/identify-dependencies-between-folders", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", - "tags": [] - }, - "/recipes/tips-n-tricks/analyze-source-files": { - "id": "analyze-source-files", - "name": "Disable Graph Links Created from Analyzing Source Files", - "description": "", - "mediaImage": "", - "file": "shared/recipes/analyze-source-files", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/analyze-source-files", - "tags": ["explore-graph"] - }, - "/recipes/tips-n-tricks/js-and-ts": { - "id": "js-and-ts", - "name": "Use JavaScript instead TypeScript", - "description": "", - "mediaImage": "", - "file": "shared/guides/js-and-ts", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/js-and-ts", - "tags": [] - }, - "/recipes/tips-n-tricks/advanced-update": { - "id": "advanced-update", - "name": "Altering Migration Process", - "description": "", - "mediaImage": "", - "file": "shared/recipes/advanced-update", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/advanced-update", - "tags": ["automate-updating-dependencies"] - }, - "/recipes/tips-n-tricks/yarn-pnp": { - "id": "yarn-pnp", - "name": "Using Yarn PnP", - "description": "", - "mediaImage": "", - "file": "shared/recipes/yarn-pnp", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/yarn-pnp", - "tags": ["yarn", "Plug and Play"] - }, - "/recipes/tips-n-tricks/flat-config": { - "id": "flat-config", - "name": "Switching to ESLint's flat config format", - "description": "", - "mediaImage": "", - "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", - "itemList": [], - "isExternal": false, - "path": "/recipes/tips-n-tricks/flat-config", - "tags": ["eslint", "flat config"] - }, - "/recipes/troubleshooting": { - "id": "troubleshooting", - "name": "Troubleshooting", - "description": "Learn how to troubleshoot common problems.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "resolve-circular-dependencies", - "name": "Resolve Circular Dependencies", - "description": "", - "mediaImage": "", - "file": "shared/recipes/resolve-circular-dependencies", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "tags": ["explore-graph"] - }, - { - "id": "troubleshoot-nx-install-issues", - "name": "Troubleshooting Nx Install Issues", - "description": "", - "mediaImage": "", - "file": "shared/installation/troubleshoot-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "tags": [] - }, - { - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "description": "", - "mediaImage": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "tags": ["cache-task-results"] - }, - { - "id": "unknown-local-cache", - "name": "Unknown Local Cache Error", - "description": "", - "mediaImage": "", - "file": "shared/guides/unknown-local-cache", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/unknown-local-cache", - "tags": [] - }, - { - "id": "performance-profiling", - "name": "Profiling Build Performance", - "description": "", - "mediaImage": "", - "file": "shared/guides/performance-profiling", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/performance-profiling", - "tags": ["environment-variables"] - } - ], - "isExternal": false, - "path": "/recipes/troubleshooting", - "tags": [] - }, - "/recipes/troubleshooting/resolve-circular-dependencies": { - "id": "resolve-circular-dependencies", - "name": "Resolve Circular Dependencies", - "description": "", - "mediaImage": "", - "file": "shared/recipes/resolve-circular-dependencies", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/resolve-circular-dependencies", - "tags": ["explore-graph"] - }, - "/recipes/troubleshooting/troubleshoot-nx-install-issues": { - "id": "troubleshoot-nx-install-issues", - "name": "Troubleshooting Nx Install Issues", - "description": "", - "mediaImage": "", - "file": "shared/installation/troubleshoot-installation", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", - "tags": [] - }, - "/recipes/troubleshooting/troubleshoot-cache-misses": { - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "description": "", - "mediaImage": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/troubleshoot-cache-misses", - "tags": ["cache-task-results"] - }, - "/recipes/troubleshooting/unknown-local-cache": { - "id": "unknown-local-cache", - "name": "Unknown Local Cache Error", - "description": "", - "mediaImage": "", - "file": "shared/guides/unknown-local-cache", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/unknown-local-cache", - "tags": [] - }, - "/recipes/troubleshooting/performance-profiling": { - "id": "performance-profiling", - "name": "Profiling Build Performance", - "description": "", - "mediaImage": "", - "file": "shared/guides/performance-profiling", - "itemList": [], - "isExternal": false, - "path": "/recipes/troubleshooting/performance-profiling", - "tags": ["environment-variables"] - }, - "/recipes/nx-console": { - "id": "nx-console", - "name": "Nx Console", - "description": "Checkout all the recipes related to Nx Console.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "console-telemetry", - "name": "Telemetry", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-telemetry", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-telemetry", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-project-details", - "name": "Project Details View", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-project-details", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-details", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-generate-command", - "name": "Generate Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-generate-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-generate-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-run-command", - "name": "Run Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-run-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-run-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-add-dependency-command", - "name": "Add Dependency Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-add-dependency-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-add-dependency-command", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-project-pane", - "name": "Project Pane", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-project-pane", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-pane", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-shortcuts", - "name": "Keyboard Shortcuts", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-shortcuts", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-shortcuts", - "tags": ["integrate-with-editors"] - }, - { - "id": "console-troubleshooting", - "name": "Troubleshooting", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-troubleshooting", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-troubleshooting", - "tags": ["integrate-with-editors"] - } - ], - "isExternal": false, - "path": "/recipes/nx-console", - "tags": [] - }, - "/recipes/nx-console/console-telemetry": { - "id": "console-telemetry", - "name": "Telemetry", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-telemetry", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-telemetry", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-project-details": { - "id": "console-project-details", - "name": "Project Details View", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-project-details", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-details", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-generate-command": { - "id": "console-generate-command", - "name": "Generate Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-generate-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-generate-command", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-run-command": { - "id": "console-run-command", - "name": "Run Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-run-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-run-command", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-add-dependency-command": { - "id": "console-add-dependency-command", - "name": "Add Dependency Command", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-add-dependency-command", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-add-dependency-command", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-project-pane": { - "id": "console-project-pane", - "name": "Project Pane", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-project-pane", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-project-pane", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-shortcuts": { - "id": "console-shortcuts", - "name": "Keyboard Shortcuts", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-shortcuts", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-shortcuts", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-console/console-troubleshooting": { - "id": "console-troubleshooting", - "name": "Troubleshooting", - "description": "", - "mediaImage": "", - "file": "shared/recipes/console-troubleshooting", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-console/console-troubleshooting", - "tags": ["integrate-with-editors"] - }, - "/recipes/nx-release": { - "id": "nx-release", - "name": "Nx Release", - "description": "Recipes for releasing with Nx release.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "get-started-with-nx-release", - "name": "Get Started with Nx Release", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/get-started-with-nx-release", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/get-started-with-nx-release", - "tags": ["nx-release"] - }, - { - "id": "release-projects-independently", - "name": "Release Projects Independently", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/release-projects-independently", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/release-projects-independently", - "tags": ["nx-release"] - }, - { - "id": "automatically-version-with-conventional-commits", - "name": "Automatically Version with Conventional Commits", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/automatically-version-with-conventional-commits", - "tags": ["nx-release"] - }, - { - "id": "publish-in-ci-cd", - "name": "Publish in CI/CD", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/publish-in-ci-cd", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/publish-in-ci-cd", - "tags": ["nx-release"] - }, - { - "id": "automate-github-releases", - "name": "Automate GitHub Releases", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/automate-github-releases", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/automate-github-releases", - "tags": ["nx-release"] - }, - { - "id": "publish-rust-crates", - "name": "Publish Rust Crates", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/publish-rust-crates", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/publish-rust-crates", - "tags": ["nx-release"] - }, - { - "id": "update-local-registry-setup", - "name": "Update Your Local Registry Setup to use Nx Release", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/update-local-registry-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/update-local-registry-setup", - "tags": ["nx-release"] - }, - { - "id": "customize-conventional-commit-types", - "name": "Customize Conventional Commit Types", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/customize-conventional-commit-types", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/customize-conventional-commit-types", - "tags": ["nx-release"] - } - ], - "isExternal": false, - "path": "/recipes/nx-release", - "tags": [] - }, - "/recipes/nx-release/get-started-with-nx-release": { - "id": "get-started-with-nx-release", - "name": "Get Started with Nx Release", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/get-started-with-nx-release", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/get-started-with-nx-release", - "tags": ["nx-release"] - }, - "/recipes/nx-release/release-projects-independently": { - "id": "release-projects-independently", - "name": "Release Projects Independently", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/release-projects-independently", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/release-projects-independently", - "tags": ["nx-release"] - }, - "/recipes/nx-release/automatically-version-with-conventional-commits": { - "id": "automatically-version-with-conventional-commits", - "name": "Automatically Version with Conventional Commits", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/automatically-version-with-conventional-commits", - "tags": ["nx-release"] - }, - "/recipes/nx-release/publish-in-ci-cd": { - "id": "publish-in-ci-cd", - "name": "Publish in CI/CD", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/publish-in-ci-cd", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/publish-in-ci-cd", - "tags": ["nx-release"] - }, - "/recipes/nx-release/automate-github-releases": { - "id": "automate-github-releases", - "name": "Automate GitHub Releases", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/automate-github-releases", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/automate-github-releases", - "tags": ["nx-release"] - }, - "/recipes/nx-release/publish-rust-crates": { - "id": "publish-rust-crates", - "name": "Publish Rust Crates", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/publish-rust-crates", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/publish-rust-crates", - "tags": ["nx-release"] - }, - "/recipes/nx-release/update-local-registry-setup": { - "id": "update-local-registry-setup", - "name": "Update Your Local Registry Setup to use Nx Release", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/update-local-registry-setup", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/update-local-registry-setup", - "tags": ["nx-release"] - }, - "/recipes/nx-release/customize-conventional-commit-types": { - "id": "customize-conventional-commit-types", - "name": "Customize Conventional Commit Types", - "description": "", - "mediaImage": "", - "file": "shared/recipes/nx-release/customize-conventional-commit-types", - "itemList": [], - "isExternal": false, - "path": "/recipes/nx-release/customize-conventional-commit-types", - "tags": ["nx-release"] - }, - "/recipes/other": { - "id": "other", - "name": "Other", - "description": "Other recipes you will find useful.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "rescope", - "name": "Rescope Packages from @nrwl to @nx", - "description": "", - "mediaImage": "", - "file": "shared/recipes/rescope", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/rescope", - "tags": [] - } - ], - "isExternal": false, - "path": "/recipes/other", - "tags": [] - }, - "/recipes/other/rescope": { - "id": "rescope", - "name": "Rescope Packages from @nrwl to @nx", - "description": "", - "mediaImage": "", - "file": "shared/recipes/rescope", - "itemList": [], - "isExternal": false, - "path": "/recipes/other/rescope", - "tags": [] - }, - "/showcase": { - "id": "showcase", - "name": "Showcase", - "description": "Discover our selection of examples and benchmarks.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "example-repos", - "name": "Nx with your favorite tech", - "description": "Examples of different ways to use Nx with your favorite tech", - "mediaImage": "", - "file": "shared/showcase/example-repos", - "itemList": [ - { - "id": "add-express", - "name": "Express", - "description": "Add an Express application to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-express", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-express", - "tags": [] - }, - { - "id": "add-lit", - "name": "Lit", - "description": "Lit to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-lit", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-lit", - "tags": [] - }, - { - "id": "add-solid", - "name": "Solid", - "description": "Solid to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-solid", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-solid", - "tags": [] - }, - { - "id": "add-qwik", - "name": "Qwik", - "description": "Qwik to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-qwik", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-qwik", - "tags": [] - }, - { - "id": "add-rust", - "name": "Rust", - "description": "Rust to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-rust", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-rust", - "tags": [] - }, - { - "id": "add-dotnet", - "name": ".NET", - "description": ".NET to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-dotnet", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-dotnet", - "tags": [] - }, - { - "id": "add-astro", - "name": "Astro", - "description": "Add Nx to an Astro project", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-astro", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-astro", - "tags": [] - }, - { - "id": "add-svelte", - "name": "Svelte", - "description": "Svelte to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-svelte", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-svelte", - "tags": [] - }, - { - "id": "add-fastify", - "name": "Fastify", - "description": "Fastify to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-fastify", - "tags": [] - }, - { - "id": "apollo-react", - "name": "Apollo GraphQL", - "description": "", - "mediaImage": "", - "file": "shared/examples/apollo-react", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/apollo-react", - "tags": [] - }, - { - "id": "nestjs-prisma", - "name": "Prisma with NestJS", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/nestjs-prisma", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/nestjs-prisma", - "tags": ["database", "node"] - }, - { - "id": "mongo-fastify", - "name": "Mongo with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/mongo-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/mongo-fastify", - "tags": ["database", "node"] - }, - { - "id": "redis-fastify", - "name": "Redis with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/redis-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/redis-fastify", - "tags": ["database", "node"] - }, - { - "id": "postgres-fastify", - "name": "Postgres with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/postgres-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/postgres-fastify", - "tags": ["database", "node"] - }, - { - "id": "serverless-fastify-planetscale", - "name": "PlanetScale with Serverless Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/serverless-fastify-planetscale", - "tags": ["database", "node", "serverless"] - }, - { - "id": "mfe", - "name": "Nx with Micro-frontends", - "description": "", - "mediaImage": "", - "file": "shared/examples/nx-examples", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/mfe", - "tags": [] - } - ], - "isExternal": false, - "path": "/showcase/example-repos", - "tags": [] - }, - { - "id": "benchmarks", - "name": "Benchmarks", - "description": "Benchmarks showing how fast Nx is", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "tsc-batch-mode", - "name": "Typescript Batch Mode Compilation", - "description": "", - "mediaImage": "", - "file": "shared/examples/tsc-batch-mode", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/tsc-batch-mode", - "tags": [] - }, - { - "id": "caching", - "name": "Large Repo and Caching", - "description": "", - "mediaImage": "", - "file": "shared/examples/caching", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/caching", - "tags": [] - }, - { - "id": "dte", - "name": "Large Repo and DTE", - "description": "", - "mediaImage": "", - "file": "shared/examples/dte", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/showcase/benchmarks", - "tags": [] - } - ], - "isExternal": false, - "path": "/showcase", - "tags": [] - }, - "/showcase/example-repos": { - "id": "example-repos", - "name": "Nx with your favorite tech", - "description": "Examples of different ways to use Nx with your favorite tech", - "mediaImage": "", - "file": "shared/showcase/example-repos", - "itemList": [ - { - "id": "add-express", - "name": "Express", - "description": "Add an Express application to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-express", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-express", - "tags": [] - }, - { - "id": "add-lit", - "name": "Lit", - "description": "Lit to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-lit", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-lit", - "tags": [] - }, - { - "id": "add-solid", - "name": "Solid", - "description": "Solid to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-solid", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-solid", - "tags": [] - }, - { - "id": "add-qwik", - "name": "Qwik", - "description": "Qwik to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-qwik", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-qwik", - "tags": [] - }, - { - "id": "add-rust", - "name": "Rust", - "description": "Rust to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-rust", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-rust", - "tags": [] - }, - { - "id": "add-dotnet", - "name": ".NET", - "description": ".NET to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-dotnet", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-dotnet", - "tags": [] - }, - { - "id": "add-astro", - "name": "Astro", - "description": "Add Nx to an Astro project", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-astro", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-astro", - "tags": [] - }, - { - "id": "add-svelte", - "name": "Svelte", - "description": "Svelte to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-svelte", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-svelte", - "tags": [] - }, - { - "id": "add-fastify", - "name": "Fastify", - "description": "Fastify to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-fastify", - "tags": [] - }, - { - "id": "apollo-react", - "name": "Apollo GraphQL", - "description": "", - "mediaImage": "", - "file": "shared/examples/apollo-react", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/apollo-react", - "tags": [] - }, - { - "id": "nestjs-prisma", - "name": "Prisma with NestJS", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/nestjs-prisma", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/nestjs-prisma", - "tags": ["database", "node"] - }, - { - "id": "mongo-fastify", - "name": "Mongo with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/mongo-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/mongo-fastify", - "tags": ["database", "node"] - }, - { - "id": "redis-fastify", - "name": "Redis with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/redis-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/redis-fastify", - "tags": ["database", "node"] - }, - { - "id": "postgres-fastify", - "name": "Postgres with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/postgres-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/postgres-fastify", - "tags": ["database", "node"] - }, - { - "id": "serverless-fastify-planetscale", - "name": "PlanetScale with Serverless Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/serverless-fastify-planetscale", - "tags": ["database", "node", "serverless"] - }, - { - "id": "mfe", - "name": "Nx with Micro-frontends", - "description": "", - "mediaImage": "", - "file": "shared/examples/nx-examples", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/mfe", - "tags": [] - } - ], - "isExternal": false, - "path": "/showcase/example-repos", - "tags": [] - }, - "/showcase/example-repos/add-express": { - "id": "add-express", - "name": "Express", - "description": "Add an Express application to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-express", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-express", - "tags": [] - }, - "/showcase/example-repos/add-lit": { - "id": "add-lit", - "name": "Lit", - "description": "Lit to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-lit", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-lit", - "tags": [] - }, - "/showcase/example-repos/add-solid": { - "id": "add-solid", - "name": "Solid", - "description": "Solid to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-solid", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-solid", - "tags": [] - }, - "/showcase/example-repos/add-qwik": { - "id": "add-qwik", - "name": "Qwik", - "description": "Qwik to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-qwik", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-qwik", - "tags": [] - }, - "/showcase/example-repos/add-rust": { - "id": "add-rust", - "name": "Rust", - "description": "Rust to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-rust", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-rust", - "tags": [] - }, - "/showcase/example-repos/add-dotnet": { - "id": "add-dotnet", - "name": ".NET", - "description": ".NET to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-dotnet", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-dotnet", - "tags": [] - }, - "/showcase/example-repos/add-astro": { - "id": "add-astro", - "name": "Astro", - "description": "Add Nx to an Astro project", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-astro", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-astro", - "tags": [] - }, - "/showcase/example-repos/add-svelte": { - "id": "add-svelte", - "name": "Svelte", - "description": "Svelte to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-svelte", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-svelte", - "tags": [] - }, - "/showcase/example-repos/add-fastify": { - "id": "add-fastify", - "name": "Fastify", - "description": "Fastify to your repo", - "mediaImage": "", - "file": "shared/recipes/add-stack/add-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/add-fastify", - "tags": [] - }, - "/showcase/example-repos/apollo-react": { - "id": "apollo-react", - "name": "Apollo GraphQL", - "description": "", - "mediaImage": "", - "file": "shared/examples/apollo-react", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/apollo-react", - "tags": [] - }, - "/showcase/example-repos/nestjs-prisma": { - "id": "nestjs-prisma", - "name": "Prisma with NestJS", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/nestjs-prisma", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/nestjs-prisma", - "tags": ["database", "node"] - }, - "/showcase/example-repos/mongo-fastify": { - "id": "mongo-fastify", - "name": "Mongo with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/mongo-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/mongo-fastify", - "tags": ["database", "node"] - }, - "/showcase/example-repos/redis-fastify": { - "id": "redis-fastify", - "name": "Redis with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/redis-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/redis-fastify", - "tags": ["database", "node"] - }, - "/showcase/example-repos/postgres-fastify": { - "id": "postgres-fastify", - "name": "Postgres with Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/postgres-fastify", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/postgres-fastify", - "tags": ["database", "node"] - }, - "/showcase/example-repos/serverless-fastify-planetscale": { - "id": "serverless-fastify-planetscale", - "name": "PlanetScale with Serverless Fastify", - "description": "", - "mediaImage": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/serverless-fastify-planetscale", - "tags": ["database", "node", "serverless"] - }, - "/showcase/example-repos/mfe": { - "id": "mfe", - "name": "Nx with Micro-frontends", - "description": "", - "mediaImage": "", - "file": "shared/examples/nx-examples", - "itemList": [], - "isExternal": false, - "path": "/showcase/example-repos/mfe", - "tags": [] - }, - "/showcase/benchmarks": { - "id": "benchmarks", - "name": "Benchmarks", - "description": "Benchmarks showing how fast Nx is", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "tsc-batch-mode", - "name": "Typescript Batch Mode Compilation", - "description": "", - "mediaImage": "", - "file": "shared/examples/tsc-batch-mode", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/tsc-batch-mode", - "tags": [] - }, - { - "id": "caching", - "name": "Large Repo and Caching", - "description": "", - "mediaImage": "", - "file": "shared/examples/caching", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/caching", - "tags": [] - }, - { - "id": "dte", - "name": "Large Repo and DTE", - "description": "", - "mediaImage": "", - "file": "shared/examples/dte", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/dte", - "tags": [] - } - ], - "isExternal": false, - "path": "/showcase/benchmarks", - "tags": [] - }, - "/showcase/benchmarks/tsc-batch-mode": { - "id": "tsc-batch-mode", - "name": "Typescript Batch Mode Compilation", - "description": "", - "mediaImage": "", - "file": "shared/examples/tsc-batch-mode", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/tsc-batch-mode", - "tags": [] - }, - "/showcase/benchmarks/caching": { - "id": "caching", - "name": "Large Repo and Caching", - "description": "", - "mediaImage": "", - "file": "shared/examples/caching", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/caching", - "tags": [] - }, - "/showcase/benchmarks/dte": { - "id": "dte", - "name": "Large Repo and DTE", - "description": "", - "mediaImage": "", - "file": "shared/examples/dte", - "itemList": [], - "isExternal": false, - "path": "/showcase/benchmarks/dte", - "tags": [] - }, - "/reference": { - "id": "reference", - "name": "Reference", - "description": "Understand how to use Nx functionalities, what arguments and options are available for each component.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "commands", - "name": "Commands", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/nx-api/nx", - "tags": [] - }, - { - "id": "nx-json", - "name": "Nx Configuration", - "description": "", - "mediaImage": "", - "file": "shared/reference/nx-json", - "itemList": [], - "isExternal": false, - "path": "/reference/nx-json", - "tags": [] - }, - { - "id": "project-configuration", - "name": "Project Configuration", - "description": "", - "mediaImage": "", - "file": "shared/reference/project-configuration", - "itemList": [], - "isExternal": false, - "path": "/reference/project-configuration", - "tags": [] - }, - { - "id": "inputs", - "name": "Inputs and Named Inputs", - "description": "", - "mediaImage": "", - "file": "shared/reference/inputs", - "itemList": [], - "isExternal": false, - "path": "/reference/inputs", - "tags": ["cache-task-results"] - }, - { - "id": "nxignore", - "name": ".nxignore", - "description": "", - "mediaImage": "", - "file": "shared/reference/nxignore", - "itemList": [], - "isExternal": false, - "path": "/reference/nxignore", - "tags": ["enforce-module-boundaries"] - }, - { - "id": "environment-variables", - "name": "Environment Variables", - "description": "", - "mediaImage": "", - "file": "shared/reference/environment-variables", - "itemList": [], - "isExternal": false, - "path": "/reference/environment-variables", - "tags": ["environment-variables"] - }, - { - "id": "glossary", - "name": "Glossary", - "description": "", - "mediaImage": "", - "file": "shared/reference/glossary", - "itemList": [], - "isExternal": false, - "path": "/reference/glossary", - "tags": [] - } - ], - "isExternal": false, - "path": "/reference", - "tags": [] - }, - "/nx-api/nx": { - "id": "commands", - "name": "Commands", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/nx-api/nx", - "tags": [] - }, - "/reference/nx-json": { - "id": "nx-json", - "name": "Nx Configuration", - "description": "", - "mediaImage": "", - "file": "shared/reference/nx-json", - "itemList": [], - "isExternal": false, - "path": "/reference/nx-json", - "tags": [] - }, - "/reference/project-configuration": { - "id": "project-configuration", - "name": "Project Configuration", - "description": "", - "mediaImage": "", - "file": "shared/reference/project-configuration", - "itemList": [], - "isExternal": false, - "path": "/reference/project-configuration", - "tags": [] - }, - "/reference/inputs": { - "id": "inputs", - "name": "Inputs and Named Inputs", - "description": "", - "mediaImage": "", - "file": "shared/reference/inputs", - "itemList": [], - "isExternal": false, - "path": "/reference/inputs", - "tags": ["cache-task-results"] - }, - "/reference/nxignore": { - "id": "nxignore", - "name": ".nxignore", - "description": "", - "mediaImage": "", - "file": "shared/reference/nxignore", - "itemList": [], - "isExternal": false, - "path": "/reference/nxignore", - "tags": ["enforce-module-boundaries"] - }, - "/reference/environment-variables": { - "id": "environment-variables", - "name": "Environment Variables", - "description": "", - "mediaImage": "", - "file": "shared/reference/environment-variables", - "itemList": [], - "isExternal": false, - "path": "/reference/environment-variables", - "tags": ["environment-variables"] - }, - "/reference/glossary": { - "id": "glossary", - "name": "Glossary", - "description": "", - "mediaImage": "", - "file": "shared/reference/glossary", - "itemList": [], - "isExternal": false, - "path": "/reference/glossary", - "tags": [] - }, - "/deprecated": { - "id": "deprecated", - "name": "Deprecated", - "description": "Functionality that has been superseded in the current version of Nx. Listed here for those running older versions.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "workspace-json", - "name": "workspace.json", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-json", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-json", - "tags": [] - }, - { - "id": "workspace-lint", - "name": "workspace-lint", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-lint", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-lint", - "tags": [] - }, - { - "id": "as-provided-vs-derived", - "name": "As Provided vs. Derived", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/as-provided-vs-derived", - "itemList": [], - "isExternal": false, - "path": "/deprecated/as-provided-vs-derived", - "tags": [] - }, - { - "id": "workspace-generators", - "name": "Workspace Generators", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-generators", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-generators", - "tags": [] - }, - { - "id": "workspace-executors", - "name": "Workspace Executors", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-executors", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-executors", - "tags": [] - }, - { - "id": "default-collection", - "name": "defaultCollection", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/default-collection", - "itemList": [], - "isExternal": false, - "path": "/deprecated/default-collection", - "tags": [] - }, - { - "id": "runtime-cache-inputs", - "name": "runtimeCacheInputs", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/runtime-cache-inputs", - "itemList": [], - "isExternal": false, - "path": "/deprecated/runtime-cache-inputs", - "tags": [] - }, - { - "id": "cacheable-operations", - "name": "cacheableOperations", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/cacheable-operations", - "itemList": [], - "isExternal": false, - "path": "/deprecated/cacheable-operations", - "tags": [] - }, - { - "id": "npm-scope", - "name": "npmScope", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/npm-scope", - "itemList": [], - "isExternal": false, - "path": "/deprecated/npm-scope", - "tags": [] - }, - { - "id": "global-implicit-dependencies", - "name": "globalImplicitDependencies", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/global-implicit-dependencies", - "itemList": [], - "isExternal": false, - "path": "/deprecated/global-implicit-dependencies", - "tags": [] - }, - { - "id": "angular-schematics-builders", - "name": "Angular Schematics and Builders", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/angular-schematics-builders", - "itemList": [], - "isExternal": false, - "path": "/deprecated/angular-schematics-builders", - "tags": [] - }, - { - "id": "storybook", - "name": "Storybook deprecated docs", - "description": "Deprecated @nx/storybook package documentation and guides.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "angular-storybook-targets", - "name": "Angular: Information about the Storybook targets", - "description": "This document explains the role of the storybook and build-storybook targets in Angular projects with a Storybook configuration, and specifically which executors are used for them.", - "mediaImage": "", - "file": "shared/deprecated/storybook/angular-storybook-targets", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/angular-storybook-targets", - "tags": [] - }, - { - "id": "angular-project-build-config", - "name": "Angular - The projectBuildConfig", - "description": "This document explains the role of the projectBuildConfig in Angular projects with a Storybook configuration, and how the Storybook executors use it.", - "mediaImage": "", - "file": "shared/deprecated/storybook/angular-project-build-config", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/angular-project-build-config", - "tags": [] - }, - { - "id": "migrate-webpack-final-angular", - "name": "Angular: Storybook Migration to webpackFinal", - "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration.", - "mediaImage": "", - "file": "shared/deprecated/storybook/migrate-webpack-final-angular", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "tags": [] - }, - { - "id": "upgrade-storybook-v6-angular", - "name": "Angular: Upgrading to Storybook 6", - "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for Angular projects.", - "mediaImage": "", - "file": "shared/deprecated/storybook/storybook-v6-angular", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "tags": [] - }, - { - "id": "migrate-webpack-final-react", - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration and the Nx React Addon.", - "mediaImage": "", - "file": "shared/deprecated/storybook/migrate-webpack-final-react", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/migrate-webpack-final-react", - "tags": [] - }, - { - "id": "upgrade-storybook-v6-react", - "name": "React: Upgrading to Storybook 6", - "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for React projects.", - "mediaImage": "", - "file": "shared/deprecated/storybook/storybook-v6-react", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "tags": [] - } - ], - "isExternal": false, - "path": "/deprecated/storybook", - "tags": [] - }, - { - "id": "v1-nx-plugin-api", - "name": "v1 Nx Plugin API", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/v1-nx-plugin-api", - "itemList": [], - "isExternal": false, - "path": "/deprecated/v1-nx-plugin-api", - "tags": [] - } - ], - "isExternal": false, - "path": "/deprecated", - "tags": [] - }, - "/deprecated/workspace-json": { - "id": "workspace-json", - "name": "workspace.json", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-json", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-json", - "tags": [] - }, - "/deprecated/workspace-lint": { - "id": "workspace-lint", - "name": "workspace-lint", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-lint", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-lint", - "tags": [] - }, - "/deprecated/as-provided-vs-derived": { - "id": "as-provided-vs-derived", - "name": "As Provided vs. Derived", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/as-provided-vs-derived", - "itemList": [], - "isExternal": false, - "path": "/deprecated/as-provided-vs-derived", - "tags": [] - }, - "/deprecated/workspace-generators": { - "id": "workspace-generators", - "name": "Workspace Generators", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-generators", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-generators", - "tags": [] - }, - "/deprecated/workspace-executors": { - "id": "workspace-executors", - "name": "Workspace Executors", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/workspace-executors", - "itemList": [], - "isExternal": false, - "path": "/deprecated/workspace-executors", - "tags": [] - }, - "/deprecated/default-collection": { - "id": "default-collection", - "name": "defaultCollection", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/default-collection", - "itemList": [], - "isExternal": false, - "path": "/deprecated/default-collection", - "tags": [] - }, - "/deprecated/runtime-cache-inputs": { - "id": "runtime-cache-inputs", - "name": "runtimeCacheInputs", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/runtime-cache-inputs", - "itemList": [], - "isExternal": false, - "path": "/deprecated/runtime-cache-inputs", - "tags": [] - }, - "/deprecated/cacheable-operations": { - "id": "cacheable-operations", - "name": "cacheableOperations", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/cacheable-operations", - "itemList": [], - "isExternal": false, - "path": "/deprecated/cacheable-operations", - "tags": [] - }, - "/deprecated/npm-scope": { - "id": "npm-scope", - "name": "npmScope", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/npm-scope", - "itemList": [], - "isExternal": false, - "path": "/deprecated/npm-scope", - "tags": [] - }, - "/deprecated/global-implicit-dependencies": { - "id": "global-implicit-dependencies", - "name": "globalImplicitDependencies", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/global-implicit-dependencies", - "itemList": [], - "isExternal": false, - "path": "/deprecated/global-implicit-dependencies", - "tags": [] - }, - "/deprecated/angular-schematics-builders": { - "id": "angular-schematics-builders", - "name": "Angular Schematics and Builders", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/angular-schematics-builders", - "itemList": [], - "isExternal": false, - "path": "/deprecated/angular-schematics-builders", - "tags": [] - }, - "/deprecated/storybook": { - "id": "storybook", - "name": "Storybook deprecated docs", - "description": "Deprecated @nx/storybook package documentation and guides.", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "angular-storybook-targets", - "name": "Angular: Information about the Storybook targets", - "description": "This document explains the role of the storybook and build-storybook targets in Angular projects with a Storybook configuration, and specifically which executors are used for them.", - "mediaImage": "", - "file": "shared/deprecated/storybook/angular-storybook-targets", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/angular-storybook-targets", - "tags": [] - }, - { - "id": "angular-project-build-config", - "name": "Angular - The projectBuildConfig", - "description": "This document explains the role of the projectBuildConfig in Angular projects with a Storybook configuration, and how the Storybook executors use it.", - "mediaImage": "", - "file": "shared/deprecated/storybook/angular-project-build-config", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/angular-project-build-config", - "tags": [] - }, - { - "id": "migrate-webpack-final-angular", - "name": "Angular: Storybook Migration to webpackFinal", - "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration.", - "mediaImage": "", - "file": "shared/deprecated/storybook/migrate-webpack-final-angular", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "tags": [] - }, - { - "id": "upgrade-storybook-v6-angular", - "name": "Angular: Upgrading to Storybook 6", - "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for Angular projects.", - "mediaImage": "", - "file": "shared/deprecated/storybook/storybook-v6-angular", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "tags": [] - }, - { - "id": "migrate-webpack-final-react", - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration and the Nx React Addon.", - "mediaImage": "", - "file": "shared/deprecated/storybook/migrate-webpack-final-react", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/migrate-webpack-final-react", - "tags": [] - }, - { - "id": "upgrade-storybook-v6-react", - "name": "React: Upgrading to Storybook 6", - "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for React projects.", - "mediaImage": "", - "file": "shared/deprecated/storybook/storybook-v6-react", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "tags": [] - } - ], - "isExternal": false, - "path": "/deprecated/storybook", - "tags": [] - }, - "/deprecated/storybook/angular-storybook-targets": { - "id": "angular-storybook-targets", - "name": "Angular: Information about the Storybook targets", - "description": "This document explains the role of the storybook and build-storybook targets in Angular projects with a Storybook configuration, and specifically which executors are used for them.", - "mediaImage": "", - "file": "shared/deprecated/storybook/angular-storybook-targets", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/angular-storybook-targets", - "tags": [] - }, - "/deprecated/storybook/angular-project-build-config": { - "id": "angular-project-build-config", - "name": "Angular - The projectBuildConfig", - "description": "This document explains the role of the projectBuildConfig in Angular projects with a Storybook configuration, and how the Storybook executors use it.", - "mediaImage": "", - "file": "shared/deprecated/storybook/angular-project-build-config", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/angular-project-build-config", - "tags": [] - }, - "/deprecated/storybook/migrate-webpack-final-angular": { - "id": "migrate-webpack-final-angular", - "name": "Angular: Storybook Migration to webpackFinal", - "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration.", - "mediaImage": "", - "file": "shared/deprecated/storybook/migrate-webpack-final-angular", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/migrate-webpack-final-angular", - "tags": [] - }, - "/deprecated/storybook/upgrade-storybook-v6-angular": { - "id": "upgrade-storybook-v6-angular", - "name": "Angular: Upgrading to Storybook 6", - "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for Angular projects.", - "mediaImage": "", - "file": "shared/deprecated/storybook/storybook-v6-angular", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/upgrade-storybook-v6-angular", - "tags": [] - }, - "/deprecated/storybook/migrate-webpack-final-react": { - "id": "migrate-webpack-final-react", - "name": "React: Storybook Migration to webpackFinal and the Nx Addon", - "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration and the Nx React Addon.", - "mediaImage": "", - "file": "shared/deprecated/storybook/migrate-webpack-final-react", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/migrate-webpack-final-react", - "tags": [] - }, - "/deprecated/storybook/upgrade-storybook-v6-react": { - "id": "upgrade-storybook-v6-react", - "name": "React: Upgrading to Storybook 6", - "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for React projects.", - "mediaImage": "", - "file": "shared/deprecated/storybook/storybook-v6-react", - "itemList": [], - "isExternal": false, - "path": "/deprecated/storybook/upgrade-storybook-v6-react", - "tags": [] - }, - "/deprecated/v1-nx-plugin-api": { - "id": "v1-nx-plugin-api", - "name": "v1 Nx Plugin API", - "description": "", - "mediaImage": "", - "file": "shared/deprecated/v1-nx-plugin-api", - "itemList": [], - "isExternal": false, - "path": "/deprecated/v1-nx-plugin-api", - "tags": [] - }, - "/see-also": { - "id": "see-also", - "name": "See Also", - "description": "Links to other pieces of documentation", - "mediaImage": "", - "file": "", - "itemList": [ - { - "id": "ci", - "name": "CI Documentation", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/intro/ci-with-nx", - "tags": ["cache-task-results", "distribute-task-execution"] - }, - { - "id": "nx-cloud-main-site", - "name": "Nx Cloud Main Site", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "https://nx.app", - "tags": ["cache-task-results", "distribute-task-execution"] - }, - { - "id": "skip-nx-cache-flag", - "name": "--skip-nx-cache flag", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/nx-api/nx/documents/affected#skip-nx-cache", - "tags": ["cache-task-results"] - }, - { - "id": "tasks-runner-options-property", - "name": "tasks-runner-options property", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/nx-json#tasks-runner-options", - "tags": ["cache-task-results"] - }, - { - "id": "nxjson-inputs", - "name": "nx.json reference: inputs and namedInputs", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/nx-json#inputs-&-namedinputs", - "tags": ["cache-task-results"] - }, - { - "id": "project-config-inputs", - "name": "Project Configuration reference: inputs and namedInputs", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/project-configuration#inputs-&-namedinputs", - "tags": ["cache-task-results"] - }, - { - "id": "nxjson-generator-defaults", - "name": "nx.json generator defaults", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/nx-json#generators", - "tags": ["generate-code"] - }, - { - "id": "sitemap", - "name": "Site Map", - "description": "", - "mediaImage": "", - "file": "shared/reference/sitemap", - "itemList": [], - "isExternal": false, - "path": "/see-also/sitemap", - "tags": [] - } - ], - "isExternal": false, - "path": "/see-also", - "tags": [] - }, - "/ci/intro/ci-with-nx": { - "id": "ci", - "name": "CI Documentation", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/ci/intro/ci-with-nx", - "tags": ["cache-task-results", "distribute-task-execution"] - }, - "/nx-api/nx/documents/affected#skip-nx-cache": { - "id": "skip-nx-cache-flag", - "name": "--skip-nx-cache flag", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/nx-api/nx/documents/affected#skip-nx-cache", - "tags": ["cache-task-results"] - }, - "/reference/nx-json#tasks-runner-options": { - "id": "tasks-runner-options-property", - "name": "tasks-runner-options property", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/nx-json#tasks-runner-options", - "tags": ["cache-task-results"] - }, - "/reference/nx-json#inputs-&-namedinputs": { - "id": "nxjson-inputs", - "name": "nx.json reference: inputs and namedInputs", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/nx-json#inputs-&-namedinputs", - "tags": ["cache-task-results"] - }, - "/reference/project-configuration#inputs-&-namedinputs": { - "id": "project-config-inputs", - "name": "Project Configuration reference: inputs and namedInputs", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/project-configuration#inputs-&-namedinputs", - "tags": ["cache-task-results"] - }, - "/reference/nx-json#generators": { - "id": "nxjson-generator-defaults", - "name": "nx.json generator defaults", - "description": "", - "mediaImage": "", - "file": "", - "itemList": [], - "isExternal": true, - "path": "/reference/nx-json#generators", - "tags": ["generate-code"] - }, - "/see-also/sitemap": { - "id": "sitemap", - "name": "Site Map", - "description": "", - "mediaImage": "", - "file": "shared/reference/sitemap", - "itemList": [], - "isExternal": false, - "path": "/see-also/sitemap", - "tags": [] - } -} diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json deleted file mode 100644 index 340a48fc0c94f..0000000000000 --- a/docs/generated/manifests/tags.json +++ /dev/null @@ -1,1160 +0,0 @@ -{ - "run-tasks": [ - { - "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", - "file": "shared/features/run-tasks", - "id": "run-tasks", - "name": "Run Tasks", - "path": "/features/run-tasks" - }, - { - "description": "", - "file": "shared/concepts/task-pipeline-configuration", - "id": "task-pipeline-configuration", - "name": "What is a Task Pipeline", - "path": "/concepts/task-pipeline-configuration" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/executors-and-configurations", - "id": "executors-and-configurations", - "name": "Executors and Configurations", - "path": "/concepts/executors-and-configurations" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/configure-inputs", - "id": "configure-inputs", - "name": "Configure Inputs for Task Caching", - "path": "/recipes/running-tasks/configure-inputs" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/configure-outputs", - "id": "configure-outputs", - "name": "Configure Outputs for Task Caching", - "path": "/recipes/running-tasks/configure-outputs" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/defining-task-pipeline", - "id": "defining-task-pipeline", - "name": "Define a Task Pipeline", - "path": "/recipes/running-tasks/defining-task-pipeline" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/running-custom-commands", - "id": "run-commands-executor", - "name": "Run Custom Commands", - "path": "/recipes/running-tasks/run-commands-executor" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/run-tasks-in-parallel", - "id": "run-tasks-in-parallel", - "name": "Run Tasks in Parallel", - "path": "/recipes/running-tasks/run-tasks-in-parallel" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/root-level-scripts", - "id": "root-level-scripts", - "name": "Run Root-Level NPM Scripts with Nx", - "path": "/recipes/running-tasks/root-level-scripts" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/workspace-watching", - "id": "workspace-watching", - "name": "Workspace Watching", - "path": "/recipes/running-tasks/workspace-watching" - }, - { - "description": "", - "file": "shared/using-nx/affected", - "id": "affected", - "name": "Run Only Tasks Affected by a PR", - "path": "/ci/features/affected" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/run", - "id": "run", - "name": "run", - "path": "/nx-api/nx/documents/run" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/run-many", - "id": "run-many", - "name": "run-many", - "path": "/nx-api/nx/documents/run-many" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/affected", - "id": "affected", - "name": "affected", - "path": "/nx-api/nx/documents/affected" - } - ], - "cache-task-results": [ - { - "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", - "file": "shared/features/run-tasks", - "id": "run-tasks", - "name": "Run Tasks", - "path": "/features/run-tasks" - }, - { - "description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.", - "file": "shared/features/cache-task-results", - "id": "cache-task-results", - "name": "Cache Task Results", - "path": "/features/cache-task-results" - }, - { - "description": "", - "file": "shared/concepts/how-caching-works", - "id": "how-caching-works", - "name": "How Caching Works", - "path": "/concepts/how-caching-works" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/configure-inputs", - "id": "configure-inputs", - "name": "Configure Inputs for Task Caching", - "path": "/recipes/running-tasks/configure-inputs" - }, - { - "description": "", - "file": "shared/recipes/running-tasks/configure-outputs", - "id": "configure-outputs", - "name": "Configure Outputs for Task Caching", - "path": "/recipes/running-tasks/configure-outputs" - }, - { - "description": "", - "file": "shared/recipes/troubleshoot-cache-misses", - "id": "troubleshoot-cache-misses", - "name": "Troubleshoot Cache Misses", - "path": "/recipes/troubleshooting/troubleshoot-cache-misses" - }, - { - "description": "", - "file": "shared/reference/inputs", - "id": "inputs", - "name": "Inputs and Named Inputs", - "path": "/reference/inputs" - }, - { - "description": "", - "file": "", - "id": "ci", - "name": "CI Documentation", - "path": "/ci/intro/ci-with-nx" - }, - { - "description": "", - "file": "", - "id": "skip-nx-cache-flag", - "name": "--skip-nx-cache flag", - "path": "/nx-api/nx/documents/affected#skip-nx-cache" - }, - { - "description": "", - "file": "", - "id": "tasks-runner-options-property", - "name": "tasks-runner-options property", - "path": "/reference/nx-json#tasks-runner-options" - }, - { - "description": "", - "file": "", - "id": "nxjson-inputs", - "name": "nx.json reference: inputs and namedInputs", - "path": "/reference/nx-json#inputs-&-namedinputs" - }, - { - "description": "", - "file": "", - "id": "project-config-inputs", - "name": "Project Configuration reference: inputs and namedInputs", - "path": "/reference/project-configuration#inputs-&-namedinputs" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", - "id": "connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "path": "/nx-api/nx/documents/connect-to-nx-cloud" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/reset", - "id": "reset", - "name": "reset", - "path": "/nx-api/nx/documents/reset" - } - ], - "explore-graph": [ - { - "description": "", - "file": "shared/features/explore-graph", - "id": "explore-graph", - "name": "Explore your Workspace", - "path": "/features/explore-graph" - }, - { - "description": "", - "file": "shared/concepts/how-project-graph-is-built", - "id": "how-project-graph-is-built", - "name": "How the Project Graph is Built", - "path": "/concepts/more-concepts/how-project-graph-is-built" - }, - { - "description": "", - "file": "shared/recipes/analyze-source-files", - "id": "analyze-source-files", - "name": "Disable Graph Links Created from Analyzing Source Files", - "path": "/recipes/tips-n-tricks/analyze-source-files" - }, - { - "description": "", - "file": "shared/recipes/resolve-circular-dependencies", - "id": "resolve-circular-dependencies", - "name": "Resolve Circular Dependencies", - "path": "/recipes/troubleshooting/resolve-circular-dependencies" - }, - { - "description": "", - "file": "shared/recipes/plugins/project-graph-plugins", - "id": "project-graph-plugins", - "name": "Modify the Project Graph", - "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.", - "file": "generated/packages/generated/packages/nx/documents/dep-graph", - "id": "dep-graph", - "name": "graph", - "path": "/nx-api/nx/documents/dep-graph" - } - ], - "generate-code": [ - { - "description": "", - "file": "shared/features/generate-code", - "id": "generate-code", - "name": "Generate Code", - "path": "/features/generate-code" - }, - { - "description": "", - "file": "shared/concepts/nx-plugins", - "id": "nx-plugins", - "name": "What Are Nx Plugins", - "path": "/concepts/nx-plugins" - }, - { - "description": "", - "file": "shared/monorepo-nx-enterprise", - "id": "monorepo-nx-enterprise", - "name": "Using Nx at Enterprises", - "path": "/concepts/more-concepts/monorepo-nx-enterprise" - }, - { - "description": "", - "file": "", - "id": "nxjson-generator-defaults", - "name": "nx.json generator defaults", - "path": "/reference/nx-json#generators" - }, - { - "description": "", - "file": "shared/recipes/generators/local-generators", - "id": "local-generators", - "name": "Write a Simple Generator", - "path": "/extending-nx/recipes/local-generators" - }, - { - "description": "", - "file": "shared/recipes/generators/composing-generators", - "id": "composing-generators", - "name": "Compose Generators", - "path": "/extending-nx/recipes/composing-generators" - }, - { - "description": "", - "file": "shared/recipes/generators/generator-options", - "id": "generator-options", - "name": "Provide Options for Generators", - "path": "/extending-nx/recipes/generator-options" - }, - { - "description": "", - "file": "shared/recipes/generators/creating-files", - "id": "creating-files", - "name": "Create Files", - "path": "/extending-nx/recipes/creating-files" - }, - { - "description": "", - "file": "shared/recipes/generators/modifying-files", - "id": "modifying-files", - "name": "Modify 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.", - "file": "generated/packages/generated/packages/nx/documents/generate", - "id": "generate", - "name": "generate", - "path": "/nx-api/nx/documents/generate" - } - ], - "automate-updating-dependencies": [ - { - "description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.", - "file": "shared/features/automate-updating-dependencies", - "id": "automate-updating-dependencies", - "name": "Automate Updating Dependencies", - "path": "/features/automate-updating-dependencies" - }, - { - "description": "", - "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", - "id": "keep-nx-versions-in-sync", - "name": "Keep Nx Versions in Sync", - "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync" - }, - { - "description": "", - "file": "shared/recipes/advanced-update", - "id": "advanced-update", - "name": "Altering Migration Process", - "path": "/recipes/tips-n-tricks/advanced-update" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/migrate", - "id": "migrate", - "name": "migrate", - "path": "/nx-api/nx/documents/migrate" - } - ], - "enforce-module-boundaries": [ - { - "description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.", - "file": "shared/features/enforce-module-boundaries", - "id": "enforce-module-boundaries", - "name": "Enforce Module Boundaries", - "path": "/features/enforce-module-boundaries" - }, - { - "description": "", - "file": "shared/monorepo-nx-enterprise", - "id": "monorepo-nx-enterprise", - "name": "Using Nx at Enterprises", - "path": "/concepts/more-concepts/monorepo-nx-enterprise" - }, - { - "description": "", - "file": "shared/workspace/applications-and-libraries", - "id": "applications-and-libraries", - "name": "Applications and Libraries", - "path": "/concepts/more-concepts/applications-and-libraries" - }, - { - "description": "", - "file": "shared/workspace/creating-libraries", - "id": "creating-libraries", - "name": "Creating Libraries", - "path": "/concepts/more-concepts/creating-libraries" - }, - { - "description": "", - "file": "shared/workspace/library-types", - "id": "library-types", - "name": "Library Types", - "path": "/concepts/more-concepts/library-types" - }, - { - "description": "", - "file": "shared/workspace/grouping-libraries", - "id": "grouping-libraries", - "name": "Grouping Libraries", - "path": "/concepts/more-concepts/grouping-libraries" - }, - { - "description": "", - "file": "shared/recipes/ban-dependencies-with-tags", - "id": "ban-dependencies-with-tags", - "name": "Ban Dependencies with Certain Tags", - "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags" - }, - { - "description": "", - "file": "shared/recipes/tag-multiple-dimensions", - "id": "tag-multiple-dimensions", - "name": "Tag in Multiple Dimensions", - "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions" - }, - { - "description": "", - "file": "shared/recipes/ban-external-imports", - "id": "ban-external-imports", - "name": "Ban External Imports", - "path": "/recipes/enforce-module-boundaries/ban-external-imports" - }, - { - "description": "", - "file": "shared/recipes/tags-allow-list", - "id": "tags-allow-list", - "name": "Tags Allow List", - "path": "/recipes/enforce-module-boundaries/tags-allow-list" - }, - { - "description": "", - "file": "shared/reference/nxignore", - "id": "nxignore", - "name": ".nxignore", - "path": "/reference/nxignore" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/format-check", - "id": "format-check", - "name": "format:check", - "path": "/nx-api/nx/documents/format-check" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/format-write", - "id": "format-write", - "name": "format:write", - "path": "/nx-api/nx/documents/format-write" - } - ], - "integrate-with-editors": [ - { - "description": "Learn about Nx Console, an extension for VS Code and WebStorm.", - "file": "shared/features/integrate-with-editors", - "id": "integrate-with-editors", - "name": "Integrate with Editors", - "path": "/features/integrate-with-editors" - }, - { - "description": "", - "file": "shared/recipes/console-telemetry", - "id": "console-telemetry", - "name": "Telemetry", - "path": "/recipes/nx-console/console-telemetry" - }, - { - "description": "", - "file": "shared/recipes/console-project-details", - "id": "console-project-details", - "name": "Project Details View", - "path": "/recipes/nx-console/console-project-details" - }, - { - "description": "", - "file": "shared/recipes/console-generate-command", - "id": "console-generate-command", - "name": "Generate Command", - "path": "/recipes/nx-console/console-generate-command" - }, - { - "description": "", - "file": "shared/recipes/console-run-command", - "id": "console-run-command", - "name": "Run Command", - "path": "/recipes/nx-console/console-run-command" - }, - { - "description": "", - "file": "shared/recipes/console-add-dependency-command", - "id": "console-add-dependency-command", - "name": "Add Dependency Command", - "path": "/recipes/nx-console/console-add-dependency-command" - }, - { - "description": "", - "file": "shared/recipes/console-project-pane", - "id": "console-project-pane", - "name": "Project Pane", - "path": "/recipes/nx-console/console-project-pane" - }, - { - "description": "", - "file": "shared/recipes/console-shortcuts", - "id": "console-shortcuts", - "name": "Keyboard Shortcuts", - "path": "/recipes/nx-console/console-shortcuts" - }, - { - "description": "", - "file": "shared/recipes/console-troubleshooting", - "id": "console-troubleshooting", - "name": "Troubleshooting", - "path": "/recipes/nx-console/console-troubleshooting" - } - ], - "manage-releases": [ - { - "description": "Learn how Nx provides tools to help you manage releasing your projects.", - "file": "shared/features/manage-releases", - "id": "manage-releases", - "name": "Manage Releases", - "path": "/features/manage-releases" - } - ], - "intro": [ - { - "description": "", - "file": "shared/mental-model", - "id": "mental-model", - "name": "Mental Model", - "path": "/concepts/mental-model" - }, - { - "description": "", - "file": "shared/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based" - } - ], - "create-your-own-plugin": [ - { - "description": "", - "file": "shared/concepts/nx-plugins", - "id": "nx-plugins", - "name": "What Are Nx Plugins", - "path": "/concepts/nx-plugins" - }, - { - "description": "", - "file": "shared/guides/nx-devkit-angular-devkit", - "id": "nx-devkit-angular-devkit", - "name": "Nx Devkit and Angular Devkit", - "path": "/concepts/more-concepts/nx-devkit-angular-devkit" - }, - { - "description": "", - "file": "shared/recipes/plugins/migration-generators", - "id": "migration-generators", - "name": "Write a Migration", - "path": "/extending-nx/recipes/migration-generators" - }, - { - "description": "", - "file": "shared/recipes/plugins/create-preset", - "id": "create-preset", - "name": "Create a Preset", - "path": "/extending-nx/recipes/create-preset" - }, - { - "description": "", - "file": "shared/recipes/plugins/create-install-package", - "id": "create-install-package", - "name": "Create an Install Package", - "path": "/extending-nx/recipes/create-install-package" - }, - { - "description": "", - "file": "shared/recipes/plugins/project-graph-plugins", - "id": "project-graph-plugins", - "name": "Modify the Project Graph", - "path": "/extending-nx/recipes/project-graph-plugins" - } - ], - "inferred-tasks": [ - { - "description": "", - "file": "shared/concepts/inferred-tasks", - "id": "inferred-tasks", - "name": "Inferred Tasks", - "path": "/concepts/inferred-tasks" - } - ], - "repository-types": [ - { - "description": "", - "file": "shared/concepts/integrated-vs-package-based", - "id": "integrated-vs-package-based", - "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", - "path": "/concepts/integrated-vs-package-based" - }, - { - "description": "", - "file": "shared/recipes/repo-types/package-based-in-integrated", - "id": "package-based-in-integrated", - "name": "Add a Package-based Project in an Integrated Repo", - "path": "/recipes/tips-n-tricks/package-based-in-integrated" - }, - { - "description": "", - "file": "shared/recipes/repo-types/integrated-in-package-based", - "id": "integrated-in-package-based", - "name": "Add an Integrated Project in a Package-based Repo", - "path": "/recipes/tips-n-tricks/integrated-in-package-based" - }, - { - "description": "", - "file": "shared/recipes/repo-types/standalone-to-integrated", - "id": "standalone-to-integrated", - "name": "Convert from a Standalone Repository to an Integrated Repository", - "path": "/recipes/tips-n-tricks/standalone-to-integrated" - } - ], - "module-federation": [ - { - "description": "", - "file": "shared/guides/module-federation/module-federation-and-nx", - "id": "module-federation-and-nx", - "name": "Module Federation and Nx", - "path": "/concepts/module-federation/module-federation-and-nx" - }, - { - "description": "", - "file": "shared/guides/module-federation/faster-builds", - "id": "faster-builds-with-module-federation", - "name": "Faster Builds with Module Federation", - "path": "/concepts/module-federation/faster-builds-with-module-federation" - }, - { - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "path": "/recipes/react/module-federation-with-ssr" - }, - { - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "path": "/recipes/angular/module-federation-with-ssr" - }, - { - "description": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "path": "/recipes/angular/dynamic-module-federation-with-angular" - } - ], - "angular": [ - { - "description": "", - "file": "shared/guides/module-federation/module-federation-and-nx", - "id": "module-federation-and-nx", - "name": "Module Federation and Nx", - "path": "/concepts/module-federation/module-federation-and-nx" - }, - { - "description": "", - "file": "shared/guides/module-federation/faster-builds", - "id": "faster-builds-with-module-federation", - "name": "Faster Builds with Module Federation", - "path": "/concepts/module-federation/faster-builds-with-module-federation" - }, - { - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for Angular", - "path": "/recipes/angular/module-federation-with-ssr" - }, - { - "description": "", - "file": "shared/guides/module-federation/dynamic-mfe-angular", - "id": "dynamic-module-federation-with-angular", - "name": "Advanced Micro Frontends with Angular using Dynamic Federation", - "path": "/recipes/angular/dynamic-module-federation-with-angular" - } - ], - "react": [ - { - "description": "", - "file": "shared/guides/module-federation/module-federation-and-nx", - "id": "module-federation-and-nx", - "name": "Module Federation and Nx", - "path": "/concepts/module-federation/module-federation-and-nx" - }, - { - "description": "", - "file": "shared/guides/module-federation/faster-builds", - "id": "faster-builds-with-module-federation", - "name": "Faster Builds with Module Federation", - "path": "/concepts/module-federation/faster-builds-with-module-federation" - }, - { - "description": "", - "file": "shared/recipes/module-federation-with-ssr", - "id": "module-federation-with-ssr", - "name": "Setup Module Federation with SSR for React", - "path": "/recipes/react/module-federation-with-ssr" - } - ], - "workspace-watching": [ - { - "description": "", - "file": "shared/recipes/running-tasks/workspace-watching", - "id": "workspace-watching", - "name": "Workspace Watching", - "path": "/recipes/running-tasks/workspace-watching" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/watch", - "id": "watch", - "name": "watch", - "path": "/nx-api/nx/documents/watch" - } - ], - "environment-variables": [ - { - "description": "", - "file": "shared/guides/use-environment-variables-in-react", - "id": "use-environment-variables-in-react", - "name": "Use Environment Variables in React", - "path": "/recipes/react/use-environment-variables-in-react" - }, - { - "description": "", - "file": "shared/guides/use-environment-variables-in-angular", - "id": "use-environment-variables-in-angular", - "name": "Use Environment Variables in Angular", - "path": "/recipes/angular/use-environment-variables-in-angular" - }, - { - "description": "", - "file": "shared/guides/define-environment-variables", - "id": "define-environment-variables", - "name": "Define Environment Variables", - "path": "/recipes/tips-n-tricks/define-environment-variables" - }, - { - "description": "", - "file": "shared/guides/performance-profiling", - "id": "performance-profiling", - "name": "Profiling Build Performance", - "path": "/recipes/troubleshooting/performance-profiling" - }, - { - "description": "", - "file": "shared/reference/environment-variables", - "id": "environment-variables", - "name": "Environment Variables", - "path": "/reference/environment-variables" - } - ], - "deployment": [ - { - "description": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "path": "/recipes/node/node-server-fly-io" - }, - { - "description": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "path": "/recipes/node/node-serverless-functions-netlify" - }, - { - "description": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "path": "/recipes/node/node-aws-lambda" - } - ], - "node": [ - { - "description": "", - "file": "shared/recipes/deployment/node-server-fly-io", - "id": "node-server-fly-io", - "name": "Deploying a Node App to Fly.io", - "path": "/recipes/node/node-server-fly-io" - }, - { - "description": "", - "file": "shared/recipes/deployment/node-serverless-functions-netlify", - "id": "node-serverless-functions-netlify", - "name": "Add and Deploy Netlify Edge Functions with Node", - "path": "/recipes/node/node-serverless-functions-netlify" - }, - { - "description": "", - "file": "shared/recipes/deployment/node-aws-lambda", - "id": "node-aws-lambda", - "name": "Deploying AWS lambda in Node.js", - "path": "/recipes/node/node-aws-lambda" - }, - { - "description": "", - "file": "shared/recipes/node/application-proxies", - "id": "application-proxies", - "name": "Set Up Application Proxies", - "path": "/recipes/node/application-proxies" - }, - { - "description": "", - "file": "shared/recipes/database/nestjs-prisma", - "id": "nestjs-prisma", - "name": "Prisma with NestJS", - "path": "/showcase/example-repos/nestjs-prisma" - }, - { - "description": "", - "file": "shared/recipes/database/mongo-fastify", - "id": "mongo-fastify", - "name": "Mongo with Fastify", - "path": "/showcase/example-repos/mongo-fastify" - }, - { - "description": "", - "file": "shared/recipes/database/redis-fastify", - "id": "redis-fastify", - "name": "Redis with Fastify", - "path": "/showcase/example-repos/redis-fastify" - }, - { - "description": "", - "file": "shared/recipes/database/postgres-fastify", - "id": "postgres-fastify", - "name": "Postgres with Fastify", - "path": "/showcase/example-repos/postgres-fastify" - }, - { - "description": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "id": "serverless-fastify-planetscale", - "name": "PlanetScale with Serverless Fastify", - "path": "/showcase/example-repos/serverless-fastify-planetscale" - } - ], - "storybook": [ - { - "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", - "file": "shared/recipes/storybook/plugin-react", - "id": "overview-react", - "name": "Set up Storybook for React Projects", - "path": "/recipes/storybook/overview-react" - }, - { - "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", - "file": "shared/recipes/storybook/plugin-angular", - "id": "overview-angular", - "name": "Set up Storybook for Angular Projects", - "path": "/recipes/storybook/overview-angular" - }, - { - "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", - "file": "shared/recipes/storybook/plugin-vue", - "id": "overview-vue", - "name": "Set up Storybook for Vue Projects", - "path": "/recipes/storybook/overview-vue" - }, - { - "description": "This guide explains how Storybook is configured on your Nx workspace.", - "file": "shared/recipes/storybook/configuring-storybook", - "id": "configuring-storybook", - "name": "Configuring Storybook on Nx", - "path": "/recipes/storybook/configuring-storybook" - }, - { - "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", - "file": "shared/recipes/storybook/one-storybook-for-all", - "id": "one-storybook-for-all", - "name": "One main Storybook instance for all projects", - "path": "/recipes/storybook/one-storybook-for-all" - }, - { - "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", - "file": "shared/recipes/storybook/one-storybook-per-scope", - "id": "one-storybook-per-scope", - "name": "One Storybook instance per scope", - "path": "/recipes/storybook/one-storybook-per-scope" - }, - { - "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", - "file": "shared/recipes/storybook/one-storybook-with-composition", - "id": "one-storybook-with-composition", - "name": "One main Storybook instance using Storybook Composition", - "path": "/recipes/storybook/one-storybook-with-composition" - }, - { - "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", - "file": "shared/recipes/storybook/custom-builder-configs", - "id": "custom-builder-configs", - "name": "How to configure Webpack and Vite for Storybook", - "path": "/recipes/storybook/custom-builder-configs" - }, - { - "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", - "file": "shared/recipes/storybook/interaction-tests", - "id": "storybook-interaction-tests", - "name": "Setting up Storybook Interaction Tests with Nx", - "path": "/recipes/storybook/storybook-interaction-tests" - }, - { - "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", - "file": "shared/recipes/storybook/upgrading-storybook", - "id": "upgrading-storybook", - "name": "Upgrading Storybook using the Storybook CLI", - "path": "/recipes/storybook/upgrading-storybook" - }, - { - "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", - "file": "shared/recipes/storybook/storybook-composition-setup", - "id": "storybook-composition-setup", - "name": "Setting up Storybook Composition with Nx", - "path": "/recipes/storybook/storybook-composition-setup" - }, - { - "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", - "file": "shared/recipes/storybook/angular-storybook-compodoc", - "id": "angular-storybook-compodoc", - "name": "Angular: Set up Compodoc for Storybook on Nx", - "path": "/recipes/storybook/angular-storybook-compodoc" - }, - { - "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", - "file": "shared/recipes/storybook/angular-configuring-styles", - "id": "angular-configuring-styles", - "name": "Angular: Configuring styles and preprocessor options", - "path": "/recipes/storybook/angular-configuring-styles" - } - ], - "installation": [ - { - "description": "", - "file": "shared/recipes/installation/install-non-javascript", - "id": "install-non-javascript", - "name": "Install Nx in a Non-Javascript Repo", - "path": "/recipes/installation/install-non-javascript" - }, - { - "description": "", - "file": "shared/recipes/installation/update-global-installation", - "id": "update-global-installation", - "name": "Update Your Global Nx Installation", - "path": "/recipes/installation/update-global-installation" - } - ], - "yarn": [ - { - "description": "", - "file": "shared/recipes/yarn-pnp", - "id": "yarn-pnp", - "name": "Using Yarn PnP", - "path": "/recipes/tips-n-tricks/yarn-pnp" - } - ], - "Plug and Play": [ - { - "description": "", - "file": "shared/recipes/yarn-pnp", - "id": "yarn-pnp", - "name": "Using Yarn PnP", - "path": "/recipes/tips-n-tricks/yarn-pnp" - } - ], - "eslint": [ - { - "description": "", - "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", - "id": "flat-config", - "name": "Switching to ESLint's flat config format", - "path": "/recipes/tips-n-tricks/flat-config" - } - ], - "flat config": [ - { - "description": "", - "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", - "id": "flat-config", - "name": "Switching to ESLint's flat config format", - "path": "/recipes/tips-n-tricks/flat-config" - } - ], - "nx-release": [ - { - "description": "", - "file": "shared/recipes/nx-release/get-started-with-nx-release", - "id": "get-started-with-nx-release", - "name": "Get Started with Nx Release", - "path": "/recipes/nx-release/get-started-with-nx-release" - }, - { - "description": "", - "file": "shared/recipes/nx-release/release-projects-independently", - "id": "release-projects-independently", - "name": "Release Projects Independently", - "path": "/recipes/nx-release/release-projects-independently" - }, - { - "description": "", - "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", - "id": "automatically-version-with-conventional-commits", - "name": "Automatically Version with Conventional Commits", - "path": "/recipes/nx-release/automatically-version-with-conventional-commits" - }, - { - "description": "", - "file": "shared/recipes/nx-release/publish-in-ci-cd", - "id": "publish-in-ci-cd", - "name": "Publish in CI/CD", - "path": "/recipes/nx-release/publish-in-ci-cd" - }, - { - "description": "", - "file": "shared/recipes/nx-release/automate-github-releases", - "id": "automate-github-releases", - "name": "Automate GitHub Releases", - "path": "/recipes/nx-release/automate-github-releases" - }, - { - "description": "", - "file": "shared/recipes/nx-release/publish-rust-crates", - "id": "publish-rust-crates", - "name": "Publish Rust Crates", - "path": "/recipes/nx-release/publish-rust-crates" - }, - { - "description": "", - "file": "shared/recipes/nx-release/update-local-registry-setup", - "id": "update-local-registry-setup", - "name": "Update Your Local Registry Setup to use Nx Release", - "path": "/recipes/nx-release/update-local-registry-setup" - }, - { - "description": "", - "file": "shared/recipes/nx-release/customize-conventional-commit-types", - "id": "customize-conventional-commit-types", - "name": "Customize Conventional Commit Types", - "path": "/recipes/nx-release/customize-conventional-commit-types" - } - ], - "database": [ - { - "description": "", - "file": "shared/recipes/database/nestjs-prisma", - "id": "nestjs-prisma", - "name": "Prisma with NestJS", - "path": "/showcase/example-repos/nestjs-prisma" - }, - { - "description": "", - "file": "shared/recipes/database/mongo-fastify", - "id": "mongo-fastify", - "name": "Mongo with Fastify", - "path": "/showcase/example-repos/mongo-fastify" - }, - { - "description": "", - "file": "shared/recipes/database/redis-fastify", - "id": "redis-fastify", - "name": "Redis with Fastify", - "path": "/showcase/example-repos/redis-fastify" - }, - { - "description": "", - "file": "shared/recipes/database/postgres-fastify", - "id": "postgres-fastify", - "name": "Postgres with Fastify", - "path": "/showcase/example-repos/postgres-fastify" - }, - { - "description": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "id": "serverless-fastify-planetscale", - "name": "PlanetScale with Serverless Fastify", - "path": "/showcase/example-repos/serverless-fastify-planetscale" - } - ], - "serverless": [ - { - "description": "", - "file": "shared/recipes/database/serverless-fastify-planetscale", - "id": "serverless-fastify-planetscale", - "name": "PlanetScale with Serverless Fastify", - "path": "/showcase/example-repos/serverless-fastify-planetscale" - } - ], - "distribute-task-execution": [ - { - "description": "", - "file": "", - "id": "ci", - "name": "CI Documentation", - "path": "/ci/intro/ci-with-nx" - }, - { - "description": "", - "file": "nx-cloud/concepts/parallelization-distribution", - "id": "parallelization-distribution", - "name": "Parallelization and Distribution", - "path": "/ci/concepts/parallelization-distribution" - }, - { - "description": "Learn how to set up Nx Cloud for your workspace.", - "file": "", - "id": "set-up", - "name": "Set Up CI", - "path": "/ci/recipes/set-up" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", - "id": "connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "path": "/nx-api/nx/documents/connect-to-nx-cloud" - } - ], - "remote-cache": [ - { - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "file": "shared/features/remote-cache", - "id": "remote-cache", - "name": "Use Remote Caching (Nx Replay)", - "path": "/ci/features/remote-cache" - } - ], - "on-premise": [ - { - "description": "Set up Nx Cloud on machines that you control", - "file": "nx-cloud/features/nx-enterprise-on-prem", - "id": "on-premise", - "name": "Set up Nx Cloud On-Premise", - "path": "/ci/features/on-premise" - } - ], - "docker": [ - { - "description": "", - "file": "shared/recipes/ci-deployment", - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "path": "/ci/recipes/other/ci-deployment" - } - ], - "deploy": [ - { - "description": "", - "file": "shared/recipes/ci-deployment", - "id": "ci-deployment", - "name": "Prepare applications for deployment via CI", - "path": "/ci/recipes/other/ci-deployment" - } - ] -} diff --git a/docs/generated/packages-metadata.json b/docs/generated/packages-metadata.json deleted file mode 100644 index c07eee63e94cd..0000000000000 --- a/docs/generated/packages-metadata.json +++ /dev/null @@ -1,3222 +0,0 @@ -[ - { - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/overview", - "itemList": [], - "isExternal": false, - "path": "angular/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/angular/angular-plugin" - }, - { - "id": "angular-nx-version-matrix", - "name": "Angular and Nx Version Matrix", - "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/angular/documents/angular-nx-version-matrix", - "itemList": [], - "isExternal": false, - "path": "angular/documents/angular-nx-version-matrix", - "tags": [], - "originalFilePath": "shared/packages/angular/angular-nx-version-matrix" - } - ], - "executors": [ - { - "description": "Delegates the build to a different target while supporting incremental builds.", - "file": "generated/packages/angular/executors/delegate-build.json", - "hidden": false, - "name": "delegate-build", - "originalFilePath": "/packages/angular/src/executors/delegate-build/schema.json", - "path": "angular/executors/delegate-build", - "type": "executor" - }, - { - "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`.", - "file": "generated/packages/angular/executors/ng-packagr-lite.json", - "hidden": false, - "name": "ng-packagr-lite", - "originalFilePath": "/packages/angular/src/executors/ng-packagr-lite/schema.json", - "path": "angular/executors/ng-packagr-lite", - "type": "executor" - }, - { - "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", - "file": "generated/packages/angular/executors/package.json", - "hidden": false, - "name": "package", - "originalFilePath": "/packages/angular/src/executors/package/schema.json", - "path": "angular/executors/package", - "type": "executor" - }, - { - "description": "Builds your application with esbuild and adds support for incremental builds.", - "file": "generated/packages/angular/executors/browser-esbuild.json", - "hidden": false, - "name": "browser-esbuild", - "originalFilePath": "/packages/angular/src/executors/browser-esbuild/schema.json", - "path": "angular/executors/browser-esbuild", - "type": "executor" - }, - { - "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", - "file": "generated/packages/angular/executors/module-federation-dev-server.json", - "hidden": false, - "name": "module-federation-dev-server", - "originalFilePath": "/packages/angular/src/executors/module-federation-dev-server/schema.json", - "path": "angular/executors/module-federation-dev-server", - "type": "executor" - }, - { - "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", - "file": "generated/packages/angular/executors/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/angular/src/executors/application/schema.json", - "path": "angular/executors/application", - "type": "executor" - }, - { - "description": "Extracts i18n messages from source code.", - "file": "generated/packages/angular/executors/extract-i18n.json", - "hidden": false, - "name": "extract-i18n", - "originalFilePath": "/packages/angular/src/executors/extract-i18n/schema.json", - "path": "angular/executors/extract-i18n", - "type": "executor" - }, - { - "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", - "file": "generated/packages/angular/executors/webpack-browser.json", - "hidden": false, - "name": "webpack-browser", - "originalFilePath": "/packages/angular/src/builders/webpack-browser/schema.json", - "path": "angular/executors/webpack-browser", - "type": "executor" - }, - { - "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", - "file": "generated/packages/angular/executors/dev-server.json", - "hidden": false, - "name": "dev-server", - "originalFilePath": "/packages/angular/src/builders/dev-server/schema.json", - "path": "angular/executors/dev-server", - "type": "executor" - }, - { - "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", - "file": "generated/packages/angular/executors/webpack-server.json", - "hidden": false, - "name": "webpack-server", - "originalFilePath": "/packages/angular/src/builders/webpack-server/schema.json", - "path": "angular/executors/webpack-server", - "type": "executor" - }, - { - "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host.", - "file": "generated/packages/angular/executors/module-federation-dev-ssr.json", - "hidden": false, - "name": "module-federation-dev-ssr", - "originalFilePath": "/packages/angular/src/builders/module-federation-dev-ssr/schema.json", - "path": "angular/executors/module-federation-dev-ssr", - "type": "executor" - } - ], - "generators": [ - { - "description": "Adds linting configuration to an Angular project.", - "file": "generated/packages/angular/generators/add-linting.json", - "hidden": true, - "name": "add-linting", - "originalFilePath": "/packages/angular/src/generators/add-linting/schema.json", - "path": "angular/generators/add-linting", - "type": "generator" - }, - { - "description": "Creates an Angular application.", - "file": "generated/packages/angular/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/angular/src/generators/application/schema.json", - "path": "angular/generators/application", - "type": "generator" - }, - { - "description": "Generate an Angular Component.", - "file": "generated/packages/angular/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/angular/src/generators/component/schema.json", - "path": "angular/generators/component", - "type": "generator" - }, - { - "description": "Creates a Cypress spec for a UI component that has a story.", - "file": "generated/packages/angular/generators/component-cypress-spec.json", - "hidden": true, - "name": "component-cypress-spec", - "originalFilePath": "/packages/angular/src/generators/component-cypress-spec/schema.json", - "path": "angular/generators/component-cypress-spec", - "type": "generator" - }, - { - "description": "Creates a stories.ts file for a component.", - "file": "generated/packages/angular/generators/component-story.json", - "hidden": true, - "name": "component-story", - "originalFilePath": "/packages/angular/src/generators/component-story/schema.json", - "path": "angular/generators/component-story", - "type": "generator" - }, - { - "description": "Creates a cypress component test file for a component.", - "file": "generated/packages/angular/generators/component-test.json", - "hidden": false, - "name": "component-test", - "originalFilePath": "/packages/angular/src/generators/component-test/schema.json", - "path": "angular/generators/component-test", - "type": "generator" - }, - { - "description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", - "file": "generated/packages/angular/generators/convert-to-application-executor.json", - "hidden": false, - "name": "convert-to-application-executor", - "originalFilePath": "/packages/angular/src/generators/convert-to-application-executor/schema.json", - "path": "angular/generators/convert-to-application-executor", - "type": "generator" - }, - { - "description": "Generate an Angular directive.", - "file": "generated/packages/angular/generators/directive.json", - "hidden": false, - "name": "directive", - "originalFilePath": "/packages/angular/src/generators/directive/schema.json", - "path": "angular/generators/directive", - "type": "generator" - }, - { - "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", - "file": "generated/packages/angular/generators/federate-module.json", - "hidden": false, - "name": "federate-module", - "originalFilePath": "/packages/angular/src/generators/federate-module/schema.json", - "path": "angular/generators/federate-module", - "type": "generator" - }, - { - "description": "Initializes the `@nrwl/angular` plugin.", - "file": "generated/packages/angular/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/angular/src/generators/init/schema.json", - "path": "angular/generators/init", - "type": "generator" - }, - { - "description": "Creates an Angular library.", - "file": "generated/packages/angular/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/angular/src/generators/library/schema.json", - "path": "angular/generators/library", - "type": "generator" - }, - { - "description": "Creates a secondary entry point for an Angular publishable library.", - "file": "generated/packages/angular/generators/library-secondary-entry-point.json", - "hidden": false, - "name": "library-secondary-entry-point", - "originalFilePath": "/packages/angular/src/generators/library-secondary-entry-point/schema.json", - "path": "angular/generators/library-secondary-entry-point", - "type": "generator" - }, - { - "description": "Generate a Remote Angular Module Federation Application.", - "file": "generated/packages/angular/generators/remote.json", - "hidden": false, - "name": "remote", - "originalFilePath": "/packages/angular/src/generators/remote/schema.json", - "path": "angular/generators/remote", - "type": "generator" - }, - { - "description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.", - "file": "generated/packages/angular/generators/move.json", - "hidden": false, - "name": "move", - "originalFilePath": "/packages/angular/src/generators/move/schema.json", - "path": "angular/generators/move", - "type": "generator" - }, - { - "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}", - "file": "generated/packages/angular/generators/convert-to-with-mf.json", - "hidden": false, - "name": "convert-to-with-mf", - "originalFilePath": "/packages/angular/src/generators/convert-to-with-mf/schema.json", - "path": "angular/generators/convert-to-with-mf", - "type": "generator" - }, - { - "description": "Generate a Host Angular Module Federation Application.", - "file": "generated/packages/angular/generators/host.json", - "hidden": false, - "name": "host", - "originalFilePath": "/packages/angular/src/generators/host/schema.json", - "path": "angular/generators/host", - "type": "generator" - }, - { - "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", - "file": "generated/packages/angular/generators/ng-add.json", - "hidden": true, - "name": "ng-add", - "originalFilePath": "/packages/angular/src/generators/ng-add/schema.json", - "path": "angular/generators/ng-add", - "type": "generator" - }, - { - "description": "Adds NgRx support to an application or library.", - "file": "generated/packages/angular/generators/ngrx.json", - "hidden": false, - "name": "ngrx", - "originalFilePath": "/packages/angular/src/generators/ngrx/schema.json", - "path": "angular/generators/ngrx", - "type": "generator" - }, - { - "description": "Adds an NgRx Feature Store to an application or library.", - "file": "generated/packages/angular/generators/ngrx-feature-store.json", - "hidden": false, - "name": "ngrx-feature-store", - "originalFilePath": "/packages/angular/src/generators/ngrx-feature-store/schema.json", - "path": "angular/generators/ngrx-feature-store", - "type": "generator" - }, - { - "description": "Adds an NgRx Root Store to an application.", - "file": "generated/packages/angular/generators/ngrx-root-store.json", - "hidden": false, - "name": "ngrx-root-store", - "originalFilePath": "/packages/angular/src/generators/ngrx-root-store/schema.json", - "path": "angular/generators/ngrx-root-store", - "type": "generator" - }, - { - "description": "Generate an Angular Pipe", - "file": "generated/packages/angular/generators/pipe.json", - "hidden": false, - "name": "pipe", - "originalFilePath": "/packages/angular/src/generators/pipe/schema.json", - "path": "angular/generators/pipe", - "type": "generator" - }, - { - "description": "Convert an existing Single Component Angular Module (SCAM) to a Standalone Component.", - "file": "generated/packages/angular/generators/scam-to-standalone.json", - "hidden": false, - "name": "scam-to-standalone", - "originalFilePath": "/packages/angular/src/generators/scam-to-standalone/schema.json", - "path": "angular/generators/scam-to-standalone", - "type": "generator" - }, - { - "description": "Generate a component with an accompanying Single Component Angular Module (SCAM).", - "file": "generated/packages/angular/generators/scam.json", - "hidden": false, - "name": "scam", - "originalFilePath": "/packages/angular/src/generators/scam/schema.json", - "path": "angular/generators/scam", - "type": "generator" - }, - { - "description": "Generate a directive with an accompanying Single Component Angular Module (SCAM).", - "file": "generated/packages/angular/generators/scam-directive.json", - "hidden": false, - "name": "scam-directive", - "originalFilePath": "/packages/angular/src/generators/scam-directive/schema.json", - "path": "angular/generators/scam-directive", - "type": "generator" - }, - { - "description": "Generate a pipe with an accompanying Single Component Angular Module (SCAM).", - "file": "generated/packages/angular/generators/scam-pipe.json", - "hidden": false, - "name": "scam-pipe", - "originalFilePath": "/packages/angular/src/generators/scam-pipe/schema.json", - "path": "angular/generators/scam-pipe", - "type": "generator" - }, - { - "description": "Generate a Module Federation configuration for a given Angular application.", - "file": "generated/packages/angular/generators/setup-mf.json", - "hidden": false, - "name": "setup-mf", - "originalFilePath": "/packages/angular/src/generators/setup-mf/schema.json", - "path": "angular/generators/setup-mf", - "type": "generator" - }, - { - "description": "Generate Angular Universal (SSR) setup for an Angular application.", - "file": "generated/packages/angular/generators/setup-ssr.json", - "hidden": false, - "name": "setup-ssr", - "originalFilePath": "/packages/angular/src/generators/setup-ssr/schema.json", - "path": "angular/generators/setup-ssr", - "type": "generator" - }, - { - "description": "Configures Tailwind CSS for an application or a buildable/publishable library.", - "file": "generated/packages/angular/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/angular/src/generators/setup-tailwind/schema.json", - "path": "angular/generators/setup-tailwind", - "type": "generator" - }, - { - "description": "Creates stories/specs for all components declared in a project.", - "file": "generated/packages/angular/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/angular/src/generators/stories/schema.json", - "path": "angular/generators/stories", - "type": "generator" - }, - { - "description": "Adds Storybook configuration to a project.", - "file": "generated/packages/angular/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/angular/src/generators/storybook-configuration/schema.json", - "path": "angular/generators/storybook-configuration", - "type": "generator" - }, - { - "description": "Setup Cypress component testing for a project.", - "file": "generated/packages/angular/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/angular/src/generators/cypress-component-configuration/schema.json", - "path": "angular/generators/cypress-component-configuration", - "type": "generator" - }, - { - "description": "Creates a Web Worker.", - "file": "generated/packages/angular/generators/web-worker.json", - "hidden": false, - "name": "web-worker", - "originalFilePath": "/packages/angular/src/generators/web-worker/schema.json", - "path": "angular/generators/web-worker", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "angular", - "packageName": "@nx/angular", - "root": "/packages/angular", - "source": "/packages/angular/src" - }, - { - "description": "This package is used to scaffold a brand-new workspace used to develop an Nx plugin, and sets up a pre-configured plugin with the specified name. The new plugin is created with a default generator, executor, and e2e app.", - "documents": [], - "executors": [], - "generators": [], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "create-nx-plugin", - "packageName": "create-nx-plugin", - "root": "/packages/create-nx-plugin", - "source": "/packages/create-nx-plugin/src" - }, - { - "description": "Smart Monorepos · Fast CI", - "documents": [], - "executors": [], - "generators": [], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "create-nx-workspace", - "packageName": "create-nx-workspace", - "root": "/packages/create-nx-workspace", - "source": "/packages/create-nx-workspace/src" - }, - { - "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", - "file": "generated/packages/cypress/documents/overview", - "itemList": [], - "isExternal": false, - "path": "cypress/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/cypress/cypress-plugin" - } - ], - "executors": [ - { - "description": "Run Cypress E2E tests.", - "file": "generated/packages/cypress/executors/cypress.json", - "hidden": false, - "name": "cypress", - "originalFilePath": "/packages/cypress/src/executors/cypress/schema.json", - "path": "cypress/executors/cypress", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/cypress` plugin.", - "file": "generated/packages/cypress/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/cypress/src/generators/init/schema.json", - "path": "cypress/generators/init", - "type": "generator" - }, - { - "description": "Add a Cypress E2E Project.", - "file": "generated/packages/cypress/generators/cypress-project.json", - "hidden": true, - "name": "cypress-project", - "originalFilePath": "/packages/cypress/src/generators/cypress-project/schema.json", - "path": "cypress/generators/cypress-project", - "type": "generator" - }, - { - "description": "Add a Cypress E2E Configuration to an existing project.", - "file": "generated/packages/cypress/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/cypress/src/generators/configuration/schema.json", - "path": "cypress/generators/configuration", - "type": "generator" - }, - { - "description": "Set up Cypress Component Test for a project", - "file": "generated/packages/cypress/generators/component-configuration.json", - "hidden": true, - "name": "component-configuration", - "originalFilePath": "/packages/cypress/src/generators/component-configuration/schema.json", - "path": "cypress/generators/component-configuration", - "type": "generator" - }, - { - "description": "Migrate existing Cypress e2e projects to Cypress v11", - "file": "generated/packages/cypress/generators/migrate-to-cypress-11.json", - "hidden": false, - "name": "migrate-to-cypress-11", - "originalFilePath": "/packages/cypress/src/generators/migrate-to-cypress-11/schema.json", - "path": "cypress/generators/migrate-to-cypress-11", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "cypress", - "packageName": "@nx/cypress", - "root": "/packages/cypress", - "source": "/packages/cypress/src" - }, - { - "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", - "file": "generated/packages/detox/documents/overview", - "itemList": [], - "isExternal": false, - "path": "detox/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/detox/detox-plugin" - } - ], - "executors": [ - { - "description": "Run the command defined in build property of the specified configuration.", - "file": "generated/packages/detox/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/detox/src/executors/build/schema.json", - "path": "detox/executors/build", - "type": "executor" - }, - { - "description": "Initiating your detox test suite.", - "file": "generated/packages/detox/executors/test.json", - "hidden": false, - "name": "test", - "originalFilePath": "/packages/detox/src/executors/test/schema.json", - "path": "detox/executors/test", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/detox` plugin.", - "file": "generated/packages/detox/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/detox/src/generators/init/schema.json", - "path": "detox/generators/init", - "type": "generator" - }, - { - "description": "Create a Detox application.", - "file": "generated/packages/detox/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/detox/src/generators/application/schema.json", - "path": "detox/generators/application", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "detox", - "packageName": "@nx/detox", - "root": "/packages/detox", - "source": "/packages/detox/src" - }, - { - "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", - "documents": [ - { - "id": "nx_devkit", - "name": "Overview", - "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", - "file": "generated/packages/devkit/documents/nx_devkit", - "itemList": [], - "isExternal": false, - "path": "devkit/documents/nx_devkit", - "tags": [], - "originalFilePath": "generated/devkit/README" - }, - { - "id": "ngcli_adapter", - "name": "Ng CLI Adapter", - "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", - "file": "generated/packages/devkit/documents/ngcli_adapter", - "itemList": [], - "isExternal": false, - "path": "devkit/documents/ngcli_adapter", - "tags": [], - "originalFilePath": "generated/devkit/ngcli_adapter/README" - } - ], - "executors": [], - "generators": [], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "devkit", - "packageName": "@nx/devkit", - "root": "/packages/devkit", - "source": "/packages/devkit/src" - }, - { - "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", - "file": "generated/packages/esbuild/documents/overview", - "itemList": [], - "isExternal": false, - "path": "esbuild/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/esbuild/esbuild-plugin" - } - ], - "executors": [ - { - "description": "Bundle a package using EsBuild.", - "file": "generated/packages/esbuild/executors/esbuild.json", - "hidden": false, - "name": "esbuild", - "originalFilePath": "/packages/esbuild/src/executors/esbuild/schema.json", - "path": "esbuild/executors/esbuild", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/esbuild` plugin.", - "file": "generated/packages/esbuild/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/esbuild/src/generators/init/schema.json", - "path": "esbuild/generators/init", - "type": "generator" - }, - { - "description": "Add esbuild configuration to a project.", - "file": "generated/packages/esbuild/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/esbuild/src/generators/configuration/schema.json", - "path": "esbuild/generators/configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "esbuild", - "packageName": "@nx/esbuild", - "root": "/packages/esbuild", - "source": "/packages/esbuild/src" - }, - { - "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", - "file": "generated/packages/eslint/documents/overview", - "itemList": [], - "isExternal": false, - "path": "eslint/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/eslint/eslint" - } - ], - "executors": [ - { - "description": "Run ESLint on a project.", - "file": "generated/packages/eslint/executors/lint.json", - "hidden": false, - "name": "lint", - "originalFilePath": "/packages/eslint/src/executors/lint/schema.json", - "path": "eslint/executors/lint", - "type": "executor" - } - ], - "generators": [ - { - "description": "Set up the ESLint plugin.", - "file": "generated/packages/eslint/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/eslint/src/generators/init/schema.json", - "path": "eslint/generators/init", - "type": "generator" - }, - { - "description": "Create the Workspace Lint Rules Project.", - "file": "generated/packages/eslint/generators/workspace-rules-project.json", - "hidden": true, - "name": "workspace-rules-project", - "originalFilePath": "/packages/eslint/src/generators/workspace-rules-project/schema.json", - "path": "eslint/generators/workspace-rules-project", - "type": "generator" - }, - { - "description": "Create a new Workspace ESLint rule.", - "file": "generated/packages/eslint/generators/workspace-rule.json", - "hidden": false, - "name": "workspace-rule", - "originalFilePath": "/packages/eslint/src/generators/workspace-rule/schema.json", - "path": "eslint/generators/workspace-rule", - "type": "generator" - }, - { - "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", - "file": "generated/packages/eslint/generators/convert-to-flat-config.json", - "hidden": false, - "name": "convert-to-flat-config", - "originalFilePath": "/packages/eslint/src/generators/convert-to-flat-config/schema.json", - "path": "eslint/generators/convert-to-flat-config", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "eslint", - "packageName": "@nx/eslint", - "root": "/packages/eslint", - "source": "/packages/eslint/src" - }, - { - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/overview", - "itemList": [], - "isExternal": false, - "path": "eslint-plugin/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/eslint/eslint-plugin" - }, - { - "id": "enforce-module-boundaries", - "name": "The `enforce-module-boundaries` rule", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/enforce-module-boundaries", - "itemList": [], - "isExternal": false, - "path": "eslint-plugin/documents/enforce-module-boundaries", - "tags": [], - "originalFilePath": "shared/packages/eslint/enforce-module-boundaries" - }, - { - "id": "dependency-checks", - "name": "The `dependency-checks` rule", - "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", - "file": "generated/packages/eslint-plugin/documents/dependency-checks", - "itemList": [], - "isExternal": false, - "path": "eslint-plugin/documents/dependency-checks", - "tags": [], - "originalFilePath": "shared/packages/eslint/dependency-checks" - } - ], - "executors": [], - "generators": [], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "eslint-plugin", - "packageName": "@nx/eslint-plugin", - "root": "/packages/eslint-plugin", - "source": "/packages/eslint-plugin/src" - }, - { - "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", - "file": "generated/packages/expo/documents/overview", - "itemList": [], - "isExternal": false, - "path": "expo/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/expo/expo-plugin" - } - ], - "executors": [ - { - "description": "Start an EAS update for your expo project", - "file": "generated/packages/expo/executors/update.json", - "hidden": false, - "name": "update", - "originalFilePath": "/packages/expo/src/executors/update/schema.json", - "path": "expo/executors/update", - "type": "executor" - }, - { - "description": "Start an EAS build for your expo project", - "file": "generated/packages/expo/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/expo/src/executors/build/schema.json", - "path": "expo/executors/build", - "type": "executor" - }, - { - "description": "List all EAS builds for your Expo project", - "file": "generated/packages/expo/executors/build-list.json", - "hidden": false, - "name": "build-list", - "originalFilePath": "/packages/expo/src/executors/build-list/schema.json", - "path": "expo/executors/build-list", - "type": "executor" - }, - { - "description": "Run the Android app binary locally or run the iOS app binary locally", - "file": "generated/packages/expo/executors/run.json", - "hidden": false, - "name": "run", - "originalFilePath": "/packages/expo/src/executors/run/schema.json", - "path": "expo/executors/run", - "type": "executor" - }, - { - "description": "Start a local dev server for the app or start a Webpack dev server for the web app", - "file": "generated/packages/expo/executors/start.json", - "hidden": false, - "name": "start", - "originalFilePath": "/packages/expo/src/executors/start/schema.json", - "path": "expo/executors/start", - "type": "executor" - }, - { - "description": "Syncs dependencies to package.json (required for autolinking).", - "file": "generated/packages/expo/executors/sync-deps.json", - "hidden": false, - "name": "sync-deps", - "originalFilePath": "/packages/expo/src/executors/sync-deps/schema.json", - "path": "expo/executors/sync-deps", - "type": "executor" - }, - { - "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", - "file": "generated/packages/expo/executors/ensure-symlink.json", - "hidden": false, - "name": "ensure-symlink", - "originalFilePath": "/packages/expo/src/executors/ensure-symlink/schema.json", - "path": "expo/executors/ensure-symlink", - "type": "executor" - }, - { - "description": "Create native iOS and Android project files for building natively.", - "file": "generated/packages/expo/executors/prebuild.json", - "hidden": false, - "name": "prebuild", - "originalFilePath": "/packages/expo/src/executors/prebuild/schema.json", - "path": "expo/executors/prebuild", - "type": "executor" - }, - { - "description": "Install a module or other package to a project.", - "file": "generated/packages/expo/executors/install.json", - "hidden": false, - "name": "install", - "originalFilePath": "/packages/expo/src/executors/install/schema.json", - "path": "expo/executors/install", - "type": "executor" - }, - { - "description": "Export the JavaScript and assets for your app using Metro/webpack bundler", - "file": "generated/packages/expo/executors/export.json", - "hidden": false, - "name": "export", - "originalFilePath": "/packages/expo/src/executors/export/schema.json", - "path": "expo/executors/export", - "type": "executor" - }, - { - "description": "Submit app binary to App Store and/or Play Store", - "file": "generated/packages/expo/executors/submit.json", - "hidden": false, - "name": "submit", - "originalFilePath": "/packages/expo/src/executors/submit/schema.json", - "path": "expo/executors/submit", - "type": "executor" - }, - { - "description": "Serve up the Expo web app locally", - "file": "generated/packages/expo/executors/serve.json", - "hidden": false, - "name": "serve", - "originalFilePath": "/packages/expo/src/executors/serve/schema.json", - "path": "expo/executors/serve", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the @nx/expo plugin", - "file": "generated/packages/expo/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/expo/src/generators/init/schema.json", - "path": "expo/generators/init", - "type": "generator" - }, - { - "description": "Create an application", - "file": "generated/packages/expo/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/expo/src/generators/application/schema.json", - "path": "expo/generators/application", - "type": "generator" - }, - { - "description": "Create a library", - "file": "generated/packages/expo/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/expo/src/generators/library/schema.json", - "path": "expo/generators/library", - "type": "generator" - }, - { - "description": "Create a component", - "file": "generated/packages/expo/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/expo/src/generators/component/schema.json", - "path": "expo/generators/component", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "expo", - "packageName": "@nx/expo", - "root": "/packages/expo", - "source": "/packages/expo/src" - }, - { - "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", - "file": "generated/packages/express/documents/overview", - "itemList": [], - "isExternal": false, - "path": "express/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/express/express-plugin" - } - ], - "executors": [], - "generators": [ - { - "description": "Initialize the `@nrwl/express` plugin.", - "file": "generated/packages/express/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/express/src/generators/init/schema.json", - "path": "express/generators/init", - "type": "generator" - }, - { - "description": "Create an Express application.", - "file": "generated/packages/express/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/express/src/generators/application/schema.json", - "path": "express/generators/application", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "express", - "packageName": "@nx/express", - "root": "/packages/express", - "source": "/packages/express/src" - }, - { - "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", - "file": "generated/packages/jest/documents/overview", - "itemList": [], - "isExternal": false, - "path": "jest/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/jest/jest-plugin" - } - ], - "executors": [ - { - "description": "Run Jest unit tests.", - "file": "generated/packages/jest/executors/jest.json", - "hidden": false, - "name": "jest", - "originalFilePath": "/packages/jest/src/executors/jest/schema.json", - "path": "jest/executors/jest", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/jest` plugin.", - "file": "generated/packages/jest/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/jest/src/generators/init/schema.json", - "path": "jest/generators/init", - "type": "generator" - }, - { - "description": "Add Jest configuration to a project.", - "file": "generated/packages/jest/generators/configuration.json", - "hidden": true, - "name": "configuration", - "originalFilePath": "/packages/jest/src/generators/configuration/schema.json", - "path": "jest/generators/configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "jest", - "packageName": "@nx/jest", - "root": "/packages/jest", - "source": "/packages/jest/src" - }, - { - "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", - "file": "generated/packages/js/documents/overview", - "itemList": [], - "isExternal": false, - "path": "js/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/js/js-plugin" - } - ], - "executors": [ - { - "description": "Build a project using TypeScript.", - "file": "generated/packages/js/executors/tsc.json", - "hidden": false, - "name": "tsc", - "originalFilePath": "/packages/js/src/executors/tsc/schema.json", - "path": "js/executors/tsc", - "type": "executor" - }, - { - "description": "Build a project using SWC.", - "file": "generated/packages/js/executors/swc.json", - "hidden": false, - "name": "swc", - "originalFilePath": "/packages/js/src/executors/swc/schema.json", - "path": "js/executors/swc", - "type": "executor" - }, - { - "description": "Execute a Node application.", - "file": "generated/packages/js/executors/node.json", - "hidden": false, - "name": "node", - "originalFilePath": "/packages/js/src/executors/node/schema.json", - "path": "js/executors/node", - "type": "executor" - }, - { - "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", - "file": "generated/packages/js/executors/release-publish.json", - "hidden": true, - "name": "release-publish", - "originalFilePath": "/packages/js/src/executors/release-publish/schema.json", - "path": "js/executors/release-publish", - "type": "executor" - }, - { - "description": "Start local registry with verdaccio", - "file": "generated/packages/js/executors/verdaccio.json", - "hidden": false, - "name": "verdaccio", - "originalFilePath": "/packages/js/src/executors/verdaccio/schema.json", - "path": "js/executors/verdaccio", - "type": "executor" - } - ], - "generators": [ - { - "description": "Create a library", - "file": "generated/packages/js/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/js/src/generators/library/schema.json", - "path": "js/generators/library", - "type": "generator" - }, - { - "description": "Initialize a TS/JS workspace.", - "file": "generated/packages/js/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/js/src/generators/init/schema.json", - "path": "js/generators/init", - "type": "generator" - }, - { - "description": "Convert a TypeScript library to compile with SWC.", - "file": "generated/packages/js/generators/convert-to-swc.json", - "hidden": false, - "name": "convert-to-swc", - "originalFilePath": "/packages/js/src/generators/convert-to-swc/schema.json", - "path": "js/generators/convert-to-swc", - "type": "generator" - }, - { - "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", - "file": "generated/packages/js/generators/release-version.json", - "hidden": true, - "name": "release-version", - "originalFilePath": "/packages/js/src/generators/release-version/schema.json", - "path": "js/generators/release-version", - "type": "generator" - }, - { - "description": "Setup Verdaccio for local package management.", - "file": "generated/packages/js/generators/setup-verdaccio.json", - "hidden": false, - "name": "setup-verdaccio", - "originalFilePath": "/packages/js/src/generators/setup-verdaccio/schema.json", - "path": "js/generators/setup-verdaccio", - "type": "generator" - }, - { - "description": "setup-build generator", - "file": "generated/packages/js/generators/setup-build.json", - "hidden": false, - "name": "setup-build", - "originalFilePath": "/packages/js/src/generators/setup-build/schema.json", - "path": "js/generators/setup-build", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "js", - "packageName": "@nx/js", - "root": "/packages/js", - "source": "/packages/js/src" - }, - { - "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", - "file": "generated/packages/nest/documents/overview", - "itemList": [], - "isExternal": false, - "path": "nest/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/nest/nest-plugin" - } - ], - "executors": [], - "generators": [ - { - "description": "Create a NestJS application.", - "file": "generated/packages/nest/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/nest/src/generators/application/schema.json", - "path": "nest/generators/application", - "type": "generator" - }, - { - "description": "Initialize the `@nrwl/nest` plugin.", - "file": "generated/packages/nest/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/nest/src/generators/init/schema.json", - "path": "nest/generators/init", - "type": "generator" - }, - { - "description": "Create a new NestJS library.", - "file": "generated/packages/nest/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/nest/src/generators/library/schema.json", - "path": "nest/generators/library", - "type": "generator" - }, - { - "description": "Run the `class` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/class.json", - "hidden": false, - "name": "class", - "originalFilePath": "/packages/nest/src/generators/class/schema.json", - "path": "nest/generators/class", - "type": "generator" - }, - { - "description": "Run the `controller` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/controller.json", - "hidden": false, - "name": "controller", - "originalFilePath": "/packages/nest/src/generators/controller/schema.json", - "path": "nest/generators/controller", - "type": "generator" - }, - { - "description": "Run the `decorator` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/decorator.json", - "hidden": false, - "name": "decorator", - "originalFilePath": "/packages/nest/src/generators/decorator/schema.json", - "path": "nest/generators/decorator", - "type": "generator" - }, - { - "description": "Run the `filter` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/filter.json", - "hidden": false, - "name": "filter", - "originalFilePath": "/packages/nest/src/generators/filter/schema.json", - "path": "nest/generators/filter", - "type": "generator" - }, - { - "description": "Run the `gateway` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/gateway.json", - "hidden": false, - "name": "gateway", - "originalFilePath": "/packages/nest/src/generators/gateway/schema.json", - "path": "nest/generators/gateway", - "type": "generator" - }, - { - "description": "Run the `guard` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/guard.json", - "hidden": false, - "name": "guard", - "originalFilePath": "/packages/nest/src/generators/guard/schema.json", - "path": "nest/generators/guard", - "type": "generator" - }, - { - "description": "Run the `interceptor` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/interceptor.json", - "hidden": false, - "name": "interceptor", - "originalFilePath": "/packages/nest/src/generators/interceptor/schema.json", - "path": "nest/generators/interceptor", - "type": "generator" - }, - { - "description": "Run the `interface` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/interface.json", - "hidden": false, - "name": "interface", - "originalFilePath": "/packages/nest/src/generators/interface/schema.json", - "path": "nest/generators/interface", - "type": "generator" - }, - { - "description": "Run the `middleware` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/middleware.json", - "hidden": false, - "name": "middleware", - "originalFilePath": "/packages/nest/src/generators/middleware/schema.json", - "path": "nest/generators/middleware", - "type": "generator" - }, - { - "description": "Run the `module` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/module.json", - "hidden": false, - "name": "module", - "originalFilePath": "/packages/nest/src/generators/module/schema.json", - "path": "nest/generators/module", - "type": "generator" - }, - { - "description": "Run the `pipe` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/pipe.json", - "hidden": false, - "name": "pipe", - "originalFilePath": "/packages/nest/src/generators/pipe/schema.json", - "path": "nest/generators/pipe", - "type": "generator" - }, - { - "description": "Run the `provider` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/provider.json", - "hidden": false, - "name": "provider", - "originalFilePath": "/packages/nest/src/generators/provider/schema.json", - "path": "nest/generators/provider", - "type": "generator" - }, - { - "description": "Run the `resolver` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/resolver.json", - "hidden": false, - "name": "resolver", - "originalFilePath": "/packages/nest/src/generators/resolver/schema.json", - "path": "nest/generators/resolver", - "type": "generator" - }, - { - "description": "Run the `resource` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/resource.json", - "hidden": false, - "name": "resource", - "originalFilePath": "/packages/nest/src/generators/resource/schema.json", - "path": "nest/generators/resource", - "type": "generator" - }, - { - "description": "Run the `service` NestJS generator with Nx project support.", - "file": "generated/packages/nest/generators/service.json", - "hidden": false, - "name": "service", - "originalFilePath": "/packages/nest/src/generators/service/schema.json", - "path": "nest/generators/service", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "nest", - "packageName": "@nx/nest", - "root": "/packages/nest", - "source": "/packages/nest/src" - }, - { - "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", - "file": "generated/packages/next/documents/overview", - "itemList": [], - "isExternal": false, - "path": "next/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/next/plugin-overview" - } - ], - "executors": [ - { - "description": "Build a Next.js application.", - "file": "generated/packages/next/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/next/src/executors/build/schema.json", - "path": "next/executors/build", - "type": "executor" - }, - { - "description": "Serve a Next.js application.", - "file": "generated/packages/next/executors/server.json", - "hidden": false, - "name": "server", - "originalFilePath": "/packages/next/src/executors/server/schema.json", - "path": "next/executors/server", - "type": "executor" - }, - { - "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", - "file": "generated/packages/next/executors/export.json", - "hidden": false, - "name": "export", - "originalFilePath": "/packages/next/src/executors/export/schema.json", - "path": "next/executors/export", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/next` plugin.", - "file": "generated/packages/next/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/next/src/generators/init/schema.json", - "path": "next/generators/init", - "type": "generator" - }, - { - "description": "Create an application.", - "file": "generated/packages/next/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/next/src/generators/application/schema.json", - "path": "next/generators/application", - "type": "generator" - }, - { - "description": "Create a page.", - "file": "generated/packages/next/generators/page.json", - "hidden": false, - "name": "page", - "originalFilePath": "/packages/next/src/generators/page/schema.json", - "path": "next/generators/page", - "type": "generator" - }, - { - "description": "Create a component.", - "file": "generated/packages/next/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/next/src/generators/component/schema.json", - "path": "next/generators/component", - "type": "generator" - }, - { - "description": "Create a library.", - "file": "generated/packages/next/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/next/src/generators/library/schema.json", - "path": "next/generators/library", - "type": "generator" - }, - { - "description": "Set up a custom server.", - "file": "generated/packages/next/generators/custom-server.json", - "hidden": false, - "name": "custom-server", - "originalFilePath": "/packages/next/src/generators/custom-server/schema.json", - "path": "next/generators/custom-server", - "type": "generator" - }, - { - "description": "cypress-component-configuration generator", - "file": "generated/packages/next/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/next/src/generators/cypress-component-configuration/schema.json", - "path": "next/generators/cypress-component-configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "next", - "packageName": "@nx/next", - "root": "/packages/next", - "source": "/packages/next/src" - }, - { - "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", - "file": "generated/packages/node/documents/overview", - "itemList": [], - "isExternal": false, - "path": "node/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/node/node-plugin" - } - ], - "executors": [], - "generators": [ - { - "description": "Initialize the `@nrwl/node` plugin.", - "file": "generated/packages/node/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/node/src/generators/init/schema.json", - "path": "node/generators/init", - "type": "generator" - }, - { - "description": "Create a node application.", - "file": "generated/packages/node/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/node/src/generators/application/schema.json", - "path": "node/generators/application", - "type": "generator" - }, - { - "description": "Create a node library.", - "file": "generated/packages/node/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/node/src/generators/library/schema.json", - "path": "node/generators/library", - "type": "generator" - }, - { - "description": "Set up Docker configuration for a project.", - "file": "generated/packages/node/generators/setup-docker.json", - "hidden": false, - "name": "setup-docker", - "originalFilePath": "/packages/node/src/generators/setup-docker/schema.json", - "path": "node/generators/setup-docker", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "node", - "packageName": "@nx/node", - "root": "/packages/node", - "source": "/packages/node/src" - }, - { - "description": "The Nuxt plugin for Nx contains executors and generators for managing Nuxt applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace.", - "file": "generated/packages/nuxt/documents/overview", - "itemList": [], - "isExternal": false, - "path": "nuxt/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/nuxt/nuxt-plugin" - } - ], - "executors": [], - "generators": [ - { - "description": "Initialize the `@nx/nuxt` plugin.", - "file": "generated/packages/nuxt/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/nuxt/src/generators/init/schema.json", - "path": "nuxt/generators/init", - "type": "generator" - }, - { - "description": "Create a Nuxt application.", - "file": "generated/packages/nuxt/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/nuxt/src/generators/application/schema.json", - "path": "nuxt/generators/application", - "type": "generator" - }, - { - "description": "Set up storybook for a Nuxt app.", - "file": "generated/packages/nuxt/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/nuxt/src/generators/storybook-configuration/schema.json", - "path": "nuxt/generators/storybook-configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "nuxt", - "packageName": "@nx/nuxt", - "root": "/packages/nuxt", - "source": "/packages/nuxt/src" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "documents": [ - { - "id": "create-nx-workspace", - "name": "create-nx-workspace", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/create-nx-workspace", - "itemList": [], - "isExternal": false, - "path": "nx/documents/create-nx-workspace", - "tags": [], - "originalFilePath": "generated/cli/create-nx-workspace" - }, - { - "id": "init", - "name": "init", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/init", - "itemList": [], - "isExternal": false, - "path": "nx/documents/init", - "tags": [], - "originalFilePath": "generated/cli/init" - }, - { - "id": "generate", - "name": "generate", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/generate", - "itemList": [], - "isExternal": false, - "path": "nx/documents/generate", - "tags": ["generate-code"], - "originalFilePath": "generated/cli/generate" - }, - { - "id": "run", - "name": "run", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/run", - "itemList": [], - "isExternal": false, - "path": "nx/documents/run", - "tags": ["run-tasks"], - "originalFilePath": "generated/cli/run" - }, - { - "id": "daemon", - "name": "daemon", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/daemon", - "itemList": [], - "isExternal": false, - "path": "nx/documents/daemon", - "tags": [], - "originalFilePath": "generated/cli/daemon" - }, - { - "id": "dep-graph", - "name": "graph", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/dep-graph", - "itemList": [], - "isExternal": false, - "path": "nx/documents/dep-graph", - "tags": ["explore-graph"], - "originalFilePath": "generated/cli/graph" - }, - { - "id": "run-many", - "name": "run-many", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/run-many", - "itemList": [], - "isExternal": false, - "path": "nx/documents/run-many", - "tags": ["run-tasks"], - "originalFilePath": "generated/cli/run-many" - }, - { - "id": "affected", - "name": "affected", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/affected", - "itemList": [], - "isExternal": false, - "path": "nx/documents/affected", - "tags": ["run-tasks"], - "originalFilePath": "generated/cli/affected" - }, - { - "id": "affected-dep-graph", - "name": "affected:graph", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/affected-dep-graph", - "itemList": [], - "isExternal": false, - "path": "nx/documents/affected-dep-graph", - "tags": [], - "originalFilePath": "generated/cli/affected-graph" - }, - { - "id": "print-affected", - "name": "print-affected", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/print-affected", - "itemList": [], - "isExternal": false, - "path": "nx/documents/print-affected", - "tags": [], - "originalFilePath": "generated/cli/print-affected" - }, - { - "id": "format-check", - "name": "format:check", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/format-check", - "itemList": [], - "isExternal": false, - "path": "nx/documents/format-check", - "tags": ["enforce-module-boundaries"], - "originalFilePath": "generated/cli/format-check" - }, - { - "id": "format-write", - "name": "format:write", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/format-write", - "itemList": [], - "isExternal": false, - "path": "nx/documents/format-write", - "tags": ["enforce-module-boundaries"], - "originalFilePath": "generated/cli/format-write" - }, - { - "id": "migrate", - "name": "migrate", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/migrate", - "itemList": [], - "isExternal": false, - "path": "nx/documents/migrate", - "tags": ["automate-updating-dependencies"], - "originalFilePath": "generated/cli/migrate" - }, - { - "id": "report", - "name": "report", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/report", - "itemList": [], - "isExternal": false, - "path": "nx/documents/report", - "tags": [], - "originalFilePath": "generated/cli/report" - }, - { - "id": "list", - "name": "list", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/list", - "itemList": [], - "isExternal": false, - "path": "nx/documents/list", - "tags": [], - "originalFilePath": "generated/cli/list" - }, - { - "id": "connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/connect-to-nx-cloud", - "itemList": [], - "isExternal": false, - "path": "nx/documents/connect-to-nx-cloud", - "tags": ["cache-task-results", "distribute-task-execution"], - "originalFilePath": "generated/cli/connect" - }, - { - "id": "reset", - "name": "reset", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/reset", - "itemList": [], - "isExternal": false, - "path": "nx/documents/reset", - "tags": ["cache-task-results"], - "originalFilePath": "generated/cli/reset" - }, - { - "id": "repair", - "name": "repair", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/repair", - "itemList": [], - "isExternal": false, - "path": "nx/documents/repair", - "tags": [], - "originalFilePath": "generated/cli/repair" - }, - { - "id": "exec", - "name": "exec", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/exec", - "itemList": [], - "isExternal": false, - "path": "nx/documents/exec", - "tags": [], - "originalFilePath": "generated/cli/exec" - }, - { - "id": "watch", - "name": "watch", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/watch", - "itemList": [], - "isExternal": false, - "path": "nx/documents/watch", - "tags": ["workspace-watching"], - "originalFilePath": "generated/cli/watch" - }, - { - "id": "show", - "name": "show", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/show", - "itemList": [], - "isExternal": false, - "path": "nx/documents/show", - "tags": [], - "originalFilePath": "generated/cli/show" - }, - { - "id": "view-logs", - "name": "view-logs", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/view-logs", - "itemList": [], - "isExternal": false, - "path": "nx/documents/view-logs", - "tags": [], - "originalFilePath": "generated/cli/view-logs" - }, - { - "id": "release", - "name": "release", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/release", - "itemList": [], - "isExternal": false, - "path": "nx/documents/release", - "tags": [], - "originalFilePath": "generated/cli/release" - }, - { - "id": "add", - "name": "add", - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/nx/documents/add", - "itemList": [], - "isExternal": false, - "path": "nx/documents/add", - "tags": [], - "originalFilePath": "generated/cli/add" - } - ], - "executors": [ - { - "description": "An executor that does nothing", - "file": "generated/packages/nx/executors/noop.json", - "hidden": false, - "name": "noop", - "originalFilePath": "/packages/nx/src/executors/noop/schema.json", - "path": "nx/executors/noop", - "type": "executor" - }, - { - "description": "Run any custom commands with Nx.", - "file": "generated/packages/nx/executors/run-commands.json", - "hidden": false, - "name": "run-commands", - "originalFilePath": "/packages/nx/src/executors/run-commands/schema.json", - "path": "nx/executors/run-commands", - "type": "executor" - }, - { - "description": "Run an NPM script using Nx.", - "file": "generated/packages/nx/executors/run-script.json", - "hidden": false, - "name": "run-script", - "originalFilePath": "/packages/nx/src/executors/run-script/schema.json", - "path": "nx/executors/run-script", - "type": "executor" - } - ], - "generators": [ - { - "description": "Connect a workspace to Nx Cloud", - "file": "generated/packages/nx/generators/connect-to-nx-cloud.json", - "hidden": false, - "name": "connect-to-nx-cloud", - "originalFilePath": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/schema.json", - "path": "nx/generators/connect-to-nx-cloud", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "nx", - "packageName": "nx", - "root": "/packages/nx", - "source": "/packages/nx/src" - }, - { - "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", - "file": "generated/packages/playwright/documents/overview", - "itemList": [], - "isExternal": false, - "path": "playwright/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/playwright/playwright-plugin" - } - ], - "executors": [ - { - "description": "Run Playwright tests.", - "file": "generated/packages/playwright/executors/playwright.json", - "hidden": false, - "name": "playwright", - "originalFilePath": "/packages/playwright/src/executors/playwright/schema.json", - "path": "playwright/executors/playwright", - "type": "executor" - } - ], - "generators": [ - { - "description": "Add Nx Playwright configuration to your project", - "file": "generated/packages/playwright/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/playwright/src/generators/configuration/schema.json", - "path": "playwright/generators/configuration", - "type": "generator" - }, - { - "description": "Initializes a Playwright project in the current workspace", - "file": "generated/packages/playwright/generators/init.json", - "hidden": false, - "name": "init", - "originalFilePath": "/packages/playwright/src/generators/init/schema.json", - "path": "playwright/generators/init", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "playwright", - "packageName": "@nx/playwright", - "root": "/packages/playwright", - "source": "/packages/playwright/src" - }, - { - "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", - "file": "generated/packages/plugin/documents/overview", - "itemList": [], - "isExternal": false, - "path": "plugin/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/plugin/plugin" - } - ], - "executors": [ - { - "description": "Creates and runs the E2E tests for an Nx Plugin.", - "file": "generated/packages/plugin/executors/e2e.json", - "hidden": false, - "name": "e2e", - "originalFilePath": "/packages/plugin/src/executors/e2e/schema.json", - "path": "plugin/executors/e2e", - "type": "executor" - } - ], - "generators": [ - { - "description": "Create a Nx Plugin.", - "file": "generated/packages/plugin/generators/plugin.json", - "hidden": false, - "name": "plugin", - "originalFilePath": "/packages/plugin/src/generators/plugin/schema.json", - "path": "plugin/generators/plugin", - "type": "generator" - }, - { - "description": "Create a package which can be used by npx to create a new workspace", - "file": "generated/packages/plugin/generators/create-package.json", - "hidden": false, - "name": "create-package", - "originalFilePath": "/packages/plugin/src/generators/create-package/schema.json", - "path": "plugin/generators/create-package", - "type": "generator" - }, - { - "description": "Create a E2E application for a Nx Plugin.", - "file": "generated/packages/plugin/generators/e2e-project.json", - "hidden": false, - "name": "e2e-project", - "originalFilePath": "/packages/plugin/src/generators/e2e-project/schema.json", - "path": "plugin/generators/e2e-project", - "type": "generator" - }, - { - "description": "Create a migration for an Nx Plugin.", - "file": "generated/packages/plugin/generators/migration.json", - "hidden": false, - "name": "migration", - "originalFilePath": "/packages/plugin/src/generators/migration/schema.json", - "path": "plugin/generators/migration", - "type": "generator" - }, - { - "description": "Create a generator for an Nx Plugin.", - "file": "generated/packages/plugin/generators/generator.json", - "hidden": false, - "name": "generator", - "originalFilePath": "/packages/plugin/src/generators/generator/schema.json", - "path": "plugin/generators/generator", - "type": "generator" - }, - { - "description": "Create an executor for an Nx Plugin.", - "file": "generated/packages/plugin/generators/executor.json", - "hidden": false, - "name": "executor", - "originalFilePath": "/packages/plugin/src/generators/executor/schema.json", - "path": "plugin/generators/executor", - "type": "generator" - }, - { - "description": "Adds linting configuration to validate common json files for nx plugins.", - "file": "generated/packages/plugin/generators/plugin-lint-checks.json", - "hidden": false, - "name": "plugin-lint-checks", - "originalFilePath": "/packages/plugin/src/generators/lint-checks/schema.json", - "path": "plugin/generators/plugin-lint-checks", - "type": "generator" - }, - { - "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-workspace --preset @nx/plugin`.", - "file": "generated/packages/plugin/generators/preset.json", - "hidden": true, - "name": "preset", - "originalFilePath": "/packages/plugin/src/generators/preset/schema.json", - "path": "plugin/generators/preset", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "plugin", - "packageName": "@nx/plugin", - "root": "/packages/plugin", - "source": "/packages/plugin/src" - }, - { - "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/react/documents/overview", - "itemList": [], - "isExternal": false, - "path": "react/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/react/react-plugin" - } - ], - "executors": [ - { - "description": "Serve a host or remote application.", - "file": "generated/packages/react/executors/module-federation-dev-server.json", - "hidden": false, - "name": "module-federation-dev-server", - "originalFilePath": "/packages/react/src/executors/module-federation-dev-server/schema.json", - "path": "react/executors/module-federation-dev-server", - "type": "executor" - }, - { - "description": "Serve a host application along with it's known remotes.", - "file": "generated/packages/react/executors/module-federation-ssr-dev-server.json", - "hidden": false, - "name": "module-federation-ssr-dev-server", - "originalFilePath": "/packages/react/src/executors/module-federation-ssr-dev-server/schema.json", - "path": "react/executors/module-federation-ssr-dev-server", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/react` plugin.", - "file": "generated/packages/react/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/react/src/generators/init/schema.json", - "path": "react/generators/init", - "type": "generator" - }, - { - "description": "Create a React application.", - "file": "generated/packages/react/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/react/src/generators/application/schema.json", - "path": "react/generators/application", - "type": "generator" - }, - { - "description": "Create a React library.", - "file": "generated/packages/react/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/react/src/generators/library/schema.json", - "path": "react/generators/library", - "type": "generator" - }, - { - "description": "Create a React component.", - "file": "generated/packages/react/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/react/src/generators/component/schema.json", - "path": "react/generators/component", - "type": "generator" - }, - { - "description": "Create a Redux slice for a project.", - "file": "generated/packages/react/generators/redux.json", - "hidden": false, - "name": "redux", - "originalFilePath": "/packages/react/src/generators/redux/schema.json", - "path": "react/generators/redux", - "type": "generator" - }, - { - "description": "Set up storybook for a React app or library.", - "file": "generated/packages/react/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/react/src/generators/storybook-configuration/schema.json", - "path": "react/generators/storybook-configuration", - "type": "generator" - }, - { - "description": "Generate storybook story for a React component", - "file": "generated/packages/react/generators/component-story.json", - "hidden": false, - "name": "component-story", - "originalFilePath": "/packages/react/src/generators/component-story/schema.json", - "path": "react/generators/component-story", - "type": "generator" - }, - { - "description": "Create stories/specs for all components declared in an app or library.", - "file": "generated/packages/react/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/react/src/generators/stories/schema.json", - "path": "react/generators/stories", - "type": "generator" - }, - { - "description": "Create a Cypress spec for a UI component that has a story.", - "file": "generated/packages/react/generators/component-cypress-spec.json", - "hidden": false, - "name": "component-cypress-spec", - "originalFilePath": "/packages/react/src/generators/component-cypress-spec/schema.json", - "path": "react/generators/component-cypress-spec", - "type": "generator" - }, - { - "description": "Create a hook.", - "file": "generated/packages/react/generators/hook.json", - "hidden": false, - "name": "hook", - "originalFilePath": "/packages/react/src/generators/hook/schema.json", - "path": "react/generators/hook", - "type": "generator" - }, - { - "description": "Generate a host react application", - "file": "generated/packages/react/generators/host.json", - "hidden": false, - "name": "host", - "originalFilePath": "/packages/react/src/generators/host/schema.json", - "path": "react/generators/host", - "type": "generator" - }, - { - "description": "Generate a remote react application", - "file": "generated/packages/react/generators/remote.json", - "hidden": false, - "name": "remote", - "originalFilePath": "/packages/react/src/generators/remote/schema.json", - "path": "react/generators/remote", - "type": "generator" - }, - { - "description": "Setup Cypress component testing for a React project", - "file": "generated/packages/react/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/react/src/generators/cypress-component-configuration/schema.json", - "path": "react/generators/cypress-component-configuration", - "type": "generator" - }, - { - "description": "Generate a Cypress component test for a React component", - "file": "generated/packages/react/generators/component-test.json", - "hidden": false, - "name": "component-test", - "originalFilePath": "/packages/react/src/generators/component-test/schema.json", - "path": "react/generators/component-test", - "type": "generator" - }, - { - "description": "Set up Tailwind configuration for a project.", - "file": "generated/packages/react/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/react/src/generators/setup-tailwind/schema.json", - "path": "react/generators/setup-tailwind", - "type": "generator" - }, - { - "description": "Set up SSR configuration for a project.", - "file": "generated/packages/react/generators/setup-ssr.json", - "hidden": false, - "name": "setup-ssr", - "originalFilePath": "/packages/react/src/generators/setup-ssr/schema.json", - "path": "react/generators/setup-ssr", - "type": "generator" - }, - { - "description": "Federate a module.", - "file": "generated/packages/react/generators/federate-module.json", - "hidden": false, - "name": "federate-module", - "originalFilePath": "/packages/react/src/generators/federate-module/schema.json", - "path": "react/generators/federate-module", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "react", - "packageName": "@nx/react", - "root": "/packages/react", - "source": "/packages/react/src" - }, - { - "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", - "file": "generated/packages/react-native/documents/overview", - "itemList": [], - "isExternal": false, - "path": "react-native/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/react-native/react-native-plugin" - } - ], - "executors": [ - { - "description": "Runs Android application.", - "file": "generated/packages/react-native/executors/run-android.json", - "hidden": false, - "name": "run-android", - "originalFilePath": "/packages/react-native/src/executors/run-android/schema.json", - "path": "react-native/executors/run-android", - "type": "executor" - }, - { - "description": "Runs iOS application.", - "file": "generated/packages/react-native/executors/run-ios.json", - "hidden": false, - "name": "run-ios", - "originalFilePath": "/packages/react-native/src/executors/run-ios/schema.json", - "path": "react-native/executors/run-ios", - "type": "executor" - }, - { - "description": "Builds the JavaScript bundle for offline use.", - "file": "generated/packages/react-native/executors/bundle.json", - "hidden": false, - "name": "bundle", - "originalFilePath": "/packages/react-native/src/executors/bundle/schema.json", - "path": "react-native/executors/bundle", - "type": "executor" - }, - { - "description": "Release Build for Android.", - "file": "generated/packages/react-native/executors/build-android.json", - "hidden": false, - "name": "build-android", - "originalFilePath": "/packages/react-native/src/executors/build-android/schema.json", - "path": "react-native/executors/build-android", - "type": "executor" - }, - { - "description": "Build iOS app", - "file": "generated/packages/react-native/executors/build-ios.json", - "hidden": false, - "name": "build-ios", - "originalFilePath": "/packages/react-native/src/executors/build-ios/schema.json", - "path": "react-native/executors/build-ios", - "type": "executor" - }, - { - "description": "Starts the Javascript server that communicates with connected devices.", - "file": "generated/packages/react-native/executors/start.json", - "hidden": false, - "name": "start", - "originalFilePath": "/packages/react-native/src/executors/start/schema.json", - "path": "react-native/executors/start", - "type": "executor" - }, - { - "description": "Syncs dependencies to `package.json` (required for autolinking).", - "file": "generated/packages/react-native/executors/sync-deps.json", - "hidden": false, - "name": "sync-deps", - "originalFilePath": "/packages/react-native/src/executors/sync-deps/schema.json", - "path": "react-native/executors/sync-deps", - "type": "executor" - }, - { - "description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder.", - "file": "generated/packages/react-native/executors/ensure-symlink.json", - "hidden": false, - "name": "ensure-symlink", - "originalFilePath": "/packages/react-native/src/executors/ensure-symlink/schema.json", - "path": "react-native/executors/ensure-symlink", - "type": "executor" - }, - { - "description": "Serve React Native Storybook.", - "file": "generated/packages/react-native/executors/storybook.json", - "hidden": false, - "name": "storybook", - "originalFilePath": "/packages/react-native/src/executors/storybook/schema.json", - "path": "react-native/executors/storybook", - "type": "executor" - }, - { - "description": "Run `pod install` in the `ios` directory.", - "file": "generated/packages/react-native/executors/pod-install.json", - "hidden": false, - "name": "pod-install", - "originalFilePath": "/packages/react-native/src/executors/pod-install/schema.json", - "path": "react-native/executors/pod-install", - "type": "executor" - }, - { - "description": "upgrade executor", - "file": "generated/packages/react-native/executors/upgrade.json", - "hidden": false, - "name": "upgrade", - "originalFilePath": "/packages/react-native/src/executors/upgrade/schema.json", - "path": "react-native/executors/upgrade", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nx/react-native` plugin.", - "file": "generated/packages/react-native/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/react-native/src/generators/init/schema.json", - "path": "react-native/generators/init", - "type": "generator" - }, - { - "description": "Create a React Native application.", - "file": "generated/packages/react-native/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/react-native/src/generators/application/schema.json", - "path": "react-native/generators/application", - "type": "generator" - }, - { - "description": "Create a React Native library.", - "file": "generated/packages/react-native/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/react-native/src/generators/library/schema.json", - "path": "react-native/generators/library", - "type": "generator" - }, - { - "description": "Create a React Native component.", - "file": "generated/packages/react-native/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/react-native/src/generators/component/schema.json", - "path": "react-native/generators/component", - "type": "generator" - }, - { - "description": "Set up Storybook for a React Native application or library.", - "file": "generated/packages/react-native/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/react-native/src/generators/storybook-configuration/schema.json", - "path": "react-native/generators/storybook-configuration", - "type": "generator" - }, - { - "description": "Generate Storybook story for a React Native component.", - "file": "generated/packages/react-native/generators/component-story.json", - "hidden": false, - "name": "component-story", - "originalFilePath": "/packages/react-native/src/generators/component-story/schema.json", - "path": "react-native/generators/component-story", - "type": "generator" - }, - { - "description": "Create stories for all components declared in an application or library.", - "file": "generated/packages/react-native/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/react-native/src/generators/stories/schema.json", - "path": "react-native/generators/stories", - "type": "generator" - }, - { - "description": "Destructive command to upgrade native iOS and Android code to latest.", - "file": "generated/packages/react-native/generators/upgrade-native.json", - "hidden": false, - "name": "upgrade-native", - "originalFilePath": "/packages/react-native/src/generators/upgrade-native/schema.json", - "path": "react-native/generators/upgrade-native", - "type": "generator" - }, - { - "description": "Set up web configuration for a React Native app", - "file": "generated/packages/react-native/generators/web-configuration.json", - "hidden": false, - "name": "web-configuration", - "originalFilePath": "/packages/react-native/src/generators/web-configuration/schema.json", - "path": "react-native/generators/web-configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "react-native", - "packageName": "@nx/react-native", - "root": "/packages/react-native", - "source": "/packages/react-native/src" - }, - { - "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/remix/documents/overview", - "itemList": [], - "isExternal": false, - "path": "remix/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/remix/remix-plugin" - } - ], - "executors": [ - { - "description": "Serve a Remix application.", - "file": "generated/packages/remix/executors/serve.json", - "hidden": false, - "name": "serve", - "originalFilePath": "/packages/remix/src/executors/serve/schema.json", - "path": "remix/executors/serve", - "type": "executor" - }, - { - "description": "Build a Remix application.", - "file": "generated/packages/remix/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/remix/src/executors/build/schema.json", - "path": "remix/executors/build", - "type": "executor" - } - ], - "generators": [ - { - "description": "Generate a new Remix workspace", - "file": "generated/packages/remix/generators/preset.json", - "hidden": true, - "name": "preset", - "originalFilePath": "/packages/remix/src/generators/preset/schema.json", - "path": "remix/generators/preset", - "type": "generator" - }, - { - "description": "Setup a Remix in an existing workspace", - "file": "generated/packages/remix/generators/setup.json", - "hidden": true, - "name": "setup", - "originalFilePath": "/packages/remix/src/generators/setup/schema.json", - "path": "remix/generators/setup", - "type": "generator" - }, - { - "description": "Generate a new Remix application", - "file": "generated/packages/remix/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/remix/src/generators/application/schema.json", - "path": "remix/generators/application", - "type": "generator" - }, - { - "description": "Generate a Cypress Component Testing configuration for a Remix project", - "file": "generated/packages/remix/generators/cypress-component-configuration.json", - "hidden": false, - "name": "cypress-component-configuration", - "originalFilePath": "/packages/remix/src/generators/cypress-component-configuration/schema.json", - "path": "remix/generators/cypress-component-configuration", - "type": "generator" - }, - { - "description": "Generate a new library", - "file": "generated/packages/remix/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/remix/src/generators/library/schema.json", - "path": "remix/generators/library", - "type": "generator" - }, - { - "description": "Initialize the `@nx/remix` plugin.", - "file": "generated/packages/remix/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/remix/src/generators/init/schema.json", - "path": "remix/generators/init", - "type": "generator" - }, - { - "description": "Generate a new route", - "file": "generated/packages/remix/generators/route.json", - "hidden": false, - "name": "route", - "originalFilePath": "/packages/remix/src/generators/route/schema.json", - "path": "remix/generators/route", - "type": "generator" - }, - { - "description": "Generate a new resource route", - "file": "generated/packages/remix/generators/resource-route.json", - "hidden": false, - "name": "resource-route", - "originalFilePath": "/packages/remix/src/generators/resource-route/schema.json", - "path": "remix/generators/resource-route", - "type": "generator" - }, - { - "description": "Add an action function to an existing route", - "file": "generated/packages/remix/generators/action.json", - "hidden": false, - "name": "action", - "originalFilePath": "/packages/remix/src/generators/action/schema.json", - "path": "remix/generators/action", - "type": "generator" - }, - { - "description": "Add a loader function to an existing route", - "file": "generated/packages/remix/generators/loader.json", - "hidden": false, - "name": "loader", - "originalFilePath": "/packages/remix/src/generators/loader/schema.json", - "path": "remix/generators/loader", - "type": "generator" - }, - { - "description": "Generates a new stylesheet and adds it to an existing route", - "file": "generated/packages/remix/generators/style.json", - "hidden": false, - "name": "style", - "originalFilePath": "/packages/remix/src/generators/style/schema.json", - "path": "remix/generators/style", - "type": "generator" - }, - { - "description": "Generates a TailwindCSS configuration for the Remix application", - "file": "generated/packages/remix/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/remix/src/generators/setup-tailwind/schema.json", - "path": "remix/generators/setup-tailwind", - "type": "generator" - }, - { - "description": "Generates a Storybook configuration for a Remix application", - "file": "generated/packages/remix/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/remix/src/generators/storybook-configuration/schema.json", - "path": "remix/generators/storybook-configuration", - "type": "generator" - }, - { - "description": "Add a meta function to an existing route", - "file": "generated/packages/remix/generators/meta.json", - "hidden": false, - "name": "meta", - "originalFilePath": "/packages/remix/src/generators/meta/schema.json", - "path": "remix/generators/meta", - "type": "generator" - }, - { - "description": "Add an ErrorBoundary to an existing route", - "file": "generated/packages/remix/generators/error-boundary.json", - "hidden": false, - "name": "error-boundary", - "originalFilePath": "/packages/remix/src/generators/error-boundary/schema.json", - "path": "remix/generators/error-boundary", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "remix", - "packageName": "@nx/remix", - "root": "/packages/remix", - "source": "/packages/remix/src" - }, - { - "description": "The Nx Plugin for Rollup contains executors and generators that support building applications using Rollup.", - "documents": [], - "executors": [ - { - "description": "Bundle a package using Rollup.", - "file": "generated/packages/rollup/executors/rollup.json", - "hidden": false, - "name": "rollup", - "originalFilePath": "/packages/rollup/src/executors/rollup/schema.json", - "path": "rollup/executors/rollup", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/rollup` plugin.", - "file": "generated/packages/rollup/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/rollup/src/generators/init/schema.json", - "path": "rollup/generators/init", - "type": "generator" - }, - { - "description": "Add rollup configuration to a project.", - "file": "generated/packages/rollup/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/rollup/src/generators/configuration/schema.json", - "path": "rollup/generators/configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "rollup", - "packageName": "@nx/rollup", - "root": "/packages/rollup", - "source": "/packages/rollup/src" - }, - { - "description": "The Nx Plugin for Storybook contains executors and generators for allowing your workspace to use the powerful Storybook integration testing & documenting capabilities.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace.", - "file": "generated/packages/storybook/documents/overview", - "itemList": [], - "isExternal": false, - "path": "storybook/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/storybook/plugin-overview" - }, - { - "id": "best-practices", - "name": "Storybook best practices for making the most out of Nx", - "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", - "file": "generated/packages/storybook/documents/best-practices", - "itemList": [], - "isExternal": false, - "path": "storybook/documents/best-practices", - "tags": [], - "originalFilePath": "shared/packages/storybook/best-practices" - }, - { - "id": "storybook-7-setup", - "name": "Storybook 7", - "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", - "file": "generated/packages/storybook/documents/storybook-7-setup", - "itemList": [], - "isExternal": false, - "path": "storybook/documents/storybook-7-setup", - "tags": [], - "originalFilePath": "shared/packages/storybook/storybook-7-setup" - } - ], - "executors": [ - { - "description": "Serve Storybook.", - "file": "generated/packages/storybook/executors/storybook.json", - "hidden": false, - "name": "storybook", - "originalFilePath": "/packages/storybook/src/executors/storybook/schema.json", - "path": "storybook/executors/storybook", - "type": "executor" - }, - { - "description": "Build Storybook.", - "file": "generated/packages/storybook/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/storybook/src/executors/build-storybook/schema.json", - "path": "storybook/executors/build", - "type": "executor" - } - ], - "generators": [ - { - "description": "Add Storybook configuration to the workspace.", - "file": "generated/packages/storybook/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/storybook/src/generators/init/schema.json", - "path": "storybook/generators/init", - "type": "generator" - }, - { - "description": "Add Storybook configuration to a UI library or an application.", - "file": "generated/packages/storybook/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/storybook/src/generators/configuration/schema.json", - "path": "storybook/generators/configuration", - "type": "generator" - }, - { - "description": "Add cypress e2e app to test a UI library that is set up for Storybook.", - "file": "generated/packages/storybook/generators/cypress-project.json", - "hidden": false, - "name": "cypress-project", - "originalFilePath": "/packages/storybook/src/generators/cypress-project/schema.json", - "path": "storybook/generators/cypress-project", - "type": "generator" - }, - { - "description": "Migrate to Storybook version 7.", - "file": "generated/packages/storybook/generators/migrate-7.json", - "hidden": false, - "name": "migrate-7", - "originalFilePath": "/packages/storybook/src/generators/migrate-7/schema.json", - "path": "storybook/generators/migrate-7", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "storybook", - "packageName": "@nx/storybook", - "root": "/packages/storybook", - "source": "/packages/storybook/src" - }, - { - "description": "CLI for generating code and running commands", - "documents": [], - "executors": [], - "generators": [], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "tao", - "packageName": "@nrwl/tao", - "root": "/packages/tao", - "source": "/packages/tao/src" - }, - { - "description": "The Nx Plugin for building and testing applications using Vite", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace.", - "file": "generated/packages/vite/documents/overview", - "itemList": [], - "isExternal": false, - "path": "vite/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/vite/vite-plugin" - } - ], - "executors": [ - { - "description": "Vite dev server.", - "file": "generated/packages/vite/executors/dev-server.json", - "hidden": false, - "name": "dev-server", - "originalFilePath": "/packages/vite/src/executors/dev-server/schema.json", - "path": "vite/executors/dev-server", - "type": "executor" - }, - { - "description": "Build with Vite.", - "file": "generated/packages/vite/executors/build.json", - "hidden": false, - "name": "build", - "originalFilePath": "/packages/vite/src/executors/build/schema.json", - "path": "vite/executors/build", - "type": "executor" - }, - { - "description": "Test with Vitest", - "file": "generated/packages/vite/executors/test.json", - "hidden": false, - "name": "test", - "originalFilePath": "/packages/vite/src/executors/test/schema.json", - "path": "vite/executors/test", - "type": "executor" - }, - { - "description": "Vite preview server", - "file": "generated/packages/vite/executors/preview-server.json", - "hidden": false, - "name": "preview-server", - "originalFilePath": "/packages/vite/src/executors/preview-server/schema.json", - "path": "vite/executors/preview-server", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize Vite in the workspace.", - "file": "generated/packages/vite/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/vite/src/generators/init/schema.json", - "path": "vite/generators/init", - "type": "generator" - }, - { - "description": "Add Vite configuration to an application.", - "file": "generated/packages/vite/generators/configuration.json", - "hidden": false, - "name": "configuration", - "originalFilePath": "/packages/vite/src/generators/configuration/schema.json", - "path": "vite/generators/configuration", - "type": "generator" - }, - { - "description": "Generate a vitest configuration", - "file": "generated/packages/vite/generators/vitest.json", - "hidden": false, - "name": "vitest", - "originalFilePath": "/packages/vite/src/generators/vitest/schema.json", - "path": "vite/generators/vitest", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "vite", - "packageName": "@nx/vite", - "root": "/packages/vite", - "source": "/packages/vite/src" - }, - { - "description": "The Vue plugin for Nx contains executors and generators for managing Vue applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace.", - "file": "generated/packages/vue/documents/overview", - "itemList": [], - "isExternal": false, - "path": "vue/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/vue/vue-plugin" - } - ], - "executors": [], - "generators": [ - { - "description": "Initialize the `@nx/vue` plugin.", - "file": "generated/packages/vue/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/vue/src/generators/init/schema.json", - "path": "vue/generators/init", - "type": "generator" - }, - { - "description": "Create a Vue application.", - "file": "generated/packages/vue/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/vue/src/generators/application/schema.json", - "path": "vue/generators/application", - "type": "generator" - }, - { - "description": "Create a Vue library.", - "file": "generated/packages/vue/generators/library.json", - "hidden": false, - "name": "library", - "originalFilePath": "/packages/vue/src/generators/library/schema.json", - "path": "vue/generators/library", - "type": "generator" - }, - { - "description": "Create a Vue component.", - "file": "generated/packages/vue/generators/component.json", - "hidden": false, - "name": "component", - "originalFilePath": "/packages/vue/src/generators/component/schema.json", - "path": "vue/generators/component", - "type": "generator" - }, - { - "description": "Set up Tailwind configuration for a project.", - "file": "generated/packages/vue/generators/setup-tailwind.json", - "hidden": false, - "name": "setup-tailwind", - "originalFilePath": "/packages/vue/src/generators/setup-tailwind/schema.json", - "path": "vue/generators/setup-tailwind", - "type": "generator" - }, - { - "description": "Set up storybook for a Vue app or library.", - "file": "generated/packages/vue/generators/storybook-configuration.json", - "hidden": false, - "name": "storybook-configuration", - "originalFilePath": "/packages/vue/src/generators/storybook-configuration/schema.json", - "path": "vue/generators/storybook-configuration", - "type": "generator" - }, - { - "description": "Create stories for all components declared in an app or library.", - "file": "generated/packages/vue/generators/stories.json", - "hidden": false, - "name": "stories", - "originalFilePath": "/packages/vue/src/generators/stories/schema.json", - "path": "vue/generators/stories", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "vue", - "packageName": "@nx/vue", - "root": "/packages/vue", - "source": "/packages/vue/src" - }, - { - "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", - "file": "generated/packages/web/documents/overview", - "itemList": [], - "isExternal": false, - "path": "web/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/web/web-plugin" - } - ], - "executors": [ - { - "description": "Serve a web application from a folder.", - "file": "generated/packages/web/executors/file-server.json", - "hidden": false, - "name": "file-server", - "originalFilePath": "/packages/web/src/executors/file-server/schema.json", - "path": "web/executors/file-server", - "type": "executor" - } - ], - "generators": [ - { - "description": "Add `@nrwl/web` to a project.", - "file": "generated/packages/web/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/web/src/generators/init/schema.json", - "path": "web/generators/init", - "type": "generator" - }, - { - "description": "Create an web application.", - "file": "generated/packages/web/generators/application.json", - "hidden": false, - "name": "application", - "originalFilePath": "/packages/web/src/generators/application/schema.json", - "path": "web/generators/application", - "type": "generator" - }, - { - "description": "Add a new static-serve target to a project.", - "file": "generated/packages/web/generators/static-config.json", - "hidden": false, - "name": "static-config", - "originalFilePath": "/packages/web/src/generators/static-serve/schema.json", - "path": "web/generators/static-config", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "web", - "packageName": "@nx/web", - "root": "/packages/web", - "source": "/packages/web/src" - }, - { - "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", - "file": "generated/packages/webpack/documents/overview", - "itemList": [], - "isExternal": false, - "path": "webpack/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/webpack/plugin-overview" - } - ], - "executors": [ - { - "description": "Run webpack build.", - "file": "generated/packages/webpack/executors/webpack.json", - "hidden": false, - "name": "webpack", - "originalFilePath": "/packages/webpack/src/executors/webpack/schema.json", - "path": "webpack/executors/webpack", - "type": "executor" - }, - { - "description": "Serve a web application.", - "file": "generated/packages/webpack/executors/dev-server.json", - "hidden": false, - "name": "dev-server", - "originalFilePath": "/packages/webpack/src/executors/dev-server/schema.json", - "path": "webpack/executors/dev-server", - "type": "executor" - }, - { - "description": "Serve a SSR application.", - "file": "generated/packages/webpack/executors/ssr-dev-server.json", - "hidden": false, - "name": "ssr-dev-server", - "originalFilePath": "/packages/webpack/src/executors/ssr-dev-server/schema.json", - "path": "webpack/executors/ssr-dev-server", - "type": "executor" - } - ], - "generators": [ - { - "description": "Initialize the `@nrwl/webpack` plugin.", - "file": "generated/packages/webpack/generators/init.json", - "hidden": true, - "name": "init", - "originalFilePath": "/packages/webpack/src/generators/init/schema.json", - "path": "webpack/generators/init", - "type": "generator" - }, - { - "description": "Add webpack configuration to a project.", - "file": "generated/packages/webpack/generators/configuration.json", - "hidden": true, - "name": "configuration", - "originalFilePath": "/packages/webpack/src/generators/configuration/schema.json", - "path": "webpack/generators/configuration", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "webpack", - "packageName": "@nx/webpack", - "root": "/packages/webpack", - "source": "/packages/webpack/src" - }, - { - "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", - "documents": [ - { - "id": "overview", - "name": "Overview", - "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", - "file": "generated/packages/workspace/documents/overview", - "itemList": [], - "isExternal": false, - "path": "workspace/documents/overview", - "tags": [], - "originalFilePath": "shared/packages/workspace/workspace-plugin" - }, - { - "id": "nx-nodejs-typescript-version-matrix", - "name": "Nx, NodeJS and Typescript Versions", - "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", - "file": "generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix", - "itemList": [], - "isExternal": false, - "path": "workspace/documents/nx-nodejs-typescript-version-matrix", - "tags": [], - "originalFilePath": "shared/packages/workspace/nx-compatibility-matrix" - } - ], - "executors": [ - { - "description": "A dummy executor useful for E2E tests.", - "file": "generated/packages/workspace/executors/counter.json", - "hidden": true, - "name": "counter", - "originalFilePath": "/packages/workspace/src/executors/counter/schema.json", - "path": "workspace/executors/counter", - "type": "executor" - } - ], - "generators": [ - { - "description": "Create application in an empty workspace.", - "file": "generated/packages/workspace/generators/preset.json", - "hidden": true, - "name": "preset", - "originalFilePath": "/packages/workspace/src/generators/preset/schema.json", - "path": "workspace/generators/preset", - "type": "generator" - }, - { - "description": "Move an application or library to another folder.", - "file": "generated/packages/workspace/generators/move.json", - "hidden": false, - "name": "move", - "originalFilePath": "/packages/workspace/src/generators/move/schema.json", - "path": "workspace/generators/move", - "type": "generator" - }, - { - "description": "Remove an application or library.", - "file": "generated/packages/workspace/generators/remove.json", - "hidden": false, - "name": "remove", - "originalFilePath": "/packages/workspace/src/generators/remove/schema.json", - "path": "workspace/generators/remove", - "type": "generator" - }, - { - "description": "Convert a Nx project to a monorepo.", - "file": "generated/packages/workspace/generators/convert-to-monorepo.json", - "hidden": false, - "name": "convert-to-monorepo", - "originalFilePath": "/packages/workspace/src/generators/convert-to-monorepo/schema.json", - "path": "workspace/generators/convert-to-monorepo", - "type": "generator" - }, - { - "description": "Create a workspace.", - "file": "generated/packages/workspace/generators/new.json", - "hidden": true, - "name": "new", - "originalFilePath": "/packages/workspace/src/generators/new/schema.json", - "path": "workspace/generators/new", - "type": "generator" - }, - { - "description": "Generates a target to run any command in the terminal.", - "file": "generated/packages/workspace/generators/run-commands.json", - "hidden": false, - "name": "run-commands", - "originalFilePath": "/packages/workspace/src/generators/run-commands/schema.json", - "path": "workspace/generators/run-commands", - "type": "generator" - }, - { - "description": "Fixes projects configuration", - "file": "generated/packages/workspace/generators/fix-configuration.json", - "hidden": false, - "name": "fix-configuration", - "originalFilePath": "/packages/workspace/src/generators/convert-to-nx-project/schema.json", - "path": "workspace/generators/fix-configuration", - "type": "generator" - }, - { - "description": "Create a minimal NPM package.", - "file": "generated/packages/workspace/generators/npm-package.json", - "hidden": false, - "name": "npm-package", - "originalFilePath": "/packages/workspace/src/generators/npm-package/schema.json", - "path": "workspace/generators/npm-package", - "type": "generator" - }, - { - "description": "Generate a CI workflow.", - "file": "generated/packages/workspace/generators/ci-workflow.json", - "hidden": false, - "name": "ci-workflow", - "originalFilePath": "/packages/workspace/src/generators/ci-workflow/schema.json", - "path": "workspace/generators/ci-workflow", - "type": "generator" - } - ], - "githubRoot": "https://github.com/nrwl/nx/blob/master", - "name": "workspace", - "packageName": "@nx/workspace", - "root": "/packages/workspace", - "source": "/packages/workspace/src" - } -] diff --git a/docs/generated/packages/angular/documents/angular-nx-version-matrix.md b/docs/generated/packages/angular/documents/angular-nx-version-matrix.md deleted file mode 100644 index 9bc7146806ba9..0000000000000 --- a/docs/generated/packages/angular/documents/angular-nx-version-matrix.md +++ /dev/null @@ -1,36 +0,0 @@ -# Nx and Angular Versions - -The latest version of Nx supports the [actively supported versions of Angular (current and LTS versions)](https://angular.io/guide/releases#actively-supported-versions). Workspaces in any of those versions are recommended to use the latest version of Nx to benefit from all the new features and fixes. - -{% callout type="note" title="Older Nx and Angular versions" %} -The support for multiple versions of Angular in the latest version of Nx was added in **v15.7.0** and started by supporting Angular v14 and v15. If your workspace is in an older version of Angular or you can't update to the latest version of Nx for some reason, please have a look at the next section to know which version of Nx to use. -{% /callout %} - -## Nx and Angular Version Compatibility Matrix - -Below is a reference table that matches versions of Angular to the version of Nx that is compatible with it. The table shows the version of Angular, the recommended version of Nx to use and the range of Nx versions that support the version of Angular. - -We provide a recommended version, and it is usually the latest minor version of Nx in the range provided because there will have been bug fixes added since the first release in the range. - -| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ | -| --------------- | ------------------------------ | -------------------------------------- | -| ~17.2.0 | **latest** | 18.1.1 <= latest | -| ~17.1.0 | **latest** | 17.3.0 <= latest | -| ~17.0.0 | **latest** | 17.1.0 <= latest | -| ~16.2.0 | **latest** | 16.7.0 <= latest | -| ~16.1.0 | **latest** | 16.4.0 <= latest | -| ~16.0.0 | **latest** | 16.1.0 <= latest | -| ~15.2.0 | **latest** | 15.8.0 <= latest | -| ~15.1.0 | **latest** | 15.5.0 <= latest | -| ~15.0.0 | **latest** | 15.2.0 <= 15.4.8 \|\| 15.7.0 <= latest | -| ~14.2.0 | **~17.0.0** | 14.6.0 <= 15.1.1 \|\| 15.7.0 < 17.1.0 | -| ~14.1.0 | **~17.0.0** | 14.5.0 <= 14.5.10 \|\| 15.7.0 < 17.1.0 | -| ~14.0.0 | **~17.0.0** | 14.2.1 <= 14.4.3 \|\| 15.7.0 < 17.1.0 | -| ^13.0.0 | **14.1.9** | 13.2.0 <= 14.1.9 | -| ^12.0.0 | **13.1.4** | 12.3.0 <= 13.1.4 | -| ^11.0.0 | **12.2.0** | 11.0.0 <= 12.2.0 | -| ^10.0.0 | **10.4.15** | 9.7.0 <= 10.4.15 | -| ^9.0.0 | **9.6.0** | 8.12.4 <= 9.6.0 | -| ^8.0.0 | **8.12.2** | 8.7.0 <= 8.12.2 | - -Additionally, you can check the supported versions of Node and Typescript for the version of Angular you are using in the [Angular docs](https://angular.io/guide/versions#actively-supported-versions). diff --git a/docs/generated/packages/angular/documents/overview.md b/docs/generated/packages/angular/documents/overview.md deleted file mode 100644 index 5ddbaf8e0e97e..0000000000000 --- a/docs/generated/packages/angular/documents/overview.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: Overview of the Nx Angular Plugin -description: The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. ---- - -The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries -within an Nx workspace. It provides: - -- Integration with libraries such as Storybook, Jest and Cypress. -- Generators to help scaffold code quickly, including: - - Micro Frontends - - Libraries, both internal to your codebase and publishable to npm - - Single Component Application Modules (SCAMs) -- NgRx helpers. -- Utilities for automatic workspace refactoring. - -{% callout type="note" title="Currently using the Angular CLI?" %} -You can easily and mostly **automatically migrate from an Angular CLI** project to Nx! Learn -more [here](/recipes/angular/migration/angular). -{% /callout %} - -## Setting Up @nx/angular - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/angular` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/angular` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/angular -``` - -This will install the correct version of `@nx/angular`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/angular` package with your package manager. - -```shell -npm add -D @nx/angular -``` - -{% /tab %} -{% /tabs %} - -{% callout type="note" title="Angular Tutorials" %} -For a full tutorial experience, follow the [Angular Standalone Tutorial](/getting-started/tutorials/angular-standalone-tutorial) or the [Angular Monorepo Tutorial](/getting-started/tutorials/angular-monorepo-tutorial) -{% /callout %} - -## Using the Angular Plugin - -### Generating an application - -It's straightforward to generate an Angular application: - -```shell -nx g @nx/angular:app appName -``` - -By default, the application will be generated with: - -- ESLint as the linter. -- Jest as the unit test runner. -- Cypress as the E2E test runner. - -We can then serve, build, test, lint, and run e2e tests on the application with the following commands: - -```shell -nx serve appName -nx build appName -nx test appName -nx lint appName -nx e2e appName -``` - -### Generating a library - -Generating an Angular library is very similar to generating an application: - -```shell -nx g @nx/angular:lib libName -``` - -By default, the library will be generated with: - -- ESLint as the linter. -- Jest as the unit test runner. - -We can then test and lint the library with the following commands: - -```shell -nx test libName -nx lint libName -``` - -Read more about: - -- [Creating Libraries](/concepts/more-concepts/creating-libraries) -- [Library Types](/concepts/more-concepts/library-types) -- [Buildable and Publishable Libraries](/concepts/more-concepts/buildable-and-publishable-libraries) - -### Fallback to `@schematics/angular` - -If you try to invoke a generator that is not present in `@nx/angular`, the request will automatically be forwarded on -to `@schematics/angular`. So, even though there is no `@nx/angular:service` generator, the following command will -successfully create a service: - -```shell -nx g @nx/angular:service my-service -``` - -## More Documentation - -- [Angular Standalone Tutorial](/getting-started/tutorials/angular-standalone-tutorial) -- [Angular Monorepo Tutorial](/getting-started/tutorials/angular-monorepo-tutorial) -- [Migrating from the Angular CLI](/recipes/angular/migration/angular) -- [Setup Module Federation with Angular and Nx](/concepts/module-federation/faster-builds-with-module-federation) -- [Using Tailwind CSS with Angular projects](/recipes/angular/using-tailwind-css-with-angular-projects) diff --git a/docs/generated/packages/angular/executors/application.json b/docs/generated/packages/angular/executors/application.json deleted file mode 100644 index 8f50fa9813947..0000000000000 --- a/docs/generated/packages/angular/executors/application.json +++ /dev/null @@ -1,743 +0,0 @@ -{ - "name": "application", - "implementation": "/packages/angular/src/executors/application/application.impl.ts", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Nx Application Executor", - "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", - "examplesFile": "The `@nx/angular:application` executor is very similar to the `@angular-devkit/build-angular:application` builder provided by the Angular CLI. It builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.\n\nIn addition to the features provided by the Angular CLI builder, the `@nx/angular:application` executor also supports the following:\n\n- Providing esbuild plugins\n- Providing a function to transform the application's `index.html` file\n- Incremental builds\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Providing esbuild plugins\" %}\n\nThe executor accepts a `plugins` option that allows you to provide esbuild plugins that will be used when building your application. It allows providing a path to a plugin file or an object with a `path` and `options` property to provide options to the plugin.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[\"8-16\"] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:application\",\n \"options\": {\n ...\n \"plugins\": [\n \"apps/my-app/plugins/plugin1.js\",\n {\n \"path\": \"apps/my-app/plugins/plugin2.js\",\n \"options\": {\n \"someOption\": \"some value\"\n }\n }\n ]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin1.js\" %}\nconst plugin1 = {\n name: 'plugin1',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN1_TEXT = '\"Value was provided at build time\"';\n },\n};\n\nmodule.exports = plugin1;\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin2.js\" %}\nfunction plugin2({ someOption }) {\n return {\n name: 'plugin2',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN2_TEXT = JSON.stringify(someOption);\n },\n };\n}\n\nmodule.exports = plugin2;\n```\n\n{% /tab %}\n\n{% tab label=\"Transforming the 'index.html' file\" %}\n\nThe executor accepts an `indexHtmlTransformer` option to provide a path to a file with a default export for a function that receives the application's `index.html` file contents and outputs the updated contents.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[8] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:application\",\n \"options\": {\n ...\n \"indexHtmlTransformer\": \"apps/my-app/index-html.transformer.ts\"\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/index-html.transformer.ts\" %}\nexport default function (indexContent: string) {\n return indexContent.replace(\n 'my-app',\n 'my-app (transformed)'\n );\n}\n```\n\n{% /tab %}\n{% /tabs %}\n", - "outputCapture": "direct-nodejs", - "type": "object", - "properties": { - "assets": { - "type": "array", - "description": "List of static application assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "browser": { - "type": "string", - "description": "The full path for the browser entry point to the application, relative to the current workspace." - }, - "server": { - "type": "string", - "description": "The full path for the server entry point to the application, relative to the current workspace." - }, - "polyfills": { - "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.", - "type": "array", - "items": { "type": "string", "uniqueItems": true }, - "default": [] - }, - "tsConfig": { - "type": "string", - "description": "The full path for the TypeScript configuration file, relative to the current workspace." - }, - "scripts": { - "description": "Global scripts to be included in the build.", - "type": "array", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "pattern": "\\.[cm]?jsx?$" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The JavaScript/TypeScript file or package containing the file to include." - } - ] - } - }, - "styles": { - "description": "Global styles to be included in the build.", - "type": "array", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "pattern": "\\.(?:css|scss|sass|less)$" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "pattern": "\\.(?:css|scss|sass|less)$" - } - ] - } - }, - "inlineStyleLanguage": { - "description": "The stylesheet language to use for the application's inline component styles.", - "type": "string", - "default": "css", - "enum": ["css", "less", "sass", "scss"] - }, - "stylePreprocessorOptions": { - "description": "Options to pass to style preprocessors.", - "type": "object", - "properties": { - "includePaths": { - "description": "Paths to include. Paths will be resolved to workspace root.", - "type": "array", - "items": { "type": "string" }, - "default": [] - } - }, - "additionalProperties": false - }, - "externalDependencies": { - "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "clearScreen": { - "type": "boolean", - "default": false, - "description": "Automatically clear the terminal screen during rebuilds. _Note: this is only supported in Angular versions >= 17.2.0_." - }, - "optimization": { - "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", - "default": true, - "x-user-analytics": "ep.ng_optimization", - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Enables optimization of the scripts output.", - "default": true - }, - "styles": { - "description": "Enables optimization of the styles output.", - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "minify": { - "type": "boolean", - "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.", - "default": true - }, - "inlineCritical": { - "type": "boolean", - "description": "Extract and inline critical CSS definitions to improve first paint time.", - "default": true - }, - "removeSpecialComments": { - "type": "boolean", - "description": "Remove comments in global CSS that contains '@license' or '@preserve' or that starts with '//!' or '/*!'. _Note: this is only supported in Angular versions >= 17.1.0_.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "fonts": { - "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "inline": { - "type": "boolean", - "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "loader": { - "description": "Defines the type of loader to use with a specified file extension when used with a JavaScript `import`. `text` inlines the content as a string; `binary` inlines the content as a Uint8Array; `file` emits the file and provides the runtime location of the file; `empty` considers the content to be empty and not include it in bundles. _Note: this is only supported in Angular versions >= 17.1.0_.", - "type": "object", - "patternProperties": { - "^\\.\\S+$": { "enum": ["text", "binary", "file", "empty"] } - } - }, - "define": { - "description": "Defines global identifiers that will be replaced with a specified constant value when found in any JavaScript or TypeScript code including libraries. The value will be used directly. String values must be put in quotes. Identifiers within Angular metadata such as Component Decorators will not be replaced. _Note: this is only supported in Angular versions >= 17.2.0_.", - "type": "object", - "additionalProperties": { "type": "string" } - }, - "fileReplacements": { - "description": "Replace compilation source files with other compilation source files in the build.", - "type": "array", - "items": { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } - }, - "additionalProperties": false, - "required": ["replace", "with"] - }, - "default": [] - }, - "outputPath": { - "description": "Specify the output path relative to workspace root. _Note: the object notation is only supported in Angular versions >= 17.1.0_.", - "oneOf": [ - { - "type": "object", - "properties": { - "base": { - "type": "string", - "description": "Specify the output path relative to workspace root." - }, - "browser": { - "type": "string", - "pattern": "^[-\\w\\.]*$", - "default": "browser", - "description": "The output directory name of your browser build within the output path base. Defaults to 'browser'." - }, - "server": { - "type": "string", - "pattern": "^[-\\w\\.]*$", - "default": "server", - "description": "The output directory name of your server build within the output path base. Defaults to 'server'." - }, - "media": { - "type": "string", - "pattern": "^[-\\w\\.]+$", - "default": "media", - "description": "The output directory name of your media files within the output browser directory. Defaults to 'media'." - } - }, - "required": ["base"], - "additionalProperties": false - }, - { "type": "string" } - ] - }, - "aot": { - "type": "boolean", - "description": "Build using Ahead of Time compilation.", - "x-user-analytics": "ep.ng_aot", - "default": true - }, - "sourceMap": { - "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", - "default": false, - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Output source maps for all scripts.", - "default": true - }, - "styles": { - "type": "boolean", - "description": "Output source maps for all styles.", - "default": true - }, - "hidden": { - "type": "boolean", - "description": "Output source maps used for error reporting tools.", - "default": false - }, - "vendor": { - "type": "boolean", - "description": "Resolve vendor packages source maps.", - "default": false - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "baseHref": { - "type": "string", - "description": "Base url for the application being built." - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging.", - "default": false - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console while building.", - "default": true - }, - "i18nMissingTranslation": { - "type": "string", - "description": "How to handle missing translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "i18nDuplicateTranslation": { - "type": "string", - "description": "How to handle duplicate translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "localize": { - "description": "Translate the bundles in one or more locales.", - "oneOf": [ - { "type": "boolean", "description": "Translate all locales." }, - { - "type": "array", - "description": "List of locales ID's to translate.", - "minItems": 1, - "items": { - "type": "string", - "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" - } - } - ] - }, - "watch": { - "type": "boolean", - "description": "Run build when files change.", - "default": false - }, - "outputHashing": { - "type": "string", - "description": "Define the output filename cache-busting hashing mode.", - "default": "none", - "enum": ["none", "all", "media", "bundles"] - }, - "poll": { - "type": "number", - "description": "Enable and define the file watching poll time period in milliseconds." - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Delete the output path before building.", - "default": true - }, - "preserveSymlinks": { - "type": "boolean", - "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." - }, - "extractLicenses": { - "type": "boolean", - "description": "Extract all licenses in a separate file.", - "default": true - }, - "namedChunks": { - "type": "boolean", - "description": "Use file name for lazy loaded chunks.", - "default": false - }, - "subresourceIntegrity": { - "type": "boolean", - "description": "Enables the use of subresource integrity validation.", - "default": false - }, - "serviceWorker": { - "description": "Generates a service worker configuration.", - "default": false, - "oneOf": [ - { "type": "string", "description": "Path to ngsw-config.json." }, - { - "const": false, - "type": "boolean", - "description": "Does not generate a service worker configuration." - } - ] - }, - "index": { - "description": "Configures the generation of the application's HTML index.", - "oneOf": [ - { - "type": "string", - "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path." - }, - { - "type": "object", - "description": "", - "properties": { - "input": { - "type": "string", - "minLength": 1, - "description": "The path of a file to use for the application's generated HTML index." - }, - "output": { - "type": "string", - "minLength": 1, - "default": "index.html", - "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path." - }, - "preloadInitial": { - "type": "boolean", - "default": true, - "description": "Generates 'preload', 'modulepreload', and 'preconnect' link elements for initial application files and resources. _Note: this is only supported in Angular versions >= 17.1.0_." - } - }, - "required": ["input"] - }, - { - "const": false, - "type": "boolean", - "description": "Does not generate an `index.html` file." - } - ] - }, - "statsJson": { - "type": "boolean", - "description": "Generates a 'stats.json' file which can be analyzed with https://esbuild.github.io/analyze/.", - "default": false - }, - "budgets": { - "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.", - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of budget.", - "enum": [ - "all", - "allScript", - "any", - "anyScript", - "anyComponentStyle", - "bundle", - "initial" - ] - }, - "name": { - "type": "string", - "description": "The name of the bundle." - }, - "baseline": { - "type": "string", - "description": "The baseline size for comparison." - }, - "maximumWarning": { - "type": "string", - "description": "The maximum threshold for warning relative to the baseline." - }, - "maximumError": { - "type": "string", - "description": "The maximum threshold for error relative to the baseline." - }, - "minimumWarning": { - "type": "string", - "description": "The minimum threshold for warning relative to the baseline." - }, - "minimumError": { - "type": "string", - "description": "The minimum threshold for error relative to the baseline." - }, - "warning": { - "type": "string", - "description": "The threshold for warning relative to the baseline (min & max)." - }, - "error": { - "type": "string", - "description": "The threshold for error relative to the baseline (min & max)." - } - }, - "additionalProperties": false, - "required": ["type"] - }, - "default": [] - }, - "webWorkerTsConfig": { - "type": "string", - "description": "TypeScript configuration for Web Worker modules." - }, - "crossOrigin": { - "type": "string", - "description": "Define the crossorigin attribute setting of elements that provide CORS support.", - "default": "none", - "enum": ["none", "anonymous", "use-credentials"] - }, - "allowedCommonJsDependencies": { - "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "prerender": { - "description": "Prerender (SSG) pages of your application during build time.", - "default": false, - "oneOf": [ - { - "type": "boolean", - "description": "Enable prerending of pages of your application during build time." - }, - { - "type": "object", - "properties": { - "routesFile": { - "type": "string", - "description": "The path to a file that contains a list of all routes to prerender, separated by newlines. This option is useful if you want to prerender routes with parameterized URLs." - }, - "discoverRoutes": { - "type": "boolean", - "description": "Whether the builder should process the Angular Router configuration to find all unparameterized routes and prerender them.", - "default": true - } - }, - "additionalProperties": false - } - ] - }, - "ssr": { - "description": "Server side render (SSR) pages of your application during runtime.", - "default": false, - "oneOf": [ - { - "type": "boolean", - "description": "Enable the server bundles to be written to disk." - }, - { - "type": "object", - "properties": { - "entry": { - "type": "string", - "description": "The server entry-point that when executed will spawn the web server." - } - }, - "additionalProperties": false - } - ] - }, - "appShell": { - "type": "boolean", - "description": "Generates an application shell during build time.", - "default": false - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - }, - "plugins": { - "description": "A list of ESBuild plugins.", - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "The path to the plugin. Relative to the workspace root." - }, - "options": { - "type": "object", - "description": "The options to provide to the plugin.", - "properties": {}, - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": ["path"] - }, - { - "type": "string", - "description": "The path to the plugin. Relative to the workspace root." - } - ] - } - }, - "indexHtmlTransformer": { - "description": "Path to a file exposing a default function to transform the `index.html` file. _Note: this is only supported in Angular versions >= 17.1.0_.", - "type": "string" - } - }, - "additionalProperties": false, - "required": ["outputPath", "index", "browser", "tsConfig"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - }, - "fileReplacement": { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } - }, - "additionalProperties": false, - "required": ["replace", "with"] - }, - "budget": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of budget.", - "enum": [ - "all", - "allScript", - "any", - "anyScript", - "anyComponentStyle", - "bundle", - "initial" - ] - }, - "name": { - "type": "string", - "description": "The name of the bundle." - }, - "baseline": { - "type": "string", - "description": "The baseline size for comparison." - }, - "maximumWarning": { - "type": "string", - "description": "The maximum threshold for warning relative to the baseline." - }, - "maximumError": { - "type": "string", - "description": "The maximum threshold for error relative to the baseline." - }, - "minimumWarning": { - "type": "string", - "description": "The minimum threshold for warning relative to the baseline." - }, - "minimumError": { - "type": "string", - "description": "The minimum threshold for error relative to the baseline." - }, - "warning": { - "type": "string", - "description": "The threshold for warning relative to the baseline (min & max)." - }, - "error": { - "type": "string", - "description": "The threshold for error relative to the baseline (min & max)." - } - }, - "additionalProperties": false, - "required": ["type"] - } - }, - "presets": [] - }, - "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/application/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/browser-esbuild.json b/docs/generated/packages/angular/executors/browser-esbuild.json deleted file mode 100644 index 2c639fa9a934c..0000000000000 --- a/docs/generated/packages/angular/executors/browser-esbuild.json +++ /dev/null @@ -1,657 +0,0 @@ -{ - "name": "browser-esbuild", - "implementation": "/packages/angular/src/executors/browser-esbuild/browser-esbuild.impl.ts", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Nx ESBuild Executor", - "description": "Nx ESBuild Executor supporting Incremental Builds.", - "examplesFile": "The `@nx/angular:browser-esbuild` executor is very similar to the `@angular-devkit/build-angular:browser-esbuild` builder provided by the Angular CLI. It builds an Angular application using [esbuild](https://esbuild.github.io/).\n\nIn addition to the features provided by the Angular CLI builder, the `@nx/angular:browser-esbuild` executor also supports the following:\n\n- Providing esbuild plugins\n- Incremental builds\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Providing esbuild plugins\" %}\n\nThe executor accepts a `plugins` option that allows you to provide esbuild plugins that will be used when building your application. It allows providing a path to a plugin file or an object with a `path` and `options` property to provide options to the plugin.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[\"8-16\"] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:browser-esbuild\",\n \"options\": {\n ...\n \"plugins\": [\n \"apps/my-app/plugins/plugin1.js\",\n {\n \"path\": \"apps/my-app/plugins/plugin2.js\",\n \"options\": {\n \"someOption\": \"some value\"\n }\n }\n ]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin1.js\" %}\nconst plugin1 = {\n name: 'plugin1',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN1_TEXT = '\"Value was provided at build time\"';\n },\n};\n\nmodule.exports = plugin1;\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin2.js\" %}\nfunction plugin2({ someOption }) {\n return {\n name: 'plugin2',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN2_TEXT = JSON.stringify(someOption);\n },\n };\n}\n\nmodule.exports = plugin2;\n```\n\n{% /tab %}\n{% /tabs %}\n", - "outputCapture": "direct-nodejs", - "type": "object", - "properties": { - "assets": { - "type": "array", - "description": "List of static application assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "main": { - "type": "string", - "description": "The full path for the main entry point to the app, relative to the current workspace." - }, - "polyfills": { - "description": "Polyfills to be included in the build.", - "oneOf": [ - { - "type": "array", - "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.", - "items": { "type": "string", "uniqueItems": true }, - "default": [] - }, - { - "type": "string", - "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'." - } - ] - }, - "tsConfig": { - "type": "string", - "description": "The full path for the TypeScript configuration file, relative to the current workspace." - }, - "scripts": { - "description": "Global scripts to be included in the build.", - "type": "array", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "pattern": "\\.[cm]?jsx?$" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The JavaScript/TypeScript file or package containing the file to include." - } - ] - } - }, - "styles": { - "description": "Global styles to be included in the build.", - "type": "array", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "pattern": "\\.(?:css|scss|sass|less)$" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "pattern": "\\.(?:css|scss|sass|less)$" - } - ] - } - }, - "inlineStyleLanguage": { - "description": "The stylesheet language to use for the application's inline component styles.", - "type": "string", - "default": "css", - "enum": ["css", "less", "sass", "scss"] - }, - "stylePreprocessorOptions": { - "description": "Options to pass to style preprocessors.", - "type": "object", - "properties": { - "includePaths": { - "description": "Paths to include. Paths will be resolved to workspace root.", - "type": "array", - "items": { "type": "string" }, - "default": [] - } - }, - "additionalProperties": false - }, - "externalDependencies": { - "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "optimization": { - "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", - "default": true, - "x-user-analytics": "ep.ng_optimization", - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Enables optimization of the scripts output.", - "default": true - }, - "styles": { - "description": "Enables optimization of the styles output.", - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "minify": { - "type": "boolean", - "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.", - "default": true - }, - "inlineCritical": { - "type": "boolean", - "description": "Extract and inline critical CSS definitions to improve first paint time.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "fonts": { - "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "inline": { - "type": "boolean", - "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "fileReplacements": { - "description": "Replace compilation source files with other compilation source files in the build.", - "type": "array", - "items": { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } - }, - "additionalProperties": false, - "required": ["replace", "with"] - }, - "default": [] - }, - "outputPath": { - "type": "string", - "description": "The full path for the new output directory, relative to the current workspace." - }, - "resourcesOutputPath": { - "type": "string", - "description": "The path where style resources will be placed, relative to outputPath." - }, - "aot": { - "type": "boolean", - "description": "Build using Ahead of Time compilation.", - "x-user-analytics": "ep.ng_aot", - "default": true - }, - "sourceMap": { - "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", - "default": false, - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Output source maps for all scripts.", - "default": true - }, - "styles": { - "type": "boolean", - "description": "Output source maps for all styles.", - "default": true - }, - "hidden": { - "type": "boolean", - "description": "Output source maps used for error reporting tools.", - "default": false - }, - "vendor": { - "type": "boolean", - "description": "Resolve vendor packages source maps.", - "default": false - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "vendorChunk": { - "type": "boolean", - "description": "Generate a separate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.", - "default": false - }, - "commonChunk": { - "type": "boolean", - "description": "Generate a separate bundle containing code used across multiple bundles.", - "default": true - }, - "baseHref": { - "type": "string", - "description": "Base url for the application being built." - }, - "deployUrl": { - "type": "string", - "description": "URL where files will be deployed.", - "x-deprecated": "Use \"baseHref\" option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url." - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging.", - "default": false - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console while building.", - "default": true - }, - "i18nMissingTranslation": { - "type": "string", - "description": "How to handle missing translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "i18nDuplicateTranslation": { - "type": "string", - "description": "How to handle duplicate translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "localize": { - "description": "Translate the bundles in one or more locales.", - "oneOf": [ - { "type": "boolean", "description": "Translate all locales." }, - { - "type": "array", - "description": "List of locales ID's to translate.", - "minItems": 1, - "items": { - "type": "string", - "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" - } - } - ] - }, - "watch": { - "type": "boolean", - "description": "Run build when files change.", - "default": false - }, - "outputHashing": { - "type": "string", - "description": "Define the output filename cache-busting hashing mode.", - "default": "none", - "enum": ["none", "all", "media", "bundles"] - }, - "poll": { - "type": "number", - "description": "Enable and define the file watching poll time period in milliseconds." - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Delete the output path before building.", - "default": true - }, - "preserveSymlinks": { - "type": "boolean", - "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." - }, - "extractLicenses": { - "type": "boolean", - "description": "Extract all licenses in a separate file.", - "default": true - }, - "buildOptimizer": { - "type": "boolean", - "description": "Enables advanced build optimizations when using the 'aot' option.", - "default": true - }, - "namedChunks": { - "type": "boolean", - "description": "Use file name for lazy loaded chunks.", - "default": false - }, - "subresourceIntegrity": { - "type": "boolean", - "description": "Enables the use of subresource integrity validation.", - "default": false - }, - "serviceWorker": { - "type": "boolean", - "description": "Generates a service worker config for production builds.", - "default": false - }, - "ngswConfigPath": { - "type": "string", - "description": "Path to ngsw-config.json." - }, - "index": { - "description": "Configures the generation of the application's HTML index.", - "oneOf": [ - { - "type": "string", - "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path." - }, - { - "type": "object", - "description": "", - "properties": { - "input": { - "type": "string", - "minLength": 1, - "description": "The path of a file to use for the application's generated HTML index." - }, - "output": { - "type": "string", - "minLength": 1, - "default": "index.html", - "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path." - } - }, - "required": ["input"] - }, - { - "const": false, - "type": "boolean", - "description": "Does not generate an `index.html` file." - } - ] - }, - "statsJson": { - "type": "boolean", - "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.", - "default": false - }, - "budgets": { - "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.", - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of budget.", - "enum": [ - "all", - "allScript", - "any", - "anyScript", - "anyComponentStyle", - "bundle", - "initial" - ] - }, - "name": { - "type": "string", - "description": "The name of the bundle." - }, - "baseline": { - "type": "string", - "description": "The baseline size for comparison." - }, - "maximumWarning": { - "type": "string", - "description": "The maximum threshold for warning relative to the baseline." - }, - "maximumError": { - "type": "string", - "description": "The maximum threshold for error relative to the baseline." - }, - "minimumWarning": { - "type": "string", - "description": "The minimum threshold for warning relative to the baseline." - }, - "minimumError": { - "type": "string", - "description": "The minimum threshold for error relative to the baseline." - }, - "warning": { - "type": "string", - "description": "The threshold for warning relative to the baseline (min & max)." - }, - "error": { - "type": "string", - "description": "The threshold for error relative to the baseline (min & max)." - } - }, - "additionalProperties": false, - "required": ["type"] - }, - "default": [] - }, - "webWorkerTsConfig": { - "type": "string", - "description": "TypeScript configuration for Web Worker modules." - }, - "crossOrigin": { - "type": "string", - "description": "Define the crossorigin attribute setting of elements that provide CORS support.", - "default": "none", - "enum": ["none", "anonymous", "use-credentials"] - }, - "allowedCommonJsDependencies": { - "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - }, - "plugins": { - "description": "A list of ESBuild plugins. _Note: this is only supported in Angular versions >= 17.0.0_.", - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "The path to the plugin. Relative to the workspace root." - }, - "options": { - "type": "object", - "description": "The options to provide to the plugin.", - "properties": {}, - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": ["path"] - }, - { - "type": "string", - "description": "The path to the plugin. Relative to the workspace root." - } - ] - } - } - }, - "additionalProperties": false, - "required": ["outputPath", "index", "main", "tsConfig"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - }, - "fileReplacement": { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } - }, - "additionalProperties": false, - "required": ["replace", "with"] - }, - "budget": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of budget.", - "enum": [ - "all", - "allScript", - "any", - "anyScript", - "anyComponentStyle", - "bundle", - "initial" - ] - }, - "name": { - "type": "string", - "description": "The name of the bundle." - }, - "baseline": { - "type": "string", - "description": "The baseline size for comparison." - }, - "maximumWarning": { - "type": "string", - "description": "The maximum threshold for warning relative to the baseline." - }, - "maximumError": { - "type": "string", - "description": "The maximum threshold for error relative to the baseline." - }, - "minimumWarning": { - "type": "string", - "description": "The minimum threshold for warning relative to the baseline." - }, - "minimumError": { - "type": "string", - "description": "The minimum threshold for error relative to the baseline." - }, - "warning": { - "type": "string", - "description": "The threshold for warning relative to the baseline (min & max)." - }, - "error": { - "type": "string", - "description": "The threshold for error relative to the baseline (min & max)." - } - }, - "additionalProperties": false, - "required": ["type"] - } - }, - "presets": [] - }, - "description": "Builds your application with esbuild and adds support for incremental builds.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/browser-esbuild/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/delegate-build.json b/docs/generated/packages/angular/executors/delegate-build.json deleted file mode 100644 index 065b5deab5422..0000000000000 --- a/docs/generated/packages/angular/executors/delegate-build.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "delegate-build", - "implementation": "/packages/angular/src/executors/delegate-build/delegate-build.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for an executor which delegates a build.", - "description": "Delegates the build to a different target while supporting incremental builds.", - "cli": "nx", - "type": "object", - "properties": { - "buildTarget": { - "description": "Build target used for building the application after its dependencies have been built.", - "type": "string" - }, - "outputPath": { - "type": "string", - "description": "The full path for the output directory, relative to the workspace root.", - "x-completion-type": "directory" - }, - "tsConfig": { - "type": "string", - "description": "The full path for the TypeScript configuration file, relative to the workspace root.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json" - }, - "watch": { - "type": "boolean", - "description": "Whether to run a build when any file changes.", - "default": false - } - }, - "additionalProperties": false, - "required": ["buildTarget", "outputPath", "tsConfig"], - "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\nDelegate the build of the project to a different target.\n\n```json\n{\n \"prod-build\": {\n \"executor\": \"@nx/angular:delegate-build\",\n \"options\": {\n \"buildTarget\": \"app:build:production\",\n \"outputPath\": \"dist/apps/app/production\",\n \"tsConfig\": \"apps/app/tsconfig.json\",\n \"watch\": false\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Watch for build changes\" %}\nDelegate the build of the project to a different target.\n\n```json\n{\n \"prod-build\": {\n \"executor\": \"@nx/angular:delegate-build\",\n \"options\": {\n \"buildTarget\": \"app:build:production\",\n \"outputPath\": \"dist/apps/app/production\",\n \"tsConfig\": \"apps/app/tsconfig.json\",\n \"watch\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Delegates the build to a different target while supporting incremental builds.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/delegate-build/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/dev-server.json b/docs/generated/packages/angular/executors/dev-server.json deleted file mode 100644 index 57e71c318f662..0000000000000 --- a/docs/generated/packages/angular/executors/dev-server.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "name": "dev-server", - "implementation": "/packages/angular/src/builders/dev-server/dev-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Webpack Dev Server", - "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", - "examplesFile": "The `@nx/angular:dev-server` executor is very similar to the `@angular-devkit/build-angular:dev-server` builder provided by the Angular CLI. In addition to the features provided by the Angular CLI builder, the `@nx/angular:dev-server` executor also supports the following:\n\n- Best integration for `@nx/angular:webpack-browser`, `@nx/angular:browser-esbuild` and `@nx/angular:application`\n- Providing HTTP request middleware functions when the build target is using an esbuild-based executor\n- Incremental builds\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Using a custom Webpack configuration\" %}\n\nThis executor should be used along with `@nx/angular:webpack-browser` to serve an application using a custom Webpack configuration.\n\nAdd the `serve` target using the `@nx/angular:dev-server` executor, set the `build` target executor as `@nx/angular:webpack-browser` and set the `customWebpackConfig` option as shown below:\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[2,\"5-7\",\"10-20\"] %}\n\"build\": {\n \"executor\": \"@nx/angular:webpack-browser\",\n \"options\": {\n ...\n \"customWebpackConfig\": {\n \"path\": \"apps/my-app/webpack.config.js\"\n }\n }\n},\n\"serve\": {\n \"executor\": \"@nx/angular:dev-server\",\n \"configurations\": {\n \"production\": {\n \"buildTarget\": \"my-app:build:production\"\n },\n \"development\": {\n \"buildTarget\": \"my-app:build:development\"\n }\n },\n \"defaultConfiguration\": \"development\",\n}\n```\n\n```js {% fileName=\"apps/my-app/webpack.config.js\" %}\nmodule.exports = (config) => {\n // update the config with your custom configuration\n\n return config;\n};\n```\n\n{% /tab %}\n\n{% tab label=\"Providing HTTP request middleware function\" %}\n\n{% callout type=\"warning\" title=\"Overrides\" }\n\nAvailable for workspaces using Angular version 17.0.0 or greater and with `build` targets using an esbuild-based executor.\n\n{% /callout %}\n\nThe executor accepts an `esbuildMidleware` option that allows you to provide HTTP require middleware functions that will be used by the Vite development server.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[8] %}\n{\n ...\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/angular:dev-server\",\n \"options\": {\n ...\n \"esbuildMidleware\": [\"apps/my-app/hello-world.middleware.ts\"]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/hello-world.middleware.ts\" %}\nimport type { IncomingMessage, ServerResponse } from 'node:http';\n\nconst helloWorldMiddleware = (\n req: IncomingMessage,\n res: ServerResponse,\n next: (err?: unknown) => void\n) => {\n if (req.url === '/hello-world') {\n res.end('

Hello World!

');\n } else {\n next();\n }\n};\n\nexport default helloWorldMiddleware;\n```\n\n{% /tab %}\n", - "type": "object", - "presets": [ - { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } - ], - "properties": { - "browserTarget": { - "type": "string", - "description": "A browser builder target to serve in the format of `project:target[:configuration]`. Ignored if `buildTarget` is set.", - "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$", - "x-deprecated": "Use 'buildTarget' instead. It will be removed in Nx v19." - }, - "buildTarget": { - "type": "string", - "description": "A build builder target to serve in the format of `project:target[:configuration]`.", - "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$" - }, - "port": { - "type": "number", - "description": "Port to listen on.", - "default": 4200 - }, - "host": { - "type": "string", - "description": "Host to listen on.", - "default": "localhost" - }, - "proxyConfig": { - "type": "string", - "description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server." - }, - "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." - }, - "headers": { - "type": "object", - "description": "Custom HTTP headers to be added to all responses.", - "propertyNames": { "pattern": "^[-_A-Za-z0-9]+$" }, - "additionalProperties": { "type": "string" } - }, - "open": { - "type": "boolean", - "description": "Opens the url in default browser.", - "default": false, - "alias": "o" - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging." - }, - "liveReload": { - "type": "boolean", - "description": "Whether to reload the page on change, using live-reload.", - "default": true - }, - "publicHost": { - "type": "string", - "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies." - }, - "allowedHosts": { - "type": "array", - "description": "List of hosts that are allowed to access the dev server.", - "default": [], - "items": { "type": "string" } - }, - "servePath": { - "type": "string", - "description": "The pathname where the app will be served." - }, - "disableHostCheck": { - "type": "boolean", - "description": "Don't verify connected clients are part of allowed hosts.", - "default": false - }, - "hmr": { - "type": "boolean", - "description": "Enable hot module replacement.", - "default": false - }, - "watch": { - "type": "boolean", - "description": "Rebuild on change.", - "default": true - }, - "poll": { - "type": "number", - "description": "Enable and define the file watching poll time period in milliseconds." - }, - "forceEsbuild": { - "type": "boolean", - "description": "Force the development server to use the 'browser-esbuild' builder when building. This is a developer preview option for the esbuild-based build system. _Note: this is only supported in Angular versions >= 16.1.0_.", - "default": false - }, - "prebundle": { - "description": "Enable and control the Vite-based development server's prebundling capabilities. To enable prebundling, the Angular CLI cache must also be enabled. This option has no effect when using the 'browser' or other Webpack-based builders. _Note: this is only supported in Angular versions >= 17.2.0_.", - "oneOf": [ - { "type": "boolean" }, - { - "type": "object", - "properties": { - "exclude": { - "description": "List of package imports that should not be prebundled by the development server. The packages will be bundled into the application code itself.", - "type": "array", - "items": { "type": "string" } - } - }, - "additionalProperties": false, - "required": ["exclude"] - } - ] - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.", - "x-priority": "important" - }, - "esbuildMiddleware": { - "description": "A list of HTTP request middleware functions. _Note: this is only supported in Angular versions >= 17.0.0_.", - "type": "array", - "items": { - "type": "string", - "description": "The path to the middleware function. Relative to the workspace root." - } - } - }, - "additionalProperties": false, - "anyOf": [ - { "required": ["buildTarget"] }, - { "required": ["browserTarget"] } - ] - }, - "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/builders/dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/extract-i18n.json b/docs/generated/packages/angular/executors/extract-i18n.json deleted file mode 100644 index 3a607bbbfd126..0000000000000 --- a/docs/generated/packages/angular/executors/extract-i18n.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "extract-i18n", - "implementation": "/packages/angular/src/executors/extract-i18n/extract-i18n.impl.ts", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Nx extract-i18n Executor", - "description": "Extracts i18n messages from source code.", - "outputCapture": "direct-nodejs", - "type": "object", - "properties": { - "buildTarget": { - "type": "string", - "description": "A builder target to extract i18n messages in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.", - "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$" - }, - "format": { - "type": "string", - "description": "Output format for the generated file.", - "default": "xlf", - "enum": [ - "xmb", - "xlf", - "xlif", - "xliff", - "xlf2", - "xliff2", - "json", - "arb", - "legacy-migrate" - ] - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console.", - "default": true - }, - "outputPath": { - "type": "string", - "description": "Path where output will be placed." - }, - "outFile": { - "type": "string", - "description": "Name of the file to output." - } - }, - "additionalProperties": false, - "required": ["buildTarget"], - "presets": [] - }, - "description": "Extracts i18n messages from source code.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/extract-i18n/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/module-federation-dev-server.json b/docs/generated/packages/angular/executors/module-federation-dev-server.json deleted file mode 100644 index 202386064838b..0000000000000 --- a/docs/generated/packages/angular/executors/module-federation-dev-server.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "name": "module-federation-dev-server", - "implementation": "/packages/angular/src/executors/module-federation-dev-server/module-federation-dev-server.impl.ts", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Module Federation Dev Server", - "outputCapture": "direct-nodejs", - "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", - "type": "object", - "presets": [ - { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } - ], - "properties": { - "browserTarget": { - "type": "string", - "description": "A browser builder target to serve in the format of `project:target[:configuration]`.", - "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$", - "x-deprecated": "Use 'buildTarget' instead. It will be removed in Nx v19." - }, - "buildTarget": { - "type": "string", - "description": "A build builder target to serve in the format of `project:target[:configuration]`.", - "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$" - }, - "port": { - "type": "number", - "description": "Port to listen on.", - "default": 4200 - }, - "host": { - "type": "string", - "description": "Host to listen on.", - "default": "localhost" - }, - "proxyConfig": { - "type": "string", - "description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server." - }, - "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." - }, - "headers": { - "type": "object", - "description": "Custom HTTP headers to be added to all responses.", - "propertyNames": { "pattern": "^[-_A-Za-z0-9]+$" }, - "additionalProperties": { "type": "string" } - }, - "open": { - "type": "boolean", - "description": "Opens the url in default browser.", - "default": false, - "alias": "o" - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging." - }, - "liveReload": { - "type": "boolean", - "description": "Whether to reload the page on change, using live-reload.", - "default": true - }, - "publicHost": { - "type": "string", - "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies." - }, - "allowedHosts": { - "type": "array", - "description": "List of hosts that are allowed to access the dev server.", - "default": [], - "items": { "type": "string" } - }, - "servePath": { - "type": "string", - "description": "The pathname where the app will be served." - }, - "disableHostCheck": { - "type": "boolean", - "description": "Don't verify connected clients are part of allowed hosts.", - "default": false - }, - "hmr": { - "type": "boolean", - "description": "Enable hot module replacement.", - "default": false - }, - "watch": { - "type": "boolean", - "description": "Rebuild on change.", - "default": true - }, - "poll": { - "type": "number", - "description": "Enable and define the file watching poll time period in milliseconds." - }, - "devRemotes": { - "type": "array", - "items": { "type": "string" }, - "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 for when the `host` application is using a `remote` that does not live in the same workspace as the `host`." - }, - "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." - }, - "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." - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.", - "x-priority": "important" - } - }, - "additionalProperties": false, - "anyOf": [ - { "required": ["buildTarget"] }, - { "required": ["browserTarget"] } - ], - "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/angular: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/angular: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\": [\"remote1\", \"remote2\"]\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" - }, - "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/module-federation-dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/module-federation-dev-ssr.json b/docs/generated/packages/angular/executors/module-federation-dev-ssr.json deleted file mode 100644 index 28330f038d446..0000000000000 --- a/docs/generated/packages/angular/executors/module-federation-dev-ssr.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "module-federation-dev-ssr", - "implementation": "/packages/angular/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.ts", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Module Federation SSR Dev Server Target", - "description": "SSR Dev Server target options for Module Federation host applications.", - "type": "object", - "properties": { - "browserTarget": { - "type": "string", - "description": "Browser target to build.", - "pattern": ".+:.+(:.+)?" - }, - "serverTarget": { - "type": "string", - "description": "Server target to build.", - "pattern": ".+:.+(:.+)?" - }, - "host": { - "type": "string", - "description": "Host to listen on.", - "default": "localhost" - }, - "port": { - "type": "number", - "default": 4200, - "description": "Port to start the development server at. Default is 4200. Pass 0 to get a dynamically assigned port." - }, - "publicHost": { - "type": "string", - "description": "The URL that the browser client should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies." - }, - "open": { - "type": "boolean", - "description": "Opens the url in default browser.", - "default": false, - "alias": "o" - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console while building." - }, - "inspect": { - "type": "boolean", - "description": "Launch the development server in inspector mode and listen on address and port '127.0.0.1:9229'.", - "default": false - }, - "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." - }, - "proxyConfig": { - "type": "string", - "description": "Proxy configuration file." - }, - "devRemotes": { - "type": "array", - "items": { "type": "string" }, - "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." - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging.", - "default": false - }, - "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." - } - }, - "additionalProperties": false, - "required": ["browserTarget", "serverTarget"], - "presets": [] - }, - "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/builders/module-federation-dev-ssr/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/ng-packagr-lite.json b/docs/generated/packages/angular/executors/ng-packagr-lite.json deleted file mode 100644 index c449cab34914e..0000000000000 --- a/docs/generated/packages/angular/executors/ng-packagr-lite.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "ng-packagr-lite", - "implementation": "/packages/angular/src/executors/ng-packagr-lite/ng-packagr-lite.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "title": "ng-packagr Target", - "description": "Builds a library with support for incremental builds.\n\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nx/angular:package` executor but with some key differences:\n- For supported Angular versions lower than v16, it doesn't run `ngcc` automatically (`ngcc` is no longer available from Angular v16 onwards, for lower versions, it needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2022 bundles (ESM2020 for supported Angular versions lower than v16).", - "cli": "nx", - "type": "object", - "presets": [ - { - "name": "Buildable Library with Tailwind", - "keys": ["project", "tailwindConfig"] - }, - { - "name": "Updating Project Dependencies for Buildable Library", - "keys": ["project"] - } - ], - "properties": { - "project": { - "type": "string", - "description": "The file path for the ng-packagr configuration file, relative to the workspace root." - }, - "tsConfig": { - "type": "string", - "description": "The full path for the TypeScript configuration file, relative to the workspace root.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "watch": { - "type": "boolean", - "description": "Whether to run a build when any file changes.", - "default": false - }, - "tailwindConfig": { - "type": "string", - "description": "The full path for the Tailwind configuration file, relative to the workspace root. If not provided and a `tailwind.config.js` file exists in the project or workspace root, it will be used. Otherwise, Tailwind will not be configured." - } - }, - "additionalProperties": false, - "required": ["project"] - }, - "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/ng-packagr-lite/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/package.json b/docs/generated/packages/angular/executors/package.json deleted file mode 100644 index ec1861b1f4ac2..0000000000000 --- a/docs/generated/packages/angular/executors/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "package", - "implementation": "/packages/angular/src/executors/package/package.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "title": "ng-packagr Target", - "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\n\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", - "cli": "nx", - "type": "object", - "presets": [ - { - "name": "Publishable Library with Tailwind", - "keys": [ - "project", - "tailwindConfig" - ] - }, - { - "name": "Updating Project Dependencies for Publishable Library", - "keys": [ - "project" - ] - } - ], - "properties": { - "project": { - "type": "string", - "description": "The file path for the ng-packagr configuration file, relative to the workspace root." - }, - "tsConfig": { - "type": "string", - "description": "The full path for the TypeScript configuration file, relative to the workspace root.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "watch": { - "type": "boolean", - "description": "Whether to run a build when any file changes.", - "default": false - }, - "tailwindConfig": { - "type": "string", - "description": "The full path for the Tailwind configuration file, relative to the workspace root. If not provided and a `tailwind.config.js` file exists in the project or workspace root, it will be used. Otherwise, Tailwind will not be configured. _Note: starting with Angular v17, this option is no longer used and the configuration will be picked up if exists at the project or workspace root_.", - "x-completion-type": "file", - "x-completion-glob": "tailwind.config@(.js|.cjs|.mjs|.ts)" - } - }, - "additionalProperties": false, - "required": [ - "project" - ] - }, - "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/executors/package/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/webpack-browser.json b/docs/generated/packages/angular/executors/webpack-browser.json deleted file mode 100644 index a40c5755854c0..0000000000000 --- a/docs/generated/packages/angular/executors/webpack-browser.json +++ /dev/null @@ -1,698 +0,0 @@ -{ - "name": "webpack-browser", - "implementation": "/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Webpack Browser", - "description": "The webpack-browser executor is very similar to the standard browser builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", - "examplesFile": "##### Using a custom webpack configuration\n\nThe executor supports providing a path to a custom webpack configuration. This allows you to customize how your Angular application is built. It currently supports the following types of webpack configurations:\n\n- `object`\n- `Function`\n- `Promise`\n\nThe executor will merge the provided configuration with the webpack configuration that Angular Devkit uses. The merge order is:\n\n- Angular Devkit Configuration\n- Provided Configuration\n\nTo use a custom webpack configuration when building your Angular application, change the `build` target in your `project.json` to match the following:\n\n```typescript\n\"build\": {\n \"executor\": \"@nx/angular:webpack-browser\",\n \"options\": {\n ...\n \"customWebpackConfig\": {\n \"path\": \"apps/appName/webpack.config.js\"\n }\n }\n}\n```\n\n##### Incrementally Building your Application\n\nThe executor supports incrementally building your Angular application by building the workspace libraries it depends on _(that have been marked as buildable)_ and then building your application using the built source of the libraries.\n\nThis can improve build time as the building of the workspace libraries can be cached, meaning they only have to be rebuilt if they have changed.\n\n> Note: There may be some additional overhead in the linking of the built libraries' sources which may reduce the overall improvement in build time. Therefore this approach only benefits large applications and would likely have a negative impact on small and medium applications. \n> You can read more about when to use incremental builds [here](/concepts/more-concepts/incremental-builds#when-should-i-use-incremental-builds).\n\nTo allow your Angular application to take advantage of incremental building, change the `build` target in your `project.json` to match the following:\n\n```typescript\n\"build\": {\n \"executor\": \"@nx/angular:webpack-browser\",\n \"options\": {\n ...\n \"buildLibsFromSource\": false\n }\n}\n```\n", - "type": "object", - "presets": [ - { - "name": "Custom Webpack Configuration", - "keys": [ - "outputs", - "outputPath", - "index", - "main", - "polyfills", - "tsConfig", - "assets", - "styles", - "scripts", - "customWebpackConfig" - ] - } - ], - "properties": { - "assets": { - "type": "array", - "description": "List of static application assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "main": { - "type": "string", - "description": "The full path for the main entry point to the app, relative to the current workspace." - }, - "polyfills": { - "description": "Polyfills to be included in the build.", - "oneOf": [ - { - "type": "array", - "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.", - "items": { "type": "string", "uniqueItems": true }, - "default": [] - }, - { - "type": "string", - "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'." - } - ] - }, - "tsConfig": { - "type": "string", - "description": "The full path for the TypeScript configuration file, relative to the current workspace." - }, - "scripts": { - "description": "Global scripts to be included in the build.", - "type": "array", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "pattern": "\\.[cm]?jsx?$" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "pattern": "\\.[cm]?jsx?$" - } - ] - } - }, - "styles": { - "description": "Global styles to be included in the build.", - "type": "array", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "pattern": "\\.(?:css|scss|sass|less)$" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "pattern": "\\.(?:css|scss|sass|less)$" - } - ] - }, - "x-priority": "important" - }, - "inlineStyleLanguage": { - "description": "The stylesheet language to use for the application's inline component styles.", - "type": "string", - "default": "css", - "enum": ["css", "less", "sass", "scss"] - }, - "stylePreprocessorOptions": { - "description": "Options to pass to style preprocessors.", - "type": "object", - "properties": { - "includePaths": { - "description": "Paths to include. Paths will be resolved to project root.", - "type": "array", - "items": { "type": "string" }, - "default": [] - } - }, - "additionalProperties": false - }, - "optimization": { - "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", - "x-user-analytics": 16, - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Enables optimization of the scripts output.", - "default": true - }, - "styles": { - "description": "Enables optimization of the styles output.", - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "minify": { - "type": "boolean", - "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.", - "default": true - }, - "inlineCritical": { - "type": "boolean", - "description": "Extract and inline critical CSS definitions to improve first paint time.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "fonts": { - "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", - "default": true, - "oneOf": [ - { - "type": "object", - "properties": { - "inline": { - "type": "boolean", - "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "fileReplacements": { - "description": "Replace compilation source files with other compilation source files in the build.", - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "src": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "replaceWith": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["src", "replaceWith"] - }, - { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["replace", "with"] - } - ] - }, - "default": [] - }, - "outputPath": { - "type": "string", - "description": "The full path for the new output directory, relative to the current workspace." - }, - "resourcesOutputPath": { - "type": "string", - "description": "The path where style resources will be placed, relative to outputPath.", - "default": "" - }, - "aot": { - "type": "boolean", - "description": "Build using Ahead of Time compilation.", - "x-user-analytics": 13, - "default": true - }, - "sourceMap": { - "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", - "default": false, - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Output source maps for all scripts.", - "default": true - }, - "styles": { - "type": "boolean", - "description": "Output source maps for all styles.", - "default": true - }, - "hidden": { - "type": "boolean", - "description": "Output source maps used for error reporting tools.", - "default": false - }, - "vendor": { - "type": "boolean", - "description": "Resolve vendor packages source maps.", - "default": false - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "vendorChunk": { - "type": "boolean", - "description": "Generate a separate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.", - "default": false - }, - "commonChunk": { - "type": "boolean", - "description": "Generate a separate bundle containing code used across multiple bundles.", - "default": true - }, - "baseHref": { - "type": "string", - "description": "Base url for the application being built." - }, - "deployUrl": { - "type": "string", - "description": "URL where files will be deployed.", - "x-deprecated": "Use `baseHref` option, `APP_BASE_HREF` DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url." - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging.", - "default": false - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console while building.", - "default": true - }, - "i18nMissingTranslation": { - "type": "string", - "description": "How to handle missing translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "i18nDuplicateTranslation": { - "type": "string", - "description": "How to handle duplicate translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "localize": { - "description": "Translate the bundles in one or more locales.", - "oneOf": [ - { "type": "boolean", "description": "Translate all locales." }, - { - "type": "array", - "description": "List of locales ID's to translate.", - "minItems": 1, - "items": { - "type": "string", - "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" - } - } - ] - }, - "watch": { - "type": "boolean", - "description": "Run build when files change.", - "default": false - }, - "outputHashing": { - "type": "string", - "description": "Define the output filename cache-busting hashing mode.", - "default": "none", - "enum": ["none", "all", "media", "bundles"] - }, - "poll": { - "type": "number", - "description": "Enable and define the file watching poll time period in milliseconds." - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Delete the output path before building.", - "default": true - }, - "preserveSymlinks": { - "type": "boolean", - "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." - }, - "extractLicenses": { - "type": "boolean", - "description": "Extract all licenses in a separate file.", - "default": true - }, - "buildOptimizer": { - "type": "boolean", - "description": "Enables advanced build optimizations when using the 'aot' option.", - "default": true - }, - "namedChunks": { - "type": "boolean", - "description": "Use file name for lazy loaded chunks.", - "default": false - }, - "subresourceIntegrity": { - "type": "boolean", - "description": "Enables the use of subresource integrity validation.", - "default": false - }, - "serviceWorker": { - "type": "boolean", - "description": "Generates a service worker config for production builds.", - "default": false - }, - "ngswConfigPath": { - "type": "string", - "description": "Path to ngsw-config.json." - }, - "index": { - "description": "Configures the generation of the application's HTML index.", - "oneOf": [ - { - "type": "string", - "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path." - }, - { - "type": "object", - "description": "", - "properties": { - "input": { - "type": "string", - "minLength": 1, - "description": "The path of a file to use for the application's generated HTML index." - }, - "output": { - "type": "string", - "minLength": 1, - "default": "index.html", - "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path." - } - }, - "required": ["input"] - } - ] - }, - "statsJson": { - "type": "boolean", - "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.", - "default": false - }, - "budgets": { - "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.", - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of budget.", - "enum": [ - "all", - "allScript", - "any", - "anyScript", - "anyComponentStyle", - "bundle", - "initial" - ] - }, - "name": { - "type": "string", - "description": "The name of the bundle." - }, - "baseline": { - "type": "string", - "description": "The baseline size for comparison." - }, - "maximumWarning": { - "type": "string", - "description": "The maximum threshold for warning relative to the baseline." - }, - "maximumError": { - "type": "string", - "description": "The maximum threshold for error relative to the baseline." - }, - "minimumWarning": { - "type": "string", - "description": "The minimum threshold for warning relative to the baseline." - }, - "minimumError": { - "type": "string", - "description": "The minimum threshold for error relative to the baseline." - }, - "warning": { - "type": "string", - "description": "The threshold for warning relative to the baseline (min & max)." - }, - "error": { - "type": "string", - "description": "The threshold for error relative to the baseline (min & max)." - } - }, - "additionalProperties": false, - "required": ["type"] - }, - "default": [] - }, - "webWorkerTsConfig": { - "type": "string", - "description": "TypeScript configuration for Web Worker modules." - }, - "crossOrigin": { - "type": "string", - "description": "Define the crossorigin attribute setting of elements that provide CORS support.", - "default": "none", - "enum": ["none", "anonymous", "use-credentials"] - }, - "allowedCommonJsDependencies": { - "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "customWebpackConfig": { - "description": "Options for additional webpack configurations.", - "type": "object", - "properties": { - "path": { - "description": "Path to additional webpack configuration, relative to the workspace root.", - "type": "string" - } - }, - "x-priority": "important", - "additionalProperties": false - }, - "indexHtmlTransformer": { - "description": "Path to transformer function to transform the index.html", - "type": "string", - "alias": "indexFileTransformer" - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - } - }, - "additionalProperties": false, - "required": ["outputPath", "index", "main", "tsConfig"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - }, - "fileReplacement": { - "oneOf": [ - { - "type": "object", - "properties": { - "src": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "replaceWith": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["src", "replaceWith"] - }, - { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["replace", "with"] - } - ] - }, - "budget": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of budget.", - "enum": [ - "all", - "allScript", - "any", - "anyScript", - "anyComponentStyle", - "bundle", - "initial" - ] - }, - "name": { - "type": "string", - "description": "The name of the bundle." - }, - "baseline": { - "type": "string", - "description": "The baseline size for comparison." - }, - "maximumWarning": { - "type": "string", - "description": "The maximum threshold for warning relative to the baseline." - }, - "maximumError": { - "type": "string", - "description": "The maximum threshold for error relative to the baseline." - }, - "minimumWarning": { - "type": "string", - "description": "The minimum threshold for warning relative to the baseline." - }, - "minimumError": { - "type": "string", - "description": "The minimum threshold for error relative to the baseline." - }, - "warning": { - "type": "string", - "description": "The threshold for warning relative to the baseline (min & max)." - }, - "error": { - "type": "string", - "description": "The threshold for error relative to the baseline (min & max)." - } - }, - "additionalProperties": false, - "required": ["type"] - } - } - }, - "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/builders/webpack-browser/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/executors/webpack-server.json b/docs/generated/packages/angular/executors/webpack-server.json deleted file mode 100644 index 6456956baaef1..0000000000000 --- a/docs/generated/packages/angular/executors/webpack-server.json +++ /dev/null @@ -1,378 +0,0 @@ -{ - "name": "webpack-server", - "implementation": "/packages/angular/src/builders/webpack-server/webpack-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "http://json-schema.org/draft-07/schema", - "title": "Schema for Webpack Server", - "description": "The webpack-server executor is very similar to the standard server builder provided by the Angular Devkit. It is usually used in tandem with `@nx/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", - "type": "object", - "properties": { - "assets": { - "type": "array", - "description": "List of static application assets. _Note: only supported in Angular versions >= 15.1.0_", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "main": { - "type": "string", - "description": "The full path for the main entry point to the server app, relative to the current workspace." - }, - "tsConfig": { - "type": "string", - "default": "tsconfig.app.json", - "description": "The full path for the TypeScript configuration file, relative to the current workspace." - }, - "inlineStyleLanguage": { - "description": "The stylesheet language to use for the application's inline component styles.", - "type": "string", - "default": "css", - "enum": ["css", "less", "sass", "scss"] - }, - "stylePreprocessorOptions": { - "description": "Options to pass to style preprocessors", - "type": "object", - "properties": { - "includePaths": { - "description": "Paths to include. Paths will be resolved to project root.", - "type": "array", - "items": { "type": "string" }, - "default": [] - } - }, - "additionalProperties": false - }, - "optimization": { - "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking and dead-code elimination. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", - "default": true, - "x-user-analytics": "ep.ng_optimization", - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Enables optimization of the scripts output.", - "default": true - }, - "styles": { - "type": "boolean", - "description": "Enables optimization of the styles output.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "fileReplacements": { - "description": "Replace compilation source files with other compilation source files in the build.", - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "src": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "replaceWith": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["src", "replaceWith"] - }, - { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["replace", "with"] - } - ] - }, - "default": [] - }, - "outputPath": { - "type": "string", - "description": "The full path for the new output directory, relative to the current workspace.\n\nBy default, writes output to a folder named dist/ in the current project." - }, - "resourcesOutputPath": { - "type": "string", - "description": "The path where style resources will be placed, relative to outputPath." - }, - "sourceMap": { - "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", - "default": false, - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Output source maps for all scripts.", - "default": true - }, - "styles": { - "type": "boolean", - "description": "Output source maps for all styles.", - "default": true - }, - "hidden": { - "type": "boolean", - "description": "Output source maps used for error reporting tools.", - "default": false - }, - "vendor": { - "type": "boolean", - "description": "Resolve vendor packages source maps.", - "default": false - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "deployUrl": { - "type": "string", - "description": "URL where files will be deployed.", - "x-deprecated": "Use \"baseHref\" browser builder option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url." - }, - "vendorChunk": { - "type": "boolean", - "description": "Generate a separate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time. _Note: supported in Angular versions >= 15.1.0_", - "default": false - }, - "verbose": { - "type": "boolean", - "description": "Adds more details to output logging.", - "default": false - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console while building.", - "default": true - }, - "i18nMissingTranslation": { - "type": "string", - "description": "How to handle missing translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "i18nDuplicateTranslation": { - "type": "string", - "description": "How to handle duplicate translations for i18n.", - "enum": ["warning", "error", "ignore"], - "default": "warning" - }, - "localize": { - "description": "Translate the bundles in one or more locales.", - "oneOf": [ - { "type": "boolean", "description": "Translate all locales." }, - { - "type": "array", - "description": "List of locales ID's to translate.", - "minItems": 1, - "items": { - "type": "string", - "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" - } - } - ] - }, - "outputHashing": { - "type": "string", - "description": "Define the output filename cache-busting hashing mode.", - "default": "none", - "enum": ["none", "all", "media", "bundles"] - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Delete the output path before building.", - "default": true - }, - "preserveSymlinks": { - "type": "boolean", - "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." - }, - "extractLicenses": { - "type": "boolean", - "description": "Extract all licenses in a separate file, in the case of production builds only.", - "default": true - }, - "buildOptimizer": { - "type": "boolean", - "description": "Enables advanced build optimizations. _Note: only supported in Angular versions >= 16.0.0_.", - "default": true - }, - "namedChunks": { - "type": "boolean", - "description": "Use file name for lazy loaded chunks.", - "default": false - }, - "externalDependencies": { - "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "statsJson": { - "type": "boolean", - "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.", - "default": false - }, - "watch": { - "type": "boolean", - "description": "Run build when files change.", - "default": false - }, - "poll": { - "type": "number", - "description": "Enable and define the file watching poll time period in milliseconds." - }, - "customWebpackConfig": { - "description": "Options for additional webpack configurations.", - "type": "object", - "properties": { - "path": { - "description": "Path to additional webpack configuration, relative to the workspace root.", - "type": "string" - } - }, - "x-priority": "important", - "additionalProperties": false - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true, - "x-priority": "important" - } - }, - "additionalProperties": false, - "required": ["outputPath", "main", "tsConfig"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "followSymlinks": { - "type": "boolean", - "default": false, - "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." - }, - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - }, - "fileReplacement": { - "oneOf": [ - { - "type": "object", - "properties": { - "src": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "replaceWith": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["src", "replaceWith"] - }, - { - "type": "object", - "properties": { - "replace": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - }, - "with": { - "type": "string", - "pattern": "\\.(([cm]?j|t)sx?|json)$" - } - }, - "additionalProperties": false, - "required": ["replace", "with"] - } - ] - } - }, - "presets": [] - }, - "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/builders/webpack-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/angular/generators/add-linting.json b/docs/generated/packages/angular/generators/add-linting.json deleted file mode 100644 index 23e2fa808dec0..0000000000000 --- a/docs/generated/packages/angular/generators/add-linting.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "add-linting", - "factory": "./src/generators/add-linting/add-linting", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularAddLintingGenerator", - "title": "Add linting to an Angular project.", - "description": "Adds linting configuration to an Angular project.", - "cli": "nx", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:add-linting --prefix=cool --projectName=cool-lib --projectRoot=libs/cool-lib", - "description": "Adds ESLint with Angular-specific rules for an existing project named `cool-lib` with the [prefix](https://angular.io/guide/styleguide#style-02-07) `cool`" - } - ], - "properties": { - "prefix": { - "type": "string", - "format": "html-selector", - "description": "The prefix to apply to generated selectors.", - "x-priority": "important" - }, - "projectName": { - "type": "string", - "description": "The name of the project.", - "x-priority": "important" - }, - "projectRoot": { - "type": "string", - "description": "The path to the root of the selected project.", - "x-priority": "important" - }, - "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 - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": ["prefix", "projectName", "projectRoot"], - "presets": [] - }, - "description": "Adds linting configuration to an Angular project.", - "hidden": true, - "implementation": "/packages/angular/src/generators/add-linting/add-linting.ts", - "aliases": [], - "path": "/packages/angular/src/generators/add-linting/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/application.json b/docs/generated/packages/angular/generators/application.json deleted file mode 100644 index 6123da361f897..0000000000000 --- a/docs/generated/packages/angular/generators/application.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorNxApp", - "title": "Creates an Angular application.", - "description": "Creates an Angular application.", - "type": "object", - "cli": "nx", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "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 ]" - } - ] - } - }, - "routing": { - "type": "boolean", - "description": "Enable routing for the application.", - "default": true, - "x-priority": "important" - }, - "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.", - "default": "app", - "alias": "p" - }, - "skipTests": { - "description": "Skip creating spec files.", - "type": "boolean", - "default": false, - "alias": "S" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "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 - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "port": { - "type": "number", - "description": "The port at which the remote application should be served." - }, - "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 - }, - "standalone": { - "description": "Generate an application that is setup to use standalone components.", - "type": "boolean", - "default": true, - "x-priority": "important" - }, - "rootProject": { - "description": "Create an application at the root of the workspace.", - "type": "boolean", - "default": false, - "hidden": true, - "x-priority": "internal" - }, - "minimal": { - "description": "Generate a Angular app with a minimal setup.", - "type": "boolean", - "default": false - }, - "bundler": { - "description": "Bundler to use to build the application. It defaults to `esbuild` for Angular versions >= 17.0.0. Otherwise, it defaults to `webpack`. _Note: The `esbuild` bundler is only considered stable from Angular v17._", - "type": "string", - "enum": ["webpack", "esbuild"], - "x-prompt": "Which bundler do you want to use to build the application?", - "x-priority": "important" - }, - "ssr": { - "description": "Creates an application with Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) enabled.", - "type": "boolean", - "x-prompt": "Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)?", - "default": false - } - }, - "additionalProperties": false, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/angular:application my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Specify directory and style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/angular:app my-app --directory=my-dir/my-app --style=scss\n```\n\n{% /tab %}\n\n{% tab label=\"Single File Components application\" %}\n\nCreate an application with Single File Components (inline styles and inline templates):\n\n```bash\nnx g @nx/angular:app my-app --inlineStyle --inlineTemplate\n```\n\n{% /tab %}\n\n{% tab label=\"Set custom prefix and tags\" %}\n\nSet the prefix to apply to generated selectors and add tags to the application (used for linting).\n\n```bash\nnx g @nx/angular:app my-app --prefix=admin --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Creates an Angular application.", - "implementation": "/packages/angular/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/angular/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/component-cypress-spec.json b/docs/generated/packages/angular/generators/component-cypress-spec.json deleted file mode 100644 index dadc9cd563742..0000000000000 --- a/docs/generated/packages/angular/generators/component-cypress-spec.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "component-cypress-spec", - "factory": "./src/generators/component-cypress-spec/component-cypress-spec", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularComponentCypressSpecGenerator", - "type": "object", - "cli": "nx", - "description": "Creates a Cypress spec for a UI component that has a story.", - "properties": { - "projectName": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "examples": ["ui-samples"], - "x-priority": "important" - }, - "projectPath": { - "type": "string", - "description": "Path to the project.", - "examples": ["libs/ui-samples"], - "x-priority": "important" - }, - "componentName": { - "type": "string", - "description": "Class name of the component.", - "examples": ["AwesomeComponent"], - "x-priority": "important" - }, - "componentPath": { - "type": "string", - "description": "Relative path to the component file from the project root.", - "examples": ["awesome"], - "x-priority": "important" - }, - "componentFileName": { - "type": "string", - "description": "Component file name without the `.ts` extension.", - "examples": ["awesome.component"], - "x-priority": "important" - }, - "cypressProject": { - "type": "string", - "description": "The Cypress project to generate the stories under. By default, inferred from `projectName`." - }, - "specDirectory": { - "type": "string", - "description": "Directory where to place the generated spec file. By default matches the value of the `componentPath` option." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": [ - "projectName", - "projectPath", - "componentName", - "componentPath", - "componentFileName" - ], - "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\nCreate a cypress spec for a component that is set up with Storybook.\n\n```bash\nnx g @nx/angular:component-cypress-spec --componentName=MyButtonComponent --componentPath=libs/ui/src/lib/button/button.component.ts --componentFileName=button.component --projectName=ui --projectPath=libs/ui\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Creates a Cypress spec for a UI component that has a story.", - "hidden": true, - "implementation": "/packages/angular/src/generators/component-cypress-spec/component-cypress-spec.ts", - "aliases": [], - "path": "/packages/angular/src/generators/component-cypress-spec/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/component-story.json b/docs/generated/packages/angular/generators/component-story.json deleted file mode 100644 index 9332a52382030..0000000000000 --- a/docs/generated/packages/angular/generators/component-story.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "component-story", - "factory": "./src/generators/component-story/component-story", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularComponentStoryGenerator", - "type": "object", - "cli": "nx", - "description": "Creates a `stories.ts` file for an Angular component.", - "properties": { - "projectPath": { - "type": "string", - "description": "Path to the project.", - "examples": ["libs/ui-samples"], - "x-priority": "important" - }, - "componentName": { - "type": "string", - "description": "Class name of the component.", - "examples": ["AwesomeComponent"], - "x-priority": "important" - }, - "componentPath": { - "type": "string", - "description": "Relative path to the component file from the project root.", - "examples": ["awesome"], - "x-priority": "important" - }, - "componentFileName": { - "type": "string", - "description": "Component file name without the `.ts` extension.", - "examples": ["awesome.component"], - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "default": true - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": [ - "projectPath", - "componentName", - "componentPath", - "componentFileName" - ], - "presets": [] - }, - "description": "Creates a stories.ts file for a component.", - "hidden": true, - "implementation": "/packages/angular/src/generators/component-story/component-story.ts", - "aliases": [], - "path": "/packages/angular/src/generators/component-story/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/component-test.json b/docs/generated/packages/angular/generators/component-test.json deleted file mode 100644 index 7a3a016ed9c0e..0000000000000 --- a/docs/generated/packages/angular/generators/component-test.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "component-test", - "factory": "./src/generators/component-test/component-test", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularComponentTestGenerator", - "type": "object", - "cli": "nx", - "description": "Create a `*.cy.ts` file for Cypress component testing for an Angular component.", - "properties": { - "project": { - "type": "string", - "description": "The name of the project where the component is located.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-prompt": "What project is the component located in?", - "x-priority": "important" - }, - "componentName": { - "type": "string", - "description": "Class name of the component to create a test for.", - "examples": ["MyFancyButtonComponent"], - "x-prompt": "What is the class name of the component to create a test for?", - "x-priority": "important" - }, - "componentDir": { - "type": "string", - "description": "Relative path to the folder that contains the component from the project root.", - "examples": ["src/lib/my-fancy-button"], - "x-prompt": "What is the path to the component directory from the project root?", - "x-priority": "important" - }, - "componentFileName": { - "type": "string", - "description": "File name that contains the component without the `.ts` extension.", - "examples": ["my-fancy-button.component"], - "x-prompt": "What is the file name that contains the component?", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": [ - "project", - "componentName", - "componentDir", - "componentFileName" - ], - "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nAngular component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you're wanting to create Cypress tests for a Storybook story, then check out the [component-cypress-spec generator docs](/packages/angular/generators/component-cypress-spec)\n\nIf you're wanting to create Storybook stories for a component, then check out the [stories generator docs](/packages/angular/generators/stories) or [component-story generator docs](/packages/angular/generators/component-cypress-spec)\n{% /callout %}\n\nThis generator is used to create a Cypress component test file for a given Angular component.\n\n```shell\nnx g @nx/angular:component-test --project=my-cool-angular-project --componentName=CoolBtnComponent --componentDir=src/cool-btn --componentFileName=cool-btn.component\n```\n\nTest file are generated with the `.cy.ts` suffix. this is to prevent colliding with any existing `.spec.` files contained in the project.\n\nIt's currently expected the generated `.cy.ts` file will live side by side with the component. It is also assumed the project is already setup for component testing. If it isn't, then you can run the [cypress-component-project generator](/packages/angular/generators/cypress-component-configuration) to set up the project for component testing.\n", - "presets": [] - }, - "description": "Creates a cypress component test file for a component.", - "implementation": "/packages/angular/src/generators/component-test/component-test.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/component-test/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/component.json b/docs/generated/packages/angular/generators/component.json deleted file mode 100644 index fd3f9f376d951..0000000000000 --- a/docs/generated/packages/angular/generators/component.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "name": "component", - "factory": "./src/generators/component/component#componentGeneratorInternal", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "SchematicsAngularComponent", - "title": "Angular Component Schema", - "cli": "nx", - "type": "object", - "description": "Creates a new Angular component.", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir", "path"], - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "prefix": { - "type": "string", - "description": "The prefix to apply to the generated component selector.", - "alias": "p" - }, - "displayBlock": { - "description": "Specifies if the style will contain `:host { display: block; }`.", - "type": "boolean", - "default": false, - "alias": "b" - }, - "inlineStyle": { - "description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.", - "type": "boolean", - "default": false, - "alias": "s" - }, - "inlineTemplate": { - "description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.", - "type": "boolean", - "default": false, - "alias": "t" - }, - "standalone": { - "description": "Whether the generated component is standalone.", - "type": "boolean", - "default": true, - "x-priority": "important" - }, - "viewEncapsulation": { - "description": "The view encapsulation strategy to use in the new component.", - "enum": ["Emulated", "None", "ShadowDom"], - "type": "string", - "alias": "v" - }, - "changeDetection": { - "description": "The change detection strategy to use in the new component.", - "enum": ["Default", "OnPush"], - "type": "string", - "default": "Default", - "alias": "c" - }, - "module": { - "type": "string", - "description": "The filename or path to the NgModule that will declare this component.", - "alias": "m" - }, - "style": { - "description": "The file extension or preprocessor to use for style files, or `none` to skip generating the style file.", - "type": "string", - "default": "css", - "enum": ["css", "scss", "sass", "less", "none"] - }, - "skipTests": { - "type": "boolean", - "description": "Do not create `spec.ts` test files for the new component.", - "default": false - }, - "flat": { - "type": "boolean", - "description": "Create the new files at the top level of the current project.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "skipImport": { - "type": "boolean", - "description": "Do not import this component into the owning NgModule.", - "default": false - }, - "selector": { - "type": "string", - "format": "html-selector", - "description": "The HTML selector to use for this component." - }, - "skipSelector": { - "type": "boolean", - "default": false, - "description": "Specifies if the component should have a selector or not." - }, - "type": { - "type": "string", - "description": "Adds a developer-defined type to the filename, in the format `name.type.ts`.", - "default": "component" - }, - "export": { - "type": "boolean", - "description": "Specifies if the component should be exported in the declaring `NgModule`. Additionally, if the project is a library, the component will be exported from the project's entry point (normally `index.ts`) if the module it belongs to is also exported or if the component is standalone.", - "default": false, - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Component\" %}\n\nCreate a component named `my-component`:\n\n```bash\nnx g @nx/angular:component my-component\n```\n\n{% /tab %}\n\n{% tab label=\"Single File Component\" %}\n\nCreate a component named `my-component` with inline styles and inline template:\n\n```bash\nnx g @nx/angular:component my-component --inlineStyle --inlineTemplate\n```\n\n{% /tab %}\n\n{% tab label=\"Component with OnPush Change Detection Strategy\" %}\n\nCreate a component named `my-component` with OnPush Change Detection Strategy:\n\n```bash\nnx g @nx/angular:component my-component --changeDetection=OnPush\n```\n\n{% /tab %}\n", - "presets": [] - }, - "aliases": ["c"], - "description": "Generate an Angular Component.", - "implementation": "/packages/angular/src/generators/component/component#componentGeneratorInternal.ts", - "hidden": false, - "path": "/packages/angular/src/generators/component/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/convert-to-application-executor.json b/docs/generated/packages/angular/generators/convert-to-application-executor.json deleted file mode 100644 index f394734b7eb98..0000000000000 --- a/docs/generated/packages/angular/generators/convert-to-application-executor.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "convert-to-application-executor", - "factory": "./src/generators/convert-to-application-executor/convert-to-application-executor", - "schema": { - "$schema": "http://json-schema.org/schema", - "$id": "NxAngularConvertToApplicationExecutorGenerator", - "cli": "nx", - "title": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", - "description": "Converts a project or all projects using one of the `@angular-devkit/build-angular:browser`, `@angular-devkit/build-angular:browser-esbuild`, `@nx/angular:browser` and `@nx/angular:browser-esbuild` executors to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. If the converted target is using one of the `@nx/angular` executors, the `@nx/angular:application` executor will be used. Otherwise, the `@angular-devkit/build-angular:application` builder will be used.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "Name of the Angular application project to convert. It has to contain a target using one of the `@angular-devkit/build-angular:browser`, `@angular-devkit/build-angular:browser-esbuild`, `@nx/angular:browser` and `@nx/angular:browser-esbuild` executors. If not specified, all projects with such targets will be converted.", - "$default": { "$source": "argv", "index": 0 }, - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "presets": [] - }, - "description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", - "implementation": "/packages/angular/src/generators/convert-to-application-executor/convert-to-application-executor.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/convert-to-application-executor/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/convert-to-with-mf.json b/docs/generated/packages/angular/generators/convert-to-with-mf.json deleted file mode 100644 index 0c2375af875f6..0000000000000 --- a/docs/generated/packages/angular/generators/convert-to-with-mf.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "convert-to-with-mf", - "factory": "./src/generators/convert-to-with-mf/convert-to-with-mf", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "ConvertToWithMFGenerator", - "cli": "nx", - "title": "Convert to withModuleFederation Generator Options Schema", - "type": "object", - "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}.", - "additionalProperties": false, - "examples": [ - { - "command": "nx g @nx/angular:convert-to-with-mf --project mf-app", - "description": "Convert a Module Federation Project using legacy webpack config to use the `withModuleFederation` helper." - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the micro frontend project to migrate.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What micro frontend project would you like to migrate?", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "presets": [] - }, - "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}", - "implementation": "/packages/angular/src/generators/convert-to-with-mf/convert-to-with-mf.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/convert-to-with-mf/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/cypress-component-configuration.json b/docs/generated/packages/angular/generators/cypress-component-configuration.json deleted file mode 100644 index 581d200181ac4..0000000000000 --- a/docs/generated/packages/angular/generators/cypress-component-configuration.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "cypress-component-configuration", - "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularCypressComponentConfigurationGenerator", - "type": "object", - "cli": "nx", - "title": "Add Cypress component testing", - "description": "Add a Cypress component testing configuration to an existing project. Cypress v10.7.0 or higher is required.", - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add cypress component testing configuration to", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-prompt": "What project should we add Cypress component testing to?", - "x-priority": "important" - }, - "generateTests": { - "type": "boolean", - "description": "Generate default component tests for existing components in the project", - "x-prompt": "Automatically generate tests for components declared in this project?", - "default": false - }, - "buildTarget": { - "type": "string", - "description": "A build target used to configure Cypress component testing in the format of `project:target[:configuration]`. The build target should be an angular app. If not provided we will try to infer it from your projects usage.", - "pattern": "^[^:\\s]+:[^:\\s]+(:\\S+)?$", - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nAngular component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you want to test components via Storybook with Cypress, then check out the [storybook-configuration generator docs](/nx-api/angular/generators/storybook-configuration). However, this functionality is deprecated, and will be removed on Nx version 18.\n{% /callout %}\n\nThis generator is designed to get your Angular project up and running with Cypress Component Testing.\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project\n```\n\nRunning this generator, adds the required files to the specified project with a preconfigured `cypress.config.ts` designed for Nx workspaces.\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/angular/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename),\n});\n```\n\nHere is an example on how to add custom options to the configuration\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/angular/plugins/component-testing';\n\nexport default defineConfig({\n component: {\n ...nxComponentTestingPreset(__filename),\n // extra options here\n },\n});\n```\n\n## Specifying a Build Target\n\nComponent testing requires a _build target_ to correctly run the component test dev server. This option can be manually specified with `--build-target=some-angular-app:build`, but Nx will infer this usage from the [project graph](/concepts/mental-model#the-project-graph) if one isn't provided.\n\nFor Angular projects, the build target needs to be using the `@nx/angular:webpack-browser` or\n`@angular-devkit/build-angular:browser` executor.\nThe generator will throw an error if a build target can't be found and suggest passing one in manually.\n\nLetting Nx infer the build target by default\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project\n```\n\nManually specifying the build target\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project --build-target:some-angular-app:build --generate-tests\n```\n\n{% callout type=\"note\" title=\"Build Target with Configuration\" %}\nIf you're wanting to use a build target with a specific configuration. i.e. `my-app:build:production`,\nthen manually providing `--build-target=my-app:build:production` is the best way to do that.\n{% /callout %}\n\n## Auto Generating Tests\n\nYou can optionally use the `--generate-tests` flag to generate a test file for each component in your project.\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project --generate-tests\n```\n\n## Running Component Tests\n\nA new `component-test` target will be added to the specified project to run your component tests.\n\n```shell\nnx g component-test my-cool-angular-project\n```\n\nHere is an example of the project configuration that is generated. The `--build-target` option is added as the `devServerTarget` which can be changed as needed.\n\n```json {% fileName=\"project.json\" %}\n{\n \"targets\" {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"/cypress.config.ts\",\n \"testingType\": \"component\",\n \"devServerTarget\": \"some-angular-app:build\",\n \"skipServe\": true\n }\n }\n }\n}\n```\n\n## What is bundled\n\nWhen the project being tested is a dependent of the specified `--build-target`, then **assets, scripts, and styles** are applied to the component being tested. You can determine if the project is dependent by using the [project graph](/features/explore-graph). If there is no link between the two projects, then the **assets, scripts, and styles** won't be included in the build; therefore, they will not be applied to the component. To have a link between projects, you can import from the project being tested into the specified `--build-target` project, or set the `--build-target` project to [implicitly depend](/reference/project-configuration#implicitdependencies) on the project being tested.\n\nNx also supports [React component testing](/packages/angular/generators/cypress-component-configuration).\n", - "presets": [] - }, - "description": "Setup Cypress component testing for a project.", - "implementation": "/packages/angular/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/cypress-component-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/directive.json b/docs/generated/packages/angular/generators/directive.json deleted file mode 100644 index 234d9330de356..0000000000000 --- a/docs/generated/packages/angular/generators/directive.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "directive", - "factory": "./src/generators/directive/directive", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "GeneratorAngularDirective", - "cli": "nx", - "title": "Nx Angular Directive Options Schema", - "type": "object", - "description": "Creates a new Angular directive.", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The name of the new directive.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the directive?" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the directive file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir", "path"], - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the directive in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "prefix": { - "type": "string", - "description": "A prefix to apply to generated selectors.", - "alias": "p", - "oneOf": [ - { "maxLength": 0 }, - { "minLength": 1, "format": "html-selector" } - ] - }, - "skipTests": { - "type": "boolean", - "description": "Do not create \"spec.ts\" test files for the new class.", - "default": false - }, - "skipImport": { - "type": "boolean", - "description": "Do not import this directive into the owning NgModule.", - "default": false - }, - "selector": { - "type": "string", - "format": "html-selector", - "description": "The HTML selector to use for this directive." - }, - "standalone": { - "description": "Whether the generated directive is standalone.", - "type": "boolean", - "default": true - }, - "flat": { - "type": "boolean", - "description": "When true (the default), creates the new files at the top level of the current project.", - "default": true, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "module": { - "type": "string", - "description": "The filename of the declaring NgModule.", - "alias": "m" - }, - "export": { - "type": "boolean", - "default": false, - "description": "The declaring NgModule exports this directive." - }, - "skipFormat": { - "type": "boolean", - "default": false, - "description": "Skip formatting of files." - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["d"], - "description": "Generate an Angular directive.", - "implementation": "/packages/angular/src/generators/directive/directive.ts", - "hidden": false, - "path": "/packages/angular/src/generators/directive/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/federate-module.json b/docs/generated/packages/angular/generators/federate-module.json deleted file mode 100644 index 73e1c917dc77a..0000000000000 --- a/docs/generated/packages/angular/generators/federate-module.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "federate-module", - "factory": "./src/generators/federate-module/federate-module", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactFederateModule", - "title": "Federate Module", - "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", - "examples": [ - { - "command": "nx g federate-module MyModule --path=./src/component/my-cmp.ts --remote=my-remote-app --remoteDirectory=apps/my-remote-app", - "description": "Create a federated module from my-remote-app, that exposes my-cmp from ./src/component/my-cmp.ts as MyModule." - } - ], - "type": "object", - "properties": { - "path": { - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "description": "The path to locate the federated module.", - "x-prompt": "What is the path to the module to be federated?" - }, - "name": { - "description": "The name of the module.", - "type": "string", - "x-prompt": "What name would you like to use for the module?", - "pattern": "^[a-zA-Z][^:]*$", - "x-priority": "important" - }, - "remote": { - "type": "string", - "description": "The name of the remote.", - "x-prompt": "What is/should the remote be named?" - }, - "remoteDirectory": { - "description": "The directory of the new remote application if one needs to be created.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files for the remote if one needs to be created.", - "type": "string", - "default": "css", - "enum": ["css", "scss", "sass", "less"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests of the remote if it needs to be created.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "none"], - "description": "Test runner to use for end to end (e2e) tests of the remote if it needs to be created.", - "default": "cypress" - }, - "standalone": { - "description": "Whether to generate the remote application with standalone components if it needs to be created.", - "type": "boolean", - "default": true - }, - "host": { - "type": "string", - "description": "The host / shell application for this remote." - } - }, - "required": ["name", "path", "remote"], - "additionalProperties": false, - "presets": [] - }, - "x-type": "application", - "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", - "implementation": "/packages/angular/src/generators/federate-module/federate-module.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/federate-module/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/host.json b/docs/generated/packages/angular/generators/host.json deleted file mode 100644 index d08cd5d8894ec..0000000000000 --- a/docs/generated/packages/angular/generators/host.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "name": "host", - "factory": "./src/generators/host/host#hostInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxMFHost", - "cli": "nx", - "title": "Nx Module Federation Host Application", - "description": "Create an Angular 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 remote application to this application's configuration" - } - ], - "properties": { - "name": { - "type": "string", - "description": "The name to give to the host Angular application.", - "$default": { "$source": "argv", "index": 0 }, - "pattern": "^[a-zA-Z][^:]*$" - }, - "remotes": { - "type": "array", - "description": "The names of the remote applications to add to the host.", - "x-priority": "important" - }, - "dynamic": { - "type": "boolean", - "description": "Should the host application use dynamic federation?", - "default": false - }, - "directory": { - "description": "The directory of the new application.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "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", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "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 - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "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 host application that uses standalone components.", - "default": true - }, - "ssr": { - "description": "Whether to configure SSR for the host application", - "type": "boolean", - "default": false, - "x-priority": "important" - }, - "typescriptConfiguration": { - "type": "boolean", - "description": "Whether the module federation configuration and webpack configuration files should use TS.", - "default": true - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "x-type": "application", - "description": "Generate a Host Angular Module Federation Application.", - "implementation": "/packages/angular/src/generators/host/host#hostInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/host/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/init.json b/docs/generated/packages/angular/generators/init.json deleted file mode 100644 index 907b02eae182b..0000000000000 --- a/docs/generated/packages/angular/generators/init.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "SchematicsAngularModuleInit", - "cli": "nx", - "title": "Init Angular Plugin", - "description": "Initializes the `@nx/angular` plugin. NOTE: Does not work in the `--dry-run` mode.", - "type": "object", - "properties": { - "skipInstall": { - "type": "boolean", - "description": "Skip installing after adding `@nx/workspace`.", - "default": false, - "x-priority": "internal" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "presets": [] - }, - "description": "Initializes the `@nrwl/angular` plugin.", - "hidden": true, - "implementation": "/packages/angular/src/generators/init/init.ts", - "aliases": [], - "path": "/packages/angular/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/library-secondary-entry-point.json b/docs/generated/packages/angular/generators/library-secondary-entry-point.json deleted file mode 100644 index 7160908feb00e..0000000000000 --- a/docs/generated/packages/angular/generators/library-secondary-entry-point.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "library-secondary-entry-point", - "factory": "./src/generators/library-secondary-entry-point/library-secondary-entry-point", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularLibrarySecondaryEntryPoint", - "title": "Creates a secondary entry point for a library", - "description": "Creates a secondary entry point for an Angular publishable library.", - "type": "object", - "cli": "nx", - "properties": { - "name": { - "type": "string", - "description": "The name of the secondary entry point.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the secondary entry point?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*(?:\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*)+|^[a-zA-Z][^:]*)$", - "x-priority": "important" - }, - "library": { - "type": "string", - "description": "The name of the library to create the secondary entry point for.", - "x-prompt": "What library would you like to create the secondary entry point for?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", - "x-dropdown": "projects", - "x-priority": "important" - }, - "skipModule": { - "type": "boolean", - "description": "Skip generating a module for the secondary entry point.", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": ["name", "library"], - "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\nCreate a secondary entrypoint named `button` in the `ui` library.\n\n```bash\nnx g @nx/angular:library-secondary-entry-point --library=ui --name=button\n```\n\n{% /tab %}\n\n{% tab label=\"Skip generating module\" %}\nCreate a secondary entrypoint named `button` in the `ui` library but skip creating an NgModule.\n\n```bash\nnx g @nx/angular:library-secondary-entry-point --library=ui --name=button --skipModule\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["secondary-entry-point", "entry-point"], - "description": "Creates a secondary entry point for an Angular publishable library.", - "implementation": "/packages/angular/src/generators/library-secondary-entry-point/library-secondary-entry-point.ts", - "hidden": false, - "path": "/packages/angular/src/generators/library-secondary-entry-point/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/library.json b/docs/generated/packages/angular/generators/library.json deleted file mode 100644 index 5a138291d4a84..0000000000000 --- a/docs/generated/packages/angular/generators/library.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorAngularLibrary", - "title": "Create a library", - "description": "Creates an Angular library.", - "type": "object", - "cli": "nx", - "properties": { - "name": { - "type": "string", - "description": "The name of the library.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the library is placed.", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "publishable": { - "type": "boolean", - "default": false, - "description": "Generate a publishable library.", - "x-priority": "important" - }, - "buildable": { - "type": "boolean", - "default": false, - "description": "Generate a buildable library.", - "x-priority": "important" - }, - "prefix": { - "type": "string", - "format": "html-selector", - "description": "The prefix to apply to generated selectors.", - "alias": "p" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "simpleName": { - "description": "Don't include the directory in the name of the module or standalone component entry of the library.", - "type": "boolean", - "default": false - }, - "addModuleSpec": { - "description": "Add a module spec file.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update `tsconfig.json` for development experience." - }, - "routing": { - "type": "boolean", - "default": false, - "description": "Add router configuration. See `lazy` for more information.", - "x-priority": "important" - }, - "lazy": { - "type": "boolean", - "default": false, - "description": "Add `RouterModule.forChild` when set to true, and a simple array of routes when set to false.", - "x-priority": "important" - }, - "parent": { - "type": "string", - "description": "Path to the parent route configuration using `loadChildren` or `children`, depending on what `lazy` is set to.", - "x-priority": "important" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting)." - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`. Must be a valid npm name." - }, - "strict": { - "type": "boolean", - "description": "Create a library with stricter type checking and build optimization options.", - "default": true - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "compilationMode": { - "description": "Specifies the compilation mode to use. If not specified, it will default to `partial` for publishable libraries and to `full` for buildable libraries. The `full` value can not be used for publishable libraries.", - "type": "string", - "enum": ["full", "partial"] - }, - "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. It can only be used with buildable and publishable libraries. Non-buildable libraries will use the application's Tailwind configuration.", - "default": false - }, - "skipModule": { - "type": "boolean", - "description": "Whether to skip the creation of a default module when generating the library.", - "default": false - }, - "standalone": { - "type": "boolean", - "description": "Generate a library that uses a standalone component instead of a module as the entry point.", - "default": true - }, - "displayBlock": { - "description": "Specifies if the component generated style will contain `:host { display: block; }`. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "type": "boolean", - "default": false, - "alias": "b" - }, - "inlineStyle": { - "description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "type": "boolean", - "default": false, - "alias": "s" - }, - "inlineTemplate": { - "description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "type": "boolean", - "default": false, - "alias": "t" - }, - "viewEncapsulation": { - "description": "The view encapsulation strategy to use in the new component. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "enum": ["Emulated", "None", "ShadowDom"], - "type": "string", - "alias": "v" - }, - "changeDetection": { - "description": "The change detection strategy to use in the new component. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "enum": ["Default", "OnPush"], - "type": "string", - "default": "Default", - "alias": "c" - }, - "style": { - "description": "The file extension or preprocessor to use for style files, or `none` to skip generating the style file. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "type": "string", - "default": "css", - "enum": ["css", "scss", "sass", "less", "none"] - }, - "skipTests": { - "type": "boolean", - "description": "Do not create `spec.ts` test files for the new component. Disclaimer: This option is only valid when `--standalone` is set to `true`.", - "default": false - }, - "selector": { - "type": "string", - "format": "html-selector", - "description": "The HTML selector to use for this component. Disclaimer: This option is only valid when `--standalone` is set to `true`." - }, - "skipSelector": { - "type": "boolean", - "default": false, - "description": "Specifies if the component should have a selector or not. Disclaimer: This option is only valid when `--standalone` is set to `true`." - }, - "flat": { - "type": "boolean", - "default": false, - "description": "Ensure the generated standalone component is not placed in a subdirectory. Disclaimer: This option is only valid when `--standalone` is set to `true`." - } - }, - "additionalProperties": false, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Library\" %}\n\nCreates the `my-ui-lib` library with an `ui` tag:\n\n```bash\nnx g @nx/angular:library my-ui-lib --tags=ui\n```\n\n{% /tab %}\n\n{% tab label=\"Publishable Library\" %}\n\nCreates the `my-lib` library that can be built producing an output following the Angular Package Format (APF) to be distributed as an NPM package:\n\n```bash\nnx g @nx/angular:library my-lib --publishable --import-path=@my-org/my-lib\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable Library\" %}\n\nCreates the `my-lib` library with support for incremental builds:\n\n```bash\nnx g @nx/angular:library my-lib --buildable\n```\n\n{% /tab %}\n\n{% tab label=\"Nested Folder & Import\"%}\nCreates the `my-lib` library in the `nested` directory and sets the import path to `@myorg/nested/my-lib`:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=nested`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/angular:library --directory=libs/nested/my-lib --importPath=@myorg/nested/my-lib my-lib\n```\n\n{% /tab %}\n", - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Creates an Angular library.", - "implementation": "/packages/angular/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/angular/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/move.json b/docs/generated/packages/angular/generators/move.json deleted file mode 100644 index 73c57a3b8566e..0000000000000 --- a/docs/generated/packages/angular/generators/move.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "move", - "factory": "./src/generators/move/move#angularMoveGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularMove", - "cli": "nx", - "title": "Nx Angular Move", - "description": "Move an Angular project to another folder in the workspace.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:move --project my-feature-lib --destination shared/my-feature-lib", - "description": "Move libs/my-feature-lib to libs/shared/my-feature-lib." - } - ], - "properties": { - "projectName": { - "type": "string", - "alias": "project", - "description": "The name of the Angular project to move.", - "x-dropdown": "projects", - "x-priority": "important" - }, - "newProjectName": { - "type": "string", - "alias": "project", - "description": "The new name of the project after the move.", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", - "x-priority": "important" - }, - "destination": { - "type": "string", - "description": "The folder to move the Angular project into.", - "$default": { "$source": "argv", "index": 0 }, - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the new project name and destination as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "importPath": { - "type": "string", - "description": "The new import path to use in the `tsconfig.base.json`." - }, - "updateImportPath": { - "type": "boolean", - "description": "Update the import path to reflect the new location.", - "default": true - }, - "skipFormat": { - "type": "boolean", - "aliases": ["skip-format"], - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["projectName", "destination"], - "presets": [] - }, - "aliases": ["mv"], - "description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.", - "x-deprecated": "Use the `@nx/workspace:move` generator instead. This generator will be removed in Nx v19.", - "implementation": "/packages/angular/src/generators/move/move#angularMoveGeneratorInternal.ts", - "hidden": false, - "path": "/packages/angular/src/generators/move/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/ng-add.json b/docs/generated/packages/angular/generators/ng-add.json deleted file mode 100644 index 51763939ddb6f..0000000000000 --- a/docs/generated/packages/angular/generators/ng-add.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "ng-add", - "factory": "./src/generators/ng-add/ng-add", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularNgAddGenerator", - "title": "Angular plugin initialization", - "cli": "nx", - "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace. NOTE: Does not work in the `--dry-run` mode.", - "type": "object", - "properties": { - "defaultBase": { - "type": "string", - "description": "Default base branch for affected. NOTE: only used if running the generator in an Angular CLI workspace.", - "x-priority": "important" - }, - "skipInstall": { - "type": "boolean", - "description": "Skip installing added packages.", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["karma", "jest", "none"], - "description": "Test runner to use for unit tests. NOTE: only used if running the generator in an Nx workspace.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["protractor", "cypress", "none"], - "description": "Test runner to use for end to end (e2e) tests. NOTE: only used if running the generator in an Nx workspace.", - "default": "cypress" - }, - "skipFormat": { - "description": "Skip formatting files. NOTE: only used if running the generator in an Nx workspace.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "linter": { - "description": "The tool to use for running lint checks. NOTE: only used if running the generator in an Nx workspace.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "style": { - "description": "The file extension to be used for style files. NOTE: only used if running the generator in an Nx workspace.", - "type": "string", - "default": "css", - "enum": ["css", "scss", "sass", "less"] - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`. NOTE: only used if running the generator in an Nx workspace.", - "x-priority": "internal" - }, - "skipPostInstall": { - "type": "boolean", - "default": false, - "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`. NOTE: only used if running the generator in an Nx workspace.", - "x-priority": "internal" - } - }, - "additionalProperties": false, - "examplesFile": "## Information\n\nThis generator is usually used as part of the process of migrating from an Angular CLI Workspace to an [Nx Integrated Workspace](/concepts/integrated-vs-package-based#integrated-repos) using `npx nx@latest init --integrated`.\n\nYou can read more about [migrating from Angular CLI to Nx here](/recipes/adopting-nx-angular).\n", - "presets": [] - }, - "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", - "hidden": true, - "implementation": "/packages/angular/src/generators/ng-add/ng-add.ts", - "aliases": [], - "path": "/packages/angular/src/generators/ng-add/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/ngrx-feature-store.json b/docs/generated/packages/angular/generators/ngrx-feature-store.json deleted file mode 100644 index 20d05813ef0d1..0000000000000 --- a/docs/generated/packages/angular/generators/ngrx-feature-store.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "ngrx-feature-store", - "factory": "./src/generators/ngrx-feature-store/ngrx-feature-store", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNgrxFeatureStoreGenerator", - "title": "NgRx Feature Store Generator", - "description": "Add an NgRx Feature Store to an application or library.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the NgRx feature state, such as `products` or `users`. Recommended to use the plural form of the name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the NgRx feature state? An example would be `users`.", - "x-priority": "important" - }, - "parent": { - "type": "string", - "description": "The path to the file where the state will be registered. For NgModule usage, this will be your Feature Module. For Standalone API usage, this will be your Routes definition file for your feature state. The host directory will create/use the new state directory.", - "x-prompt": "What is the path to the module or Routes definition where this NgRx state should be registered?", - "x-priority": "important" - }, - "route": { - "type": "string", - "description": "The route that the Standalone NgRx Providers should be added to.", - "default": "''" - }, - "minimal": { - "type": "boolean", - "default": false, - "description": "Only register the feature state.", - "x-priority": "important" - }, - "directory": { - "type": "string", - "default": "+state", - "description": "The name of the folder used to contain/group the generated NgRx files." - }, - "facade": { - "type": "boolean", - "default": false, - "description": "Create a Facade class for the the feature.", - "x-prompt": "Would you like to use a Facade with your NgRx state?" - }, - "skipImport": { - "type": "boolean", - "default": false, - "description": "Generate NgRx feature files without registering the feature in the NgModule." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not update the `package.json` with NgRx dependencies.", - "x-priority": "internal" - }, - "barrels": { - "type": "boolean", - "default": false, - "description": "Use barrels to re-export actions, state and selectors." - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Adds an NgRx Feature Store to an application or library.", - "implementation": "/packages/angular/src/generators/ngrx-feature-store/ngrx-feature-store.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/ngrx-feature-store/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/ngrx-root-store.json b/docs/generated/packages/angular/generators/ngrx-root-store.json deleted file mode 100644 index cdfc26ebd2cee..0000000000000 --- a/docs/generated/packages/angular/generators/ngrx-root-store.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "ngrx-root-store", - "factory": "./src/generators/ngrx-root-store/ngrx-root-store", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNgrxRootStoreGenerator", - "title": "Add NgRx support to an application.", - "description": "Adds NgRx support to an application.", - "cli": "nx", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the application to generate the NgRx configuration for.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What app would you like to generate a NgRx configuration for?", - "x-dropdown": "projects" - }, - "minimal": { - "type": "boolean", - "default": true, - "description": "Only register the root state management setup or also generate a global feature state.", - "x-priority": "important" - }, - "name": { - "type": "string", - "description": "Name of the NgRx state, such as `products` or `users`. Recommended to use the plural form of the name.", - "x-priority": "important" - }, - "route": { - "type": "string", - "description": "The route that the Standalone NgRx Providers should be added to.", - "default": "''" - }, - "directory": { - "type": "string", - "default": "+state", - "description": "The name of the folder used to contain/group the generated NgRx files." - }, - "facade": { - "type": "boolean", - "default": false, - "description": "Create a Facade class for the the feature.", - "x-prompt": "Would you like to use a Facade with your NgRx state?" - }, - "addDevTools": { - "type": "boolean", - "default": false, - "description": "Instrument the Store Devtools." - }, - "skipImport": { - "type": "boolean", - "default": false, - "description": "Generate NgRx feature files without registering the feature in the NgModule." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not update the `package.json` with NgRx dependencies.", - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": ["project"], - "presets": [] - }, - "description": "Adds an NgRx Root Store to an application.", - "implementation": "/packages/angular/src/generators/ngrx-root-store/ngrx-root-store.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/ngrx-root-store/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/ngrx.json b/docs/generated/packages/angular/generators/ngrx.json deleted file mode 100644 index a53e8e5ebde54..0000000000000 --- a/docs/generated/packages/angular/generators/ngrx.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "ngrx", - "factory": "./src/generators/ngrx/ngrx", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNgrxGenerator", - "title": "Add NgRx support to an application or library.", - "description": "Adds NgRx support to an application or library.", - "x-deprecated": "This generator is deprecated and will be removed in a future version of Nx. Use the 'ngrx-root-store' and 'ngrx-feature-store' generators instead.", - "cli": "nx", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:ngrx --root --parent=apps/my-app/src/app/app.module.ts --facade=false placeholder", - "description": "Add root ngrx configration to the `my-app` application" - }, - { - "command": "nx g @nx/angular:ngrx --parent=libs/my-lib/src/lib/my-lib.module.ts --facade=true --root=false users", - "description": "Add a `users` state with a facade to the `my-lib` library. It will be tracked under the default `+state` folder in the lib" - }, - { - "command": "nx g @nx/angular:ngrx --parent=apps/my-app/src/app/app.config.ts --root", - "description": "Add a root state configuration to `my-app` when `my-app` uses Standalone APIs" - }, - { - "command": "nx g @nx/angular:ngrx --parent=libs/my-lib/src/lib.routes.ts users", - "description": "Add a `users` feature state to the Route definition of a library using Standalone APIs" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the NgRx feature state, such as `products` or `users`. Recommended to use the plural form of the name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the NgRx feature state? An example would be `users`.", - "x-priority": "important" - }, - "module": { - "type": "string", - "description": "The path to the `NgModule` where the feature state will be registered. The host directory will create/use the new state directory.", - "x-deprecated": "This option will be removed in a future version of Nx. Please switch to using --parent instead." - }, - "parent": { - "type": "string", - "description": "The path to the file where the state will be registered. For NgModule usage, this will be your `app.module.ts` for your root state, or your Feature Module for feature state. For Standalone API usage, this will be your `app.config.ts` file for your root state, or the Routes definition file for your feature state. The host directory will create/use the new state directory.", - "x-prompt": "What is the path to the module or Routes definition where this NgRx state should be registered?", - "x-priority": "important" - }, - "route": { - "type": "string", - "description": "The route that the Standalone NgRx Providers should be added to.", - "default": "''" - }, - "directory": { - "type": "string", - "default": "+state", - "description": "The name of the folder used to contain/group the generated NgRx files." - }, - "root": { - "type": "boolean", - "default": false, - "description": "Setup root or feature state management with NgRx.", - "x-prompt": "Is this the root state of the application?", - "x-priority": "important" - }, - "facade": { - "type": "boolean", - "default": false, - "description": "Create a Facade class for the the feature.", - "x-prompt": "Would you like to use a Facade with your NgRx state?" - }, - "skipImport": { - "type": "boolean", - "default": false, - "description": "Generate NgRx feature files without registering the feature in the NgModule." - }, - "minimal": { - "type": "boolean", - "default": true, - "description": "Only register the root state management setup or feature state." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not update the `package.json` with NgRx dependencies.", - "x-priority": "internal" - }, - "barrels": { - "type": "boolean", - "default": false, - "description": "Use barrels to re-export actions, state and selectors." - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Adds NgRx support to an application or library.", - "x-deprecated": "This generator is deprecated and will be removed in a future version of Nx. Use the 'ngrx-root-store' and 'ngrx-feature-store' generators instead.", - "implementation": "/packages/angular/src/generators/ngrx/ngrx.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/ngrx/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/pipe.json b/docs/generated/packages/angular/generators/pipe.json deleted file mode 100644 index 2fe55e13a3df7..0000000000000 --- a/docs/generated/packages/angular/generators/pipe.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "pipe", - "factory": "./src/generators/pipe/pipe", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "SchematicsAngularPipe", - "title": "Angular Pipe Options Schema", - "type": "object", - "cli": "nx", - "additionalProperties": false, - "description": "Creates an Angular pipe.", - "properties": { - "name": { - "type": "string", - "description": "The name of the pipe.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the pipe?" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the pipe file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir", "path"], - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the pipe in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "flat": { - "type": "boolean", - "default": true, - "description": "When true (the default) creates files at the top level of the project.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "skipTests": { - "type": "boolean", - "description": "Do not create \"spec.ts\" test files for the new pipe.", - "default": false - }, - "skipImport": { - "type": "boolean", - "default": false, - "description": "Do not import this pipe into the owning NgModule." - }, - "standalone": { - "description": "Whether the generated pipe is standalone.", - "type": "boolean", - "default": true - }, - "module": { - "type": "string", - "description": "The filename of the declaring NgModule.", - "alias": "m" - }, - "export": { - "type": "boolean", - "default": false, - "description": "The declaring NgModule exports this pipe." - }, - "skipFormat": { - "type": "boolean", - "default": false, - "description": "Skip formatting of files." - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Generate an Angular Pipe", - "aliases": ["p"], - "implementation": "/packages/angular/src/generators/pipe/pipe.ts", - "hidden": false, - "path": "/packages/angular/src/generators/pipe/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/remote.json b/docs/generated/packages/angular/generators/remote.json deleted file mode 100644 index 2b044acf2418d..0000000000000 --- a/docs/generated/packages/angular/generators/remote.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "name": "remote", - "factory": "./src/generators/remote/remote#remoteInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxMFRemote", - "cli": "nx", - "title": "Nx Module Federation Remote App", - "description": "Create an Angular Remote Module Federation Application.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:remote appName --host=host --port=4201", - "description": "Create an Angular app with configuration in place for Module Federation. If host is provided, attach this remote app to host app's configuration." - } - ], - "properties": { - "name": { - "type": "string", - "description": "The name to give to the remote Angular app.", - "$default": { "$source": "argv", "index": 0 }, - "pattern": "^[a-zA-Z][^:]*$" - }, - "host": { - "type": "string", - "description": "The name of the host app to attach this remote app to.", - "x-dropdown": "projects", - "x-priority": "important" - }, - "port": { - "type": "number", - "description": "The port on which this app should be served." - }, - "directory": { - "description": "The directory of the new application.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "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" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "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 - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "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": { - "description": "Whether to generate a remote application with standalone components.", - "type": "boolean", - "default": true - }, - "ssr": { - "description": "Whether to configure SSR for the remote application to be consumed by a host application using SSR.", - "type": "boolean", - "default": false - }, - "typescriptConfiguration": { - "type": "boolean", - "description": "Whether the module federation configuration and webpack configuration files should use TS.", - "default": true - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "x-type": "application", - "description": "Generate a Remote Angular Module Federation Application.", - "implementation": "/packages/angular/src/generators/remote/remote#remoteInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/remote/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/scam-directive.json b/docs/generated/packages/angular/generators/scam-directive.json deleted file mode 100644 index 2e29de5b397ee..0000000000000 --- a/docs/generated/packages/angular/generators/scam-directive.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "scam-directive", - "factory": "./src/generators/scam-directive/scam-directive", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "SCAMDirectiveGenerator", - "cli": "nx", - "title": "SCAM Directive Generator Options Schema", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:scam-directive my-sample --directory=my-lib/src/lib/my-sample", - "description": "Generate a `MySampleDirective` directive in a `my-sample` folder in the `my-lib` library" - } - ], - "description": "Creates a new, generic Angular directive definition in the given or default project.", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The name of the directive.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the directive?", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the SCAM Directive files. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir", "path"], - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "skipTests": { - "type": "boolean", - "description": "Do not create `spec.ts` test files for the new directive.", - "default": false - }, - "inlineScam": { - "type": "boolean", - "description": "Create the `NgModule` in the same file as the Directive.", - "default": true, - "x-priority": "important" - }, - "flat": { - "type": "boolean", - "description": "Create the new files at the top level of the current project.", - "default": true, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "selector": { - "type": "string", - "format": "html-selector", - "description": "The `HTML` selector to use for this directive." - }, - "prefix": { - "type": "string", - "description": "The prefix to apply to the generated directive selector.", - "alias": "p", - "oneOf": [ - { "maxLength": 0 }, - { "minLength": 1, "format": "html-selector" } - ] - }, - "export": { - "type": "boolean", - "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.", - "default": true, - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Generate a directive with an accompanying Single Component Angular Module (SCAM).", - "implementation": "/packages/angular/src/generators/scam-directive/scam-directive.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/scam-directive/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/scam-pipe.json b/docs/generated/packages/angular/generators/scam-pipe.json deleted file mode 100644 index eb01bddbefcc7..0000000000000 --- a/docs/generated/packages/angular/generators/scam-pipe.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "scam-pipe", - "factory": "./src/generators/scam-pipe/scam-pipe", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "SCAMPipeGenerator", - "cli": "nx", - "title": "SCAM Pipe Generator Options Schema", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:scam-pipe --project=my-lib --flat=false my-transformation", - "description": "Generates a `MyTransformationPipe` in a `my-transformation` folder in the `my-lib` project" - } - ], - "description": "Creates a new, generic Angular pipe definition in the given or default project.", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The name of the pipe.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the pipe?", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir", "path"], - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "skipTests": { - "type": "boolean", - "description": "Do not create `spec.ts` test files for the new pipe.", - "default": false - }, - "inlineScam": { - "type": "boolean", - "description": "Create the NgModule in the same file as the Pipe.", - "default": true, - "x-priority": "important" - }, - "flat": { - "type": "boolean", - "description": "Create the new files at the top level of the current project.", - "default": true, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "export": { - "type": "boolean", - "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.", - "default": true, - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Generate a pipe with an accompanying Single Component Angular Module (SCAM).", - "implementation": "/packages/angular/src/generators/scam-pipe/scam-pipe.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/scam-pipe/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/scam-to-standalone.json b/docs/generated/packages/angular/generators/scam-to-standalone.json deleted file mode 100644 index b0dff90b7aa7b..0000000000000 --- a/docs/generated/packages/angular/generators/scam-to-standalone.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "scam-to-standalone", - "factory": "./src/generators/scam-to-standalone/scam-to-standalone", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorAngularScamToStandalone", - "cli": "nx", - "title": "Convert an Inline SCAM to Standalone Component", - "description": "Convert an Inline SCAM to a Standalone Component.", - "type": "object", - "properties": { - "component": { - "type": "string", - "description": "The path to the SCAM component file, relative to the root of the project containing the SCAM.", - "$default": { "$source": "argv", "index": 0 }, - "x-priority": "important" - }, - "project": { - "type": "string", - "description": "The project containing the SCAM.", - "x-prompt": "What project contains the SCAM?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting the workspace after the generator completes.", - "x-priority": "internal" - } - }, - "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\nThis generator allows you to convert an Inline SCAM to a Standalone Component. It's important that the SCAM you wish to convert has it's NgModule within the same file for the generator to be able to correctly convert the component to Standalone.\n\n```bash\n\nnx g @nx/angular:scam-to-standalone --component=libs/mylib/src/lib/myscam/myscam.component.ts --project=mylib\n\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Convert an existing Single Component Angular Module (SCAM) to a Standalone Component.", - "implementation": "/packages/angular/src/generators/scam-to-standalone/scam-to-standalone.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/scam-to-standalone/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/scam.json b/docs/generated/packages/angular/generators/scam.json deleted file mode 100644 index 5e810c9c326dc..0000000000000 --- a/docs/generated/packages/angular/generators/scam.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "name": "scam", - "factory": "./src/generators/scam/scam", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "SCAMGenerator", - "cli": "nx", - "title": "SCAM Generator Options Schema", - "type": "object", - "examples": [ - { - "command": "nx g @nx/angular:scam my-sample --directory=my-lib/src/lib/my-sample", - "description": "Generate a `MySampleComponent` component in the `my-lib` library." - } - ], - "description": "Creates a new Angular SCAM.", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the SCAM files. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir", "path"], - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the SCAM in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "displayBlock": { - "description": "Specifies if the style will contain `:host { display: block; }`.", - "type": "boolean", - "default": false, - "alias": "b" - }, - "inlineStyle": { - "description": "Include styles inline in the `component.ts` file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the `component.ts` file.", - "type": "boolean", - "default": false, - "alias": "s" - }, - "inlineTemplate": { - "description": "Include template inline in the `component.ts` file. By default, an external template file is created and referenced in the `component.ts` file.", - "type": "boolean", - "default": false, - "alias": "t" - }, - "viewEncapsulation": { - "description": "The view encapsulation strategy to use in the new component.", - "enum": ["Emulated", "None", "ShadowDom"], - "type": "string", - "alias": "v" - }, - "changeDetection": { - "description": "The change detection strategy to use in the new component.", - "enum": ["Default", "OnPush"], - "type": "string", - "default": "Default", - "alias": "c" - }, - "style": { - "description": "The file extension or preprocessor to use for style files, or 'none' to skip generating the style file.", - "type": "string", - "default": "css", - "enum": ["css", "scss", "sass", "less", "none"] - }, - "skipTests": { - "type": "boolean", - "description": "Do not create `spec.ts` test files for the new component.", - "default": false - }, - "inlineScam": { - "type": "boolean", - "description": "Create the `NgModule` in the same file as the component.", - "default": true, - "x-priority": "important" - }, - "flat": { - "type": "boolean", - "description": "Create the new files at the top level of the current project.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "selector": { - "type": "string", - "format": "html-selector", - "description": "The `HTML` selector to use for this component." - }, - "skipSelector": { - "type": "boolean", - "default": false, - "description": "Specifies if the component should have a selector or not." - }, - "type": { - "type": "string", - "description": "Adds a developer-defined type to the filename, in the format `name.type.ts`.", - "default": "component" - }, - "prefix": { - "type": "string", - "description": "The prefix to apply to the generated component selector.", - "alias": "p", - "oneOf": [ - { "maxLength": 0 }, - { "minLength": 1, "format": "html-selector" } - ] - }, - "export": { - "type": "boolean", - "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.", - "default": true, - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Generate a component with an accompanying Single Component Angular Module (SCAM).", - "implementation": "/packages/angular/src/generators/scam/scam.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/scam/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/setup-mf.json b/docs/generated/packages/angular/generators/setup-mf.json deleted file mode 100644 index 2df78438f737b..0000000000000 --- a/docs/generated/packages/angular/generators/setup-mf.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "setup-mf", - "factory": "./src/generators/setup-mf/setup-mf", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorAngularMFSetup", - "cli": "nx", - "title": "Generate Module Federation Setup for Angular App", - "description": "Create Module Federation configuration files for given Angular Application.", - "type": "object", - "properties": { - "appName": { - "type": "string", - "description": "The name of the application to generate the Module Federation configuration for.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What app would you like to generate a Module Federation configuration for?", - "x-dropdown": "projects" - }, - "mfType": { - "type": "string", - "enum": ["host", "remote"], - "description": "Type of application to generate the Module Federation configuration for.", - "default": "remote" - }, - "federationType": { - "type": "string", - "enum": ["static", "dynamic"], - "description": "Use either Static or Dynamic Module Federation pattern for the application.", - "default": "static" - }, - "port": { - "type": "number", - "description": "The port at which the remote application should be served." - }, - "remotes": { - "type": "array", - "description": "A list of remote application names that the host application should consume." - }, - "host": { - "type": "string", - "description": "The name of the host application that the remote application will be consumed by." - }, - "routing": { - "type": "boolean", - "description": "Generate a routing setup to allow a host application to route to the remote application.", - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting the workspace after the generator completes.", - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "skipE2E": { - "type": "boolean", - "default": false, - "description": "Do not set up E2E related config." - }, - "e2eProjectName": { - "type": "string", - "description": "The project name of the associated E2E project for the application. This is only required for Cypress E2E projects that do not follow the naming convention `-e2e`." - }, - "prefix": { - "type": "string", - "description": "The prefix to use for any generated component." - }, - "standalone": { - "type": "boolean", - "description": "Whether the application is a standalone application.", - "default": true - }, - "typescriptConfiguration": { - "type": "boolean", - "description": "Whether the module federation configuration and webpack configuration files should use TS.", - "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 - } - }, - "required": ["appName", "mfType"], - "additionalProperties": false, - "examplesFile": "## Examples\n\nThe `setup-mf` generator is used to add Module Federation support to existing applications.\n\n{% tabs %}\n\n{% tab label=\"Convert to Host\" %}\nTo convert an existing application to a host application, run the following\n\n```bash\nnx g setup-mf myapp --mfType=host --routing=true\n```\n\n{% /tab %}\n\n{% tab label=\"Convert to Remote\" %}\nTo convert an existing application to a remote application, run the following\n\n```bash\nnx g setup-mf myapp --mfType=remote --routing=true\n```\n\n{% /tab %}\n\n{% tab label=\"Convert to Remote and attach to a host application\" %}\nTo convert an existing application to a remote application and attach it to an existing host application name `myhostapp`, run the following\n\n```bash\nnx g setup-mf myapp --mfType=remote --routing=true --host=myhostapp\n```\n\n{% /tab %}\n\n{% tab label=\"Convert to Host and attach to existing remote applications\" %}\nTo convert an existing application to a host application and attaching existing remote applications named `remote1` and `remote2`, run the following\n\n```bash\nnx g setup-mf myapp --mfType=host --routing=true --remotes=remote1,remote2\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Generate a Module Federation configuration for a given Angular application.", - "implementation": "/packages/angular/src/generators/setup-mf/setup-mf.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/setup-mf/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/setup-ssr.json b/docs/generated/packages/angular/generators/setup-ssr.json deleted file mode 100644 index d4a94b5a1225b..0000000000000 --- a/docs/generated/packages/angular/generators/setup-ssr.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "setup-ssr", - "factory": "./src/generators/setup-ssr/setup-ssr", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorAngularUniversalSetup", - "cli": "nx", - "title": "Generate Angular Universal (SSR) setup for an Angular App", - "description": "Create the additional configuration required to enable SSR via Angular Universal for an Angular application.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the application to generate the Angular Universal configuration for.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What app would you like to generate an Angular Universal configuration for?", - "x-dropdown": "projects" - }, - "appId": { - "type": "string", - "format": "html-selector", - "description": "The `appId` to use with `withServerTransition`. _Note: This is only used in Angular versions <16.0.0. It's deprecated since Angular 16 and not supported since Angular 17._", - "default": "serverApp" - }, - "main": { - "type": "string", - "format": "path", - "description": "The name of the main entry-point file.", - "default": "main.server.ts" - }, - "serverFileName": { - "type": "string", - "default": "server.ts", - "description": "The name of the Express server file." - }, - "serverPort": { - "type": "number", - "default": 4000, - "description": "The port for the Express server." - }, - "rootModuleFileName": { - "type": "string", - "format": "path", - "description": "The name of the root module file", - "default": "app.server.module.ts" - }, - "rootModuleClassName": { - "type": "string", - "description": "The name of the root module class.", - "default": "AppServerModule" - }, - "standalone": { - "type": "boolean", - "description": "Use Standalone Components to bootstrap SSR." - }, - "hydration": { - "type": "boolean", - "description": "Set up Hydration for the SSR application. It defaults to `true` for Angular versions >= 17.0.0. Otherwise, it defaults to `false`. _Note: This is only supported in Angular versions >= 16.0.0_." - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting the workspace after the generator completes.", - "x-priority": "internal" - } - }, - "required": ["project"], - "additionalProperties": false, - "presets": [] - }, - "description": "Generate Angular Universal (SSR) setup for an Angular application.", - "implementation": "/packages/angular/src/generators/setup-ssr/setup-ssr.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/setup-ssr/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/setup-tailwind.json b/docs/generated/packages/angular/generators/setup-tailwind.json deleted file mode 100644 index 134bbd75359c3..0000000000000 --- a/docs/generated/packages/angular/generators/setup-tailwind.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "setup-tailwind", - "factory": "./src/generators/setup-tailwind/setup-tailwind", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularTailwindSetupGenerator", - "cli": "nx", - "title": "Configures Tailwind CSS for an application or a buildable/publishable library.", - "description": "Adds the Tailwind CSS configuration files for a given Angular project and installs, if needed, the packages required for Tailwind CSS to work.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add the Tailwind CSS setup for.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What project would you like to add the Tailwind CSS setup?" - }, - "buildTarget": { - "type": "string", - "description": "The name of the target used to build the project. This option only applies to buildable/publishable libraries.", - "default": "build" - }, - "skipFormat": { - "type": "boolean", - "description": "Skips formatting the workspace after the generator completes.", - "x-priority": "internal" - }, - "stylesEntryPoint": { - "type": "string", - "description": "Path to the styles entry point relative to the workspace root. If not provided the generator will do its best to find it and it will error if it can't. This option only applies to applications." - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": ["project"], - "examplesFile": "## Examples\n\nThe `setup-tailwind` generator can be used to add [Tailwind](https://tailwindcss.com) configuration to apps and publishable libraries.\n\n{% tabs %}\n\n{% tab label=\"Standard Setup\" %}\n\nTo generate a standard Tailwind setup, just run the following command.\n\n```bash\nnx g @nx/angular:setup-tailwind myapp\n```\n\n{% /tab %}\n\n{% tab label=\"Specifying the Styles Entrypoint\" %}\n\nTo specify the styles file that should be used as the entrypoint for Tailwind, simply pass the `--stylesEntryPoint` flag, relative to workspace root.\n\n```bash\nnx g @nx/angular:setup-tailwind myapp --stylesEntryPoint=apps/myapp/src/styles.css\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Configures Tailwind CSS for an application or a buildable/publishable library.", - "implementation": "/packages/angular/src/generators/setup-tailwind/setup-tailwind.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/setup-tailwind/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/stories.json b/docs/generated/packages/angular/generators/stories.json deleted file mode 100644 index 2c550cfdd9282..0000000000000 --- a/docs/generated/packages/angular/generators/stories.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "stories", - "factory": "./src/generators/stories/stories", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularStorybookStoriesGenerator", - "title": "Create Storybook stories/specs", - "description": "Creates Storybook stories/specs for all Angular components declared in a project.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "type": "string", - "aliases": ["project", "projectName"], - "description": "Project for which to generate stories.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What's the name of the project for which you want to generate stories?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "default": true - }, - "generateCypressSpecs": { - "type": "boolean", - "description": "Specifies whether to automatically generate `*.spec.ts` files in the Cypress e2e app generated by the `cypress-configure` generator." - }, - "cypressProject": { - "type": "string", - "description": "The Cypress project to generate the stories under. This is inferred from `name` by default." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - } - }, - "additionalProperties": false, - "required": ["name"], - "examplesFile": "This generator will generate stories for all your components in your project. The stories will be generated using [Component Story Format 3 (CSF3)](https://storybook.js.org/blog/storybook-csf3-is-here/).\n\n```bash\nnx g @nx/angular:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Angular overview page](/recipes/storybook/overview-angular#auto-generate-stories).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests).\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/angular:stories ui --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*\n```\n\nThis will generate stories for all the components in the `ui` project, except for the ones in the `libs/ui/src/not-stories` directory, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n", - "presets": [] - }, - "description": "Creates stories/specs for all components declared in a project.", - "implementation": "/packages/angular/src/generators/stories/stories.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/stories/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/storybook-configuration.json b/docs/generated/packages/angular/generators/storybook-configuration.json deleted file mode 100644 index 46b3b0c423b1a..0000000000000 --- a/docs/generated/packages/angular/generators/storybook-configuration.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "name": "storybook-configuration", - "factory": "./src/generators/storybook-configuration/storybook-configuration", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxAngularStorybookConfigurationGenerator", - "title": "Adds Storybook configuration to a project.", - "description": "Adds Storybook configuration to a project to be able to use and create stories.", - "cli": "nx", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "alias": ["configureTestRunner"], - "x-priority": "important", - "default": true - }, - "configureCypress": { - "type": "boolean", - "description": "Specifies whether to configure Cypress or not.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "generateStories": { - "type": "boolean", - "description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.", - "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", - "default": true, - "x-priority": "important" - }, - "generateCypressSpecs": { - "type": "boolean", - "description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "configureStaticServe": { - "type": "boolean", - "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", - "x-prompt": "Configure a static file server for the storybook instance?", - "default": true, - "x-priority": "important" - }, - "cypressDirectory": { - "type": "string", - "description": "A directory where the Cypress project will be placed. Placed at the root by default.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": true, - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - } - }, - "additionalProperties": false, - "required": ["project"], - "examplesFile": "This generator will set up Storybook for your **Angular** project. By default, starting Nx 16, Storybook v7 is used.\n\n```bash\nnx g @nx/angular:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Angular overview page](/recipes/storybook/overview-angular#generate-storybook-configuration-for-an-angular-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/angular/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests).\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/angular:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/angular:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/angular:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", - "presets": [] - }, - "description": "Adds Storybook configuration to a project.", - "implementation": "/packages/angular/src/generators/storybook-configuration/storybook-configuration.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/storybook-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/angular/generators/web-worker.json b/docs/generated/packages/angular/generators/web-worker.json deleted file mode 100644 index 34551b6f15c26..0000000000000 --- a/docs/generated/packages/angular/generators/web-worker.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "web-worker", - "factory": "./src/generators/web-worker/web-worker", - "schema": { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "NxAngularWebWorkerGenerator", - "title": "Angular Web Worker Options Schema", - "description": "Creates a new, generic web worker definition in the given or default project.", - "cli": "nx", - "type": "object", - "properties": { - "path": { - "type": "string", - "format": "path", - "description": "The path at which to create the worker file, relative to the current workspace." - }, - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-dropdown": "projects", - "x-priority": "important" - }, - "name": { - "type": "string", - "description": "The name of the worker.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the worker?", - "x-priority": "important" - }, - "snippet": { - "type": "boolean", - "default": true, - "description": "Add a worker creation snippet in a sibling file of the same name." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": ["name", "project"], - "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Simple Usage\" %}\n\nThe basic usage of the `web-worker` generator is defined below. You must provide a name for the web worker and the project to assign it to.\n\n```bash\nnx g @nx/angular:web-worker myWebWorker --project=myapp\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Creates a Web Worker.", - "implementation": "/packages/angular/src/generators/web-worker/web-worker.ts", - "aliases": [], - "hidden": false, - "path": "/packages/angular/src/generators/web-worker/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/cypress/documents/overview.md b/docs/generated/packages/cypress/documents/overview.md deleted file mode 100644 index fac5081f52a8a..0000000000000 --- a/docs/generated/packages/cypress/documents/overview.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: Overview of the Nx Cypress Plugin -description: The Nx Plugin for Cypress contains executors and generators that support e2e testing with Cypress. This page also explains how to configure Cypress on your Nx workspace. ---- - -Cypress is a test runner built for the modern web. It has a lot of great features: - -- Time travel -- Real-time reloads -- Automatic waiting -- Spies, stubs, and clocks -- Network traffic control -- Screenshots and videos - -## Setting Up @nx/cypress - -> Info about [Cypress Component Testing can be found here](/recipes/cypress/cypress-component-testing) -> -> Info about [using Cypress and Storybook can be found here](/recipes/storybook/overview-react#cypress-tests-for-storiesbook) - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/cypress` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/cypress` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/cypress -``` - -This will install the correct version of `@nx/cypress`. - -### How @nx/cypress Infers Tasks - -The `@nx/cypress` plugin will create a task for any project that has a Cypress configuration file present. Any of the following files will be recognized as a Cypress configuration file: - -- `cypress.config.js` -- `cypress.config.ts` -- `cypress.config.mjs` -- `cypress.config.mts` -- `cypress.config.cjs` -- `cypress.config.cts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/cypress Configuration - -The `@nx/cypress/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/cypress/plugin", - "options": { - "ciTargetName": "e2e-ci", - "targetName": "e2e", - "componentTestingTargetName": "component-test" - } - } - ] -} -``` - -- The `targetName`, `ciTargetName` and `componentTestingTargetName` options control the namea of the inferred Cypress tasks. The default names are `e2e`, `e2e-ci` and `component-test`. - -### Splitting E2E tasks by file - -The `@nx/cypress/plugin` will automatically split your e2e tasks by file. You can read more about this feature [here](/ci/features/split-e2e-tasks). - -To enable e2e task splitting, make sure there is a `ciWebServerCommand` property set in your `cypress.config.ts` file. It will look something like this: - -```ts {% fileName="apps/my-project-e2e/cypress.config.ts" highlightLines=[13] %} -import { defineConfig } from 'cypress'; -import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; - -export default defineConfig({ - e2e: { - ...nxE2EPreset(__filename, { - cypressDir: 'src', - bundler: 'vite', - webServerCommands: { - default: 'nx run my-project:serve', - production: 'nx run my-project:preview', - }, - ciWebServerCommand: 'nx run my-project:serve-static', - }), - baseUrl: 'http://localhost:4200', - }, -}); -``` - -{% callout type="note" title="Using setupNodeEvents function" %} -If you use the `setupNodeEvents` function in your Cypress configuration, make sure to invoke the same function that is returned by `nxE2EPreset`. See the recipe on [using `setupNodeEvents` with Cypress preset](/recipes/cypress/cypress-setup-node-events) for more details. -{% /callout %} - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/cypress` package with your package manager. - -```shell -npm add -D @nx/cypress -``` - -{% /tab %} -{% /tabs %} - -## E2E Testing - -By default, when creating a new frontend application, Nx will use Cypress to create the e2e tests project. - -```shell -nx g @nx/web:app frontend -``` - -### Configure Cypress for an existing project - -To configure Cypress for an existing project, run the following generator - -```shell -nx g @nx/cypress:configuration --project=your-app-name -``` - -Optionally, you can use the `--baseUrl` option if you don't want the Cypress plugin to serve `your-app-name`. - -```shell -nx g @nx/cypress:configuration --project=your-app-name --baseUrl=http://localhost:4200 -``` - -Replace `your-app-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json`. - -### Testing Applications - -Run `nx e2e frontend-e2e` to execute e2e tests with Cypress. - -You can run your e2e test against a production build by using the `production` [configuration](https://nx.dev/concepts/executors-and-configurations#use-task-configurations) - -```shell -nx e2e frontend-e2e --configuration=production -``` - -{% callout type="note" title="Selecting Specific Specs" %} - -You can use the `--spec` flag to glob for test files - -```bash -# run the tests in the smoke/ directory -nx e2e frontend-e2e --spec=**smoke/** - -# run the tests in smoke/ directory and with dashboard in the file name -nx e2e frontend-e2e --spec=**smoke/**,**dashboard.cy** -``` - -{% /callout %} - -By default, Cypress will run in headless mode. You will have the result of all the tests and errors (if any) in your -terminal. Screenshots and videos will be accessible in `dist/cypress/apps/frontend/screenshots` and `dist/cypress/apps/frontend/videos`. - -### Watching for Changes (Headed Mode) - -With, `nx e2e frontend-e2e --watch` Cypress will start in headed mode where you can see your application being tested. - -Running Cypress with `--watch` is a great way to enhance dev workflow - you can build up test files with the application -running and Cypress will re-run those tests as you enhance and add to the suite. - -```shell -nx e2e frontend-e2e --watch -``` - -### Specifying a Custom Url to Test - -The `baseUrl` property provides you the ability to test an application hosted on a specific domain. - -```shell -nx e2e frontend-e2e --baseUrl=https://frontend.com -``` - -> If no `baseUrl` and no `devServerTarget` are provided, Cypress will expect to have the `baseUrl` property in -> the cypress config file, or will error. - -## Using cypress.config.ts - -If you need to fine tune your Cypress setup, you can do so by modifying `cypress.config.ts` in the project root. For -instance, -you can easily add your `projectId` to save all the screenshots and videos into your Cypress dashboard. The complete -configuration is documented -on [the official website](https://docs.cypress.io/guides/references/configuration.html#Options). - -For adding more dynamic configurations to your cypress configuration, you can look into using [setupNodeEvents](https://docs.cypress.io/api/plugins/browser-launch-api#Syntax) configuration option. - -## Environment Variables - -If you're needing to pass a variable to cypress that you wish to not commit to your repository, i.e. API keys, or dynamic values based on configurations, i.e. API Urls. This is where [Cypress environment variables](https://docs.cypress.io/guides/guides/environment-variables) can be used. - -There are a handful of ways to pass environment variables to Cypress, but the most common is going to be via the [`cypress.env.json` file](https://docs.cypress.io/guides/guides/environment-variables#Option-1-configuration-file), the [env executor option for cypress](/nx-api/cypress/executors/cypress#env) or the commandline. - -Create a `cypress.env.json` file in the projects root i.e. `apps/my-cool-app-e2e/cypress.env.json`. Cypress will automatically pick up this file. This method is helpful for configurations that you want to not commit. Just don't forget to add the file to the `.gitignore` and add documentation so people in your repo know what values to popluate in their local copy of the `cypress.env.json` file. - -Using [@nx/cypress:cypress](/nx-api/cypress/executors/cypress) env executor option is a good way to add values you want to define that you don't mine commit to the repository, such as a base API url. You can leverage [target configurations](/reference/project-configuration#targets) to define different values as well. - -Optionally, you can pass environment variables via the commandline with the `--env` flag. - -{% callout type="warning" title="Executor options and --env" %} -When using the `--env` flag, this will not be merged with any values used in the `env` executor option. -{% /callout %} - -```shell -nx e2e frontend-e2e --env.API_URL="https://api.my-nx-website.com" --env.API_KEY="abc-123" -``` diff --git a/docs/generated/packages/cypress/executors/cypress.json b/docs/generated/packages/cypress/executors/cypress.json deleted file mode 100644 index 39a8227cbadd7..0000000000000 --- a/docs/generated/packages/cypress/executors/cypress.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "cypress", - "implementation": "/packages/cypress/src/executors/cypress/cypress.impl.ts", - "schema": { - "version": 2, - "title": "Cypress Target", - "description": "Run Cypress for e2e, integration and component testing.", - "type": "object", - "outputCapture": "pipe", - "cli": "nx", - "presets": [ - { - "name": "Starting Dev Server", - "keys": ["cypressConfig", "devServerTarget"] - }, - { "name": "Custom Base Url", "keys": ["cypressConfig", "baseUrl"] }, - { - "name": "Component Testing", - "keys": ["cypressConfig", "devServerTarget", "testingType", "skipServe"] - } - ], - "properties": { - "cypressConfig": { - "type": "string", - "description": "The path of the Cypress configuration json file.", - "x-completion-type": "file", - "x-completion-glob": "cypress?(*)@(.js|.ts|.json)" - }, - "watch": { - "type": "boolean", - "description": "Recompile and run tests when files change.", - "default": false - }, - "tsConfig": { - "x-deprecated": "This option no longer has any effect. Cypress supports typescript out of the box. Add any options directly to /tsconfig.json or /cypress/tsconfig.json", - "type": "string", - "description": "The path of the Cypress tsconfig configuration json file.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json" - }, - "devServerTarget": { - "type": "string", - "description": "Dev server target to run tests against." - }, - "headed": { - "type": "boolean", - "description": "Displays the browser instead of running headlessly. Set this to `true` if your run depends on a Chrome extension being loaded.", - "default": false - }, - "headless": { - "type": "boolean", - "description": "Hide the browser instead of running headed.", - "default": false, - "x-deprecated": "Cypress runs headless by default. Use the --watch flag to control head/headless behavior instead." - }, - "exit": { - "type": "boolean", - "description": "Whether or not the Cypress Test Runner will stay open after running tests in a spec file.", - "default": true - }, - "key": { - "type": "string", - "description": "The key cypress should use to run tests in parallel/record the run (CI only)." - }, - "record": { - "type": "boolean", - "description": "Whether or not Cypress should record the results of the tests.", - "default": false - }, - "parallel": { - "aliases": ["p"], - "type": "boolean", - "description": "Whether or not Cypress should run its tests in parallel (CI only).", - "default": false - }, - "baseUrl": { - "type": "string", - "description": "The address (with the port) which your application is running on.", - "x-priority": "important" - }, - "browser": { - "type": "string", - "description": "The browser to run tests in." - }, - "env": { - "type": "object", - "description": "A key-value Pair of environment variables to pass to Cypress runner." - }, - "spec": { - "type": "string", - "description": "A comma delimited glob string that is provided to the Cypress runner to specify which spec files to run. i.e. `**examples/**,**actions.spec**`." - }, - "copyFiles": { - "type": "string", - "description": "A regex string that is used to choose what additional integration files to copy to the dist folder.", - "x-deprecated": "No longer used since cypress supports typescript out of the box. If specified, it will be ignored.", - "x-priority": "internal" - }, - "ciBuildId": { - "oneOf": [{ "type": "string" }, { "type": "number" }], - "description": "A unique identifier for a run to enable grouping or parallelization." - }, - "group": { - "type": "string", - "description": "A named group for recorded runs in the Cypress dashboard." - }, - "ignoreTestFiles": { - "aliases": ["excludeSpecPattern"], - "oneOf": [ - { "type": "string" }, - { "type": "array", "items": { "type": "string" } } - ], - "description": "A String or Array of glob patterns used to ignore test files that would otherwise be shown in your list of tests. Cypress uses minimatch with the options: `{dot: true, matchBase: true}`. We suggest using https://globster.xyz to test what files would match." - }, - "reporter": { - "type": "string", - "description": "The reporter used during cypress run." - }, - "reporterOptions": { - "oneOf": [{ "type": "string" }, { "type": "object" }], - "description": "The reporter options used. Supported options depend on the reporter. https://docs.cypress.io/guides/tooling/reporters#Reporter-Options" - }, - "skipServe": { - "type": "boolean", - "description": "Skip dev-server build.", - "default": false - }, - "testingType": { - "type": "string", - "description": "Specify the type of tests to execute.", - "enum": ["component", "e2e"], - "default": "e2e" - }, - "tag": { - "type": "string", - "description": "A comma delimited list to identify a run with.", - "aliases": ["t"] - }, - "port": { - "oneOf": [ - { "type": "string", "enum": ["cypress-auto"] }, - { "type": "number" } - ], - "description": "Pass a specified port value to the devServerTarget, if the value is 'cypress-auto' a free port will automatically be picked for the devServerTarget." - }, - "quiet": { - "aliases": ["q"], - "type": "boolean", - "description": "If passed, Cypress output will not be printed to stdout. Only output from the configured Mocha reporter will print.", - "default": false - }, - "runnerUi": { - "type": "boolean", - "description": "Displays the Cypress Runner UI. Useful for when Test Replay is enabled and you would still like the Cypress Runner UI to be displayed for screenshots and video." - } - }, - "additionalProperties": true, - "required": ["cypressConfig"], - "examplesFile": "Depending on your testing type, the Cypress executor is configured in different ways. The following are sample configurations that are created via the [configuration](/packages/cypress/generators/configuration) and [cypress-component-configuration](/packages/cypress/generators/cypress-component-configuration) generators.\n\n{% tabs %}\n{% tab label=\"E2E Testing\" %}\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"apps/app-e2e/cypres.config.ts\",\n \"devServerTarget\": \"my-react-app:serve\",\n \"testingType\": \"e2e\"\n }\n }\n}\n```\n\n{% callout type=\"note\" title=\"API Testing\" %}\nAPI testing with Cypress is the same setup as e2e testing. Just change which `devServerTarget` is used!\n{% /callout %}\n\n### Providing a Base URL\n\nIf `devServerTarget` is provided, the url returned from started the dev server will be passed to cypress as the `baseUrl` option.\n\nDefining a `baseUrl` in the executor options will override the inferred `baseUrl` from the `devServerTarget`.\n\nThe `baseUrl` defined in the Cypress config file is the last value used if no url is found in the `devServerTarget` or executor options.\n\n### Static Serving\n\nWhen running in CI it doesn't make sense to start up a dev server since there aren't changes to watch for.\n\nYou can use [`@nx/web:file-server`](/packages/web/executors/file-server) to serve the pre-built static files of your frontend project.\n\nIn some _frontend_ application, add a 'static-serve' target.\n\n```json\n\"serve-static\": {\n \"executor\": \"@nx/web:file-server\",\n \"options\":{\n \"buildTarget\": \"frontend:build\"\n }\n}\n```\n\nIn the _e2e_ application add a configuration to change `devServerTarget` to point to the `static-serve` from the _frontend_ application\n\n```json\n\"e2e\": {\n //...\n \"configurations\": {\n \"ci\": {\n \"devServerTarget\": \"frontend:serve-static\"\n }\n }\n}\n```\n\n{% callout type=\"note\" title=\"What about Node projects?\" %}\nThe same can be done for backend node apps with [`@nx/js:node` executor](/packages/js/executors/node)\n{% /callout %}\n\n```bash\nnx e2e my-app-e2e\n```\n\n{% /tab %}\n{% tab label=\"Component Testing\" %}\n\n{% callout type=\"note\" title=\"Cypress Component Testing\" %}\nWhen adding component testing to a project, it's best to use the framework specific generator, instead `cypress-component-project` directly.\n\n- [React component testing](/packages/react/generators/cypress-component-configuration)\n- [Angular component testing](/packages/angular/generators/cypress-component-configuration)\n\n{% /callout %}\n\n```json\n\"targets\": {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"apps/app/cypres.config.ts\",\n \"devServerTarget\": \"my-react-app:build\",\n \"testingType\": \"component\",\n \"skipServe\": true\n }\n }\n}\n```\n\nIt's important `skipServe` is set to true. Nx doesn't need to run the `devServerTarget`, Cypress creates its own dev server for component testing.\nInstead, Nx needs to know what build target to create the correct configuration to pass to Cypress, which is why it's still used in component testing.\n\n{% /tab %}\n{% /tabs %}\n\n### Environment Variables\n\nUsing [executor configurations](recipes/executors/use-executor-configurations#use-executor-configurations) offers flexibility to set environment variables\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"apps/app-e2e/cypres.config.ts\",\n \"devServerTarget\": \"my-react-app:serve\",\n \"testingType\": \"e2e\"\n },\n \"configurations\": {\n \"qa\": {\n \"env\": {\n \"API_URL\": \"https://api.qa.company.com\"\n }\n },\n \"dev\": {\n \"env\": {\n \"API_URL\": \"http://localhost:3333/api\"\n }\n }\n }\n }\n}\n```\n\nRead more on different ways to use [environment variables for cypress executor](/packages/cypress#environment-variables)\n" - }, - "description": "Run Cypress E2E tests.", - "aliases": [], - "hidden": false, - "path": "/packages/cypress/src/executors/cypress/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/cypress/generators/component-configuration.json b/docs/generated/packages/cypress/generators/component-configuration.json deleted file mode 100644 index e089357ceeb68..0000000000000 --- a/docs/generated/packages/cypress/generators/component-configuration.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "component-configuration", - "aliases": ["cypress-component-configuration"], - "factory": "./src/generators/component-configuration/component-configuration#componentConfigurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxCypressComponentConfiguration", - "cli": "nx", - "title": "Set up Cypress component testing for a project", - "description": "Set up Cypress component test for a project.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/cypress:component-configuration --project=my-cool-lib ", - "description": "Add cypress component testing to an existing project named my-cool-lib" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add cypress component testing to", - "$default": { "$source": "projectName" }, - "x-prompt": "What project should we add Cypress component testing to?" - }, - "bundler": { - "description": "The Cypress bundler to use.", - "type": "string", - "enum": ["vite", "webpack"], - "x-prompt": "Which Cypress bundler do you want to use for the dev-server?", - "default": "webpack" - }, - "directory": { - "type": "string", - "description": "A directory where the project is placed relative from the project root", - "default": "cypress" - }, - "jsx": { - "description": "Whether or not this project uses JSX.", - "type": "boolean", - "default": true - } - }, - "required": ["project"], - "examplesFile": "This is a framework-agnostic generator for adding component testing to a project.\n\n```bash\nnx g cypress-component-configuration --project=my-cool-project\n```\n\nRunning this generator, adds the required files to the specified project without any configurations for Cypress. It's best to use the framework specific generator, instead `cypress-component-configuration` directly\n\n- [React component testing](/packages/react/generators/cypress-component-configuration)\n- [Angular component testing](/packages/angular/generators/cypress-component-configuration)\n\nA new `component-test` target will be added to the specified project.\n\n```bash\nnx g component-test my-cool-project\n```\n\nRead more about [Cypress Component Testing](/cypress/cypress-component-testing)\n", - "presets": [] - }, - "description": "Set up Cypress Component Test for a project", - "hidden": true, - "implementation": "/packages/cypress/src/generators/component-configuration/component-configuration#componentConfigurationGeneratorInternal.ts", - "path": "/packages/cypress/src/generators/component-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/cypress/generators/configuration.json b/docs/generated/packages/cypress/generators/configuration.json deleted file mode 100644 index 4925f64b63b00..0000000000000 --- a/docs/generated/packages/cypress/generators/configuration.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "name": "configuration", - "aliases": ["cypress-e2e-configuration", "e2e", "e2e-config"], - "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxCypressE2EConfigGenerator", - "cli": "nx", - "title": "Add a Cypress Configuration.", - "description": "Add a Cypress configuration to an existing project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The project to add a Cypress configuration to", - "$default": { "$source": "projectName" }, - "x-priority": "important", - "x-prompt": "What project do you want to add Cypress to?" - }, - "devServerTarget": { - "type": "string", - "description": "A devServerTarget,':[:], that will be used to run tests against. This is usually the app this project will be used in. Pass --baseUrl if you wish to not use a devServerTarget.", - "x-priority": "important" - }, - "port": { - "oneOf": [ - { "type": "string", "enum": ["cypress-auto"] }, - { "type": "number" } - ], - "description": "Set the 'port' option on the e2e target. It's recommend to set a different port so you can run tests e2e targets in parallel. Most dev servers support using '0' to automatically find a free port. The value 'cypress-auto' can be used if the underlying dev server does not support automatically finding a free port.", - "x-priority": "important" - }, - "baseUrl": { - "type": "string", - "description": "The address (with the port) which your application is running on. If you wish to start your application when running the e2e target, then use --devServerTarget instead." - }, - "directory": { - "type": "string", - "description": "A directory where the project is placed relative from the project root", - "x-priority": "important", - "default": "cypress" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "js": { - "description": "Generate JavaScript files rather than TypeScript files.", - "type": "boolean", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "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 - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "rootProject": { - "description": "Create a application at the root of the workspace", - "type": "boolean", - "default": false, - "hidden": true, - "x-priority": "internal" - }, - "bundler": { - "description": "The Cypress bundler to use.", - "type": "string", - "enum": ["vite", "webpack", "none"], - "x-prompt": "Which Cypress bundler do you want to use?", - "default": "webpack" - }, - "jsx": { - "description": "Whether or not this project uses JSX.", - "type": "boolean", - "default": true - } - }, - "required": ["project"], - "examplesFile": "This is a generator to add a cypress e2e configuration to an existing project.\n\n```bash\nnx g @nx/cypress:configuration --project=my-cool-project --devServerTarget=some-app:serve\n```\n\nRunning this generator, adds the required files to run cypress tests for a project,\nMainly a `cypress.config.ts` file and default files in the `/cypress/` directory.\nTests will be located in `/cypress/e2e/*` by default.\n\nYou can customize the directory used via the `--directory` flag, the value is relative to the project root.\n\nFor example if you wanted to place the files inside an `e2e` folder\n\n```bash\nnx g @nx/cypress:configuration --project=my-cool-project --devServerTarget=some-app:serve --directory=e2e\n```\n\nProviding a `--devServerTarget` is optional if you provide a `--baseUrl` or the project you're adding the configuration to has a `serve` target already.\nOtherwise, a `--devServerTarget` is recommend for the `@nx/cypress:cypress` executor to spin up the dev server for you automatically when needed.\n\n## Feature Based Testing\n\nThis generator helps in creating feature based e2e/integration testing setups where you can place the feature tests in the same project as the feature library.\nThis differs from creating a separate e2e project that contained all tests for an application which can easily cause more tests to run than is strictly necessary.\n\nTake the following workspace where the `feature-cart` project is affected.\n\n{% graph height=\"450px\" %}\n\n```json\n{\n \"projects\": [\n {\n \"type\": \"app\",\n \"name\": \"fancy-app\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"app\",\n \"name\": \"fancy-app-e2e\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"lib\",\n \"name\": \"feature-user\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"lib\",\n \"name\": \"feature-dashboard\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"lib\",\n \"name\": \"feature-cart\",\n \"data\": {\n \"tags\": []\n }\n }\n ],\n \"groupByFolder\": false,\n \"workspaceLayout\": {\n \"appsDir\": \"apps\",\n \"libsDir\": \"libs\"\n },\n \"dependencies\": {\n \"fancy-app\": [\n {\n \"target\": \"feature-user\",\n \"source\": \"fancy-app\",\n \"type\": \"static\"\n },\n {\n \"target\": \"feature-cart\",\n \"source\": \"fancy-app\",\n \"type\": \"static\"\n }\n ],\n \"fancy-app-e2e\": [\n {\n \"target\": \"fancy-app\",\n \"source\": \"fancy-app-e2e\",\n \"type\": \"implicit\"\n }\n ],\n \"feature-user\": [\n {\n \"target\": \"feature-dashboard\",\n \"source\": \"feature-user\",\n \"type\": \"direct\"\n }\n ],\n \"feature-cart\": [],\n \"feature-dashboard\": []\n },\n \"affectedProjectIds\": [\"feature-cart\", \"fancy-app\", \"fancy-app-e2e\"]\n}\n```\n\n{% /graph %}\n\nIn this case, if tests for the all the `feature-*` projects where contained in the `fancy-app-e2e` project, then all of those features will be tested in the app, when only the `feature-cart` tests need to run.\n\nRunning these e2e/integration tests more often than they should results in longer CI times.\n\nBrining those e2e test closer to each feature can result is lowering CI times since we don't need to test those features if they did not change.\n\nBuilding this way leaves the `fancy-app-e2e` for mostly smoke type testing instead of more in-depth feature testing.\n\nUsing the `@nx/cypress:configuration` generator can help you accomplish this in your workspace.\n\n```bash\nnx g @nx/cypress:configuration --project=feature-cart --devServerTarget=fancy-app:serve\nnx g @nx/cypress:configuration --project=feature-user --devServerTarget=fancy-app:serve\nnx g @nx/cypress:configuration --project=feature-dashboard --devServerTarget=fancy-app:serve\n```\n\nEach project will now get their own `e2e` target, where the feature project is only concerned with itself. This allows for more focused tests without worrying about forcing unrelated tests to also run.\n\nIt's important to remember that these feature tests are still going to be leveraging the same app to run the tests against so if you plan to run in parallel, you can leverage using a file server and the ability for `@nx/cypress:cypress` executor to pass through a port or find a free port to allow running tests in parallel. Read more [about the --port flag](/packages/cypress/executors/cypress#port)\n", - "presets": [] - }, - "description": "Add a Cypress E2E Configuration to an existing project.", - "implementation": "/packages/cypress/src/generators/configuration/configuration#configurationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/cypress/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/cypress/generators/cypress-project.json b/docs/generated/packages/cypress/generators/cypress-project.json deleted file mode 100644 index 42b1e98c836ef..0000000000000 --- a/docs/generated/packages/cypress/generators/cypress-project.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "cypress-project", - "factory": "./src/generators/cypress-project/cypress-project#cypressProjectGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxCypressProjectGeneratorSchema", - "cli": "nx", - "title": "Create Cypress Configuration for the workspace", - "description": "Create Cypress Configuration for the workspace.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the frontend project to test.", - "$default": { "$source": "projectName" }, - "x-priority": "important" - }, - "baseUrl": { - "type": "string", - "description": "The address (with the port) which your application is running on." - }, - "name": { - "type": "string", - "description": "Name of the E2E Project.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the e2e project?" - }, - "directory": { - "type": "string", - "description": "A directory where the project is placed.", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "js": { - "description": "Generate JavaScript files rather than TypeScript files.", - "type": "boolean", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "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 - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "bundler": { - "description": "The Cypress bundler to use.", - "type": "string", - "enum": ["vite", "webpack", "none"], - "x-prompt": "Which Cypress bundler do you want to use?", - "default": "webpack" - } - }, - "required": ["name"], - "examplesFile": "Adding Cypress to an existing application requires two options. The name of the e2e app to create and what project that e2e app is for.\n\n```bash\nnx g configuration --name=my-app-e2e --project=my-app\n```\n\nWhen providing `--project` option, the generator will look for the `serve` target in that given project. This allows the [cypress executor](/packages/cypress/executors/cypress) to spin up the project and start the cypress runner.\n\nIf you prefer to not have the project served automatically, you can provide a `--base-url` argument in place of `--project`\n\n```bash\nnx g configuration --name=my-app-e2e --base-url=http://localhost:1234\n```\n\n{% callout type=\"note\" title=\"What about API Projects?\" %}\nYou can also run the `configuration` generator against API projects like a [Nest API](/packages/nest/generators/application#@nx/nest:application).\nIf there is a URL to visit then you can test it with Cypress!\n{% /callout %}\n\n## Using Cypress with Vite.js\n\nNow, you can generate your Cypress project with Vite.js as the bundler:\n\n```bash\nnx g configuration --name=my-app-e2e --project=my-app --bundler=vite\n```\n\nThis generator will pass the `bundler` information (`bundler: 'vite'`) to our `nxE2EPreset`, in your project's `cypress.config.ts` file (eg. `my-app-e2e/cypress.config.ts`).\n\n### Customizing the Vite.js configuration\n\nThe `nxE2EPreset` will then use the `bundler` information to generate the correct settings for your Cypress project to use Vite.js. In the background, the way this works is that it's using a custom Vite preprocessor for your files, that's called on the `file:preprocessor` event. If you want to customize this behaviour, you can do so like this in your project's `cypress.config.ts` file:\n\n```ts\nimport { defineConfig } from 'cypress';\nimport { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset';\n\nconst config = nxE2EPreset(__filename, { bundler: 'vite' });\nexport default defineConfig({\n e2e: {\n ...config,\n async setupNodeEvents(on, config) {\n // Ensure that `@nx/cypress` events are set up.\n await config.setupNodeEvents(on, config);\n\n // Your settings here\n },\n },\n});\n```\n", - "presets": [] - }, - "description": "Add a Cypress E2E Project.", - "hidden": true, - "implementation": "/packages/cypress/src/generators/cypress-project/cypress-project#cypressProjectGeneratorInternal.ts", - "aliases": [], - "path": "/packages/cypress/src/generators/cypress-project/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/cypress/generators/init.json b/docs/generated/packages/cypress/generators/init.json deleted file mode 100644 index 7a383e52da298..0000000000000 --- a/docs/generated/packages/cypress/generators/init.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#cypressInitGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxCypressInit", - "cli": "nx", - "title": "Add Cypress Configuration to the workspace", - "description": "Add Cypress Configuration to the workspace.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "presets": [] - }, - "description": "Initialize the `@nrwl/cypress` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/cypress/src/generators/init/init#cypressInitGeneratorInternal.ts", - "path": "/packages/cypress/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/cypress/generators/migrate-to-cypress-11.json b/docs/generated/packages/cypress/generators/migrate-to-cypress-11.json deleted file mode 100644 index 79704fcfe0d0d..0000000000000 --- a/docs/generated/packages/cypress/generators/migrate-to-cypress-11.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "migrate-to-cypress-11", - "factory": "./src/generators/migrate-to-cypress-11/migrate-to-cypress-11#migrateCypressProject", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxCypressMigrateTo11", - "cli": "nx", - "title": "Migrate e2e project to Cypress 11", - "description": "Migrate Cypress e2e project from v8/v9 to Cypress v11.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/cypress:migrate-to-cypress-11", - "description": "Migrate existing cypress projects to Cypress v11" - } - ], - "properties": {}, - "presets": [] - }, - "description": "Migrate existing Cypress e2e projects to Cypress v11", - "implementation": "/packages/cypress/src/generators/migrate-to-cypress-11/migrate-to-cypress-11#migrateCypressProject.ts", - "aliases": [], - "hidden": false, - "path": "/packages/cypress/src/generators/migrate-to-cypress-11/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/detox/documents/overview.md b/docs/generated/packages/detox/documents/overview.md deleted file mode 100644 index 051f8d646d709..0000000000000 --- a/docs/generated/packages/detox/documents/overview.md +++ /dev/null @@ -1,135 +0,0 @@ -Detox is gray box end-to-end testing and automation library for mobile apps. It has a lot of great features: - -- Cross Platform -- Runs on Devices -- Automatically Synchronized -- Test Runner Independent -- Debuggable - -## Setting Up Detox - -### Setup Environment - -#### Install applesimutils (Mac only) - -[applesimutils](https://github.com/wix/AppleSimulatorUtils) is a collection of utils for Apple simulators. - -```sh -brew tap wix/brew -brew install applesimutils -``` - -#### Install Jest Globally - -```sh -npm install -g jest -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/detox` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/detox` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/detox -``` - -This will install the correct version of `@nx/detox`. - -### How @nx/detox Infers Tasks - -The `@nx/detox` plugin will create a task for any project that has an ESLint configuration file present. Any of the following files will be recognized as an ESLint configuration file: - -- `.detoxrc.js` -- `.detoxrc.json` -- `detox.config.js` -- `detox.config.json` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/detox Configuration - -The `@nx/detox/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/detox/plugin", - "options": { - "buildTargetName": "build", - "startTargetName": "start", - "testTargetName": "test" - } - } - ] -} -``` - -Once a Detox configuration file has been identified, the targets are created with the name you specify under `buildTargetName`, `startTargetName` or `testTargetName` in the `nx.json` `plugins` array. The default names for the inferred targets are `build` and `test`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/detox` package with your package manager. - -```shell -npm add -D @nx/detox -``` - -### Generating Applications - -By default, when creating a mobile application, Nx will use Detox to create the e2e tests project. - -```shell -nx g @nx/react-native:app frontend --e2eTestRunner=deotx -nx g @nx/expo:app frontend --e2eTestRunner=detox -``` - -## Using Detox - -### Testing Applications - -- Run `nx test-ios frontend-e2e` to build the iOS app and execute e2e tests with Detox for iOS (Mac only) -- Run `nx test-android frontend-e2e` to build the Android app and execute e2e tests with Detox for Android - -You can run below commands: - -- `nx build-ios frontend-e2e`: build the iOS app (Mac only) -- `nx build-android frontend-e2e`: build the Android app - -### Testing against Prod Build - -You can run your e2e test against a production build: - -- `nx test-ios frontend-e2e --prod`: to build the iOS app and execute e2e tests with Detox for iOS with Release configuration (Mac only) -- `nx test-android frontend-e2e --prod`: to build the Android app and execute e2e tests with Detox for Android with release build type -- `nx build-ios frontend-e2e --prod`: build the iOS app using Release configuration (Mac only) -- `nx build-android frontend-e2e --prod`: build the Android app using release build type - -## Configuration - -### Using .detoxrc.json - -If you need to fine tune your Detox setup, you can do so by modifying `.detoxrc.json` in the e2e project. - -#### Change Testing Simulator/Emulator - -For iOS, in terminal, run `xcrun simctl list devices available` to view a list of simulators on your Mac. To open your active simulator, `run open -a simulator`. In `frontend-e2e/.detoxrc.json`, you could change the simulator under `devices.simulator.device`. - -For Android, in terminal, run `emulator -list-avds` to view a list of emulators installed. To open your emulator, run `emulator -avd `. In `frontend-e2e/.detoxrc.json`, you could change the simulator under `devices.emulator.device`. - -In addition, to override the device name specified in a configuration, you could use `--device-name` option: `nx test-ios --device-name "iPhone 11"`. The `device-name` property provides you the ability to test an application run on specific device. - -```shell -nx test-ios frontend-e2e --device-name "iPhone 11" -nx test-android frontend-e2e --device-name "Pixel_4a_API_30" -``` diff --git a/docs/generated/packages/detox/executors/build.json b/docs/generated/packages/detox/executors/build.json deleted file mode 100644 index ac5e12d0abd3f..0000000000000 --- a/docs/generated/packages/detox/executors/build.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "build", - "implementation": "/packages/detox/src/executors/build/build.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Run detox build", - "description": "Run detox build options.", - "type": "object", - "cli": "nx", - "properties": { - "detoxConfiguration": { - "type": "string", - "description": "Select a device configuration from your defined configurations, if not supplied, and there's only one configuration, detox will default to it.", - "alias": "C" - }, - "configPath": { - "type": "string", - "description": "Specify Detox config file path. If not supplied, detox searches for `.detoxrc[.js]` or `detox` section in `package.json`.", - "alias": "cp", - "x-completion-type": "file", - "x-completion-glob": ".detoxrc?(.js)" - } - }, - "required": [], - "presets": [] - }, - "description": "Run the command defined in build property of the specified configuration.", - "aliases": [], - "hidden": false, - "path": "/packages/detox/src/executors/build/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/detox/executors/test.json b/docs/generated/packages/detox/executors/test.json deleted file mode 100644 index f05398a1baf26..0000000000000 --- a/docs/generated/packages/detox/executors/test.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "name": "test", - "implementation": "/packages/detox/src/executors/test/test.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Run detox test", - "description": "Run detox test options.", - "type": "object", - "cli": "nx", - "presets": [ - { "name": "Test a Detox Configuration", "keys": ["detoxConfiguration"] }, - { "name": "Reuse Existing Installed App", "keys": ["reuse"] }, - { "name": "Set Log Level", "keys": ["loglevel"] } - ], - "properties": { - "detoxConfiguration": { - "type": "string", - "description": "Select a device configuration from your defined configurations, if not supplied, and there's only one configuration, detox will default to it.", - "alias": "C", - "examples": [ - "ios.sim.debug", - "ios.sim.release", - "android.emu.debug", - "android.emu.release" - ] - }, - "buildTarget": { - "type": "string", - "description": "Target which builds the application." - }, - "configPath": { - "type": "string", - "description": "Specify Detox config file path. If not supplied, detox searches for `.detoxrc[.js]` or `detox` section in package.json.", - "alias": "cp", - "x-completion-type": "file", - "x-completion-glob": ".detoxrc?(.js)", - "x-priority": "important" - }, - "loglevel": { - "type": "string", - "enum": ["fatal", "error", "warn", "info", "verbose", "trace"], - "description": "Log level: `fatal`, `error`, `warn`, `info`, `verbose`, `trace`.", - "alias": "l" - }, - "retries": { - "type": "number", - "description": "[Jest Circus Only] Re-spawn the test runner for individual failing suite files until they pass, or `` times at least." - }, - "reuse": { - "type": "boolean", - "description": "Reuse existing installed app (do not delete + reinstall) for a faster run.", - "default": false - }, - "cleanup": { - "type": "boolean", - "description": "Shutdown simulator when test is over, useful for CI scripts, to make sure detox exists cleanly with no residue", - "alias": "u" - }, - "debugSynchronization": { - "type": "boolean", - "description": "Customize how long an action/expectation can take to complete before Detox starts querying the app why it is busy. By default, the app status will be printed if the action takes more than 10s to complete.", - "alias": "d" - }, - "artifactsLocation": { - "type": "string", - "description": "Artifacts (logs, screenshots, etc) root directory.", - "alias": "a" - }, - "recordLogs": { - "type": "string", - "enum": ["failing", "all", "none"], - "description": "Save logs during each test to artifacts directory. Pass `failing` to save logs of failing tests only." - }, - "takeScreenshots": { - "type": "string", - "enum": ["manual", "failing", "all", "none"], - "description": "Save screenshots before and after each test to artifacts directory. Pass `failing` to save screenshots of failing tests only. " - }, - "recordVideos": { - "type": "string", - "enum": ["failing", "all", "none"], - "description": "Save screen recordings of each test to artifacts directory. Pass `failing` to save recordings of failing tests only." - }, - "recordPerformance": { - "type": "string", - "enum": ["all", "none"], - "description": "[iOS Only] Save Detox Instruments performance recordings of each test to artifacts directory." - }, - "captureViewHierarchy": { - "type": "string", - "enum": ["enabled", "disabled"], - "description": "[iOS Only] Capture `*.uihierarchy` snapshots on view action errors and `device.captureViewHierarchy()` calls." - }, - "jestReportSpecs": { - "type": "boolean", - "description": "[Jest Only] Whether to output logs per each running spec, in real-time. By default, disabled with multiple workers." - }, - "headless": { - "type": "boolean", - "description": "Android Only] Launch Emulator in headless mode. Useful when running on CI." - }, - "gpu": { - "type": "boolean", - "description": "[Android Only] Launch Emulator with the specific `-gpu [gpu mode]` parameter." - }, - "keepLockFile": { - "type": "boolean", - "description": "Keep the device lock file when running Detox tests." - }, - "deviceName": { - "type": "string", - "description": "Override the device name specified in a configuration. Useful for running a single build configuration on multiple devices.", - "alias": "n" - }, - "deviceBootArgs": { - "type": "string", - "description": "Custom arguments to pass (through) onto the device (emulator/simulator) binary when booted." - }, - "appLaunchArgs": { - "type": "number", - "description": "Custom arguments to pass (through) onto the app every time it is launched." - }, - "useCustomLogger": { - "type": "boolean", - "description": "Use Detox' custom console-logging implementation, for logging Detox (non-device) logs. Disabling will fallback to Node.js / test-runner's implementation (e.g. Jest / Mocha)." - }, - "forceAdbInstall": { - "type": "boolean", - "description": "Due to problems with the adb install command on Android, Detox resorts to a different scheme for install APK's. Setting true will disable that and force usage of `adb install`, instead." - }, - "inspectBrk": { - "type": "boolean", - "description": "Uses node's `--inspect-brk` flag to let users debug the jest/mocha test runner" - }, - "color": { "type": "boolean", "description": "Colors in log output" }, - "runnerConfig": { - "type": "string", - "description": "Test runner config file, defaults to `e2e/mocha.opts` for mocha and `e2e/config.json` for Jest.", - "alias": "o", - "x-deprecated": "Deprecated in Detox 20. It is default to jest.config.json. It could be specified in .detoxrc.json" - }, - "recordTimeline": { - "type": "string", - "enum": ["all", "none"], - "description": "[Jest Only] Record tests and events timeline, for visual display on the `chrome://tracing` tool.", - "x-deprecated": "Deprecated in Detox 20." - }, - "workers": { - "type": "number", - "description": "Specifies number of workers the test runner should spawn, requires a test runner with parallel execution support (Detox CLI currently supports Jest).", - "x-deprecated": "Deprecated in Detox 20." - }, - "deviceLaunchArgs": { - "type": "string", - "description": "A list of passthrough-arguments to use when (if) devices (Android emulator / iOS simulator) are launched by Detox.", - "x-deprecated": "Deprecated in Detox 20. Use `deviceBootArgs` instead." - } - }, - "required": ["detoxConfiguration"] - }, - "description": "Initiating your detox test suite.", - "aliases": [], - "hidden": false, - "path": "/packages/detox/src/executors/test/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/detox/generators/application.json b/docs/generated/packages/detox/generators/application.json deleted file mode 100644 index 5b7611478117b..0000000000000 --- a/docs/generated/packages/detox/generators/application.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#detoxApplicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "title": "Create Detox Configuration for the workspace", - "description": "Create Detox Configuration for the workspace.", - "type": "object", - "properties": { - "appProject": { - "type": "string", - "description": "Name of the frontend project to be tested.", - "$default": { "$source": "projectName" }, - "x-prompt": "What is the name of the frontend project to test?" - }, - "e2eName": { - "type": "string", - "description": "Name of the E2E Project.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the E2E project?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "appName": { - "type": "string", - "description": "Name of the app to be tested if different from appProject" - }, - "appDisplayName": { - "type": "string", - "description": "Display name of the app to be tested if different from appProject" - }, - "framework": { - "type": "string", - "description": "App framework to test", - "enum": ["react-native", "expo"], - "x-prompt": "What app framework should detox test?" - }, - "e2eDirectory": { - "type": "string", - "description": "A directory where the project is placed relative to apps directory." - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "js": { - "description": "Generate JavaScript files rather than TypeScript files.", - "type": "boolean", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "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 - } - }, - "required": ["e2eName", "appProject", "framework"], - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create a Detox application.", - "implementation": "/packages/detox/src/generators/application/application#detoxApplicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/detox/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/detox/generators/init.json b/docs/generated/packages/detox/generators/init.json deleted file mode 100644 index 8387f89511496..0000000000000 --- a/docs/generated/packages/detox/generators/init.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#detoxInitGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "title": "Add Detox Schematics", - "description": "Add Detox Schematics.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/detox` plugin.", - "hidden": true, - "implementation": "/packages/detox/src/generators/init/init#detoxInitGeneratorInternal.ts", - "aliases": [], - "path": "/packages/detox/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/devkit/documents/ngcli_adapter.md b/docs/generated/packages/devkit/documents/ngcli_adapter.md deleted file mode 100644 index 9bfb21f93f376..0000000000000 --- a/docs/generated/packages/devkit/documents/ngcli_adapter.md +++ /dev/null @@ -1,12 +0,0 @@ -# @nx/devkit - -## Table of contents - -### Classes - -- [NxScopedHost](../../devkit/documents/ngcli_adapter/NxScopedHost) - -### Functions - -- [mockSchematicsForTesting](../../devkit/documents/ngcli_adapter/mockSchematicsForTesting) -- [wrapAngularDevkitSchematic](../../devkit/documents/ngcli_adapter/wrapAngularDevkitSchematic) diff --git a/docs/generated/packages/devkit/documents/nx_devkit.md b/docs/generated/packages/devkit/documents/nx_devkit.md deleted file mode 100644 index 25f19c02c7193..0000000000000 --- a/docs/generated/packages/devkit/documents/nx_devkit.md +++ /dev/null @@ -1,158 +0,0 @@ -# @nx/devkit - -The Nx Devkit is the underlying technology used to customize Nx to support -different technologies and custom use-cases. It contains many utility -functions for reading and writing files, updating configuration, -working with Abstract Syntax Trees(ASTs), and more. - -As with most things in Nx, the core of Nx Devkit is very simple. -It only uses language primitives and immutable objects -(the tree being the only exception). - -## Table of contents - -### Enumerations - -- [ChangeType](../../devkit/documents/ChangeType) -- [DependencyType](../../devkit/documents/DependencyType) - -### Classes - -- [ProjectGraphBuilder](../../devkit/documents/ProjectGraphBuilder) -- [Workspaces](../../devkit/documents/Workspaces) - -### Interfaces - -- [CreateDependenciesContext](../../devkit/documents/CreateDependenciesContext) -- [CreateNodesContext](../../devkit/documents/CreateNodesContext) -- [CreateNodesResult](../../devkit/documents/CreateNodesResult) -- [DefaultTasksRunnerOptions](../../devkit/documents/DefaultTasksRunnerOptions) -- [ExecutorContext](../../devkit/documents/ExecutorContext) -- [ExecutorsJson](../../devkit/documents/ExecutorsJson) -- [FileChange](../../devkit/documents/FileChange) -- [FileData](../../devkit/documents/FileData) -- [FileMap](../../devkit/documents/FileMap) -- [GeneratorsJson](../../devkit/documents/GeneratorsJson) -- [Hash](../../devkit/documents/Hash) -- [HasherContext](../../devkit/documents/HasherContext) -- [ImplicitJsonSubsetDependency](../../devkit/documents/ImplicitJsonSubsetDependency) -- [JsonParseOptions](../../devkit/documents/JsonParseOptions) -- [JsonSerializeOptions](../../devkit/documents/JsonSerializeOptions) -- [MigrationsJson](../../devkit/documents/MigrationsJson) -- [NxAffectedConfig](../../devkit/documents/NxAffectedConfig) -- [NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration) -- [ProjectConfiguration](../../devkit/documents/ProjectConfiguration) -- [ProjectFileMap](../../devkit/documents/ProjectFileMap) -- [ProjectGraph](../../devkit/documents/ProjectGraph) -- [ProjectGraphDependency](../../devkit/documents/ProjectGraphDependency) -- [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) -- [ProjectGraphProcessorContext](../../devkit/documents/ProjectGraphProcessorContext) -- [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) -- [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations) -- [RemoteCache](../../devkit/documents/RemoteCache) -- [StringDeletion](../../devkit/documents/StringDeletion) -- [StringInsertion](../../devkit/documents/StringInsertion) -- [Target](../../devkit/documents/Target) -- [TargetConfiguration](../../devkit/documents/TargetConfiguration) -- [TargetDependencyConfig](../../devkit/documents/TargetDependencyConfig) -- [Task](../../devkit/documents/Task) -- [TaskGraph](../../devkit/documents/TaskGraph) -- [TaskHasher](../../devkit/documents/TaskHasher) -- [Tree](../../devkit/documents/Tree) -- [Workspace](../../devkit/documents/Workspace) - -### Type Aliases - -- [CreateDependencies](../../devkit/documents/CreateDependencies) -- [CreateNodes](../../devkit/documents/CreateNodes) -- [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) -- [CustomHasher](../../devkit/documents/CustomHasher) -- [DynamicDependency](../../devkit/documents/DynamicDependency) -- [Executor](../../devkit/documents/Executor) -- [Generator](../../devkit/documents/Generator) -- [GeneratorCallback](../../devkit/documents/GeneratorCallback) -- [Hasher](../../devkit/documents/Hasher) -- [ImplicitDependency](../../devkit/documents/ImplicitDependency) -- [ImplicitDependencyEntry](../../devkit/documents/ImplicitDependencyEntry) -- [NxPlugin](../../devkit/documents/NxPlugin) -- [NxPluginV1](../../devkit/documents/NxPluginV1) -- [NxPluginV2](../../devkit/documents/NxPluginV2) -- [PackageManager](../../devkit/documents/PackageManager) -- [PluginConfiguration](../../devkit/documents/PluginConfiguration) -- [ProjectGraphNode](../../devkit/documents/ProjectGraphNode) -- [ProjectTargetConfigurator](../../devkit/documents/ProjectTargetConfigurator) -- [ProjectType](../../devkit/documents/ProjectType) -- [RawProjectGraphDependency](../../devkit/documents/RawProjectGraphDependency) -- [StaticDependency](../../devkit/documents/StaticDependency) -- [StringChange](../../devkit/documents/StringChange) -- [TargetDefaults](../../devkit/documents/TargetDefaults) -- [TaskGraphExecutor](../../devkit/documents/TaskGraphExecutor) -- [ToJSOptions](../../devkit/documents/ToJSOptions) -- [WorkspaceJsonConfiguration](../../devkit/documents/WorkspaceJsonConfiguration) - -### Variables - -- [NX_VERSION](../../devkit/documents/NX_VERSION): string -- [appRootPath](../../devkit/documents/appRootPath): string -- [cacheDir](../../devkit/documents/cacheDir): string -- [logger](../../devkit/documents/logger): Object -- [output](../../devkit/documents/output): CLIOutput -- [workspaceRoot](../../devkit/documents/workspaceRoot): string - -### Functions - -- [addDependenciesToPackageJson](../../devkit/documents/addDependenciesToPackageJson) -- [addProjectConfiguration](../../devkit/documents/addProjectConfiguration) -- [applyChangesToString](../../devkit/documents/applyChangesToString) -- [convertNxExecutor](../../devkit/documents/convertNxExecutor) -- [convertNxGenerator](../../devkit/documents/convertNxGenerator) -- [createProjectFileMapUsingProjectGraph](../../devkit/documents/createProjectFileMapUsingProjectGraph) -- [createProjectGraphAsync](../../devkit/documents/createProjectGraphAsync) -- [defaultTasksRunner](../../devkit/documents/defaultTasksRunner) -- [detectPackageManager](../../devkit/documents/detectPackageManager) -- [ensurePackage](../../devkit/documents/ensurePackage) -- [extractLayoutDirectory](../../devkit/documents/extractLayoutDirectory) -- [formatFiles](../../devkit/documents/formatFiles) -- [generateFiles](../../devkit/documents/generateFiles) -- [getOutputsForTargetAndConfiguration](../../devkit/documents/getOutputsForTargetAndConfiguration) -- [getPackageManagerCommand](../../devkit/documents/getPackageManagerCommand) -- [getPackageManagerVersion](../../devkit/documents/getPackageManagerVersion) -- [getProjects](../../devkit/documents/getProjects) -- [getWorkspaceLayout](../../devkit/documents/getWorkspaceLayout) -- [glob](../../devkit/documents/glob) -- [hashArray](../../devkit/documents/hashArray) -- [installPackagesTask](../../devkit/documents/installPackagesTask) -- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled) -- [joinPathFragments](../../devkit/documents/joinPathFragments) -- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory) -- [names](../../devkit/documents/names) -- [normalizePath](../../devkit/documents/normalizePath) -- [offsetFromRoot](../../devkit/documents/offsetFromRoot) -- [parseJson](../../devkit/documents/parseJson) -- [parseTargetString](../../devkit/documents/parseTargetString) -- [readCachedProjectGraph](../../devkit/documents/readCachedProjectGraph) -- [readJson](../../devkit/documents/readJson) -- [readJsonFile](../../devkit/documents/readJsonFile) -- [readNxJson](../../devkit/documents/readNxJson) -- [readProjectConfiguration](../../devkit/documents/readProjectConfiguration) -- [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) -- [readTargetOptions](../../devkit/documents/readTargetOptions) -- [removeDependenciesFromPackageJson](../../devkit/documents/removeDependenciesFromPackageJson) -- [removeProjectConfiguration](../../devkit/documents/removeProjectConfiguration) -- [reverse](../../devkit/documents/reverse) -- [runExecutor](../../devkit/documents/runExecutor) -- [runTasksInSerial](../../devkit/documents/runTasksInSerial) -- [serializeJson](../../devkit/documents/serializeJson) -- [stripIndents](../../devkit/documents/stripIndents) -- [stripJsonComments](../../devkit/documents/stripJsonComments) -- [targetToTargetString](../../devkit/documents/targetToTargetString) -- [toJS](../../devkit/documents/toJS) -- [updateJson](../../devkit/documents/updateJson) -- [updateNxJson](../../devkit/documents/updateNxJson) -- [updateProjectConfiguration](../../devkit/documents/updateProjectConfiguration) -- [updateTsConfigsToJs](../../devkit/documents/updateTsConfigsToJs) -- [validateDependency](../../devkit/documents/validateDependency) -- [visitNotIgnoredFiles](../../devkit/documents/visitNotIgnoredFiles) -- [workspaceLayout](../../devkit/documents/workspaceLayout) -- [writeJson](../../devkit/documents/writeJson) -- [writeJsonFile](../../devkit/documents/writeJsonFile) diff --git a/docs/generated/packages/esbuild/documents/overview.md b/docs/generated/packages/esbuild/documents/overview.md deleted file mode 100644 index b734692982faf..0000000000000 --- a/docs/generated/packages/esbuild/documents/overview.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Overview of the Nx esbuild Plugin -description: The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild. This page also explains how to configure esbuild on your Nx workspace. ---- - -The Nx Plugin for [esbuild](https://esbuild.github.io/api/), an extremely fast JavaScript bundler. - -Why should you use this plugin? - -- _Fast_ builds using esbuild. -- Type-checking using TypeScript, which esbuild does not handle. -- Intelligent `package.json` output. -- Additional [assets](/nx-api/esbuild/executors/esbuild#assets) for the output. - -## Setting Up @nx/esbuild - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/esbuild` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/esbuild` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/esbuild -``` - -This will install the correct version of `@nx/esbuild`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/esbuild` package with your package manager. - -```shell -npm add -D @nx/esbuild -``` - -{% /tab %} -{% /tabs %} - -## Using the @nx/esbuild Plugin - -### Creating a new JS library - -{% callout type="note" title="Directory Flag Behavior Changes" %} -The command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, omit the `--directory` flag. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details. -{% /callout %} - -You can add a new library that builds using esbuild with: - -```shell -nx g @nx/js:lib mylib --directory=libs/mylib --bundler=esbuild -``` - -This command will install the esbuild plugin if needed, and set `@nx/esbuild:esbuild` executor for the `build` target. - -### Adding esbuild target to existing libraries - -If you already have a JS project that you want to use esbuild for, run this command: - -```shell -nx g @nx/esbuild:configuration mylib -``` - -This generator validates there isn't an existing `build` target. If you want to overwrite the existing target you can pass the `--skipValidation` option. - -```shell -nx g @nx/esbuild:configuration mylib --skipValidation -``` - -## Using esbuild - -You can run builds with: - -```shell -nx build mylib -``` - -Replace `mylib` with the name or your project. This command works for both applications and libraries. - -### Copying assets - -Assets are non-JS and non-TS files, such as images, CSS, etc. You can add them to the project configuration as follows. - -```jsonc -"build": { - "executor": "@nx/esbuild:esbuild", - "options": { - //... - "assets": [ - { "input": "libs/mylib", "glob": "README.md", "output": "/" }, - { "input": "libs/mylib", "glob": "logo.png", "output": "/" }, - { "input": "libs/mylib", "glob": "docs/**/*.md", "output": "/docs" }, - //... - ] - } -} -``` - -Running `nx build mylib` outputs something like this. - -```text -dist/libs/mylib/ -├── README.md -├── docs -│ ├── CONTRIBUTING.md -│ └── TESTING.md -├── index.js -├── logo.png -└── package.json -``` - -### Generating a metafile - -A metafile can be generated by passing the `--metafile` option. This file contains information about the build that can be analyzed by other tools, such as [bundle buddy](https://www.bundle-buddy.com/esbuild). - -```shell -nx build mylib --metafile -``` - -This command will generate a `meta.json` file in the output directory. - -```text -dist/libs/mylib/ -├── README.md -├── index.js -├── meta.json -└── package.json -``` - -### Custom esbuild options - -Extra API options for esbuild can be passed in the `esbuildOptions` object for your project configuration. - -```jsonc -"build": { - "executor": "@nx/esbuild:esbuild", - "options": { - //... - "esbuildOptions": { - "banner": { ".js": "// banner" }, - "footer": { ".js": "// footer" } - } - } -} -``` - -## More Documentation - -- [Using JS](/nx-api/js) diff --git a/docs/generated/packages/esbuild/executors/esbuild.json b/docs/generated/packages/esbuild/executors/esbuild.json deleted file mode 100644 index a90f1d4f4642f..0000000000000 --- a/docs/generated/packages/esbuild/executors/esbuild.json +++ /dev/null @@ -1,211 +0,0 @@ -{ - "name": "esbuild", - "implementation": "/packages/esbuild/src/executors/esbuild/esbuild.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "esbuild (experimental)", - "description": "Bundle a package for different platforms. Note: declaration (*.d.ts) file are not currently generated.", - "cli": "nx", - "type": "object", - "properties": { - "main": { - "type": "string", - "description": "The path to the entry file, relative to project.", - "alias": "entryFile", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.js|.ts)", - "x-priority": "important" - }, - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "outputFileName": { - "type": "string", - "description": "Name of the main output file. Defaults same basename as 'main' file." - }, - "tsConfig": { - "type": "string", - "description": "The path to tsconfig file.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "additionalEntryPoints": { - "type": "array", - "description": "List of additional entry points.", - "items": { "type": "string" }, - "default": [] - }, - "bundle": { - "type": "boolean", - "description": "Whether to bundle the main entry point and additional entry points. Set to false to keep individual output files.", - "default": true - }, - "format": { - "type": "array", - "description": "List of module formats to output. Defaults to matching format from tsconfig (e.g. CJS for CommonJS, and ESM otherwise).", - "alias": "f", - "items": { "type": "string", "enum": ["esm", "cjs"] }, - "default": ["esm"] - }, - "watch": { - "type": "boolean", - "description": "Enable re-building when files change.", - "default": false - }, - "assets": { - "type": "array", - "description": "List of static assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply `glob`. Defaults to the project root." - }, - "output": { - "type": "string", - "description": "Relative path within the output folder." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Remove previous output before build.", - "alias": "clean", - "default": true - }, - "external": { - "type": "array", - "description": "Mark one or more module as external. Can use * wildcards, such as '*.png'.", - "items": { "type": "string" } - }, - "outputHashing": { - "type": "string", - "description": "Define the output filename cache-busting hashing mode.", - "default": "none", - "enum": ["none", "all"] - }, - "metafile": { - "type": "boolean", - "description": "Generate a meta.json file in the output folder that includes metadata about the build. This file can be analyzed by other tools.", - "default": false - }, - "sourcemap": { - "oneOf": [ - { - "type": "string", - "enum": ["linked", "inline", "external", "both"] - }, - { "type": "boolean" } - ], - "alias": "sourceMap", - "description": "Generate sourcemap." - }, - "minify": { - "type": "boolean", - "description": "Minifies outputs.", - "default": false - }, - "platform": { - "type": "string", - "description": "Platform target for outputs.", - "enum": ["browser", "node", "neutral"], - "default": "node" - }, - "target": { - "type": "string", - "description": "The environment target for outputs.", - "default": "esnext" - }, - "skipTypeCheck": { - "type": "boolean", - "description": "Skip type-checking via TypeScript. Skipping type-checking speeds up the build but type errors are not caught.", - "default": false, - "x-priority": "internal" - }, - "generatePackageJson": { - "type": "boolean", - "description": "Generates a `package.json` and pruned lock file with the project's `node_module` dependencies populated for installing in a container. If a `package.json` exists in the project's directory, it will be reused with dependencies populated.", - "default": false - }, - "thirdParty": { - "type": "boolean", - "description": "Includes third-party packages in the bundle (i.e. npm packages)." - }, - "esbuildOptions": { - "type": "object", - "description": "Additional options to pass to esbuild. See https://esbuild.github.io/api/. Cannot be used with 'esbuildConfig' option.", - "additionalProperties": true, - "x-priority": "important" - }, - "esbuildConfig": { - "type": "string", - "description": "Path to a esbuild configuration file. See https://esbuild.github.io/api/. Cannot be used with 'esbuildOptions' option.", - "x-priority": "important" - } - }, - "required": ["tsConfig", "main", "outputPath"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply `glob`. Defaults to the project root." - }, - "output": { - "type": "string", - "description": "Relative path within the output folder." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "additionalProperties": true, - "examplesFile": "`/project.json`:\n\n```jsonc\n{\n //...\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\"\n }\n }\n }\n}\n```\n\n```bash\nnx build \n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"CommonJS output\" %}\n\nThe CommonJS format is required in some environments, such as Electron applications. By default, `esbuild` will use the ESM format, which is recommended for Web and Node applications. You may also output to multiple formats.\n\n```bash\nnx build --format=cjs\nnx build --format=esm,cjs\nnx build # defaults to es# defaults to esm\n```\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"format\": [\"esm\", \"cjs\"]\n}\n```\n\n{% /tab %}\n{% tab label=\"External packages\" %}\n\nYou can avoid packages from being bundled by providing the `external` option with a list of packages to skip.\n\nYou can also use `*` wildcard to match assets.\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"external\": [\"lodash\", \"*.png\"]\n}\n```\n\n{% /tab %}\n{% tab label=\"Skip type checking\" %}\n\nType checking is the slowest part of the build. You may want to skip type checking during build and run it as another job in CI.\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"skipTypeCheck\": true\n}\n```\n\n{% /tab %}\n{% tab label=\"Additional esbuild options\" %}\n\nAdditional [esbuild options](https://esbuild.github.io/api/) can be passed using `esbuildOptions` in your project configuration.\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"esbuildOptions\": {\n \"legalComments\": \"inline\"\n \"banner\": {\n \".js\": \"// banner\"\n },\n \"footer\": {\n \".js\": \"// footer\"\n }\n }\n}\n```\n\n{% /tab %}\n{% tabs %}\n", - "presets": [] - }, - "description": "Bundle a package using EsBuild.", - "aliases": [], - "hidden": false, - "path": "/packages/esbuild/src/executors/esbuild/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/esbuild/generators/configuration.json b/docs/generated/packages/esbuild/generators/configuration.json deleted file mode 100644 index 6df248a749c24..0000000000000 --- a/docs/generated/packages/esbuild/generators/configuration.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "configuration", - "aliases": ["esbuild-project"], - "factory": "./src/generators/configuration/configuration", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxEsBuildProject", - "cli": "nx", - "title": "Add esbuild configuration to a project", - "description": "Add esbuild configuration to a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "project", - "x-prompt": "What is the name of the project to set up a esbuild for?", - "x-priority": "important" - }, - "main": { - "type": "string", - "description": "Path relative to the workspace root for the main entry file. Defaults to `/src/main.ts` or `src/index.ts`, whichever is found.", - "alias": "entryFile", - "x-priority": "important" - }, - "tsConfig": { - "type": "string", - "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to `/tsconfig.app.json` or `/tsconfig.lib.json`, whichever is found.", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "skipValidation": { - "type": "boolean", - "default": false, - "description": "Do not perform any validation on existing project.", - "x-priority": "internal" - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`." - }, - "platform": { - "type": "string", - "description": "Platform target for outputs.", - "enum": ["browser", "node", "neutral"], - "default": "node" - }, - "buildTarget": { - "description": "The build target to add.", - "type": "string", - "default": "build" - } - }, - "required": [], - "examplesFile": "```bash\nnx g @nx/esbuild:configuration my-package\n```\n\n{% callout type=\"note\" title=\"Overwriting existing build option\" %}\nThe `configuration` generator validates that an existing `build` target isn't already defined for the project. If you are adding esbuild to a project with an existing `build` target, pass the `--skipValidation` option.\n{% /callout %}\n\nYou may also provide a custom main entry file, or a custom tsconfig file if the defaults don't work. By default, the generator will look for a main file matching `src/index.ts` or `src/main.ts`, and a tsconfig file matching `tsconfig.app.json` or `tsconfig.lib.json`.\n\n```bash\nnx g @nx/esbuild:configuration my-package \\\n--main=packages/my-package/src/entry.ts \\\n--tsConfig=packages/my-package/tsconfig.custom.json\n```\n", - "presets": [] - }, - "description": "Add esbuild configuration to a project.", - "implementation": "/packages/esbuild/src/generators/configuration/configuration.ts", - "hidden": false, - "path": "/packages/esbuild/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/esbuild/generators/init.json b/docs/generated/packages/esbuild/generators/init.json deleted file mode 100644 index e272a800b360d..0000000000000 --- a/docs/generated/packages/esbuild/generators/init.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#esbuildInitGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxEsbuildInit", - "cli": "nx", - "title": "Init Esbuild Plugin", - "description": "Init Esbuild Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/esbuild` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/esbuild/src/generators/init/init#esbuildInitGenerator.ts", - "path": "/packages/esbuild/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/eslint-plugin/documents/dependency-checks.md b/docs/generated/packages/eslint-plugin/documents/dependency-checks.md deleted file mode 100644 index 1a571d8a4dd5d..0000000000000 --- a/docs/generated/packages/eslint-plugin/documents/dependency-checks.md +++ /dev/null @@ -1,85 +0,0 @@ -# Dependency Checks rule - -The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project depends on. If your project is using, for example, the `axios`, but the `package.json` does not specify it as a dependency, your library might not work correctly. This rule helps catch these problems before your users do. - -The rule uses the project graph to collect all the dependencies of your project, based on the input of your `build` target. It will filter out all the dependencies marked as `devDependencies` in your root `package.json` to ensure dependencies of your compilation pipelines (e.g. dependencies of `webpack.config` or `vite.config`) or test setups are not included in the expected list. - -We use the version numbers of the installed packages when checking whether the version specifier in `package.json` is correct. We do this because this is the only version for which we can "guarantee" that things work and were tested. If you specify a range outside of that version, that would mean that you are shipping potentially untested code. - -## Usage - -Library generators from `@nx` packages will configure this rule automatically when you opt-in for bundler/build setup. This rule is intended for publishable/buildable libraries, so it will only run if a `build` target is detected in the configuration (this name can be modified - see [options](#options)). - -### Manual setup - -To set it up manually for existing libraries, you need to add the `dependency-checks` rule to your project's ESLint configuration: - -```jsonc {% fileName="/.eslintrc.json" %} -{ - // ... more ESLint config here - "overrides": [ - { - "files": ["*.json"], - "parser": "jsonc-eslint-parser", - "rules": { - "@nx/dependency-checks": "error" - } - } - // ... more ESLint overrides here - ] -} -``` - -Additionally, you need to adjust your `lintFilePatterns` to include the project's `package.json` file:: - -```jsonc {% fileName="/project.json" %} -{ - // ... project.json config - "targets": { - // ... more targets - "lint": { - "executor": "@nx/eslint:lint", - "outputs": ["{options.outputFile}"], - "options": { - "lintFilePatterns": [ - "libs/my-lib/**/*.{ts,tsx,js,jsx}", - "libs/my-lib/package.json" // add this line - ] - } - } - } -} -``` - -### Overriding defaults - -Sometimes we intentionally want to add or remove a dependency from our `package.json` despite what the rule suggests. We can use the rule's options to override default behavior: - -```jsonc {% fileName=".eslintrc.json" %} -{ - "@nx/dependency-checks": [ - "error", - { - "buildTargets": ["build", "custom-build"], // add non standard build target names - "ignoredDependencies": ["lodash"], // these libs will be omitted from checks - "includeTransitiveDependencies": true, // collect dependencies transitively from children - "ignoredFiles": ["webpack.config.js", "eslint.config.js"], // list of files that should be skipped for check - "checkMissingDependencies": true, // toggle to disable - "checkObsoleteDependencies": true, // toggle to disable - "checkVersionMismatches": true // toggle to disable - } - ] -} -``` - -## Options - -| Property | Type | Default | Description | -| ----------------------------- | --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| buildTargets | _Array_ | _["build"]_ | List of build target names | -| ignoredDependencies | _Array_ | _[]_ | List of dependencies to ignore for checks | -| includeTransitiveDependencies | _boolean_ | _false_ | Enable to collect dependencies of children projects | -| ignoredFiles | _Array_ | N/A | List of files to ignore when collecting dependencies. The default value will be set based on the selected executor during the generation. | -| checkMissingDependencies | _boolean_ | _true_ | Disable to skip checking for missing dependencies | -| checkObsoleteDependencies | _boolean_ | _true_ | Disable to skip checking for unused dependencies | -| checkVersionMismatches | _boolean_ | _true_ | Disable to skip checking if version specifier matches installed version | diff --git a/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md b/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md deleted file mode 100644 index 0c2d127ad7383..0000000000000 --- a/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md +++ /dev/null @@ -1,61 +0,0 @@ -# Enforce module boundaries rule - -The `@nx/enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps to prevent unplanned cross-dependencies. - -## Usage - -You can use the `enforce-module-boundaries` rule by adding it to your ESLint rules configuration: - -```jsonc -{ - // ... more ESLint config here - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": { - "@nx/enforce-module-boundaries": [ - "error", - { - // ...rule specific configuration - } - ] - } - } - // ... more ESLint overrides here - ] -} -``` - -## Options - -| Property | Type | Default | Description | -| ---------------------------------- | --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| allow | _Array_ | _[]_ | List of imports that should be allowed without any checks | -| allowCircularSelfDependency | _boolean_ | _false_ | Disable check for self circular dependency when project imports from itself via alias path | -| banTransitiveDependencies | _boolean_ | _false_ | Ban import of dependencies that were not specified in the root or project's `package.json` | -| checkDynamicDependenciesExceptions | _Array_ | _[]_ | List of imports that should be skipped for `Imports of lazy-loaded libraries forbidden` checks. E.g. `['@myorg/lazy-project/component/*', '@myorg/other-project']` | -| checkNestedExternalImports | _boolean_ | _false_ | Enable to enforce the check for banned external imports in the nested packages. Check [Dependency constraits](#dependency-constraits) for more information | -| enforceBuildableLibDependency | _boolean_ | _false_ | Enable to restrict the buildable libs from importing non-buildable libraries | -| depConstraints | _Array_ | _[]_ | List of dependency constraints between projects | - -### Dependency constraints - -The `depConstraints` is an array of objects representing the constraints defined between source and target projects. A constraint must include `sourceTag` or `allSourceTags`. The constraints are applied with **AND** logical operation - for given `source` project the resulting constraints would be **all** that match its tags. - -| Property | Type | Description | -| ------------------------ | --------------- | ---------------------------------------------------------------------------------- | -| sourceTag | _string_ | Tag that source project must contain to match the constraint | -| allSourceTags | _Array_ | List of tags the source project must contain to match the constraint | -| onlyDependOnLibsWithTags | _Array_ | The source **can depend only** on projects that contain at least one of these tags | -| notDependOnLibsWithTags | _Array_ | The source **can not depend** on projects that contain at least one of these tags | -| allowedExternalImports | _Array_ | Exclusive list of external (npm) packages that are allowed to be imported | -| bannedExternalImports | _Array_ | List of external (npm) packages that are banned from importing | - -Read more about the proper usage of this rule: - -- [Enforce Module Boundaries](/features/enforce-module-boundaries) -- [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags) -- [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions) -- [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports) -- [Tags Allow List](/recipes/enforce-module-boundaries/tags-allow-list) -- [Taming Code Organization with Module Boundaries in Nx](https://blog.nrwl.io/mastering-the-project-boundaries-in-nx-f095852f5bf4) diff --git a/docs/generated/packages/eslint-plugin/documents/overview.md b/docs/generated/packages/eslint-plugin/documents/overview.md deleted file mode 100644 index 297855bec6aad..0000000000000 --- a/docs/generated/packages/eslint-plugin/documents/overview.md +++ /dev/null @@ -1,72 +0,0 @@ -The `@nx/eslint-plugin` package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as the following Nx-specific ESLint rules: - -- [enforce-module-boundaries](#enforce-module-boundaries-rule) -- [dependency-checks](#dependency-checks-rule) - -## Setting Up ESLint Plugin - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/eslint-plugin` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/eslint-plugin` by running the following commands if the package is not already installed: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/eslint-plugin -``` - -This will install the correct version of `@nx/eslint-plugin`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/eslint-plugin` package with your package manager. - -```shell -npm add -D @nx/eslint-plugin -``` - -{% /tab %} -{% /tabs %} - -## Included plugins - -The plugin contains the following rule configurations divided into sub-plugins. - -### JavaScript - -The `@nx/javascript` ESLint plugin contains best practices when using JavaScript. - -### TypeScript - -The `@nx/typescript` ESLint plugin contains best practices when using TypeScript. - -### Angular - -Contains configurations matching best practices when using Angular framework: - -- `@nx/angular` -- `@nx/angular-template` - -### React - -Contains configurations matching best practices when using React framework: - -- `@nx/react-base` -- `@nx/react-jsx` -- `@nx/react-typescript` - -You can also use `@nx/react` which includes all three `@nx/react-*` plugins - -### Enforce Module Boundaries rule - -The `enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps prevent unplanned cross-dependencies. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/enforce-module-boundaries). - -### Dependency Checks rule - -The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project actually depends on. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/dependency-checks). diff --git a/docs/generated/packages/eslint/documents/overview.md b/docs/generated/packages/eslint/documents/overview.md deleted file mode 100644 index f4795264c37b6..0000000000000 --- a/docs/generated/packages/eslint/documents/overview.md +++ /dev/null @@ -1,94 +0,0 @@ -The ESLint plugin integrates [ESLint](https://eslint.org/) with Nx. It allows you to run ESLint through Nx with caching enabled. It also includes code generators to help you set up ESLint in your workspace. - -## Setting Up @nx/eslint - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/eslint` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/eslint` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/eslint -``` - -This will install the correct version of `@nx/eslint`. - -### How @nx/eslint Infers Tasks - -The `@nx/eslint` plugin will create a task for any project that has an ESLint configuration file present. Any of the following files will be recognized as an ESLint configuration file: - -- `.eslintrc` -- `.eslintrc.js` -- `.eslintrc.cjs` -- `.eslintrc.yaml` -- `.eslintrc.yml` -- `.eslintrc.json` -- `eslint.config.js` - -Because ESLint applies configuration files to all subdirectories, the `@nx/eslint` plugin will also infer tasks for projects in subdirectories. So, if there is an ESLint configuration file in the root of the repository, every project will have an inferred ESLint task. - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/eslint Configuration - -The `@nx/eslint/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/eslint/plugin", - "options": { - "targetName": "lint" - } - } - ] -} -``` - -- The `targetName` option controls the name of the inferred ESLint tasks. The default name is `lint`. - -{% /tab %} -{% tab label="Nx 17" %} - -Install the `@nx/eslint` package with your package manager. - -```shell {% skipRescope=true %} -npm add -D @nx/eslint -``` - -{% /tab %} -{% tab label="Nx < 17" %} - -Install the `@nx/linter` package with your package manager. - -```shell -npm add -D @nx/linter -``` - -{% /tab %} -{% /tabs %} - -## Lint - -You can lint an application or a library with the following command: - -```shell -nx lint my-project -``` - -## Utils - -- [convert-to-flat-config](/nx-api/eslint/generators/convert-to-flat-config) - Converts the workspace's [ESLint](https://eslint.org/) configs to the new [Flat Config](https://eslint.org/blog/2022/08/new-config-system-part-2) - -## ESLint plugin - -Read about our dedicated ESLint plugin - [eslint-plugin-nx](/nx-api/eslint-plugin/documents/overview). diff --git a/docs/generated/packages/eslint/executors/lint.json b/docs/generated/packages/eslint/executors/lint.json deleted file mode 100644 index f07d5e02f618f..0000000000000 --- a/docs/generated/packages/eslint/executors/lint.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "name": "lint", - "implementation": "/packages/eslint/src/executors/lint/lint.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "title": "ESLint Lint Target", - "description": "ESLint Lint Target.", - "cli": "nx", - "type": "object", - "properties": { - "eslintConfig": { - "type": "string", - "description": "The name of the ESLint configuration file.", - "x-completion-type": "file", - "x-completion-glob": ".eslintrc?(.json)", - "x-priority": "important" - }, - "lintFilePatterns": { - "type": "array", - "description": "One or more files/dirs/globs to pass directly to ESLint's `lintFiles()` method.", - "default": ["{projectRoot}"], - "items": { "type": "string" } - }, - "format": { - "type": "string", - "description": "ESLint Output formatter (https://eslint.org/docs/user-guide/formatters).", - "default": "stylish", - "anyOf": [ - { - "enum": [ - "stylish", - "compact", - "codeframe", - "unix", - "visualstudio", - "table", - "checkstyle", - "html", - "jslint-xml", - "json", - "json-with-metadata", - "junit", - "tap" - ] - }, - { "minLength": 1 } - ], - "x-priority": "important" - }, - "force": { - "type": "boolean", - "description": "Succeeds even if there was linting errors.", - "default": false - }, - "silent": { - "type": "boolean", - "description": "Hide output text.", - "default": false - }, - "fix": { - "type": "boolean", - "description": "Fixes linting errors (may overwrite linted files).", - "default": false, - "x-priority": "important" - }, - "cache": { - "type": "boolean", - "description": "Only check changed files.", - "default": false - }, - "cacheLocation": { - "type": "string", - "description": "Path to the cache file or directory.", - "x-completion-type": "directory", - "x-completion-glob": "tsconfig.*.json" - }, - "outputFile": { - "type": "string", - "description": "File to write report to.", - "x-completion-type": "file" - }, - "maxWarnings": { - "type": "number", - "description": "Number of warnings to trigger nonzero exit code - default: `-1`.", - "default": -1 - }, - "quiet": { - "type": "boolean", - "description": "Report errors only - default: `false`.", - "default": false, - "x-priority": "important" - }, - "ignorePath": { - "type": "string", - "description": "The path of the `.eslintignore` file. Not supported for Flat Config.", - "x-completion-type": "file", - "x-completion-glob": ".eslintignore" - }, - "noEslintrc": { - "type": "boolean", - "description": "The equivalent of the `--no-eslintrc` flag on the ESLint CLI, it is `false` by default.", - "default": false - }, - "hasTypeAwareRules": { - "type": "boolean", - "description": "When set to `true`, the linter will invalidate its cache when any of its dependencies changes." - }, - "cacheStrategy": { - "type": "string", - "description": "Strategy to use for detecting changed files in the cache.", - "default": "metadata", - "enum": ["metadata", "content"] - }, - "rulesdir": { - "type": "array", - "description": "The equivalent of the `--rulesdir` flag on the ESLint CLI.", - "default": [], - "items": { "type": "string", "x-completion-type": "directory" } - }, - "resolvePluginsRelativeTo": { - "type": "string", - "description": "The equivalent of the `--resolve-plugins-relative-to` flag on the ESLint CLI. Not supported for Flat Config.", - "x-completion-type": "directory" - }, - "reportUnusedDisableDirectives": { - "type": "string", - "enum": ["off", "warn", "error"], - "description": "The equivalent of the `--report-unused-disable-directives` flag on the ESLint CLI." - }, - "printConfig": { - "type": "string", - "description": "The equivalent of the `--print-config` flag on the ESLint CLI.", - "x-completion-type": "file" - }, - "errorOnUnmatchedPattern": { - "type": "boolean", - "description": "When set to false, equivalent of the `--no-error-on-unmatched-pattern` flag on the ESLint CLI.", - "default": true - } - }, - "examplesFile": "Linter can be configured in multiple ways. The basic way is to provide only `lintFilePatterns`, which is a mandatory property. This tells us where to look for files to lint.\n\n`project.json`:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"]\n }\n}\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Fixing linter issues\" %}\n\nLinter provides an automated way of fixing known issues. To ensure that those changes are properly cached, we need to add an `outputs` property to the `lint` target. Omitting the `outputs` property would produce an invalid cache record. Both of these properties are set by default when scaffolding a new project.\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"]\n }\n}\n```\n\nWith these settings, we can run the command with a `--fix` flag:\n\n```bash\nnx run frontend:lint --fix\n```\n\nWe can also set this flag via project configuration to always fix files when running lint:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"fix\": true\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Custom output format\" %}\n\nESLint executor uses the `stylish` output format by default. You can change this by specifying the `format` property:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"format\": \"compact\"\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Silence warnings\" %}\n\nMigrated or legacy projects tend to have an overwhelming amount of lint errors. We might want to change those temporarily to be warnings so they don't block the development. But they would still clutter the report. We can run the command with `--quiet` to hide warning (errors would still break the lint):\n\n```bash\nnx run frontend:lint --quiet\n```\n\nWe can also set this via project configuration as a default option.\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"quiet\": true\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Flat Config file\" %}\n\n`ESLint` provides several ways of specifying the configuration. The default one is using `.eslintrc.json` but you can override it by setting the `eslintConfig` flag. The new `Flat Config` is now also supported:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"eslintConfig\": \"eslint.config.js\"\n }\n}\n```\n\n**Note:** In contrast to other configuration formats, the `Flat Config` requires that all configuration files are converted to `eslint.config.js`. Built-in migrations and generators support only `.eslintrc.json` at the moment.\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "hasher": "./src/executors/lint/hasher", - "description": "Run ESLint on a project.", - "aliases": [], - "hidden": false, - "path": "/packages/eslint/src/executors/lint/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/eslint/generators/convert-to-flat-config.json b/docs/generated/packages/eslint/generators/convert-to-flat-config.json deleted file mode 100644 index 03ad486e88255..0000000000000 --- a/docs/generated/packages/eslint/generators/convert-to-flat-config.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "convert-to-flat-config", - "factory": "./src/generators/convert-to-flat-config/generator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "ConvertToFlatConfig", - "cli": "nx", - "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", - "type": "object", - "properties": { - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": [], - "presets": [] - }, - "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", - "implementation": "/packages/eslint/src/generators/convert-to-flat-config/generator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint/src/generators/convert-to-flat-config/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/eslint/generators/init.json b/docs/generated/packages/eslint/generators/init.json deleted file mode 100644 index 28e2fd64100e0..0000000000000 --- a/docs/generated/packages/eslint/generators/init.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#initEsLint", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxESLintInit", - "title": "Initialize ESLint Plugin", - "description": "Set up the ESLint plugin.", - "type": "object", - "properties": { - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Set up the ESLint plugin.", - "hidden": true, - "implementation": "/packages/eslint/src/generators/init/init#initEsLint.ts", - "aliases": [], - "path": "/packages/eslint/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/eslint/generators/workspace-rule.json b/docs/generated/packages/eslint/generators/workspace-rule.json deleted file mode 100644 index 3ad8134f13d37..0000000000000 --- a/docs/generated/packages/eslint/generators/workspace-rule.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "workspace-rule", - "factory": "./src/generators/workspace-rule/workspace-rule#lintWorkspaceRuleGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceRule", - "cli": "nx", - "title": "Create a new Workspace Lint Rule", - "description": "Create a new Workspace Lint Rule.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the new rule.", - "$default": { "$source": "argv", "index": 0 } - }, - "directory": { - "type": "string", - "description": "Create the rule under this directory within `tools/eslint-rules/` (can be nested).", - "alias": "dir", - "default": "rules" - } - }, - "required": ["name", "directory"], - "examplesFile": "{% tabs %}\n{% tab label=\"Create rule\" %}\n\nThis command will generate a new workspace lint rule called `my-custom-rule`. The new rule will be generated in `tools/eslint-rules/rules` folder:\n\n```shell\nnx g @nx/eslint:workspace-rule my-custom-rule\n```\n\n{% /tab %}\n{% tab label=\"Custom sub-folder\" %}\n\nWe can change the default sub-folder from `rules` and specify a custom one:\n\n```shell\nnx g @nx/eslint:workspace-rule --name=my-custom-rule --directory=my/custom/path\n```\n\nThe command above will generate the rule in `tools/eslint-rules/my/custom/path` folder.\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "description": "Create a new Workspace ESLint rule.", - "implementation": "/packages/eslint/src/generators/workspace-rule/workspace-rule#lintWorkspaceRuleGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint/src/generators/workspace-rule/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/eslint/generators/workspace-rules-project.json b/docs/generated/packages/eslint/generators/workspace-rules-project.json deleted file mode 100644 index 5d9d133e6a9d2..0000000000000 --- a/docs/generated/packages/eslint/generators/workspace-rules-project.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "workspace-rules-project", - "factory": "./src/generators/workspace-rules-project/workspace-rules-project#lintWorkspaceRulesProjectGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceRulesProject", - "cli": "nx", - "title": "Create the Workspace Lint Rules Project", - "description": "Create the Workspace Lint Rules Project.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/eslint:workspace-rules-project", - "description": "Create the Workspace Lint Rules Project" - } - ], - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": [], - "presets": [] - }, - "description": "Create the Workspace Lint Rules Project.", - "hidden": true, - "implementation": "/packages/eslint/src/generators/workspace-rules-project/workspace-rules-project#lintWorkspaceRulesProjectGenerator.ts", - "aliases": [], - "path": "/packages/eslint/src/generators/workspace-rules-project/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/expo/documents/overview.md b/docs/generated/packages/expo/documents/overview.md deleted file mode 100644 index 1d758055c640b..0000000000000 --- a/docs/generated/packages/expo/documents/overview.md +++ /dev/null @@ -1,354 +0,0 @@ -Expo is an open-source framework for apps that run natively on Android, iOS, and the web. Expo brings together the best of mobile and the web and enables many important features for building and scaling an app. - -Expo is a set of tools built on top of React Native. The Nx Plugin for Expo contains generators for managing Expo applications and libraries within an Nx workspace. - -## Setting Up Expo - -To create a new workspace with Expo, run the following command: - -```shell - npx create-nx-workspace@latest --preset=expo --appName=your-app-name -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/expo` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/expo` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/expo -``` - -This will install the correct version of `@nx/expo`. - -### How @nx/expo Infers Tasks - -The `@nx/expo` plugin will create a task for any project that has an app configuration file present. Any of the following files will be recognized as an app configuration file: - -- `app.config.js` -- `app.json` - -In the app config file, it needs to have key `expo`: - -```json -{ - "expo": { - "name": "MyProject", - "slug": "my-project" - } -} -``` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/expo Configuration - -The `@nx/expo/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/expo/plugin", - "options": { - "startTargetName": "start", - "serveTargetName": "serve", - "runIosTargetName": "run-ios", - "runAndroidTargetName": "run-android", - "exportTargetName": "export", - "prebuildTargetName": "prebuild", - "installTargetName": "install", - "buildTargetName": "build", - "submitTargetName": "submit" - } - } - ] -} -``` - -Once a Expo configuration file has been identified, the targets are created with the name you specify under `startTargetName`, `serveTargetName`, `runIosTargetName`, `runAndroidTargetname`, `exportTargetName`, `prebuildTargetName`, `installTargetName`, `buildTargetName` or `submitTargetName` in the `nx.json` `plugins` array. The default names for the inferred targets are `start`, `serve`, `run-ios`, `run-anroid`, `export`, `prebuild`, `install`, `build` and `submit`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/expo` package with your package manager. - -```shell -npm add -D @nx/expo -``` - -### Creating Applications - -Add a new application to your workspace with the following command: - -```shell -nx g @nx/expo:app my-app -``` - -Start the application by running: - -```shell -nx start my-app -``` - -### Generating Libraries - -To generate a new library run: - -```shell -npx nx g @nx/expo:lib your-lib-name -``` - -### Generating Components - -To generate a new component inside library run: - -```shell -npx nx g @nx/expo:component your-component-name --project=your-lib-name --export -``` - -Replace `your-lib-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json` - -## Using Expo - -### Start a Development Server - -You can start a development server by running: - -```shell -nx start -``` - -### Compile App Locally - -You can compile your app locally with `run-ios` and `run-android` commands: - -{% tabs %} -{%tab label="iOS"%} - -Compile for iOS: - -```shell -nx run-ios -``` - -{% /tab %} -{%tab label="Android"%} - -Compile for Android: - -```shell -nx run-android -``` - -{% /tab %} -{% /tabs %} - -To run these commands, you need to have your development environment setup. To run an iOS app,it can only be run on a Mac, and Xcode must be installed. Similarly, to run an Android app, it requires Android Studio and Java to be installed and configured on your computer. Setup steps: https://reactnative.dev/docs/environment-setup. - -### Compile Web Assets - -You can build your JavaScript bundle using Metro bundler by running: - -```shell -nx export -``` - -{% tabs %} -{%tab label="All Platforms"%} - -Compile for all platforms: - -```shell -nx export --platform=all -``` - -{% /tab %} -{%tab label="iOS"%} - -Compile for iOS: - -```shell -nx export --platform=ios -``` - -{% /tab %} -{%tab label="Android"%} - -Compile for Android: - -```shell -nx export --platform=android -``` - -{% /tab %} -{%tab label="Web"%} - -Compile for Web: - -```shell -nx export --platform=web -``` - -{% /tab %} -{% /tabs %} - -### Generate Native Code - -To generate native code, run: - -```shell -nx prebuild -``` - -{% tabs %} -{%tab label="All Platforms"%} - -Generate for all platforms: - -```shell -nx prebuild --platform=all -``` - -{% /tab %} -{%tab label="iOS"%} - -Generate for iOS: - -```shell -nx prebuild --platform=ios -``` - -{% /tab %} -{%tab label="Android"%} - -Generate for Android: - -```shell -nx prebuild --platform=android -``` - -{% /tab %} -{% /tabs %} - -### Install Compatible NPM Packages - -To install packages that is compatible with current version of Expo, run: - -```shell -nx install -``` - -Unlike npm's `install` command, this `install` command will install the exact right version for currently installed copy of Expo. - -To install a specify NPM package, run: - -```shell -nx install --packages= -nx install --packages=,, -``` - -To check and fix package versions, run: - -{% tabs %} -{%tab label="check"%} - -Check which packages needed to be updated: - -```shell -nx install --check -``` - -{% /tab %} -{%tab label="fix"%} - -Automatically update invalid packages versions: - -```shell -nx install --fix -``` - -{% /tab %} -{% /tabs %} - -### Run an EAS Build - -Expo Application Services (EAS) are deeply integrated cloud services for Expo and React Native apps. EAS Build is a hosted service for building app binaries for your Expo and React Native projects. - -To run an EAS build: - -```shell -nx build -``` - -If you are not signed into an EAS account, run the following command to log in: - -```shell -npx eas login -``` - -To check the details of your build status, run: - -```shell -nx build-list -``` - -### Submit an EAS Build - -EAS Submit is a hosted service for uploading and submitting your app binaries to the app stores. Since it's a hosted service, you can submit your app to both stores as long as you can run EAS CLI on your machine. - -To submit an EAS build: - -```shell -nx submit -``` - -### Update an EAS Build - -EAS Update is a hosted service that serves updates for projects using the `expo-updates` library. - -EAS Update makes fixing small bugs and pushing quick fixes a snap in between app store submissions. It accomplishes this by allowing an end-user's app to swap out the non-native parts of their app (for example, JS, styling, and image changes) with a new update that contains bug fixes and other updates. - -To update an EAS build: - -```shell -nx update -``` - -### Testing Projects - -You can run unit tests with: - -```shell -nx test -``` - -## Expo Commands - -Below table is a map between expo commands and Nx commands: - -| Expo Commands | Nx Commands | -| ------------------ | --------------------------- | -| `expo start` | `nx start ` | -| `expo run:ios` | `nx run-ios ` | -| `expo run:android` | `nx run-android ` | -| `expo export` | `nx export ` | -| `expo prebuild` | `nx prebuild ` | -| `expo install` | `nx install ` | -| `eas build` | `nx build ` | -| `eas build:list` | `nx build-list ` | -| `eas update` | `nx update ` | -| `eas submit` | `nx submit ` | - -## More Documentation - -- [Using Detox](/nx-api/detox) -- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/expo/executors/build-list.json b/docs/generated/packages/expo/executors/build-list.json deleted file mode 100644 index e7978f3eff451..0000000000000 --- a/docs/generated/packages/expo/executors/build-list.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "build-list", - "implementation": "/packages/expo/src/executors/build-list/build-list.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "$id": "NxExpoEasBuildList", - "cli": "nx", - "title": "Expo EAS Build List executor", - "description": "List all Expo Application Services (EAS) builds for your Expo project.", - "type": "object", - "properties": { - "platform": { - "enum": ["ios", "android", "all"], - "alias": "p", - "description": "The platform to build the app.", - "x-priority": "important" - }, - "json": { - "type": "boolean", - "description": "Enable JSON output, non-JSON messages will be printed to stderr" - }, - "interactive": { - "type": "boolean", - "description": "Run the command in interactive mode." - }, - "status": { - "enum": [ - "new", - "in-queue", - "in-progress", - "errored", - "finished", - "canceled" - ], - "description": "Status of EAS build" - }, - "distribution": { - "enum": ["store", "internal", "simulator"], - "description": "Distribution of EAS build" - }, - "channel": { "type": "string", "description": "Channel of EAS build" }, - "appVersion": { - "type": "string", - "description": "App version of EAS build" - }, - "appBuildVersion": { - "type": "string", - "description": "App build version of EAS build" - }, - "sdkVersion": { - "type": "string", - "description": "SDK version of EAS build" - }, - "runtimeVersion": { - "type": "string", - "description": "Runtime version of EAS build" - }, - "appIdentifier": { - "type": "string", - "description": "App identifier of EAS build" - }, - "buildProfile": { - "type": "string", - "description": "Build profile of EAS build" - }, - "gitCommitHash": { - "type": "string", - "description": "Git commit hash of EAS build" - }, - "limit": { - "type": "number", - "description": "Limit of numbers to list EAS builds" - } - }, - "required": [], - "examplesFile": "The `build-list` command allows to check the details of your Expo Application Services (EAS) build status.\n\n`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {}\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:build-list\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Get Status of Different Platforms\" %}\nThe `platform` option allows you to check build status of different platform (e.g. android, ios, all):\n\n```json\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {\n \"platform\": \"ios\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Get Status Interactively\" %}\n\nThe `interactive` option allows you to specify whether to use interactive mode:\n\n```json\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {\n \"interactive\": true\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Get Status in JSON Format\" %}\n\nThe `json` option allows you to print the output in JSON format:\n\n```json\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {\n \"interactive\": false,\n \"json\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "description": "List all EAS builds for your Expo project", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/build-list/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/build.json b/docs/generated/packages/expo/executors/build.json deleted file mode 100644 index c6083f36c73b6..0000000000000 --- a/docs/generated/packages/expo/executors/build.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "build", - "implementation": "/packages/expo/src/executors/build/build.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "$id": "NxExpoEasBuild", - "cli": "nx", - "title": "Expo EAS Build executor", - "description": "Start an EAS build for your expo project.", - "type": "object", - "presets": [ - { "name": "Build for a specific platform", "keys": ["platform"] }, - { "name": "Build using a specific profile", "keys": ["profile"] }, - { "name": "Run build locally", "keys": ["local"] }, - { "name": "Clear cache before the build", "keys": ["clearCache"] } - ], - "properties": { - "platform": { - "enum": ["ios", "android", "all"], - "alias": "p", - "description": "The platform to build the app, exaple values: ios, android, all.", - "x-priority": "important" - }, - "json": { - "type": "boolean", - "description": "Enable JSON output, non-JSON messages will be printed to stderr", - "default": false - }, - "profile": { - "type": "string", - "description": "Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.", - "examples": ["production", "development", "preview"], - "x-priority": "important" - }, - "interactive": { - "type": "boolean", - "description": "Run command in interactive mode", - "default": true - }, - "local": { - "type": "boolean", - "description": "Run build locally [experimental]", - "default": false - }, - "output": { - "type": "string", - "description": "Output path for local build", - "examples": ["../../dist/MyApp.tar.gz", "../../dist"] - }, - "wait": { - "type": "boolean", - "description": "Wait for build(s) to complete", - "default": true - }, - "clearCache": { - "type": "boolean", - "description": "Clear cache before the build", - "default": false - }, - "autoSubmit": { - "type": "boolean", - "description": "Submit on build complete using the submit profile with the same name as the build profile", - "default": false - }, - "autoSubmitWithProfile": { - "type": "string", - "description": "Submit on build complete using the submit profile with provided name", - "examples": ["production", "development", "preview"] - } - }, - "required": [] - }, - "description": "Start an EAS build for your expo project", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/build/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/ensure-symlink.json b/docs/generated/packages/expo/executors/ensure-symlink.json deleted file mode 100644 index 7046b2a0a6cb5..0000000000000 --- a/docs/generated/packages/expo/executors/ensure-symlink.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "ensure-symlink", - "implementation": "/packages/expo/src/executors/ensure-symlink/ensure-symlink.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxExpoEnsureSymlink", - "$schema": "https://json-schema.org/schema", - "title": "Ensure Symlink for Expo", - "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", - "type": "object", - "properties": {}, - "presets": [] - }, - "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/ensure-symlink/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/export.json b/docs/generated/packages/expo/executors/export.json deleted file mode 100644 index 4faa4f3f7423e..0000000000000 --- a/docs/generated/packages/expo/executors/export.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "export", - "implementation": "/packages/expo/src/executors/export/export.impl.ts", - "schema": { - "cli": "nx", - "version": 2, - "outputCapture": "direct-nodejs", - "$id": "NxExpoExport", - "$schema": "https://json-schema.org/schema", - "title": "Expo Export", - "description": "Export the JavaScript and assets for your app using Metro/webpack bundler.", - "type": "object", - "properties": { - "platform": { - "description": "Choose the platform to compile for", - "enum": ["ios", "android", "all", "web"], - "default": "all", - "alias": "p", - "x-priority": "important" - }, - "dev": { - "type": "boolean", - "description": "Configure static files for developing locally using a non-https server" - }, - "clear": { - "type": "boolean", - "description": "Clear the bundler cache before exporting" - }, - "minify": { "type": "boolean", "description": "Minify source" }, - "outputDir": { - "type": "string", - "description": "Relative to workspace root, the directory to export the static files to. Default: dist" - }, - "maxWorkers": { - "type": "number", - "description": "When bundler is metro, the maximum number of tasks to allow the bundler to spawn" - }, - "dumpAssetmap": { - "type": "boolean", - "description": "When bundler is metro, whether to dump the asset map for further processing" - }, - "sourceMaps": { - "type": "boolean", - "description": "When bundler is metro, whether to emit JavaScript source maps" - } - }, - "required": ["platform"], - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"options\": {\n \"outputs\": [\"{options.outputDir}\"],\n \"platform\": \"all\",\n \"outputDir\": \"dist/apps/mobile\"\n },\n \"dependsOn\": [\"sync-deps\"]\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:export\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Specify outputDir\" %}\nThe `outputDir` option allows you to specify the output directory of your bundle:\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"all\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/mobile\"\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command: `nx run mobile:export --outputDir=dist/apps/mobile`.\n\n{% /tab %}\n{% tab label=\"Specify the platform\" %}\nThe `platform` option allows you to specify the platform to compile with metro bundler: \"ios\", \"android\", \"all\", and \"web\".\n\nFor example, to bundle for web:\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"web\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/dogs\"\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command `nx export mobile --platform=web`.\n\n{% /tab %}\n{% tab label=\"Bundle for development\" %}\n\nThe `dev` option allows you to bundle for development environments.\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"web\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/dogs\",\n \"dev\": true\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command `nx export mobile --dev`.\n\n{% /tab %}\n{% tab label=\"Clear bundle cache\" %}\n\nThe `clear` option allows you to clear bundle cache.\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"web\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/dogs\",\n \"clear\": true\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command `nx export mobile --clear`.\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "description": "Export the JavaScript and assets for your app using Metro/webpack bundler", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/export/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/install.json b/docs/generated/packages/expo/executors/install.json deleted file mode 100644 index 1c583fa41666a..0000000000000 --- a/docs/generated/packages/expo/executors/install.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "install", - "implementation": "/packages/expo/src/executors/install/install.impl.ts", - "schema": { - "cli": "nx", - "version": 2, - "outputCapture": "direct-nodejs", - "$id": "NxExpoInstall", - "$schema": "https://json-schema.org/schema", - "title": "Expo Install", - "description": "Install a module or other package to a project.", - "type": "object", - "properties": { - "packages": { - "type": "array", - "items": { "type": "string" }, - "default": [], - "description": "The names of packages to install", - "$default": { "$source": "argv", "index": 0 } - }, - "check": { - "type": "boolean", - "description": "Check which installed packages need to be updated", - "default": false - }, - "fix": { - "type": "boolean", - "description": "Automatically update any invalid package versions", - "default": false - } - }, - "presets": [] - }, - "description": "Install a module or other package to a project.", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/install/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/prebuild.json b/docs/generated/packages/expo/executors/prebuild.json deleted file mode 100644 index 0f82cb5085006..0000000000000 --- a/docs/generated/packages/expo/executors/prebuild.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "prebuild", - "implementation": "/packages/expo/src/executors/prebuild/prebuild.impl.ts", - "schema": { - "cli": "nx", - "version": 2, - "outputCapture": "direct-nodejs", - "$id": "NxExpoPrebuild", - "$schema": "https://json-schema.org/schema", - "title": "Expo Prebuild", - "description": "Create native iOS and Android project files for building natively.", - "type": "object", - "properties": { - "clean": { - "type": "boolean", - "description": "Delete the native folders and regenerate them before applying changes", - "default": false - }, - "install": { - "type": "boolean", - "description": "Installing npm packages and CocoaPods.", - "default": true, - "x-priority": "internal" - }, - "platform": { - "description": "Platforms to sync", - "default": "all", - "enum": ["ios", "android", "all"], - "alias": "p", - "x-priority": "important" - }, - "template": { - "type": "string", - "description": "Project template to clone from. File path pointing to a local tar file or a github repo" - } - }, - "required": ["platform"], - "examplesFile": "The `prebuild` command generates native code before a native app can compile.\n\n`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {}\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:prebuild\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Generate Native Code for Different Platforms\" %}\nThe `platform` option allows you to specify the platform to generate native code for (e.g. android, ios, all).\n\n```json\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {\n \"platform\": \"android\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Regenerate Native Code\" %}\n\nThe `clean` option allows you to delete the native folders and regenerate them before apply changes.\n\n```json\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {\n \"clean\": true\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Install NPM Packages and CocoaPods\" %}\n\nThe `install` option allows you to install NPM Packages and CocoaPods.\n\n```json\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {\n \"install\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "description": "Create native iOS and Android project files for building natively.", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/prebuild/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/run.json b/docs/generated/packages/expo/executors/run.json deleted file mode 100644 index 64e9dd74423a6..0000000000000 --- a/docs/generated/packages/expo/executors/run.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "run", - "implementation": "/packages/expo/src/executors/run/run.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxExpoRun", - "$schema": "https://json-schema.org/schema", - "title": "Run iOS or Android application", - "description": "Run Expo target options.", - "type": "object", - "properties": { - "platform": { - "description": "Platform to run for (ios, android).", - "enum": ["ios", "android"], - "default": "ios", - "alias": "p" - }, - "xcodeConfiguration": { - "type": "string", - "description": "(iOS) Xcode configuration to use. Debug or Release", - "default": "Debug", - "x-priority": "important" - }, - "scheme": { - "type": "string", - "description": "(iOS) Explicitly set the Xcode scheme to use" - }, - "variant": { - "type": "string", - "description": "(Android) Specify your app's build variant (e.g. debug, release).", - "default": "debug", - "x-priority": "important" - }, - "device": { - "type": "string", - "description": "Device name or UDID to build the app on. The value is not required if you have a single device connected.", - "alias": "d" - }, - "port": { - "type": "number", - "description": "Port to start the Metro bundler on", - "default": 8081, - "alias": "p" - }, - "bundler": { - "type": "boolean", - "description": "Whether to skip starting the Metro bundler. True to start it, false to skip it." - }, - "install": { - "type": "boolean", - "description": "Installing npm packages and CocoaPods before building.", - "default": true - }, - "buildCache": { - "type": "boolean", - "description": "Should use derived data for builds." - }, - "clean": { - "type": "boolean", - "description": "Delete the native folders and regenerate them before applying changes", - "default": false - } - }, - "required": ["platform"], - "examplesFile": "The `run` command allows you to compile your app locally.\n\n`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-ios\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"ios\"\n }\n },\n \"run-android\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"android\"\n }\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:run-ios\nnx run mobile:run-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Compile Android with Different Variants\" %}\nThe `variant` option allows you to specify the compile Android app with variants defined in `build.gradle` file (e.g. debug, release).\n\n```json\n \"run-android\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"android\",\n \"variant\": \"release\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Compile iOS with Different Configurations\" %}\n\nThe `xcodeConfiguration` option allows you to specify Xcode configuration to use (e.g. Debug or Release).\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"ios\",\n \"xcodeConfiguration\": \"Release\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Run on a device\" %}\n\nThe `device` option allows you to launch your app in a specific device name or UDID.\nTo see all your iOS simulators: run `xcrun simctl list devices available`.\nTo see all your Android emulators, run: `emulator -list-avds`.\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"ios\",\n \"device\": \"iPhone 14\"\n }\n },\n \"run-android\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"android\",\n \"device\": \"Pixel_XL_API_Tiramisu\"\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "description": "Run the Android app binary locally or run the iOS app binary locally", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/run/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/serve.json b/docs/generated/packages/expo/executors/serve.json deleted file mode 100644 index 87d39cc148869..0000000000000 --- a/docs/generated/packages/expo/executors/serve.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "serve", - "implementation": "/packages/expo/src/executors/serve/serve.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxExpoServe", - "$schema": "http://json-schema.org/schema", - "title": "Serve web app for Expo", - "description": "Packager Server target options.", - "type": "object", - "properties": { - "port": { - "type": "number", - "description": "Port to start the native Metro bundler on (does not apply to web or tunnel)", - "default": 4200, - "alias": "p" - }, - "clear": { - "type": "boolean", - "description": "Clear the Metro bundler cache", - "alias": "c" - }, - "maxWorkers": { - "type": "number", - "description": "Maximum number of tasks to allow Metro to spawn" - }, - "dev": { - "type": "boolean", - "description": "Turn development mode on or off" - }, - "minify": { - "type": "boolean", - "description": "Whether or not to minify code" - } - }, - "presets": [] - }, - "description": "Serve up the Expo web app locally", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/serve/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/start.json b/docs/generated/packages/expo/executors/start.json deleted file mode 100644 index 693bd4f1f35d6..0000000000000 --- a/docs/generated/packages/expo/executors/start.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "start", - "implementation": "/packages/expo/src/executors/start/start.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxExpoStart", - "$schema": "https://json-schema.org/schema", - "title": "Packager Server for Expo", - "description": "Packager Server target options.", - "type": "object", - "properties": { - "forceManifestType": { - "type": "string", - "description": "Override auto detection of manifest type.", - "enum": ["expo-updates", "classic"] - }, - "privateKeyPath": { - "type": "string", - "description": "Path to private key for code signing. Default: 'private-key.pem' in the same directory as the certificate specified by the expo-updates configuration in app.json." - }, - "port": { - "type": "number", - "description": "Port to start the native Metro bundler on (does not apply to web or tunnel)", - "default": 19000, - "alias": "p" - }, - "clear": { - "type": "boolean", - "description": "Clear the Metro bundler cache", - "alias": "c" - }, - "maxWorkers": { - "type": "number", - "description": "Maximum number of tasks to allow Metro to spawn" - }, - "dev": { - "type": "boolean", - "description": "Turn development mode on or off" - }, - "devClient": { - "type": "boolean", - "description": "Experimental: Starts the bundler for use with the expo-development-client" - }, - "minify": { - "type": "boolean", - "description": "Whether or not to minify code" - }, - "https": { - "type": "boolean", - "description": "To start webpack with https or http protocol" - }, - "scheme": { - "type": "string", - "description": "Custom URI protocol to use with a development build" - }, - "android": { - "type": "boolean", - "description": "Opens your app in Expo Go on a connected Android device", - "alias": "a" - }, - "ios": { - "type": "boolean", - "description": "Opens your app in Expo Go in a currently running iOS simulator on your computer", - "alias": "i" - }, - "web": { - "type": "boolean", - "description": " Opens your app in a web browser", - "alias": "w" - }, - "host": { - "type": "string", - "description": "lan (default), tunnel, localhost. Type of host to use. lan uses the local network; tunnel ues any network by tunnel through ngrok; localhost connects to the dev server over localhost.", - "enum": ["localhost", "lan", "tunnel"] - }, - "tunnel": { "type": "boolean", "description": "Same as --host tunnel" }, - "lan": { "type": "boolean", "description": "Same as --host lan" }, - "localhost": { - "type": "boolean", - "description": "Same as --host localhost" - }, - "offline": { - "type": "boolean", - "description": "Allows this command to run while offline" - } - }, - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081\n }\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:start\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Specify starting on platform\" %}\nThe `ios`, `android` and `web` option allows you to start the server on different platforms.\n\nOpens your app in Expo Go in a currently running iOS simulator on your computer:\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"ios\": true\n }\n }\n```\n\nor run command `nx start --ios`.\n\nOpens your app in Expo Go on a connected Android device\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"android\": true\n }\n }\n```\n\nor run command `nx start --android`.\n\nOpens your app in a web browser:\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"web\": true\n }\n }\n```\n\nor run command `nx start --web`.\n\n{% /tab %}\n{% tab label=\"Specify the host\" %}\nThe `host` option allows you to specify the type of host to use. `lan` uses the local network; `tunnel` ues any network by tunnel through ngrok; `localhost` connects to the dev server over localhost.\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"host\": \"localhost\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Starts the server with cache reset\" %}\n\nThe `clear` option allows you to remove Metro bundler cache.\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"clear\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "description": "Start a local dev server for the app or start a Webpack dev server for the web app", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/start/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/submit.json b/docs/generated/packages/expo/executors/submit.json deleted file mode 100644 index a9cfcb38bb9f1..0000000000000 --- a/docs/generated/packages/expo/executors/submit.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "submit", - "implementation": "/packages/expo/src/executors/submit/submit.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "title": "EXPO EAS Submit Executor", - "description": "Submit app binary to App Store and/or Play Store.", - "type": "object", - "presets": [ - { "name": "Submit for a specific platform", "keys": ["platform"] }, - { "name": "Submit using a specific profile", "keys": ["profile"] } - ], - "properties": { - "profile": { - "type": "string", - "description": "Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.", - "examples": ["production", "development", "preview"], - "x-priority": "important" - }, - "platform": { - "enum": ["ios", "android", "all"], - "alias": "p", - "description": "The platform to build the app, example values: ios, android, all.", - "x-priority": "important" - }, - "id": { "type": "string", "description": "Build ID to submit" }, - "path": { - "type": "string", - "description": "Path to the .apk/.aab/.ipa file" - }, - "url": { - "type": "string", - "description": "URL to the .apk/.aab/.ipa file, app archive url" - }, - "latest": { - "type": "boolean", - "description": "Submit the latest build for specified platform" - }, - "interactive": { - "type": "boolean", - "description": "Run command in interactive mode", - "default": true - }, - "wait": { - "type": "boolean", - "description": "Wait for build(s) to complete", - "default": true - } - } - }, - "description": "Submit app binary to App Store and/or Play Store", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/submit/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/sync-deps.json b/docs/generated/packages/expo/executors/sync-deps.json deleted file mode 100644 index cbb07b21ae2c0..0000000000000 --- a/docs/generated/packages/expo/executors/sync-deps.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "sync-deps", - "implementation": "/packages/expo/src/executors/sync-deps/sync-deps.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxExpoSyncDeps", - "$schema": "https://json-schema.org/schema", - "title": "Sync Deps for Expo", - "description": "Updates package.json with project dependencies.", - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { "type": "string" }, - "default": [], - "description": "An array of additional npm packages to include." - }, - "exclude": { - "type": "array", - "items": { "type": "string" }, - "default": [], - "description": "An array of npm packages to exclude." - }, - "all": { - "type": "boolean", - "description": "Copy all dependencies and devDependencies from the workspace root package.json.", - "default": false - } - }, - "presets": [] - }, - "description": "Syncs dependencies to package.json (required for autolinking).", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/sync-deps/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/executors/update.json b/docs/generated/packages/expo/executors/update.json deleted file mode 100644 index 07bdeb3c6a3a6..0000000000000 --- a/docs/generated/packages/expo/executors/update.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "update", - "implementation": "/packages/expo/src/executors/update/update.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "$id": "NxExpoEasUpdate", - "cli": "nx", - "title": "Expo EAS Update executor", - "description": "Start an EAS update for your expo project.", - "type": "object", - "presets": [ - { "name": "Update for a specific platform", "keys": ["platform"] }, - { "name": "Update from a specific branch", "keys": ["branch"] } - ], - "properties": { - "branch": { - "type": "string", - "description": "Branch to publish the update group on" - }, - "message": { - "type": "string", - "description": "A short message describing the update" - }, - "republish": { - "type": "boolean", - "description": "Enable JSON output, non-JSON messages will be printed to stderr", - "default": false - }, - "group": { "type": "string", "description": "Update group to republish" }, - "inputDir": { "type": "string", "description": "Location of the bundle" }, - "skipBundler": { - "type": "boolean", - "description": "Skip running Expo CLI to bundle the app before publishing", - "default": false - }, - "platform": { - "enum": ["ios", "android", "all"], - "alias": "p", - "description": "The platform to build the app, example values: ios, android, all.", - "default": "all", - "x-priority": "important" - }, - "json": { - "type": "boolean", - "description": "Enable JSON output, non-JSON messages will be printed to stderr", - "default": false - }, - "auto": { - "type": "boolean", - "description": "Use the current git branch and commit message for the EAS branch and update message", - "default": false - }, - "privateKeyPath": { - "type": "string", - "description": "File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named \"private-key.pem\" in the certificate's directory." - }, - "interactive": { - "type": "boolean", - "description": "Run command in interactive mode", - "default": true - } - }, - "required": [] - }, - "description": "Start an EAS update for your expo project", - "aliases": [], - "hidden": false, - "path": "/packages/expo/src/executors/update/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/expo/generators/application.json b/docs/generated/packages/expo/generators/application.json deleted file mode 100644 index 6396844a116c1..0000000000000 --- a/docs/generated/packages/expo/generators/application.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#expoApplicationGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxExpoApplication", - "$schema": "https://json-schema.org/schema", - "description": "Create an Expo Application for Nx.", - "examples": [ - { - "command": "g @nx/expo:app myapp --directory=nested", - "description": "Generate apps/nested/myapp" - }, - { - "command": "g @nx/expo:app myapp --classComponent", - "description": "Use class components instead of functional components" - } - ], - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "displayName": { - "description": "The display name to show in the application. Defaults to name.", - "type": "string" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting)", - "alias": "t" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files", - "default": false - }, - "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 - }, - "e2eTestRunner": { - "description": "Adds the specified e2e test runner", - "type": "string", - "enum": ["cypress", "playwright", "detox", "none"], - "default": "cypress" - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "skipPackageJson": { - "type": "boolean", - "description": "Do not add dependencies to `package.json`.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create an application", - "implementation": "/packages/expo/src/generators/application/application#expoApplicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/expo/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/expo/generators/component.json b/docs/generated/packages/expo/generators/component.json deleted file mode 100644 index f5579ec90e702..0000000000000 --- a/docs/generated/packages/expo/generators/component.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "component", - "factory": "./src/generators/component/component#expoComponentGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxExpoComponent", - "$schema": "https://json-schema.org/schema", - "description": "Create a Expo Component for Nx.", - "type": "object", - "examples": [ - { - "command": "g @nx/expo:component my-component --project=mylib", - "description": "Generate a component in the mylib library" - }, - { - "command": "g @nx/expo:component my-component --project=mylib --classComponent", - "description": "Generate a class component in the mylib library" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTests": { - "type": "boolean", - "description": "When true, does not create \"spec.ts\" test files for the new component.", - "default": false - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "flat": { - "type": "boolean", - "description": "Create component at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." - }, - "export": { - "type": "boolean", - "description": "When true, the component is exported from the project index.ts (if it exists).", - "alias": "e", - "default": false, - "x-prompt": "Should this component be exported in the project?" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. App.tsx).", - "alias": "P", - "default": false, - "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "classComponent": { - "type": "boolean", - "alias": "C", - "description": "Use class components instead of functional component.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Create a component", - "aliases": ["c"], - "implementation": "/packages/expo/src/generators/component/component#expoComponentGeneratorInternal.ts", - "hidden": false, - "path": "/packages/expo/src/generators/component/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/expo/generators/init.json b/docs/generated/packages/expo/generators/init.json deleted file mode 100644 index f3449f388e75a..0000000000000 --- a/docs/generated/packages/expo/generators/init.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#expoInitGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxExpoInit", - "$schema": "https://json-schema.org/schema", - "description": "Add Nx Expo Schematics.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`." - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the @nx/expo plugin", - "hidden": true, - "implementation": "/packages/expo/src/generators/init/init#expoInitGeneratorInternal.ts", - "aliases": [], - "path": "/packages/expo/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/expo/generators/library.json b/docs/generated/packages/expo/generators/library.json deleted file mode 100644 index d807880e06404..0000000000000 --- a/docs/generated/packages/expo/generators/library.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#expoLibraryGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxExpoLibrary", - "$schema": "https://json-schema.org/schema", - "description": "Create a Expo Library for Nx.", - "type": "object", - "examples": [ - { - "command": "g @nx/expo:lib mylib --directory=myapp", - "description": "Generate libs/myapp/mylib" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Library name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update tsconfig.json for development experience.", - "x-priority": "internal" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. App.tsx).", - "alias": "P", - "default": false - }, - "publishable": { - "type": "boolean", - "description": "Create a publishable library." - }, - "buildable": { - "type": "boolean", - "default": false, - "description": "Generate a buildable library." - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like @myorg/my-awesome-lib" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "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 - }, - "skipPackageJson": { - "type": "boolean", - "description": "Do not add dependencies to `package.json`.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a library", - "implementation": "/packages/expo/src/generators/library/library#expoLibraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/expo/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/express/documents/overview.md b/docs/generated/packages/express/documents/overview.md deleted file mode 100644 index 5e2b837e7bd8a..0000000000000 --- a/docs/generated/packages/express/documents/overview.md +++ /dev/null @@ -1,47 +0,0 @@ -[Express](https://expressjs.com/) is a mature, minimal, and an open source web framework for making web applications and -apis. - -## Create a New Workspace - -To create a new workspace with a pre-created Express app, run the following command: - -```shell - npx create-nx-workspace --preset=express -``` - -## Setting Up @nx/express - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/express` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/express` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/express -``` - -This will install the correct version of `@nx/express`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/express` package with your package manager. - -```shell -npm add -D @nx/express -``` - -{% /tab %} -{% /tabs %} - -## Recipes - -- [Add an Express Application to Your Workspace](/showcase/example-repos/add-express) -- [Set Up Application Proxies](/recipes/node/application-proxies) -- [Wait For Tasks To Finish](/recipes/node/wait-for-tasks) diff --git a/docs/generated/packages/express/generators/application.json b/docs/generated/packages/express/generators/application.json deleted file mode 100644 index 983f7fd1e499d..0000000000000 --- a/docs/generated/packages/express/generators/application.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "SchematicsNxExpressApp", - "title": "Nx Application Options Schema", - "description": "Nx Application Options Schema.", - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the node application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`." - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting)." - }, - "frontendProject": { - "type": "string", - "description": "Frontend project that needs to access this application. This sets up proxy configuration." - }, - "swcJest": { - "type": "boolean", - "description": "Use `@swc/jest` instead `ts-jest` for faster test compilation.", - "default": false - }, - "babelJest": { - "type": "boolean", - "description": "Use `babel` instead `ts-jest`.", - "default": false, - "x-deprecated": "Use --swcJest instead for faster compilation" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case file names.", - "alias": "P", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "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 - } - }, - "required": [], - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create an Express application.", - "implementation": "/packages/express/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/express/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/express/generators/init.json b/docs/generated/packages/express/generators/init.json deleted file mode 100644 index 128e0c6329492..0000000000000 --- a/docs/generated/packages/express/generators/init.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#initGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxExpressInit", - "title": "Init Express Plugin", - "description": "Init Express Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`." - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/express` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/express/src/generators/init/init#initGenerator.ts", - "path": "/packages/express/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/jest/documents/overview.md b/docs/generated/packages/jest/documents/overview.md deleted file mode 100644 index aeb413090e11e..0000000000000 --- a/docs/generated/packages/jest/documents/overview.md +++ /dev/null @@ -1,260 +0,0 @@ ---- -title: Overview of the Nx Jest Plugin -description: The Nx Plugin for Jest contains executors and generators that support testing projects using Jest. This page also explains how to configure Jest on your Nx workspace. ---- - -[Jest](https://jestjs.io/) is an open source test runner created by Facebook. It has a lot of great features: - -- Immersive watch mode for providing near instant feedback when developing tests. -- Snapshot testing for validating features. -- Great built-in reporter for printing out test results. - -## Setting Up @nx/jest - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/jest` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/jest` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/jest -``` - -This will install the correct version of `@nx/jest`. - -### How @nx/jest Infers Tasks - -The `@nx/jest` plugin will create a task for any project that has an Jest configuration file present. Any of the following files will be recognized as an Jest configuration file: - -- `jest.config.js` -- `jest.config.ts` -- `jest.config.mjs` -- `jest.config.mts` -- `jest.config.cjs` -- `jest.config.cts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/jest Configuration - -The `@nx/jest/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/jest/plugin", - "options": { - "targetName": "test" - } - } - ] -} -``` - -- The `targetName` option controls the name of the inferred Jest tasks. The default name is `test`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/jest` package with your package manager. - -```shell -npm add -D @nx/jest -``` - -{% /tab %} -{% /tabs %} - -## Using Jest - -### Generate a new project set up with Jest - -By default, Nx will use Jest when creating applications and libraries. - -```shell -nx g @nx/web:app frontend -``` - -### Add Jest to a project - -Run the `configuration` generator - -```shell -nx g @nx/jest:configuration --project= -``` - -> Hint: You can use the `--dry-run` flag to see what will be generated. - -Replacing `` with the name of the project you're wanting to add Jest too. - -### Testing Applications - -The recommended way to run/debug Jest tests via an editor - -- [VSCode](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner) -- [Webstorm](https://blog.jetbrains.com/webstorm/2018/10/testing-with-jest-in-webstorm/) - -To run Jest tests via nx use - -```shell -nx test frontend -``` - -### Watching for Changes - -Using the `--watch` flag will run the tests whenever a file changes. - -```shell -nx test frontend --watch -``` - -### Snapshot Testing - -Jest has support for **Snapshot Testing**, a tool which simplifies validating data. Check out the [official Jest Documentation on Snapshot Testing](https://jestjs.io/docs/en/snapshot-testing). - -Example of using snapshots: - -```typescript -describe('SuperAwesomFunction', () => { - it('should return the correct data shape', () => { - const actual = superAwesomFunction(); - expect(actual).toMatchSnapshot(); - }); -}); -``` - -When using snapshots, you can update them with the `--updateSnapshot` flag, `-u` for short. - -> By default, snapshots will be generated when there are not existing snapshots for the associated test. - -```shell -nx test frontend -u -``` - -Snapshot files should be checked in with your code. - -### Performance in CI - -Typically, in CI it's recommended to use `nx affected -t test --parallel=[# CPUs] -- --runInBand` for the best performance. - -This is because each [jest process creates a workers based on system resources](https://jestjs.io/docs/cli#--maxworkersnumstring), running multiple projects via nx and using jest workers will create too many process overall causing the system to run slower than desired. Using the `--runInBand` flag tells jest to run in a single process. - -## Configurations - -### Jest - -Primary configurations for Jest will be via the `jest.config.ts` file that generated for your project. This file will extend the root `jest.preset.js` file. Learn more about [Jest configurations](https://jestjs.io/docs/configuration#options). - -The root level `jest.config.ts` file configures [Jest multi project support](https://jestjs.io/docs/configuration#projects-arraystring--projectconfig). -This configuration allows editor/IDE integrations to pick up individual project's configurations rather than the one at the root. - -The set of Jest projects within Nx workspaces tends to change. Instead of statically defining a list in `jest.config.ts`, Nx provides a utility function called `getJestProjects` which queries for Jest configurations defined for targets which use the `@nx/jest:jest` executor. - -You can add Jest projects which are not included in `getJestProjects()`, because they do not use the Nx Jest executor, by doing something like the following: - -```typescript {% fileName="jest.config.ts"} -import { getJestProjects } from '@nx/jest'; - -export default { - projects: [...getJestProjects(), '/path/to/jest.config.ts'], -}; -``` - -### Nx - -Nx Jest Plugin options can be configured via the [project config file](/reference/project-configuration) or via the [command line flags](/nx-api/jest). - -> Hint: Use `--help` to see all available options -> -> ```shell -> nx test --help -> ``` - -### Code Coverage - -Enable code coverage with the `--coverage` flag or by adding it to the executor options in the [project configuration file](/reference/project-configuration). - -By default, coverage reports will be generated in the `coverage/` directory under projects name. i.e. `coverage/apps/frontend`. Modify this directory with the `--coverageDirectory` flag. Coverage reporters can also be customized with the `--coverageReporters` flag. - -> `coverageDirectory` and `coverageReporters` are configurable via the project configuration file as well. - -### Global setup/teardown with nx libraries - -In order to use Jest's global setup/teardown functions that reference nx libraries, you'll need to register the TS path for jest to resolve the libraries. -Nx provides a helper function that you can import within your setup/teardown file. - -```typescript {% fileName="global-setup.ts" %} -import { registerTsProject } from '@nx/js/src/internal'; -const cleanupRegisteredPaths = registerTsProject('./tsconfig.base.json'); - -import { yourFancyFunction } from '@some-org/my-util-library'; -export default async function () { - yourFancyFunction(); -} -// make sure to run the clean up! -cleanupRegisteredPaths(); -``` - -{% callout type="note" title="@swc/jest & global scripts" %} -When using @swc/jest and a global setup/teardown file, -You have to set the `noInterop: false` and use dynamic imports within the setup function - -```typescript {% fileName="apps//jest.config.ts" %} -/* eslint-disable */ -import { readFileSync } from 'fs'; - -// Reading the SWC compilation config and remove the "exclude" -// for the test files to be compiled by SWC -const { exclude: _, ...swcJestConfig } = JSON.parse( - readFileSync(`${__dirname}/.swcrc`, 'utf-8') -); - -// disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves. -// If we do not disable this, SWC Core will read .swcrc and won't transform our test files due to "exclude" -if (swcJestConfig.swcrc === undefined) { - swcJestConfig.swcrc = false; -} - -// jest needs EsModule Interop to find the default exported function -swcJestConfig.module.noInterop = false; - -export default { - globalSetup: '/src/global-setup-swc.ts', - transform: { - '^.+\\.[tj]s$': ['@swc/jest', swcJestConfig], - }, - // other settings -}; -``` - -```typescript {% fileName="global-setup-swc.ts" %} -import { registerTsProject } from '@nx/js/src/internal'; -const cleanupRegisteredPaths = registerTsProject('./tsconfig.base.json'); - -export default async function () { - // swc will hoist all imports, and we need to make sure the register happens first - // so we import all nx project alias within the setup function first. - const { yourFancyFunction } = await import('@some-org/my-util-library'); - - yourFancyFunction(); - - // make sure to run the clean up! - cleanupRegisteredPaths(); -} -``` - -{% /callout %} - -## More Documentation - -- [Jest Docs](https://jestjs.io/) -- [@nx/jest options](/nx-api/jest) diff --git a/docs/generated/packages/jest/executors/jest.json b/docs/generated/packages/jest/executors/jest.json deleted file mode 100644 index 07818365c09ae..0000000000000 --- a/docs/generated/packages/jest/executors/jest.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "name": "jest", - "implementation": "/packages/jest/src/executors/jest/jest.impl.ts", - "batchImplementation": "./src/executors/jest/jest.impl#batchJest", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Jest Builder", - "description": "Jest target options for Build Facade.", - "cli": "nx", - "type": "object", - "presets": [ - { - "name": "Pass Without Tests", - "keys": ["jestConfig", "passWithNoTests"] - }, - { "name": "Code Coverage", "keys": ["jestConfig", "coverageReporters"] }, - { "name": "Stop After 'n' Failed", "keys": ["jestConfig", "bail"] } - ], - "properties": { - "codeCoverage": { - "description": "Indicates that test coverage information should be collected and reported in the output. (https://jestjs.io/docs/cli#--coverageboolean)", - "type": "boolean", - "aliases": ["coverage"] - }, - "config": { - "description": "The path to a Jest config file specifying how to find and execute tests. If no `rootDir` is set in the config, the directory containing the config file is assumed to be the `rootDir` for the project. This can also be a JSON-encoded value which Jest will use as configuration.", - "type": "string" - }, - "clearCache": { - "description": "Deletes the Jest cache directory and then exits without running tests. Will delete Jest's default cache directory. _Note: clearing the cache will reduce performance_.", - "type": "boolean" - }, - "detectOpenHandles": { - "description": "Attempt to collect and print open handles preventing Jest from exiting cleanly (https://jestjs.io/docs/cli#--detectopenhandles)", - "type": "boolean" - }, - "logHeapUsage": { - "description": "Logs the heap usage after every test. Useful to debug memory leaks. Use together with --runInBand and --expose-gc in node.", - "type": "boolean" - }, - "detectLeaks": { - "description": "**EXPERIMENTAL**: Detect memory leaks in tests. After executing a test, it will try to garbage collect the global object used, and fail if it was leaked", - "type": "boolean" - }, - "jestConfig": { - "description": "The path of the Jest configuration. (https://jestjs.io/docs/en/configuration)", - "type": "string", - "x-completion-type": "file", - "x-completion-glob": "jest.config@(.js|.ts)" - }, - "testFile": { - "description": "The name of the file to test.", - "type": "string" - }, - "tsConfig": { - "description": "The name of the Typescript configuration file.", - "type": "string", - "x-deprecated": "Use the ts-jest configuration options in the jest config file instead." - }, - "setupFile": { - "description": "The name of a setup file used by Jest.", - "type": "string", - "x-deprecated": "Use the setupFilesAfterEnv option in the jest config file. https://jestjs.io/docs/en/configuration#setupfilesafterenv-array" - }, - "bail": { - "alias": "b", - "description": "Exit the test suite immediately after `n` number of failing tests. (https://jestjs.io/docs/cli#--bail)", - "oneOf": [{ "type": "number" }, { "type": "boolean" }] - }, - "ci": { - "description": "Whether to run Jest in continuous integration (CI) mode. This option is on by default in most popular CI environments. It will prevent snapshots from being written unless explicitly requested. (https://jestjs.io/docs/cli#--ci)", - "type": "boolean" - }, - "color": { - "alias": "colors", - "description": "Forces test results output color highlighting (even if `stdout` is not a TTY). Set to false if you would like to have no colors. (https://jestjs.io/docs/cli#--colors)", - "type": "boolean" - }, - "findRelatedTests": { - "description": "Find and run the tests that cover a comma separated list of source files that were passed in as arguments. (https://jestjs.io/docs/cli#--findrelatedtests-spaceseparatedlistofsourcefiles)", - "type": "string" - }, - "forceExit": { - "description": "Force Jest to exit after all tests have completed running. This is useful when resources set up by test code cannot be adequately cleaned up.This feature is an escape-hatch. If Jest doesn't exit at the end of a test run, it means external resources are still being held on to or timers are still pending in your code. It is advised to tear down external resources after each test to make sure Jest can shut down cleanly. You can use --detectOpenHandles to help track it down.", - "type": "boolean" - }, - "json": { - "description": "Prints the test results in `JSON`. This mode will send all other test output and user messages to `stderr`. (https://jestjs.io/docs/cli#--json)", - "type": "boolean" - }, - "maxWorkers": { - "alias": "w", - "description": "Specifies the maximum number of workers the worker-pool will spawn for running tests. This defaults to the number of the cores available on your machine. Useful for CI. (its usually best not to override this default) (https://jestjs.io/docs/cli#--maxworkersnumstring)", - "oneOf": [{ "type": "number" }, { "type": "string" }] - }, - "onlyChanged": { - "alias": "o", - "description": "Attempts to identify which tests to run based on which files have changed in the current repository. Only works if you're running tests in a `git` or `hg` repository at the moment. (https://jestjs.io/docs/cli#--onlychanged)", - "type": "boolean" - }, - "changedSince": { - "description": "Runs tests related to the changes since the provided branch or commit hash. If the current branch has diverged from the given branch, then only changes made locally will be tested. (https://jestjs.io/docs/cli#--changedsince)", - "type": "string" - }, - "outputFile": { - "description": "Write test results to a file when the `--json` option is also specified. (https://jestjs.io/docs/cli#--outputfilefilename)", - "type": "string" - }, - "passWithNoTests": { - "description": "Will not fail if no tests are found (for example while using `--testPathPattern`.) (https://jestjs.io/docs/cli#--passwithnotests)", - "type": "boolean" - }, - "randomize": { - "description": "Shuffle the order of the tests within a file. The shuffling is based on the seed. This option is only supported using the default jest-circus test runner.", - "type": "boolean" - }, - "runInBand": { - "alias": "i", - "description": "Run all tests serially in the current process (rather than creating a worker pool of child processes that run tests). This is sometimes useful for debugging, but such use cases are pretty rare. Useful for CI. (https://jestjs.io/docs/cli#--runinband)", - "type": "boolean" - }, - "showConfig": { - "description": "Print your Jest config and then exits. (https://jestjs.io/docs/en/cli#--showconfig)", - "type": "boolean" - }, - "silent": { - "description": "Prevent tests from printing messages through the console. (https://jestjs.io/docs/cli#--silent)", - "type": "boolean" - }, - "testNamePattern": { - "alias": "t", - "description": "Run only tests with a name that matches the regex pattern. (https://jestjs.io/docs/cli#--testnamepatternregex)", - "type": "string" - }, - "testPathIgnorePatterns": { - "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. Only run those tests with a path that does not match with the provided regexp expressions. (https://jestjs.io/docs/cli#--testpathignorepatternsregexarray)", - "type": "array", - "items": { "type": "string" } - }, - "testPathPattern": { - "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. (https://jestjs.io/docs/cli#--testpathpatternregex)", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "colors": { - "description": "Forces test results output highlighting even if stdout is not a TTY. (https://jestjs.io/docs/cli#--colors)", - "type": "boolean" - }, - "reporters": { - "description": "Run tests with specified reporters. Reporter options are not available via CLI. Example with multiple reporters: `jest --reporters=\"default\" --reporters=\"jest-junit\"`. (https://jestjs.io/docs/cli#--reporters)", - "type": "array", - "items": { "type": "string" } - }, - "verbose": { - "description": "Display individual test results with the test suite hierarchy. (https://jestjs.io/docs/cli#--verbose)", - "type": "boolean" - }, - "coverageReporters": { - "description": "A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter.", - "type": "array", - "items": { "type": "string" } - }, - "coverageDirectory": { - "description": "The directory where Jest should output its coverage files.", - "type": "string", - "x-completion-type": "directory" - }, - "testResultsProcessor": { - "description": "Node module that implements a custom results processor. (https://jestjs.io/docs/en/configuration#testresultsprocessor-string)", - "type": "string" - }, - "updateSnapshot": { - "alias": "u", - "description": "Use this flag to re-record snapshots. Can be used together with a test suite pattern or with `--testNamePattern` to re-record snapshot for test matching the pattern. (https://jestjs.io/docs/cli#--updatesnapshot)", - "type": "boolean" - }, - "useStderr": { - "description": "Divert all output to stderr.", - "type": "boolean" - }, - "watch": { - "description": "Watch files for changes and rerun tests related to changed files. If you want to re-run all tests when a file has changed, use the `--watchAll` option. (https://jestjs.io/docs/cli#--watch)", - "type": "boolean" - }, - "watchAll": { - "description": "Watch files for changes and rerun all tests when something changes. If you want to re-run only the tests that depend on the changed files, use the `--watch` option. (https://jestjs.io/docs/cli#--watchall)", - "type": "boolean" - }, - "testLocationInResults": { - "description": "Adds a location field to test results. Used to report location of a test in a reporter. { \"column\": 4, \"line\": 5 } (https://jestjs.io/docs/cli#--testlocationinresults)", - "type": "boolean" - }, - "testTimeout": { - "description": "Default timeout of a test in milliseconds. Default value: `5000`. (https://jestjs.io/docs/cli#--testtimeoutnumber)", - "type": "number" - } - }, - "required": ["jestConfig"], - "examplesFile": "Jest can be configured in many ways, but primarily you'll need to at least have the jestConfig options\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\"\n }\n}\n```\n\nIt is also helpful to have `passWithNoTests: true` set so your project doesn't fail testing while tests are still being added.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n }\n}\n```\n\n### Snapshots\n\nUpdate snapshots running with `--update-snapshot` or `-u` for short.\n\n```bash\nnx test my-project -u\n```\n\nOther times you might not want to allow updating snapshots such as in CI.\nAdding a _ci_ configuration is helpful for adding this behavior.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n },\n \"configurations\": {\n \"ci\": {\n \"ci\": true\n }\n }\n}\n```\n\n```bash\nnx affected --target=test\n```\n\nLearn more [about _affected_](/ci/features/affected)\n" - }, - "description": "Run Jest unit tests.", - "aliases": [], - "hidden": false, - "path": "/packages/jest/src/executors/jest/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/jest/generators/configuration.json b/docs/generated/packages/jest/generators/configuration.json deleted file mode 100644 index 9528f13bd989d..0000000000000 --- a/docs/generated/packages/jest/generators/configuration.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "configuration", - "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxJestProject", - "cli": "nx", - "title": "Add Jest Configuration to a project", - "description": "Add Jest Configuration to a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "projectName" }, - "x-priority": "important" - }, - "skipSetupFile": { - "type": "boolean", - "description": "Skips the setup file required for angular.", - "default": false, - "x-deprecated": "Use `--setup-file` instead." - }, - "setupFile": { - "type": "string", - "enum": ["none", "angular", "web-components"], - "description": "The setup file to be generated.", - "default": "none", - "x-priority": "important" - }, - "skipSerializers": { - "type": "boolean", - "description": "Skips the serializers required to snapshot angular templates.", - "default": false - }, - "supportTsx": { - "type": "boolean", - "description": "Setup `tsx` support.", - "default": false, - "x-priority": "important" - }, - "testEnvironment": { - "type": "string", - "enum": ["jsdom", "node", "none"], - "description": "The test environment for jest.", - "default": "jsdom", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "enum": ["tsc", "babel", "swc"], - "description": "The compiler to use for source and tests.", - "default": "tsc" - }, - "babelJest": { - "type": "boolean", - "alias": "babel-jest", - "description": "Use `babel-jest` instead of `ts-jest`.", - "x-deprecated": "Use `--compiler=babel` instead.", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "js": { - "type": "boolean", - "default": false, - "description": "Use JavaScript instead of TypeScript for config files" - } - }, - "required": [], - "presets": [] - }, - "description": "Add Jest configuration to a project.", - "hidden": true, - "implementation": "/packages/jest/src/generators/configuration/configuration#configurationGeneratorInternal.ts", - "aliases": [], - "path": "/packages/jest/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/jest/generators/init.json b/docs/generated/packages/jest/generators/init.json deleted file mode 100644 index 445a2a287750b..0000000000000 --- a/docs/generated/packages/jest/generators/init.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#jestInitGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxJestInit", - "cli": "nx", - "title": "Jest init", - "description": "Add Jest Configuration to a workspace.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/jest` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/jest/src/generators/init/init#jestInitGeneratorInternal.ts", - "path": "/packages/jest/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/js/documents/overview.md b/docs/generated/packages/js/documents/overview.md deleted file mode 100644 index c8b58a14937f1..0000000000000 --- a/docs/generated/packages/js/documents/overview.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Overview of the Nx JS Plugin -description: The Nx JS plugin contains executors and generators that are useful for JavaScript/TypeScript projects in an Nx workspace. ---- - -The JS plugin contains executors and generators that are useful for JavaScript/TypeScript projects in an Nx workspace. - -## Setting Up @nx/js - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/js` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/js` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/js -``` - -This will install the correct version of `@nx/js`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/js` package with your package manager. - -```shell -npm add -D @nx/js -``` - -{% /tab %} -{% /tabs %} - -### `ts` Preset - -When initializing a new Nx workspace, specifying `--preset=ts` will generate a workspace with `@nx/js` pre-installed. - -{% tabs %} -{%tab label="npm"%} - -```shell -npx create-nx-workspace my-org --preset=ts -``` - -{% /tab %} -{%tab label="yarn"%} - -```shell -yarn create nx-workspace my-org --preset=ts -``` - -{% /tab %} -{% /tabs %} - -## Create Libraries - -You can add a new JS/TS library with the following command: - -```shell -nx g @nx/js:lib my-lib -``` - -## Build - -You can `build` libraries that are generated with a bundler specified. - -```shell -nx g @nx/js:lib my-buildable-lib --bundler=rollup -``` - -Generating a library with `--bundler` specified will add a `build` target to the library's `project.json` file allows the library to be built. - -```shell -nx build my-buildable-lib -``` - -## Test - -You can test a library with the following command: - -```shell -nx test my-lib -``` - -## Lint - -You can lint a library with the following command: - -```shell -nx lint my-lib -``` - -## Compiler - -By default, `@nx/js` uses [TypeScript Compiler (TSC)](https://www.typescriptlang.org/docs/handbook/2/basic-types.html#tsc-the-typescript-compiler), via `@nx/js:tsc` executor, to compile your libraries. Optionally, you can switch `tsc` out for a different compiler with `--compiler` flag when executing the generators. - -Currently, `@nx/js` supports the following compilers: - -- [Speedy Web Compiler (SWC)](https://swc.rs) - -### SWC - -- Create a buildable library with `swc` - -```shell -nx g @nx/js:lib my-swc-lib --bundler=swc -``` - -- Convert a `tsc` library to use `swc` - -```shell -nx g @nx/js:convert-to-swc my-buildable-lib -``` - -Now the `build` command will use `@nx/js:swc` executor to compile your libraries. - -> The first time you generate a `swc` library or convert a `tsc` library over to `swc`, `@nx/js` will install the necessary dependencies to use `swc`. diff --git a/docs/generated/packages/js/executors/node.json b/docs/generated/packages/js/executors/node.json deleted file mode 100644 index f69777deebb40..0000000000000 --- a/docs/generated/packages/js/executors/node.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "node", - "implementation": "/packages/js/src/executors/node/node.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "title": "Node executor", - "description": "Execute Nodejs applications.", - "type": "object", - "properties": { - "buildTarget": { - "type": "string", - "description": "The target to run to build you the app." - }, - "buildTargetOptions": { - "type": "object", - "description": "Additional options to pass into the build target.", - "default": {} - }, - "waitUntilTargets": { - "type": "array", - "description": "The targets to run before starting the node app. Listed in the form :. The main target will run once all listed targets have output something to the console.", - "default": [], - "items": { "type": "string" } - }, - "host": { - "type": "string", - "default": "localhost", - "description": "The host to inspect the process on.", - "x-priority": "important" - }, - "port": { - "type": "number", - "default": 9229, - "description": "The port to inspect the process on. Setting port to 0 will assign random free ports to all forked processes.", - "x-priority": "important" - }, - "inspect": { - "oneOf": [ - { "type": "string", "enum": ["inspect", "inspect-brk"] }, - { "type": "boolean" } - ], - "description": "Ensures the app is starting with debugging.", - "default": "inspect", - "x-priority": "important" - }, - "runtimeArgs": { - "type": "array", - "description": "Extra args passed to the node process.", - "default": [], - "items": { "type": "string" }, - "x-priority": "important" - }, - "args": { - "type": "array", - "description": "Extra args when starting the app.", - "default": [], - "items": { "type": "string" }, - "x-priority": "important" - }, - "watch": { - "type": "boolean", - "description": "Enable re-building when files change.", - "default": true, - "x-priority": "important" - }, - "debounce": { - "type": "number", - "description": "Delay in milliseconds to wait before restarting. Useful to batch multiple file changes events together. Set to zero (0) to disable.", - "default": 500, - "x-priority": "important" - }, - "runBuildTargetDependencies": { - "type": "boolean", - "description": "Whether to run dependencies before running the build. Set this to true if the project does not build libraries from source (e.g. 'buildLibsFromSource: false').", - "default": false - } - }, - "additionalProperties": false, - "required": ["buildTarget"], - "examplesFile": "---\ntitle: JS Node executor examples\ndescription: This page contains examples for the @nx/js:node executor.\n---\n\nThe `@nx/js:node` executor runs the output of a build target. For example, an application uses esbuild ([`@nx/esbuild:esbuild`](/packages/esbuild/executors/esbuild)) to output the bundle to `dist/my-app` folder, which can then be executed by `@nx/js:node`.\n\n`project.json`:\n\n```json\n\"my-app\": {\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/js:node\",\n \"options\": {\n \"buildTarget\": \"my-app:build\"\n }\n },\n \"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"my-app/src/main.ts\",\n \"output\": [\"dist/my-app\"],\n //...\n }\n },\n }\n}\n```\n\n```bash\nnpx nx serve my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Pass extra Node CLI arguments\" %}\n\nUsing `runtimeArgs`, you can pass arguments to the underlying `node` command. For example, if you want to set [`--no-warnings`](https://nodejs.org/api/cli.html#--no-warnings) to silence all Node warnings, then add the following to the `project.json` file.\n\n```json\n\"my-app\": {\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/js:node\",\n \"options\": {\n \"runtimeArgs\": [\"--no-warnings\"],\n //...\n },\n },\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Run all task dependencies\" %}\n\nIf your application build depends on other tasks, and you want those tasks to also be executed, then set the `runBuildTargetDependencies` to `true`. For example, a library may have a task to generate GraphQL schemas, which is consume by the application. In this case, you want to run the generate task before building and running the application.\n\nThis option is also useful when the build consumes a library from its output, not its source. For example, if an executor that supports `buildLibsFromSource` option has it set to `false` (e.g. [`@nx/webpack:webpack`](/packages/webpack/executors/webpack)).\n\nNote that this option will increase the build time, so use it only when necessary.\n\n```json\n\"my-app\": {\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/js:node\",\n \"options\": {\n \"runBuildTargetDependencies\": true,\n //...\n },\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Execute a Node application.", - "aliases": [], - "hidden": false, - "path": "/packages/js/src/executors/node/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/js/executors/release-publish.json b/docs/generated/packages/js/executors/release-publish.json deleted file mode 100644 index b6a36f4f33aa1..0000000000000 --- a/docs/generated/packages/js/executors/release-publish.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "release-publish", - "implementation": "/packages/js/src/executors/release-publish/release-publish.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "title": "Implementation details of `nx release publish`", - "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", - "type": "object", - "properties": { - "packageRoot": { - "type": "string", - "description": "The root directory of the directory (containing a manifest file at its root) to publish. Defaults to the project root." - }, - "registry": { - "type": "string", - "description": "The registry to publish the package to." - }, - "tag": { - "type": "string", - "description": "The distribution tag to apply to the published package." - }, - "dryRun": { - "type": "boolean", - "description": "Whether to run the command without actually publishing the package to the registry." - } - }, - "required": [], - "presets": [] - }, - "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", - "hidden": true, - "aliases": [], - "path": "/packages/js/src/executors/release-publish/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/js/executors/swc.json b/docs/generated/packages/js/executors/swc.json deleted file mode 100644 index 2c5289db8ef55..0000000000000 --- a/docs/generated/packages/js/executors/swc.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "name": "swc", - "implementation": "/packages/js/src/executors/swc/swc.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "title": "Typescript Build Target", - "description": "Builds using SWC.", - "type": "object", - "properties": { - "main": { - "type": "string", - "description": "The name of the main entry-point file.", - "x-completion-type": "file", - "x-completion-glob": "main@(.js|.ts|.tsx)", - "x-priority": "important" - }, - "generateExportsField": { - "type": "boolean", - "alias": "exports", - "description": "Update the output package.json file's 'exports' field. This field is used by Node and bundles.", - "x-priority": "important", - "default": false - }, - "additionalEntryPoints": { - "type": "array", - "description": "Additional entry-points to add to exports field in the package.json file.", - "items": { "type": "string" }, - "x-priority": "important" - }, - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "tsConfig": { - "type": "string", - "description": "The path to the Typescript configuration file.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "swcrc": { - "type": "string", - "description": "The path to the SWC configuration file. Default: .swcrc", - "x-completion-type": "file", - "x-completion-glob": ".swcrc" - }, - "assets": { - "type": "array", - "description": "List of static assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "watch": { - "type": "boolean", - "description": "Enable re-building when files change.", - "default": false - }, - "clean": { - "type": "boolean", - "description": "Remove previous output before build.", - "default": true - }, - "skipTypeCheck": { - "type": "boolean", - "description": "Whether to skip TypeScript type checking.", - "default": false, - "x-priority": "important" - }, - "swcExclude": { - "type": "array", - "description": "List of SWC Glob/Regex to be excluded from compilation (https://swc.rs/docs/configuration/compilation#exclude).", - "default": [ - "./src/**/.*.spec.ts$", - "./**/.*.spec.ts$", - "./src/**/jest-setup.ts$", - "./**/jest-setup.ts$", - "./**/.*.js$" - ], - "hidden": true - }, - "external": { - "description": "A list projects to be treated as external. This feature is experimental", - "oneOf": [ - { "type": "string", "enum": ["all", "none"] }, - { "type": "array", "items": { "type": "string" } } - ] - }, - "externalBuildTargets": { - "type": "array", - "items": { "type": "string" }, - "description": "List of target names that annotate a build target for a project", - "default": ["build"] - }, - "generateLockfile": { - "type": "boolean", - "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["main", "outputPath", "tsConfig"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Inline libraries\" %}\n\n`@nx/js:swc` can inline non-buildable libraries by opt-in to **Inlining** mode with `external` option.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:swc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"all\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=all\n```\n\n`@nx/js:swc` can also inline buildable libraries by setting `external: 'none'`\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:swc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"none\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=none\n```\n\n{% /tab %}\n{% tab label=\"Custom swcrc\" %}\n\n`@nx/js:swc` can compile your code with a custom `.swcrc`\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:swc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"swcrc\": \"libs/ts-lib/.dev.swcrc\"\n },\n \"configurations\": {\n \"production\": {\n \"swcrc\": \"libs/ts-lib/.prod.swcrc\"\n }\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "description": "Build a project using SWC.", - "aliases": [], - "hidden": false, - "path": "/packages/js/src/executors/swc/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/js/executors/tsc.json b/docs/generated/packages/js/executors/tsc.json deleted file mode 100644 index cd05d41f7d8e7..0000000000000 --- a/docs/generated/packages/js/executors/tsc.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "name": "tsc", - "implementation": "/packages/js/src/executors/tsc/tsc.impl.ts", - "batchImplementation": "./src/executors/tsc/tsc.batch-impl", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Typescript Build Target", - "description": "Builds using TypeScript.", - "cli": "nx", - "type": "object", - "properties": { - "main": { - "type": "string", - "description": "The name of the main entry-point file.", - "x-completion-type": "file", - "x-completion-glob": "main@(.js|.ts|.jsx|.tsx)", - "x-priority": "important" - }, - "generateExportsField": { - "type": "boolean", - "alias": "exports", - "description": "Update the output package.json file's 'exports' field. This field is used by Node and bundles.", - "default": false, - "x-priority": "important" - }, - "additionalEntryPoints": { - "type": "array", - "description": "Additional entry-points to add to exports field in the package.json file.", - "items": { "type": "string" }, - "x-priority": "important" - }, - "rootDir": { - "type": "string", - "description": "Sets the rootDir for TypeScript compilation. When not defined, it uses the root of project." - }, - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "tsConfig": { - "type": "string", - "description": "The path to the Typescript configuration file.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "assets": { - "type": "array", - "description": "List of static assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "watch": { - "type": "boolean", - "description": "Enable re-building when files change.", - "default": false - }, - "clean": { - "type": "boolean", - "description": "Remove previous output before build.", - "default": true - }, - "transformers": { - "type": "array", - "description": "List of TypeScript Transformer Plugins.", - "default": [], - "items": { - "oneOf": [ - { "type": "string" }, - { - "type": "object", - "properties": { - "name": { "type": "string" }, - "options": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - } - ] - }, - "x-priority": "important" - }, - "external": { - "description": "A list projects to be treated as external. This feature is experimental", - "oneOf": [ - { "type": "string", "enum": ["all", "none"] }, - { "type": "array", "items": { "type": "string" } } - ] - }, - "externalBuildTargets": { - "type": "array", - "items": { "type": "string" }, - "description": "List of target names that annotate a build target for a project", - "default": ["build"] - }, - "generateLockfile": { - "type": "boolean", - "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["main", "outputPath", "tsConfig"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - }, - "transformerPattern": { - "oneOf": [ - { "type": "string" }, - { - "type": "object", - "properties": { - "name": { "type": "string" }, - "options": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - } - ] - } - }, - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Using TypeScript Transformer Plugins\" %}\n\n`@nx/js:tsc` can run the [TypeScript Transformers](https://github.com/madou/typescript-transformer-handbook) by using the `transformers` option.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"transformers\": [\n \"@nestjs/swagger/plugin\",\n {\n \"name\": \"@automapper/classes/transformer-plugin\",\n \"options\": {}\n }\n ]\n }\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Inline libraries\" %}\n\n`@nx/js:tsc` can inline non-buildable libraries by opt-in to **Inlining** mode with `external` option.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"all\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=all\n```\n\n`@nx/js:tsc` can also inline buildable libraries by setting `external: 'none'`\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"none\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=none\n```\n\n{% /tab %}\n{% tab label=\"Batch mode execution\" %}\n\n{% callout type=\"check\" title=\"Available since Nx 16.6.0\" %}\nThe `@nx/js:tsc` batch implementation was introduced in Nx **16.6.0**.\n{% /callout %}\n\nThe `@nx/js:tsc` executor supports running multiple tasks in a single process. When running in batch mode, the executor uses the [TypeScript APIs for incremental builds](https://www.typescriptlang.org/docs/handbook/project-references.html#build-mode-for-typescript). This results in a much faster build time when compared to the default implementation (the bigger the task graph to run, the more the performance improvements).\n\n{% callout type=\"warning\" title=\"Experimental feature\" %}\nExecuting tasks in batch mode is an experimental feature.\n{% /callout %}\n\n{% callout type=\"info\" title=\"Requirements\" %}\nBuilding a project with the `@nx/js:tsc` executor in batch mode requires all dependent projects to be buildable and built using the `@nx/js:tsc` executor.\n{% /callout %}\n\nTo run your builds using the batch implementation, pass in `--batch` flag:\n\n```shell\nnx build ts-lib --batch\n```\n\nFor optimal performance, you could set the `clean` option to `false`. Otherwise, the executor cleans the output folder before running the build, which results in the loss of the [`.tsbuildinfo` file](https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile) and, consequently, the loss of important optimizations performed by TypeScript. This is not a requirement. Even if the `clean` option is not set to `false` there are other important optimizations that are performed by the batch implementation.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"clean\": false\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "description": "Build a project using TypeScript.", - "aliases": [], - "hidden": false, - "path": "/packages/js/src/executors/tsc/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/js/executors/verdaccio.json b/docs/generated/packages/js/executors/verdaccio.json deleted file mode 100644 index 324f3fd9602c9..0000000000000 --- a/docs/generated/packages/js/executors/verdaccio.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "verdaccio", - "implementation": "/packages/js/src/executors/verdaccio/verdaccio.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "title": "Verdaccio Local Registry", - "description": "Start a local registry with Verdaccio.", - "cli": "nx", - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "Location option for npm config", - "default": "user", - "enum": ["global", "user", "project", "none"] - }, - "storage": { - "type": "string", - "description": "Path to the custom storage directory for Verdaccio" - }, - "port": { - "type": "number", - "description": "Port of local registry that Verdaccio should listen to", - "default": 4873 - }, - "config": { - "type": "string", - "description": "Path to the custom Verdaccio config file" - }, - "clear": { - "type": "boolean", - "description": "Clear local registry storage before starting Verdaccio", - "default": true - } - }, - "required": ["port"], - "presets": [] - }, - "description": "Start local registry with verdaccio", - "aliases": [], - "hidden": false, - "path": "/packages/js/src/executors/verdaccio/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/js/generators/convert-to-swc.json b/docs/generated/packages/js/generators/convert-to-swc.json deleted file mode 100644 index 232a80e8524a3..0000000000000 --- a/docs/generated/packages/js/generators/convert-to-swc.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "convert-to-swc", - "factory": "./src/generators/convert-to-swc/convert-to-swc#convertToSwcGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxTypescriptLibrary", - "cli": "nx", - "title": "Convert a TSC library to SWC", - "description": "Convert a TSC library to SWC.", - "type": "object", - "examples": [ - { - "command": "nx g swc mylib", - "description": "Convert `libs/myapp/mylib` to SWC." - } - ], - "properties": { - "project": { - "type": "string", - "description": "Library name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "^[a-zA-Z].*$" - }, - "targets": { - "type": "array", - "description": "List of targets to convert.", - "items": { "type": "string", "description": "Target to convert." }, - "default": ["build"] - } - }, - "required": ["project"], - "presets": [] - }, - "aliases": ["swc"], - "x-type": "library", - "description": "Convert a TypeScript library to compile with SWC.", - "implementation": "/packages/js/src/generators/convert-to-swc/convert-to-swc#convertToSwcGenerator.ts", - "hidden": false, - "path": "/packages/js/src/generators/convert-to-swc/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/js/generators/init.json b/docs/generated/packages/js/generators/init.json deleted file mode 100644 index 9e796004bd42c..0000000000000 --- a/docs/generated/packages/js/generators/init.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#initGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxTypescriptInit", - "cli": "nx", - "title": "Init nx/js", - "description": "Init generator placeholder for nx/js.", - "properties": { - "js": { - "type": "boolean", - "default": false, - "description": "Use JavaScript instead of TypeScript" - }, - "skipFormat": { - "type": "boolean", - "aliases": ["skip-format"], - "description": "Skip formatting files.", - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "description": "Skip adding package.json dependencies", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "tsConfigName": { - "type": "string", - "description": "Customize the generated tsconfig file name.", - "x-priority": "internal" - } - }, - "presets": [] - }, - "aliases": ["lib"], - "x-type": "init", - "description": "Initialize a TS/JS workspace.", - "hidden": true, - "implementation": "/packages/js/src/generators/init/init#initGenerator.ts", - "path": "/packages/js/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/js/generators/library.json b/docs/generated/packages/js/generators/library.json deleted file mode 100644 index 779da183bc076..0000000000000 --- a/docs/generated/packages/js/generators/library.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxTypescriptLibrary", - "cli": "nx", - "title": "Create a TypeScript Library", - "description": "Create a TypeScript Library.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Library name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "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?" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting)." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "description": "Do not update tsconfig.json for development experience.", - "default": false, - "x-priority": "internal" - }, - "includeBabelRc": { - "type": "boolean", - "description": "Include a .babelrc configuration to compile TypeScript files" - }, - "testEnvironment": { - "type": "string", - "enum": ["jsdom", "node"], - "description": "The test environment to use if unitTestRunner is set to jest or vitest.", - "default": "node" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case file names.", - "alias": "P", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "default": true - }, - "publishable": { - "type": "boolean", - "default": false, - "description": "Configure the library ready for use with `nx release` (https://nx.dev/core-features/manage-releases).", - "x-priority": "important" - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like @myorg/my-awesome-lib. Required for publishable library.", - "x-priority": "important" - }, - "buildable": { - "type": "boolean", - "default": true, - "description": "Generate a buildable library.", - "x-deprecated": "Use the `bundler` option for greater control (swc, tsc, rollup, vite, esbuild, none)." - }, - "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 - }, - "config": { - "type": "string", - "enum": ["workspace", "project", "npm-scripts"], - "default": "project", - "description": "Determines whether the project's executors should be configured in `workspace.json`, `project.json` or as npm scripts.", - "x-priority": "internal" - }, - "compiler": { - "type": "string", - "enum": ["tsc", "swc"], - "default": "tsc", - "description": "The compiler used by the build and test targets", - "x-deprecated": "Use the `bundler` option for greater control (swc, tsc, rollup, vite, esbuild, none)." - }, - "bundler": { - "description": "The bundler to use. Choosing 'none' means this library is not buildable.", - "type": "string", - "enum": ["swc", "tsc", "rollup", "vite", "esbuild", "none"], - "default": "tsc", - "x-prompt": "Which bundler would you like to use to build the library? Choose 'none' to skip build setup.", - "x-priority": "important" - }, - "skipTypeCheck": { - "type": "boolean", - "description": "Whether to skip TypeScript type checking for SWC compiler.", - "default": false - }, - "minimal": { - "type": "boolean", - "description": "Generate a library with a minimal setup. No README.md generated.", - "default": false - }, - "simpleName": { - "description": "Don't include the directory in the generated file name.", - "type": "boolean", - "default": false - } - }, - "required": ["name"], - "examplesFile": "---\ntitle: JS library generator examples\ndescription: This page contains examples for the @nx/js:lib generator.\n---\n\nThe `@nx/js:lib` generator will generate a library for you, and it will configure it according to the options you provide.\n\n```bash\nnpx nx g @nx/js:lib mylib\n```\n\nBy default, the library that is generated when you use this executor without passing any options, like the example above, will be a buildable library, using the `@nx/js:tsc` executor as a builder.\n\nYou may configure the tools you want to use to build your library, or bundle it too, by passing the `--bundler` flag. The `--bundler` flag controls the compiler and/or the bundler that will be used to build your library. If you choose `tsc` or `swc`, the result will be a buildable library using either `tsc` or `swc` as the compiler. If you choose `rollup` or `vite`, the result will be a buildable library using `rollup` or `vite` as the bundler. In the case of `rollup`, it will default to the `tsc` compiler. If you choose `esbuild`, you may use the [`esbuildOptions` property](https://esbuild.github.io/api/) in your `project.json` under the `build` target options to specify whether you wish to bundle your library or not.\n\n## Examples\n\n{% tabs %}\n\n{% tab label=\"Buildable with default compiler (tsc)\" %}\n\nGenerate a buildable library using the `@nx/js:tsc` executor. This uses `tsc` as the compiler.\n\n```bash\nnpx nx g @nx/js:lib mylib\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable with SWC compiler\" %}\n\nGenerate a buildable library using [SWC](https://swc.rs) as the compiler. This will use the `@nx/js:swc` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=swc\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable with tsc\" %}\n\nGenerate a buildable library using tsc as the compiler. This will use the `@nx/js:tsc` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=tsc\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable, with Rollup as a bundler\" %}\n\nGenerate a buildable library using [Rollup](https://rollupjs.org) as the bundler. This will use the `@nx/rollup:rollup` executor. It will also use [SWC](https://swc.rs) as the compiler.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=rollup\n```\n\nIf you do not want to use `swc` as the compiler, and want to use the default `babel` compiler, you can do so in your `project.json` under the `build` target options, using the [`compiler` property](https://nx.dev/packages/rollup/executors/rollup#compiler):\n\n```jsonc {% fileName=\"libs/mylib/project.json\" %}\n\"build\": {\n \"executor\": \"@nx/rollup:rollup\",\n \"options\": {\n //...\n \"compiler\": \"babel\"\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable, with Vite as a bundler\" %}\n\nGenerate a buildable library using [Vite](https://vitejs.dev/) as the bundler. This will use the `@nx/vite:build` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=vite\n```\n\n{% /tab %}\n\n{% tab label=\"Using ESBuild\" %}\n\nGenerate a buildable library using [ESBuild](https://esbuild.github.io/) as the bundler. This will use the `@nx/esbuild:esbuild` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=esbuild\n```\n\nIf you want to specify whether you want to bundle your library or not, you can do so in your `project.json` under the `build` target options, using the [`esbuildOptions` property](https://esbuild.github.io/api/):\n\n```jsonc {% fileName=\"libs/mylib/project.json\" %}\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n //...\n \"esbuildOptions\": {\n \"bundle\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Minimal publishing target\" %}\n\nGenerate a **publishable** library with a minimal publishing target. The result will be a buildable library using the `@nx/js:tsc` executor, using `tsc` as the compiler. You can change the compiler or the bundler by passing the `--bundler` flag.\n\n```bash\nnpx nx g lib mylib --publishable\n```\n\n{% /tab %}\n\n{% tab label=\"Using directory flag\" %}\n\nGenerate a library named `mylib` and put it under a directory named `myapp` (`libs/myapp/mylib`)\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=myapp`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnpx nx g lib mylib --directory=libs/myapp/mylib\n```\n\n{% /tab %}\n\n{% tab label=\"Non-buildable library\" %}\n\nGenerate a non-buildable library.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=none\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a library", - "implementation": "/packages/js/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/js/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/js/generators/release-version.json b/docs/generated/packages/js/generators/release-version.json deleted file mode 100644 index f58617582f713..0000000000000 --- a/docs/generated/packages/js/generators/release-version.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "release-version", - "factory": "./src/generators/release-version/release-version#releaseVersionGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxJSReleaseVersionGenerator", - "cli": "nx", - "title": "Implementation details of `nx release version`", - "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", - "type": "object", - "properties": { - "projects": { - "type": "array", - "description": "The ProjectGraphProjectNodes being versioned in the current execution.", - "items": { "type": "object" } - }, - "projectGraph": { - "type": "object", - "description": "ProjectGraph instance" - }, - "specifier": { - "type": "string", - "description": "Exact version or semver keyword to apply to the selected release group. Overrides specifierSource." - }, - "releaseGroup": { - "type": "object", - "description": "The resolved release group configuration, including name, relevant to all projects in the current execution." - }, - "specifierSource": { - "type": "string", - "default": "prompt", - "description": "Which approach to use to determine the semver specifier used to bump the version of the project.", - "enum": ["prompt", "conventional-commits"] - }, - "preid": { - "type": "string", - "description": "The optional prerelease identifier to apply to the version, in the case that specifier has been set to prerelease." - }, - "packageRoot": { - "type": "string", - "description": "The root directory of the directory (containing a manifest file at its root) to publish. Defaults to the project root" - }, - "currentVersionResolver": { - "type": "string", - "default": "disk", - "description": "Which approach to use to determine the current version of the project.", - "enum": ["registry", "disk", "git-tag"] - }, - "currentVersionResolverMetadata": { - "type": "object", - "description": "Additional metadata to pass to the current version resolver.", - "default": {} - }, - "skipLockFileUpdate": { - "type": "boolean", - "description": "Whether to skip updating the lock file after updating the version." - }, - "installArgs": { - "type": "string", - "description": "Additional arguments to pass to the package manager when updating the lock file with an install command." - }, - "installIgnoreScripts": { - "type": "boolean", - "description": "Whether to ignore install lifecycle scripts when updating the lock file with an install command." - } - }, - "required": ["projects", "projectGraph", "releaseGroup"], - "presets": [] - }, - "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", - "hidden": true, - "implementation": "/packages/js/src/generators/release-version/release-version#releaseVersionGenerator.ts", - "aliases": [], - "path": "/packages/js/src/generators/release-version/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/js/generators/setup-build.json b/docs/generated/packages/js/generators/setup-build.json deleted file mode 100644 index 06209946b7517..0000000000000 --- a/docs/generated/packages/js/generators/setup-build.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "setup-build", - "factory": "./src/generators/setup-build/generator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "SetupBuild", - "title": "Setup Build", - "description": "Sets up build target for a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "Project to add the build target to.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "Which project do you want to add build to?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "bundler": { - "description": "The bundler to use to build the project.", - "type": "string", - "enum": ["tsc", "swc", "rollup", "vite", "esbuild"], - "default": "tsc", - "x-prompt": "Which bundler would you like to use to build the project?", - "x-priority": "important" - }, - "main": { - "description": "The path to the main entry file, relative to workspace root. Defaults to /src/index.ts or /src/main.ts.", - "type": "string" - }, - "tsConfig": { - "description": "The path to the tsConfig file, relative to workspace root. Defaults to /tsconfig.lib.json or /tsconfig.app.json depending on project type.", - "type": "string" - }, - "buildTarget": { - "description": "The build target to add.", - "type": "string", - "default": "build" - } - }, - "required": ["project", "bundler"], - "presets": [] - }, - "alias": ["build"], - "description": "setup-build generator", - "implementation": "/packages/js/src/generators/setup-build/generator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/js/src/generators/setup-build/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/js/generators/setup-verdaccio.json b/docs/generated/packages/js/generators/setup-verdaccio.json deleted file mode 100644 index 7e66804e74074..0000000000000 --- a/docs/generated/packages/js/generators/setup-verdaccio.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "setup-verdaccio", - "factory": "./src/generators/setup-verdaccio/generator#setupVerdaccio", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "SetupVerdaccio", - "title": "Setup Verdaccio", - "description": "Setup Verdaccio local-registry.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": [], - "presets": [] - }, - "alias": ["verdaccio"], - "description": "Setup Verdaccio for local package management.", - "implementation": "/packages/js/src/generators/setup-verdaccio/generator#setupVerdaccio.ts", - "aliases": [], - "hidden": false, - "path": "/packages/js/src/generators/setup-verdaccio/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/documents/overview.md b/docs/generated/packages/nest/documents/overview.md deleted file mode 100644 index bcf3bef876b8d..0000000000000 --- a/docs/generated/packages/nest/documents/overview.md +++ /dev/null @@ -1,169 +0,0 @@ -Nest.js is a framework designed for building scalable server-side applications. In many ways, Nest is familiar to Angular developers: - -- It has excellent TypeScript support. -- Its dependency injection system is similar to the one in Angular. -- It emphasises testability. -- Its configuration APIs are similar to Angular as well. - -Many conventions and best practices used in Angular applications can be also be used in Nest. - -## Setting Up @nx/nest - -### Generating a new workspace - -To create a new workspace with Nest, run the following command: - -```shell -npx create-nx-workspace my-workspace --preset=nest -``` - -Yarn users can use the following command instead: - -```shell -yarn create nx-workspace my-workspace --preset=nest -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/nest` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/nest` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/nest -``` - -This will install the correct version of `@nx/nest`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/nest` package with your package manager. - -```shell -npm add -D @nx/nest -``` - -{% /tab %} -{% /tabs %} - -### Create Applications - -You can add a new Nest application with the following command: - -```shell -nx g @nx/nest:app my-nest-app -``` - -#### Application Proxies - -Generating Nest applications has an option to configure other projects in the workspace to proxy API requests. This can be done by passing the `--frontendProject` with the project name you wish to enable proxy support for. - -```shell -nx g @nx/nest:app my-nest-app --frontendProject my-angular-app -``` - -### Create Libraries - -You can add a new Nest library with the following command: - -```shell -nx g @nx/nest:lib my-nest-lib -``` - -To make the library `buildable`, use the following command: - -```shell -nx g @nx/nest:lib my-nest-lib --buildable -``` - -To make the library `publishable`, use the following command: - -```shell -nx g @nx/nest:lib my-nest-lib --publishable --importPath=@my-workspace/my-nest-lib -``` - -> Read more about [building and publishing libraries here](/concepts/more-concepts/buildable-and-publishable-libraries). - -### Nest Generators - -The Nest plugin for Nx extends the generators provided by Nest. Any commands that can be used with the Nest CLI can also be used with the `nx` command. The `--project` flag should be used for all Nest generators. - -> `--project` is used to infer the root of the project where the generators will generate the files. - -## Using Nest - -### Build - -You can build an application with the following command: - -```shell -nx build my-nest-app -``` - -This applies to `buildable` libraries as well - -```shell -nx build my-nest-lib -``` - -#### Waiting for other builds - -Setting the `waitUntilTargets` option with an array of projects (with the following format: `"project:target"`) will execute those commands before serving the Nest application. - -### Serve - -You can serve an application with the following command: - -```shell -nx serve my-nest-app -``` - -The `serve` command runs the `build` target, and executes the application. - -By default, the serve command will run in `watch` mode. This allows code to be changed, and the Nest application to be rebuilt automatically. - -#### Debugging - -Nest applications also have the `inspect` flag set, so you can attach your debugger to the running instance. - -Debugging is set to use a random port that is available on the system. The port can be changed by setting the port option in the `serve` target in the `project.json`. Or by running the serve command with `--port `. - -For additional information on how to debug Node applications, see the [Node.js debugging getting started guide](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients). - -### Lint - -You can lint an application with the following command: - -```shell -nx lint my-nest-app -``` - -You can lint a library with the following command: - -```shell -nx lint my-nest-lib -``` - -### Unit Test - -You can run unit test for an application with the following command: - -```shell -nx test my-nest-app -``` - -You can run unit test for a library with the following command: - -```shell -nx test my-nest-lib -``` - -## More Documentation - -- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/nest/generators/application.json b/docs/generated/packages/nest/generators/application.json deleted file mode 100644 index 304141f665d42..0000000000000 --- a/docs/generated/packages/nest/generators/application.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestApplicationGenerator", - "title": "Nx Application Options Schema", - "description": "Nx Application Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the node application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for end to end (e2e) tests", - "default": "jest" - }, - "tags": { - "description": "Add tags to the application (used for linting).", - "type": "string" - }, - "frontendProject": { - "description": "Frontend project that needs to access this application. This sets up proxy configuration.", - "type": "string", - "x-priority": "important" - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "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 - }, - "strict": { - "type": "boolean", - "description": "Adds strictNullChecks, noImplicitAny, strictBindCallApply, forceConsistentCasingInFileNames and noFallthroughCasesInSwitch to tsconfig.", - "default": false - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create a NestJS application.", - "implementation": "/packages/nest/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/nest/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/class.json b/docs/generated/packages/nest/generators/class.json deleted file mode 100644 index 54794b04e55a0..0000000000000 --- a/docs/generated/packages/nest/generators/class.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "class", - "factory": "./src/generators/class/class#classGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestClassGenerator", - "title": "Nest Class Options Schema", - "description": "Nest Class Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the class.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest class language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `class` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/class/class#classGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/class/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/controller.json b/docs/generated/packages/nest/generators/controller.json deleted file mode 100644 index 2f2de5ae7f8fe..0000000000000 --- a/docs/generated/packages/nest/generators/controller.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "controller", - "factory": "./src/generators/controller/controller#controllerGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestControllerGenerator", - "title": "Nest Controller Options Schema", - "description": "Nest Controller Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the controller.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": false - }, - "language": { - "description": "Nest controller language.", - "type": "string", - "enum": ["js", "ts"] - }, - "skipImport": { - "description": "Flag to skip the module import.", - "type": "boolean", - "default": false - }, - "module": { - "description": "Allows specification of the declaring module.", - "type": "string" - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `controller` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/controller/controller#controllerGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/controller/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/decorator.json b/docs/generated/packages/nest/generators/decorator.json deleted file mode 100644 index 2b8a41af5421c..0000000000000 --- a/docs/generated/packages/nest/generators/decorator.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "decorator", - "factory": "./src/generators/decorator/decorator#decoratorGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestDecoratorGenerator", - "title": "Nest Decorator Options Schema", - "description": "Nest Decorator Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the decorator.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest decorator language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `decorator` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/decorator/decorator#decoratorGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/decorator/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/filter.json b/docs/generated/packages/nest/generators/filter.json deleted file mode 100644 index cd4bb4d3fc52e..0000000000000 --- a/docs/generated/packages/nest/generators/filter.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "filter", - "factory": "./src/generators/filter/filter#filterGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestFilterGenerator", - "title": "Nest Filter Options Schema", - "description": "Nest Filter Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the filter.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest filter language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `filter` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/filter/filter#filterGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/filter/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/gateway.json b/docs/generated/packages/nest/generators/gateway.json deleted file mode 100644 index 2bfc26fb702aa..0000000000000 --- a/docs/generated/packages/nest/generators/gateway.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "gateway", - "factory": "./src/generators/gateway/gateway#gatewayGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestGatewayGenerator", - "title": "Nest Gateway Options Schema", - "description": "Nest Gateway Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the gateway.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest gateway language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `gateway` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/gateway/gateway#gatewayGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/gateway/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/guard.json b/docs/generated/packages/nest/generators/guard.json deleted file mode 100644 index de1b34351e3bd..0000000000000 --- a/docs/generated/packages/nest/generators/guard.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "guard", - "factory": "./src/generators/guard/guard#guardGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestGuardGenerator", - "title": "Nest Guard Options Schema", - "description": "Nest Guard Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the guard.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest guard language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `guard` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/guard/guard#guardGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/guard/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/init.json b/docs/generated/packages/nest/generators/init.json deleted file mode 100644 index 7add673fa13e0..0000000000000 --- a/docs/generated/packages/nest/generators/init.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestInitGenerator", - "title": "Init Nest Plugin", - "description": "Init Nest Plugin.", - "cli": "nx", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/nest` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/nest/src/generators/init/init.ts", - "path": "/packages/nest/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/interceptor.json b/docs/generated/packages/nest/generators/interceptor.json deleted file mode 100644 index 7c1283c450442..0000000000000 --- a/docs/generated/packages/nest/generators/interceptor.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "interceptor", - "factory": "./src/generators/interceptor/interceptor#interceptorGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestInterceptorGenerator", - "title": "Nest Interceptor Options Schema", - "description": "Nest Interceptor Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the interceptor.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest interceptor language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `interceptor` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/interceptor/interceptor#interceptorGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/interceptor/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/interface.json b/docs/generated/packages/nest/generators/interface.json deleted file mode 100644 index 77ff955953ae6..0000000000000 --- a/docs/generated/packages/nest/generators/interface.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "interface", - "factory": "./src/generators/interface/interface#interfaceGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestInterfaceGenerator", - "title": "Nest Interface Options Schema", - "description": "Nest Interface Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the interface.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `interface` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/interface/interface#interfaceGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/interface/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/library.json b/docs/generated/packages/nest/generators/library.json deleted file mode 100644 index 6fcfb0e1c44de..0000000000000 --- a/docs/generated/packages/nest/generators/library.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestLibraryGenerator", - "title": "Create a NestJS Library for Nx", - "description": "Create a NestJS Library for Nx.", - "cli": "nx", - "type": "object", - "examples": [ - { - "command": "nx g lib mylib --directory=myapp", - "description": "Generate libs/myapp/mylib" - } - ], - "properties": { - "name": { - "description": "Library name.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "description": "A directory where the library is placed.", - "type": "string", - "alias": "dir" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "tags": { - "description": "Add tags to the library (used for linting).", - "type": "string", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "description": "Do not update tsconfig.base.json for development experience.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "publishable": { - "description": "Create a publishable library.", - "type": "boolean", - "x-priority": "important" - }, - "buildable": { - "description": "Generate a buildable library.", - "type": "boolean", - "default": false, - "x-priority": "important" - }, - "importPath": { - "description": "The library name used to import it, like @myorg/my-awesome-lib. Must be a valid npm name.", - "type": "string" - }, - "global": { - "description": "Add the Global decorator to the generated module.", - "type": "boolean", - "default": false - }, - "service": { - "description": "Include a service with the library.", - "type": "boolean", - "default": false - }, - "controller": { - "description": "Include a controller with the library.", - "type": "boolean", - "default": false - }, - "testEnvironment": { - "description": "The test environment for jest, for node applications this should stay as node unless doing DOM testing.", - "type": "string", - "enum": ["jsdom", "node"], - "default": "node" - }, - "target": { - "description": "The ES target, Nest suggest using es2021 or higher.", - "type": "string", - "default": "es2021", - "enum": [ - "es5", - "es6", - "esnext", - "es2015", - "es2016", - "es2017", - "es2018", - "es2019", - "es2020", - "es2021" - ] - }, - "strict": { - "description": "Whether to enable tsconfig strict mode or not.", - "type": "boolean", - "default": true - }, - "standaloneConfig": { - "description": "Split the project configuration into /project.json rather than including it inside workspace.json", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "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 - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "simpleName": { - "description": "Don't include the directory in the name of the module of the library.", - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a new NestJS library.", - "implementation": "/packages/nest/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/nest/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/middleware.json b/docs/generated/packages/nest/generators/middleware.json deleted file mode 100644 index 62cd735ec5851..0000000000000 --- a/docs/generated/packages/nest/generators/middleware.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "middleware", - "factory": "./src/generators/middleware/middleware#middlewareGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestMiddlewareGenerator", - "title": "Nest Middleware Options Schema", - "description": "Nest Middleware Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the middleware.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest middleware language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `middleware` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/middleware/middleware#middlewareGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/middleware/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/module.json b/docs/generated/packages/nest/generators/module.json deleted file mode 100644 index 058349d4878c7..0000000000000 --- a/docs/generated/packages/nest/generators/module.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "module", - "factory": "./src/generators/module/module#moduleGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestModuleGenerator", - "title": "Nest Module Options Schema", - "description": "Nest Module Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the module.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": false - }, - "language": { - "description": "Nest module language.", - "type": "string", - "enum": ["js", "ts"] - }, - "module": { - "description": "The path to import the module.", - "type": "string", - "format": "path" - }, - "skipImport": { - "description": "Flag to skip the module import.", - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `module` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/module/module#moduleGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/module/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/pipe.json b/docs/generated/packages/nest/generators/pipe.json deleted file mode 100644 index 985d377cd9310..0000000000000 --- a/docs/generated/packages/nest/generators/pipe.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "pipe", - "factory": "./src/generators/pipe/pipe#pipeGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestPipeGenerator", - "title": "Nest Pipe Options Schema", - "description": "Nest Pipe Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the pipe.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest pipe language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `pipe` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/pipe/pipe#pipeGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/pipe/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/provider.json b/docs/generated/packages/nest/generators/provider.json deleted file mode 100644 index 7d7f7e17e9119..0000000000000 --- a/docs/generated/packages/nest/generators/provider.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "provider", - "factory": "./src/generators/provider/provider#providerGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestProviderGenerator", - "title": "Nest Provider Options Schema", - "description": "Nest Provider Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the provider.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": true - }, - "language": { - "description": "Nest provider language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `provider` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/provider/provider#providerGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/provider/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/resolver.json b/docs/generated/packages/nest/generators/resolver.json deleted file mode 100644 index 6b534e100f40e..0000000000000 --- a/docs/generated/packages/nest/generators/resolver.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "resolver", - "factory": "./src/generators/resolver/resolver#resolverGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestResolverGenerator", - "title": "Nest Resolver Options Schema", - "description": "Nest Resolver Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the resolver.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": false - }, - "language": { - "description": "Nest resolver language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `resolver` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/resolver/resolver#resolverGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/resolver/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/resource.json b/docs/generated/packages/nest/generators/resource.json deleted file mode 100644 index c41094f06eedc..0000000000000 --- a/docs/generated/packages/nest/generators/resource.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "name": "resource", - "factory": "./src/generators/resource/resource#resourceGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestResourceGenerator", - "title": "Nest Resource Options Schema", - "description": "Nest Resource Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the resource.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for this resource (plural, e.g., `users`)?" - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": false - }, - "language": { - "description": "Nest class language.", - "type": "string", - "enum": ["js", "ts"] - }, - "type": { - "type": "string", - "description": "The transport layer.", - "default": "rest", - "enum": [ - "rest", - "graphql-code-first", - "graphql-schema-first", - "microservice", - "ws" - ], - "x-prompt": { - "message": "What transport layer do you use?", - "type": "list", - "items": [ - { "value": "rest", "label": "REST API" }, - { "value": "graphql-code-first", "label": "GraphQL (code first)" }, - { - "value": "graphql-schema-first", - "label": "GraphQL (schema first)" - }, - { "value": "microservice", "label": "Microservice (non-HTTP)" }, - { "value": "ws", "label": "WebSockets" } - ] - } - }, - "skipImport": { - "type": "boolean", - "description": "Flag to skip the module import.", - "default": false - }, - "crud": { - "type": "boolean", - "description": "When true, CRUD entry points are generated.", - "default": true, - "x-prompt": { - "message": "Would you like to generate CRUD entry points?", - "type": "confirmation" - } - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `resource` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/resource/resource#resourceGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/resource/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nest/generators/service.json b/docs/generated/packages/nest/generators/service.json deleted file mode 100644 index 7a9152fb5cd40..0000000000000 --- a/docs/generated/packages/nest/generators/service.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "service", - "factory": "./src/generators/service/service#serviceGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNestServiceGenerator", - "title": "Nest Service Options Schema", - "description": "Nest Service Options Schema.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "description": "The name of the service.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use?" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "description": "The Nest project to target.", - "type": "string", - "$default": { "$source": "projectName" }, - "alias": "p", - "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." - }, - "directory": { - "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", - "type": "string", - "aliases": ["dir", "path"] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "description": "Test runner to use for unit tests.", - "type": "string", - "enum": ["jest", "none"], - "default": "jest" - }, - "flat": { - "description": "Flag to indicate if a directory is created.", - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", - "type": "boolean", - "default": false - }, - "language": { - "description": "Nest service language.", - "type": "string", - "enum": ["js", "ts"] - } - }, - "additionalProperties": false, - "required": ["name"], - "presets": [] - }, - "description": "Run the `service` NestJS generator with Nx project support.", - "implementation": "/packages/nest/src/generators/service/service#serviceGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nest/src/generators/service/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/documents/overview.md b/docs/generated/packages/next/documents/overview.md deleted file mode 100644 index 085fccc987b99..0000000000000 --- a/docs/generated/packages/next/documents/overview.md +++ /dev/null @@ -1,307 +0,0 @@ ---- -title: Overview of the Nx Next.js Plugin -description: The Nx Next.js plugin contains executors and generators for managing Next.js applications and libraries within an Nx workspace. This page also explains how to configure Next.js on your Nx workspace. ---- - -When using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work. - -The Next.js plugin contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides: - -- Scaffolding for creating, building, serving, linting, and testing Next.js applications. -- Integration with building, serving, and exporting a Next.js application. -- Integration with React libraries within the workspace. - -## Setting up @nx/next - -To create a new Nx workspace with Next.js, run: - -```shell -npx create-nx-workspace@latest --preset=next -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/next` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any workspace, you can install `@nx/next` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/next -``` - -This will install the correct version of `@nx/next`. - -### How @nx/next Infers Tasks - -The `@nx/next` plugin will create tasks for any project that has a Next.js configuration file preset. Any of the following files will be recognized as a Next.js configuration file: - -- `next.config.js` -- `next.config.cjs` -- `next.config.mjs` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project --web` in your command line. - -### @nx/next Configuration - -The `@nx/next/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/next/plugin", - "options": { - "buildTargetName": "build", - "devTargetName": "dev", - "startTargetName": "start", - "serveStaticTargetName": "serve-static" - } - } - ] -} -``` - -- The `buildTargetName` option controls the name of Next.js' compilation task which compiles the application for production deployment. The default name is `build`. -- The `devTargetName` option controls the name of Next.js' development serve task which starts the application in development mode. The default name is `dev`. -- The `startTargetName` option controls the name of Next.js' production serve task which starts the application in production mode. The default name is `start`. -- The `serveStaticTargetName` option controls the name of Next.js' static export task which exports the application to static HTML files. The default name is `serve-static`. - -{% /tab %} - -{% tab label="Nx < 18" %} - -Install the `@nx/next` package with your package manager. - -```shell -npm add -D @nx/next -``` - -{% /tab %} -{% /tabs %} - -## Using @nx/next - -### Creating Applications - -You can add a new application with the following: - -```shell -nx g @nx/next:app my-new-app -``` - -### Generating Libraries - -Nx allows you to create libraries with just one command. Some reasons you might want to create a library include: - -- Share code between applications -- Publish a package to be used outside the monorepo -- Better visualize the architecture using `nx graph` - -For more information on Nx libraries, see our documentation on [Creating Libraries](/concepts/more-concepts/creating-libraries) -and [Library Types](/concepts/more-concepts/library-types). - -To generate a new library run: - -```shell -nx g @nx/next:lib my-new-lib -``` - -### Generating Pages and Components - -Nx also provides commands to quickly generate new pages and components for your application. - -```shell -nx g @nx/next:page my-new-page --project=my-new-app - -nx g @nx/next:component my-new-component --project=my-new-app -``` - -Above commands will add a new page `my-new-page` and a component `my-new-component` to `my-new-app` project respectively. - -Nx generates components with tests by default. For pages, you can pass the `--withTests` option to generate tests under the `specs` folder. - -## Using Next.js - -### Serving Next.js Applications - -{% tabs %} - -{% tab label="Nx 18+" %} - -You can serve a Next.js application `my-new-app` for development: - -```shell -nx dev my-new-app -``` - -To serve a Next.js application for production: - -```shell -nx start my-new-app -``` - -This will start the server at by default. - -{% /tab %} -{% tab label="Nx < 18" %} - -You can run `nx serve my-new-app` to serve a Next.js application called `my-new-app` for development. This will start the dev server at . - -To serve a Next.js application for production, add the `--prod` flag to the serve command: - -```shell -nx serve my-new-app --prod -``` - -{% /tab %} -{% /tabs %} - -### Using an Nx Library in your Application - -You can import a library called `my-new-lib` in your application as follows. - -```typescript jsx {% fileName="apps/my-next-app/pages/index.tsx" %} -import { MyNewLib } from '@/my-new-lib'; - -export function Index() { - return ( - -

The main content

-
- ); -} - -export default Index; -``` - -There is no need to build the library prior to using it. When you update your library, the Next.js application will automatically pick up the changes. - -### Publishable libraries - -For libraries intended to be built and published to a registry (e.g. npm) you can use the `--publishable` and `--importPath` options. - -```shell -nx g @nx/next:lib my-new-lib --publishable --importPath=@happynrwl/ui-components -``` - -### Testing Projects - -You can run unit tests with: - -```shell -nx test my-new-app -nx test my-new-lib -``` - -Replace `my-new-app` and `my-new-lib` with the name or the project you want to test. This command works for both applications and libraries. - -You can also run E2E tests for applications: - -```shell -nx e2e my-new-app-e2e -``` - -Replace `my-new-app-e2e` with the name or your project with -e2e appended. - -### Linting Projects - -You can lint projects with: - -```shell -nx lint my-new-app -nx lint my-new-lib -``` - -Replace `my-new-app` and `my-new-lib` with the name or the project you want to test. This command works for both applications and libraries. - -### Building Projects - -Next.js applications can be build with: - -```shell -nx build my-new-app -``` - -And if you generated a library with --buildable, then you can build a library as well: - -```shell -nx build my-new-lib -``` - -After running a build, the output will be in the `dist` folder. You can customize the output folder by setting `outputPath` in the project's `project.json` file. - -The library in `dist` is publishable to npm or a private registry. - -### Static HTML Export - -Next.js applications can be statically exported by changing the output inside your Next.js configuration file. - -```js {% fileName="apps/my-next-app/next.config.js" %} -const nextConfig = { - output: 'export', - nx: { - svgr: false, - }, - output: 'export', -}; -``` - -After setting the output to `export`, you can run the `build` command to generate the static HTML files. - -```shell -nx build my-next-app -``` - -You can then check your project folder for the `out` folder which contains the static HTML files. - -```shell -├── index.d.ts -├── jest.config.ts -├── next-env.d.ts -├── next.config.js -├── out -├── project.json -├── public -├── specs -├── src -├── tsconfig.json -└── tsconfig.spec.json -``` - -#### E2E testing - -You can perform end-to-end (E2E) testing on static HTML files using a test runner like Cypress. When you create a Next.js application, Nx automatically creates a `serve-static` target. This target is designed to serve the static HTML files produced by the build command. - -This feature is particularly useful for testing in continuous integration (CI) pipelines, where resources may be constrained. Unlike the `dev` and `start` targets, `serve-static` does not require a Next.js server to operate, making it more efficient and faster by eliminating background processes, such as file change monitoring. - -To utilize the `serve-static` target for testing, run the following command: - -```shell -nx serve-static my-next-app-e2e -``` - -This command performs several actions: - -1. It will build the Next.js application and generate the static HTML files. -2. It will serve the static HTML files using a simple HTTP server. -3. It will run the Cypress tests against the served static HTML files. - -### Deploying Next.js Applications - -Once you are ready to deploy your Next.js application, you have absolute freedom to choose any hosting provider that fits your needs. - -You may know that the company behind Next.js, Vercel, has a great hosting platform offering that is developed in tandem with Next.js itself to offer a great overall developer and user experience. We have detailed [how to deploy your Next.js application to Vercel in a separate guide](/recipes/react/deploy-nextjs-to-vercel). - -## More Documentation - -Here are other resources that you may find useful to learn more about Next.js and Nx. - -- **Blog post:** [Building a blog with Next.js and Nx Series](https://blog.nrwl.io/create-a-next-js-web-app-with-nx-bcf2ab54613) by Juri Strumpflohner -- **Video tutorial:** [Typescript NX Monorepo with NextJS and Express](https://www.youtube.com/watch?v=WOfL5q2HznI) by Jack Herrington diff --git a/docs/generated/packages/next/executors/build.json b/docs/generated/packages/next/executors/build.json deleted file mode 100644 index 81911e84a576b..0000000000000 --- a/docs/generated/packages/next/executors/build.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "build", - "implementation": "/packages/next/src/executors/build/build.impl.ts", - "schema": { - "version": 2, - "outputCapture": "pipe", - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "title": "Next Build", - "description": "Build a Next.js app.", - "type": "object", - "properties": { - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "fileReplacements": { - "description": "Replace files with other files in the build.", - "type": "array", - "items": { - "type": "object", - "properties": { - "replace": { - "type": "string", - "description": "The file to be replaced.", - "x-completion-type": "file" - }, - "with": { - "type": "string", - "description": "The file to replace with.", - "x-completion-type": "file" - } - }, - "additionalProperties": false, - "required": ["replace", "with"] - }, - "default": [] - }, - "nextConfig": { - "description": "Path (relative to workspace root) to a function which takes phase, config, and builder options, and returns the resulting config. This is an advanced option and should not be used with a normal Next.js config file (i.e. `next.config.js`).", - "type": "string", - "x-completion-type": "file", - "x-completion-glob": "next?(*).js", - "x-priority": "important" - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - }, - "includeDevDependenciesInPackageJson": { - "type": "boolean", - "description": "Include `devDependencies` in the generated package.json file. By default only production `dependencies` are included.", - "default": false - }, - "generateLockfile": { - "type": "boolean", - "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", - "default": false, - "x-priority": "internal" - }, - "debug": { - "type": "boolean", - "description": "Enable Next.js debug build logging" - }, - "profile": { - "type": "boolean", - "description": "Used to enable React Production Profiling" - }, - "experimentalAppOnly": { - "type": "boolean", - "description": "Only build 'app' routes" - } - }, - "required": ["outputPath"], - "examplesFile": "---\ntitle: Next.js builder executor examples\ndescription: This page contains examples for the @nx/next:build executor.\n---\n\n`project.json`:\n\n```json\n//...\n{\n \"name\": \"acme\",\n \"$schema\": \"node_modules/nx/schemas/project-schema.json\",\n \"sourceRoot\": \".\",\n \"projectType\": \"application\",\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n }\n }\n //...\n }\n}\n```\n\n```bash\nnx run acme:build\n```\n\n## Examples\n\n### For Next.js Standalone projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Next.js standalone projects. Our `@nx/next:build` executor is integrated to use Next.js' CLI. You can read more about the build options at [Next.js CLI Options](https://nextjs.org/docs/app/api-reference/next-cli)\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\"\n },\n \"production\": {}\n }\n },\n```\n\n{% /tab %}\n{% tab label=\"Enable debug\" %}\n\nYou can create a debug build for more verbose output by:\n\nUsing the `--debug` flag\n\n```shell\nnx run acme:build:development --debug\n```\n\nUpdating the build options to include `debug`.\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\",\n \"debug\": true\n },\n \"production\": {}\n }\n },\n```\n\n```bash\nnx run acme:build:development\n```\n\n{% /tab %}\n\n{% tab label=\"Adding profiling\" %}\n\nYou can enable profiing for React by\n\nUsing the `--profile` flag\n\n```shell\nnx run acme:build:production --profile\n```\n\nUpdating the build options to include `profile`.\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\",\n },\n \"production\": {\n \"profile\": true\n }\n }\n },\n```\n\n```shell\nnx run acme:build:production\n```\n\n{% /tab %}\n\n{% tab label=\"Enable experimental app only\" %}\n\nSince Next.js 13 the `app/` directory it is reserved.\nYou can enable to build only `app/` routes by\n\nUsing the `--experimentalAppOnly` flag\n\n```shell\nnx run acme:build:production --experimentalAppOnly\n```\n\nUpdating the build options to include `experimentalAppOnly`.\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\",\n \"experimentalAppOnly\": true\n },\n \"production\": {}\n }\n },\n```\n\n```shell\nnx run acme:build:production\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Build a Next.js application.", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/executors/build/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/next/executors/export.json b/docs/generated/packages/next/executors/export.json deleted file mode 100644 index b824d665baf69..0000000000000 --- a/docs/generated/packages/next/executors/export.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "export", - "implementation": "/packages/next/src/executors/export/export.impl.ts", - "schema": { - "version": 2, - "outputCapture": "pipe", - "cli": "nx", - "title": "Next Export", - "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", - "type": "object", - "properties": { - "buildTarget": { - "type": "string", - "description": "Target which builds the application", - "x-priority": "important" - }, - "silent": { - "type": "boolean", - "description": "Hide progress or not (default is `false`)", - "default": false - }, - "threads": { - "type": "number", - "description": "Number of worker threads to utilize (defaults to the number of CPUs)" - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - } - }, - "required": [], - "presets": [] - }, - "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", - "x-deprecated": "Use static exports in next.config.js instead. See: https://nextjs.org/docs/pages/building-your-application/deploying/static-exports.", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/executors/export/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/next/executors/server.json b/docs/generated/packages/next/executors/server.json deleted file mode 100644 index 6d932d1c0ada3..0000000000000 --- a/docs/generated/packages/next/executors/server.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "server", - "implementation": "/packages/next/src/executors/server/server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "pipe", - "cli": "nx", - "title": "Next Serve", - "description": "Serve a Next.js app.", - "type": "object", - "properties": { - "dev": { - "type": "boolean", - "description": "Serve the application in the dev mode.", - "default": true - }, - "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" - }, - "staticMarkup": { - "type": "boolean", - "description": "Static markup.", - "default": false - }, - "quiet": { - "type": "boolean", - "description": "Hide error messages containing server information.", - "default": false - }, - "customServerTarget": { - "type": "string", - "description": "Target which builds the custom server." - }, - "hostname": { - "type": "string", - "description": "Hostname on which the application is served." - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - }, - "keepAliveTimeout": { - "type": "number", - "description": "Max milliseconds to wait before closing inactive connection." - }, - "turbo": { - "type": "boolean", - "description": "Activate the incremental bundler for Next.js, which is implemented in Rust. Please note, this feature is exclusively available in development mode." - }, - "experimentalHttps": { - "type": "boolean", - "description": "Enable HTTPS support for the Next.js development server." - } - }, - "required": ["buildTarget"], - "examplesFile": "---\ntitle: Next.js server executor examples\ndescription: This page contains examples for the @nx/next:serve executor.\n---\n\n`project.json`:\n\n```json\n//...\n{\n \"name\": \"acme\",\n \"$schema\": \"node_modules/nx/schemas/project-schema.json\",\n \"sourceRoot\": \".\",\n \"projectType\": \"application\",\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n }\n }\n //...\n }\n}\n```\n\n```bash\nnx run acme:serve\n```\n\n## Examples\n\n### For Next.js Standalone projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Next.js standalone projects. Our `@nx/next:server` executor is integrated to use Next.js' CLI. You can read more about the serve options at [Next.js CLI Options](https://nextjs.org/docs/app/api-reference/next-cli)\n\n```json\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n },\n \"configurations\": {\n \"development\": {\n \"buildTarget\": \"acme:build:development\",\n \"dev\": true\n },\n \"production\": {\n \"buildTarget\": \"acme:build:production\",\n \"dev\": false\n }\n }\n },\n```\n\n{% /tab %}\n{% tab label=\"Enable turbo\" %}\n\nTurbopack (beta) is a cutting-edge bundler designed for JavaScript and TypeScript. To read more about support features see [Next.js Turbopack Doucmentation](https://turbo.build/pack/docs/features)\n\nIn the context of Nx, you can utilize Turbopack within both the `pages` and `app` directories of Next.js to enhance local development speed. To activate Turbopack, simply:\n\nAppend the `--turbo` flag while executing the Nx development server.\n\n```shell\nnx run acme:serve --turbo\n```\n\nUpdating the build options to include `turbo`.\n\n```json\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n },\n \"configurations\": {\n \"development\": {\n \"buildTarget\": \"acme:build:development\",\n \"dev\": true,\n \"turbo\": true\n },\n //\n }\n }\n```\n\n```bash\nnx run acme:serve\n```\n\n{% /tab %}\n\n{% tab label=\"Adding keep alive timeout\" %}\n\nWhen using Nx with Next.js behind a downstream proxy, it's important to make sure that the `keep-alive timeouts` of Next.js' HTTP server are set to longer durations than the timeouts of the proxy. If you don't do this, Node.js will unexpectedly end TCP connections without notifying the proxy when the `keep-alive timeout` is reached. This can lead to a proxy error when the proxy tries to reuse a connection that Node.js has already terminated.\n\nTo configure timeout values (in milliseconds) you can:\n\nPass `--keepAliveTimeout`\n\n```shell\nnx run acme:serve --keepAliveTimeout 60000\n```\n\nUpdating the serve options to include `keepAliveTimeout`.\n\n```json\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n },\n \"configurations\": {\n \"development\": {\n \"buildTarget\": \"acme:build:development\",\n \"dev\": true,\n \"keepAliveTimeout\": 60000\n },\n //\n }\n }\n```\n\n```shell\nnx run acme:serve\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Serve a Next.js application.", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/executors/server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/next/generators/application.json b/docs/generated/packages/next/generators/application.json deleted file mode 100644 index 56a27c427b5c5..0000000000000 --- a/docs/generated/packages/next/generators/application.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNextApp", - "title": "Create a Next.js Application for Nx", - "description": "Create a Next.js Application for Nx.", - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$", - "x-priority": "important" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "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 - }, - "swc": { - "description": "Enable the Rust-based compiler SWC to compile JS/TS files.", - "type": "boolean", - "default": true - }, - "customServer": { - "description": "Use a custom Express server for the Next.js application.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "appDir": { - "type": "boolean", - "default": true, - "description": "Enable the App Router for this project.", - "x-prompt": "Would you like to use the App Router (recommended)?" - }, - "src": { - "type": "boolean", - "default": true, - "description": "Generate a `src` directory for the project.", - "x-prompt": "Would you like to use `src/` directory?" - }, - "rootProject": { - "description": "Create an application at the root of the workspace.", - "type": "boolean", - "default": false, - "hidden": true, - "x-priority": "internal" - } - }, - "required": [], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create app in a directory\" %}\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=nested`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g app myapp --directory=apps/nested/myapp\n```\n\n{% /tab %}\n{% tab label=\"Use a custom Express server\" %}\n\n```shell\nnx g app myapp --custom-server\n```\n\n{% /tab %}\n{% tab label=\"Use plain JavaScript (not TypeScript)\" %}\n\n```shell\nnx g app myapp --js\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create an application.", - "implementation": "/packages/next/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/next/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/generators/component.json b/docs/generated/packages/next/generators/component.json deleted file mode 100644 index b2a5636b055d1..0000000000000 --- a/docs/generated/packages/next/generators/component.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "name": "component", - "factory": "./src/generators/component/component#componentGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNextReactComponent", - "title": "Create a React Component for Next", - "description": "Create a React Component for Next.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?", - "x-priority": "important" - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "alias": "s", - "default": "css", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "skipTests": { - "type": "boolean", - "description": "When true, does not create `spec.ts` test files for the new component.", - "default": false, - "x-priority": "internal" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "alias": "dir", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "export": { - "type": "boolean", - "description": "When true, the component is exported from the project index.ts (if it exists).", - "alias": "e", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "flat": { - "type": "boolean", - "description": "Create component at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false, - "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "pascalCaseDirectory": { - "type": "boolean", - "description": "Use pascal case directory name (e.g. `App/App.tsx`).", - "alias": "R", - "default": false, - "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create an app component\" %}\n\n```shell\nnx g component my-cmp --project=my-app\n```\n\n{% /tab %}\n{% tab label=\"Create a component without its own folder\" %}\n\nRunning the following will create a component under `apps/my-app/components/my-cmp.tsx` rather than `apps/my-app/components/my-cmp/my-cmp.tsx`.\n\n```shell\nnx g component my-cmp --flat --project=my-app\n```\n\n{% /tab %}\n{% tab label=\"Create component in a custom directory\" %}\n\nRunning the following will create a component under `apps/my-app/foo/my-cmp.tsx` rather than `apps/my-app/my-cmp/my-cmp.tsx`.\n\n```shell\nnx g component my-cmp --directory=foo --flat --project=my-app\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "description": "Create a component.", - "implementation": "/packages/next/src/generators/component/component#componentGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/generators/component/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/generators/custom-server.json b/docs/generated/packages/next/generators/custom-server.json deleted file mode 100644 index c2b83da02a0b6..0000000000000 --- a/docs/generated/packages/next/generators/custom-server.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "custom-server", - "factory": "./src/generators/custom-server/custom-server#customServerGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNextCustomServer", - "title": "Add custom server", - "description": "Add a custom server to existing Next.js application.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "project", - "x-prompt": "What is the name of the project to set up a custom server for?", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "enum": ["tsc", "swc"], - "default": "tsc", - "description": "The compiler used to build the custom server." - } - }, - "required": ["project"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Add a custom server to existing app\" %}\n\n```shell\nnx g custom-server my-app\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "description": "Set up a custom server.", - "implementation": "/packages/next/src/generators/custom-server/custom-server#customServerGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/generators/custom-server/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/generators/cypress-component-configuration.json b/docs/generated/packages/next/generators/cypress-component-configuration.json deleted file mode 100644 index 3b011608eeed5..0000000000000 --- a/docs/generated/packages/next/generators/cypress-component-configuration.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "cypress-component-configuration", - "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "CypressComponentConfiguration", - "title": "NextJS Component Testing Configuration", - "description": "Add Cypress Componet Testing to an existing NextJS project.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/next:cypress-component-configuration --project=my-next-project", - "description": "Add component testing to your Next project" - }, - { - "command": "nx g @nx/next:cypress-component-configuration --project=my-next-project --generate-tests", - "description": "Add component testing to your Next project and generate component tests for your existing components" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add cypress component testing configuration to", - "x-dropdown": "projects", - "x-prompt": "What project should we add Cypress component testing to?", - "x-priority": "important" - }, - "generateTests": { - "type": "boolean", - "description": "Generate default component tests for existing components in the project", - "x-prompt": "Automatically generate tests for components declared in this project?", - "default": false, - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nNext component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-11 generator](/packages/cypress/generators/migrate-to-cypress-11).\n\nThis generator is for Cypress based component testing.\n\nIf you want to test components via Storybook with Cypress, then check out the [storybook-configuration generator docs](/nx-api/react/generators/storybook-configuration). However, this functionality is deprecated, and will be removed on Nx version 19.\n{% /callout %}\n\nThis generator is designed to get your Next project up and running with Cypress Component Testing.\n\n```shell\nnx g @nx/next:cypress-component-configuration --project=my-cool-next-project\n```\n\nRunning this generator, adds the required files to the specified project with a preconfigured `cypress.config.ts` designed for Nx workspaces.\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/next/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename),\n});\n```\n\nHere is an example on how to add custom options to the configuration\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/next/plugins/component-testing';\n\nexport default defineConfig({\n component: {\n ...nxComponentTestingPreset(__filename),\n // extra options here\n },\n});\n```\n\n```shell\nnx g @nx/next:cypress-component-project --project=my-cool-next-project\n```\n\n## Auto Generating Tests\n\nYou can optionally use the `--generate-tests` flag to generate a test file for each component in your project.\n\n```shell\nnx g @nx/next:cypress-component-configuration --project=my-cool-next-project --generate-tests\n```\n\n## Running Component Tests\n\nA new `component-test` target will be added to the specified project to run your component tests.\n\n```shell\nnx g component-test my-cool-next-project\n```\n\nHere is an example of the project configuration that is generated.\n\n```json {% fileName=\"project.json\" %}\n{\n \"targets\" {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"/cypress.config.ts\",\n \"testingType\": \"component\",\n \"skipServe\": true\n }\n }\n }\n}\n```\n\nNx also supports [Angular component testing](/packages/angular/generators/cypress-component-configuration).\n", - "presets": [] - }, - "description": "cypress-component-configuration generator", - "implementation": "/packages/next/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/generators/cypress-component-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/generators/init.json b/docs/generated/packages/next/generators/init.json deleted file mode 100644 index 9aec03f12b633..0000000000000 --- a/docs/generated/packages/next/generators/init.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#nextInitGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNextNgInit", - "title": "Init Next Plugin", - "description": "Init Next Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/next` plugin.", - "hidden": true, - "implementation": "/packages/next/src/generators/init/init#nextInitGeneratorInternal.ts", - "aliases": [], - "path": "/packages/next/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/generators/library.json b/docs/generated/packages/next/generators/library.json deleted file mode 100644 index 0e06738c98c6e..0000000000000 --- a/docs/generated/packages/next/generators/library.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactLibrary", - "title": "Create a React Library for Nx", - "description": "Create a React Library for an Nx workspace.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Library name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "vitest", "none"], - "description": "Test runner to use for unit tests." - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update tsconfig.json for development experience." - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false - }, - "routing": { - "type": "boolean", - "description": "Generate library with routes." - }, - "appProject": { - "type": "string", - "description": "The application project to add the library route to.", - "alias": "a" - }, - "publishable": { - "type": "boolean", - "description": "Create a publishable library." - }, - "buildable": { - "type": "boolean", - "default": false, - "description": "Generate a buildable library." - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`." - }, - "component": { - "type": "boolean", - "description": "Generate a default component.", - "default": true - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "globalCss": { - "type": "boolean", - "description": "When true, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is `*.css` rather than `*.module.css`).", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "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 - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create a new lib\" %}\n\n```shell\nnx g lib my-lib\n```\n\n{% /tab %}\n{% tab label=\"Create a new lib under a directory\" %}\n\nThe following will create a library at `libs/shared/my-lib`.\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=shared`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g lib my-lib --directory=libs/shared/my-lib\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a library.", - "implementation": "/packages/next/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/next/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/next/generators/page.json b/docs/generated/packages/next/generators/page.json deleted file mode 100644 index 9f0eab986a575..0000000000000 --- a/docs/generated/packages/next/generators/page.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "page", - "factory": "./src/generators/page/page#pageGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNextReactPage", - "title": "Create a Page for Next", - "description": "Create a Page for Next.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the page file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "alias": "dir", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "alias": "s", - "default": "css", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - }, - "x-priority": "important" - }, - "withTests": { - "type": "boolean", - "description": "When true, creates a `spec.ts` test file for the new page.", - "default": false - }, - "export": { - "type": "boolean", - "description": "When true, the component is exported from the project `index.ts` (if it exists).", - "alias": "e", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "flat": { - "type": "boolean", - "description": "Create component at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create static page in an app\" %}\n\n```shell\nnx g page my-page --project=my-app\n```\n\n{% /tab %}\n{% tab label=\"Create dynamic page in an app\" %}\n\nThe following creates a page under `apps/my-app/pages/products/[id].tsx`.\n\n```shell\nnx g page \"[id]\" --project=my-app --directory=products\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Create a page.", - "implementation": "/packages/next/src/generators/page/page#pageGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/next/src/generators/page/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/node/documents/overview.md b/docs/generated/packages/node/documents/overview.md deleted file mode 100644 index 0a1feaae7b36e..0000000000000 --- a/docs/generated/packages/node/documents/overview.md +++ /dev/null @@ -1,107 +0,0 @@ -The Node Plugin contains generators and executors to manage Node applications within an Nx workspace. It provides: - -## Setting Up @nx/node - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/node` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/node` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/node -``` - -This will install the correct version of `@nx/node`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/node` package with your package manager. - -```shell -npm add -D @nx/node -``` - -{% /tab %} -{% /tabs %} - -## Using the @nx/node Plugin - -### Creating Applications - -You can add a new application with the following: - -```shell -nx g @nx/node:application my-new-app -``` - -You can run your application with `nx serve my-new-app`, which starts it in watch mode. - -### Creating Libraries - -Node libraries are a good way to separate features within your organization. To create a Node library run the following command: - -```shell -nx g @nx/node:lib my-new-lib - -# If you want the library to be buildable or publishable to npm -nx g @nx/node:lib my-new-lib --buildable -nx g @nx/node:lib my-new-lib \ ---publishable \ ---importPath=@myorg/my-new-lib -``` - -## Using Node - -### Testing Projects - -You can run unit tests with: - -```shell -nx test my-new-app -nx test my-new-lib -``` - -Replace `my-new-app` with the name or your project. This command works for both applications and libraries. - -### Building Projects - -Node applications can be build with: - -```shell -nx build my-new-app -``` - -And if you generated a library with `--buildable`, then you can build a library as well: - -```shell -nx build my-new-lib -``` - -The output is in the `dist` folder. You can customize the output folder by setting `outputPath` in the project's `project.json` file. - -### Application Proxies - -Generating Node applications has an option to configure other projects in the workspace to proxy API requests. This can be done by passing the `--frontendProject` with the project name you wish to enable proxy support for. - -```shell -nx g @nx/node:application my-new-app \ ---frontendProject my-react-app -``` - -### Debugging - -Debugging is set to use a random port that is available on the system. The port can be changed by setting the port option in the `serve` target in the project.json. Or by running the serve command with `--port `. - -For additional information on how to debug Node applications, see the [Node.js debugging getting started guide](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients). - -## More Documentation - -- [Using Cypress](/nx-api/cypress) -- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/node/generators/application.json b/docs/generated/packages/node/generators/application.json deleted file mode 100644 index b4b9a029d7c3c..0000000000000 --- a/docs/generated/packages/node/generators/application.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "SchematicsNxNodeApp", - "title": "Nx Application Options Schema", - "description": "Nx Application Options Schema.", - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the node application?", - "x-priority": "important", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting)." - }, - "frontendProject": { - "type": "string", - "description": "Frontend project that needs to access this application. This sets up proxy configuration.", - "x-priority": "important", - "x-dropdown": "projects" - }, - "swcJest": { - "type": "boolean", - "description": "Use `@swc/jest` instead `ts-jest` for faster test compilation.", - "default": false - }, - "babelJest": { - "type": "boolean", - "description": "Use `babel` instead `ts-jest`.", - "default": false, - "x-deprecated": "Use --swcJest instead for faster compilation" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case file names.", - "alias": "P", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "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 - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "bundler": { - "description": "Bundler which is used to package the application", - "type": "string", - "enum": ["esbuild", "webpack"], - "default": "esbuild", - "x-priority": "important" - }, - "framework": { - "description": "Generate the node application using a framework", - "type": "string", - "enum": ["express", "fastify", "koa", "nest", "none"], - "default": "none", - "x-prompt": "Which framework do you want to use?", - "x-priority": "important" - }, - "port": { - "description": "The port which the server will be run on", - "type": "number", - "default": 3000 - }, - "rootProject": { - "description": "Create node application at the root of the workspace", - "type": "boolean", - "default": false, - "hidden": true, - "x-priority": "internal" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for end to end (e2e) tests", - "default": "jest" - }, - "docker": { - "type": "boolean", - "description": "Add a docker build target" - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create a node application.", - "implementation": "/packages/node/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/node/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/node/generators/init.json b/docs/generated/packages/node/generators/init.json deleted file mode 100644 index 9a5a388e37428..0000000000000 --- a/docs/generated/packages/node/generators/init.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNodeInit", - "title": "Init Node Plugin", - "description": "Init Node Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/node` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/node/src/generators/init/init.ts", - "path": "/packages/node/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/node/generators/library.json b/docs/generated/packages/node/generators/library.json deleted file mode 100644 index 30aecd057ad48..0000000000000 --- a/docs/generated/packages/node/generators/library.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNodeLibrary", - "title": "Create a Node Library for Nx", - "description": "Create a Node Library for an Nx workspace.", - "type": "object", - "examples": [ - { - "command": "nx g lib mylib --directory=myapp", - "description": "Generate `libs/myapp/mylib`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Library name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "simpleModuleName": { - "description": "Keep the module name simple (when using `--directory`).", - "type": "boolean", - "default": false - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update `tsconfig.base.json` for development experience.", - "x-priority": "internal" - }, - "publishable": { - "type": "boolean", - "description": "Create a publishable library.", - "x-priority": "important" - }, - "buildable": { - "type": "boolean", - "default": false, - "description": "Generate a buildable library.", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "enum": ["tsc", "swc"], - "default": "tsc", - "description": "The compiler used by the build and test targets.", - "x-priority": "important" - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`. Must be a valid npm name." - }, - "rootDir": { - "type": "string", - "description": "Sets the `rootDir` for TypeScript compilation. When not defined, it uses the project's root property, or `srcRootForCompilationRoot` if it is defined." - }, - "testEnvironment": { - "type": "string", - "enum": ["jsdom", "node"], - "description": "The test environment to use if `unitTestRunner` is set to `jest`.", - "default": "jsdom" - }, - "babelJest": { - "type": "boolean", - "description": "Use `babel` instead of `ts-jest`.", - "default": false - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case file names.", - "alias": "P", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "default": false - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "setParserOptionsProject": { - "type": "boolean", - "description": "Whether or not to configure the ESLint `parserOptions.project`. We do not do this by default for lint performance reasons.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a node library.", - "implementation": "/packages/node/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/node/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/node/generators/setup-docker.json b/docs/generated/packages/node/generators/setup-docker.json deleted file mode 100644 index aace4f77586d9..0000000000000 --- a/docs/generated/packages/node/generators/setup-docker.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "setup-docker", - "factory": "./src/generators/setup-docker/setup-docker", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "SchematicsNxSetupDocker", - "title": "Nx Node Docker Options Schema", - "description": "Nx Node Docker Options Schema.", - "type": "object", - "properties": { - "project": { - "description": "The name of the project", - "$default": { "$source": "projectName" }, - "type": "string", - "x-prompt": "What project would you like to add a Dockerfile to?", - "x-priority": "important" - }, - "targetName": { - "description": "The name of the target to create", - "type": "string", - "default": "docker-build" - }, - "buildTargetName": { - "description": "The name of the build target", - "type": "string", - "default": "build" - } - }, - "presets": [] - }, - "description": "Set up Docker configuration for a project.", - "hidden": false, - "implementation": "/packages/node/src/generators/setup-docker/setup-docker.ts", - "aliases": [], - "path": "/packages/node/src/generators/setup-docker/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nuxt/documents/overview.md b/docs/generated/packages/nuxt/documents/overview.md deleted file mode 100644 index cbd16b1c6100d..0000000000000 --- a/docs/generated/packages/nuxt/documents/overview.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Overview of the Nx Nuxt Plugin -description: The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace. ---- - -The Nx plugin for [Nuxt](https://nuxt.com/). - -## Setting up a new Nx workspace with @nx/nuxt - -You can create a new workspace that uses Nuxt with one of the following commands: - -- Generate a new monorepo with a Nuxt app - -```shell -npx create-nx-workspace@latest --preset=nuxt -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/nuxt` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/nuxt` by running the following command: - -```shell {% skipRescope=true %} -nx add @nx/nuxt -``` - -This will install the correct version of `@nx/nuxt`. - -### How @nx/nuxt Infers Tasks - -The `@nx/nuxt` plugin will create a task for any project that has an Nuxt configuration file present. Any of the following files will be recognized as an Nuxt configuration file: - -- `nuxt.config.js` -- `nuxt.config.ts` -- `nuxt.config.mjs` -- `nuxt.config.mts` -- `nuxt.config.cjs` -- `nuxt.config.cts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/nuxt Configuration - -The `@nx/nuxt/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/nuxt/plugin", - "options": { - "buildTargetName": "build", - "testTargetName": "test", - "serveTargetName": "serve", - "buildStaticTargetName": "build-static", - "serveStaticTargetName": "serve-static" - } - } - ] -} -``` - -The `buildTargetName`, `testTargetName` and `serveTargetName` options control the names of the inferred Nuxt tasks. The default names are `build`, `test` and `serve`. - -The `buildStaticTargetName` and `serveStaticTargetName` options control the names of the inferred Nuxt static tasks. The default names are `build-static` and `serve-static`. - -## Using Nuxt - -### Generate a new Nuxt app - -```shell -nx g @nx/nuxt:app my-app -``` - -### Deploy a Nuxt app - -Once you are ready to deploy your Nuxt application, you have absolute freedom to choose any hosting provider that fits your needs. - -We have detailed [how to deploy your Nuxt application to Vercel in a separate guide](/recipes/nuxt/deploy-nuxt-to-vercel). - -### E2E testing - -By default `nuxt` **does not** generate static HTML files when you run the `build` command. However, Nx provides a `build-static` target that you can use to generate static HTML files for your Nuxt application. Essentially, this target runs the `nuxt build --prerender` command to generate static HTML files. - -To perform end-to-end (E2E) testing on static HTML files using a test runner like Cypress. When you create a Nuxt application, Nx automatically creates a `serve-static` target. This target is designed to serve the static HTML files produced by the `build-static` command. - -This feature is particularly useful for testing in continuous integration (CI) pipelines, where resources may be constrained. Unlike the `serve` target, `serve-static` does not require a Nuxt's Nitro server to operate, making it more efficient and faster by eliminating background processes, such as file change monitoring. - -To utilize the `serve-static` target for testing, run the following command: - -```shell -nx serve-static my-nuxt-app-e2e -``` - -This command performs several actions: - -1. It will build the Nuxt application and generate the static HTML files. -2. It will serve the static HTML files using a simple HTTP server. -3. It will run the Cypress tests against the served static HTML files. diff --git a/docs/generated/packages/nuxt/generators/application.json b/docs/generated/packages/nuxt/generators/application.json deleted file mode 100644 index fd7c1061369f1..0000000000000 --- a/docs/generated/packages/nuxt/generators/application.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNuxtApp", - "title": "Create a Nuxt Application for Nx", - "description": "Create a Nuxt Application for Nx.", - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$", - "x-priority": "important" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["vitest", "none"], - "description": "Test runner to use for unit tests.", - "x-prompt": "Which unit test runner would you like to use?", - "default": "none" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "rootProject": { - "description": "Create an application at the root of the workspace.", - "type": "boolean", - "default": false, - "hidden": true, - "x-priority": "internal" - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "alias": "s", - "default": "css", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "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 - } - }, - "required": [], - "examplesFile": "---\ntitle: Nuxt application generator examples\ndescription: This page contains examples for the @nx/nuxt:app generator.\n---\n\nYour new Nuxt application will be generated with the following directory structure, following the suggested [directory structure](https://nuxt.com/docs/guide/directory-structure) for Nuxt applications:\n\n```text\nmy-nuxt-app\n├── nuxt.config.ts\n├── project.json\n├── src\n│   ├── app.vue\n│   ├── assets\n│   │   └── css\n│   │   └── styles.css\n│   ├── components\n│   │   └── NxWelcome.vue\n│   ├── pages\n│   │   ├── about.vue\n│   │   └── index.vue\n│   ├── public\n│   │   └── favicon.ico\n│   └── server\n│   ├── api\n│   │   └── greet.ts\n│   └── tsconfig.json\n├── tsconfig.app.json\n├── tsconfig.json\n├── tsconfig.spec.json\n└── vitest.config.ts\n```\n\nYour new app will contain the following:\n\n- Two pages (home and about) under `pages`\n- A component (`NxWelcome`) under `components`\n- A `greet` API endpoint that returns a JSON response under `/api/greet`\n- Configuration for `vitest`\n- Your app's entrypoint (`app.vue`) will contain the navigation links to the home and about pages, and the `nuxt-page` component to display the contents of your pages.\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Create app in a directory\" %}\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=nested`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g @nx/nuxt:app myapp --directory=apps/nested/myapp\n```\n\n{% /tab %}\n\n{% tab label=\"Create app with vitest configured\" %}\n\n```shell\nnx g @nx/nuxt:app myapp --directory=apps/nested/myapp --unitTestRunner=vitest\n```\n\n{% /tab %}\n\n{% tab label=\"Use plain JavaScript (not TypeScript)\" %}\n\n```shell\nnx g @nx/nuxt:app myapp --js\n```\n\n{% /tab %}\n{% /tabs %}\n\n## Generate pages and components\n\nYou can use the the [`@nx/vue:component` generator](/nx-api/vue/generators/component) to generate new pages and components for your application. You can read more on the [`@nx/vue:component` generator documentation page](/nx-api/vue/generators/component), but here are some examples:\n\n{% tabs %}\n{% tab label=\"New page\" %}\n\n```shell\nnx g @nx/nuxt:component --directory=my-app/src/pages --name=my-page\n```\n\n{% /tab %}\n\n{% tab label=\"New component\" %}\n\n```shell\nnx g @nx/nuxt:component --directory=my-app/src/components/my-cmp --name=my-cmp\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["app"], - "description": "Create a Nuxt application.", - "implementation": "/packages/nuxt/src/generators/application/application.ts", - "hidden": false, - "path": "/packages/nuxt/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nuxt/generators/init.json b/docs/generated/packages/nuxt/generators/init.json deleted file mode 100644 index 5553ce3f172bd..0000000000000 --- a/docs/generated/packages/nuxt/generators/init.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxNuxtInit", - "title": "Init Nuxt Plugin", - "description": "Initialize a Nuxt Plugin.", - "cli": "nx", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nx/nuxt` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/nuxt/src/generators/init/init.ts", - "path": "/packages/nuxt/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nuxt/generators/storybook-configuration.json b/docs/generated/packages/nuxt/generators/storybook-configuration.json deleted file mode 100644 index c22a2a3b5dc81..0000000000000 --- a/docs/generated/packages/nuxt/generators/storybook-configuration.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "storybook-configuration", - "factory": "./src/generators/storybook-configuration/configuration", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxNuxtStorybookConfigure", - "title": "Nuxt Storybook Configure", - "description": "Set up Storybook for a Nuxt project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "alias": ["configureTestRunner"], - "default": true - }, - "generateStories": { - "type": "boolean", - "description": "Automatically generate `*.stories.ts` files for components declared in this project?", - "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", - "default": true, - "x-priority": "important" - }, - "configureStaticServe": { - "type": "boolean", - "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", - "x-prompt": "Configure a static file server for the storybook instance?", - "default": true, - "x-priority": "important" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript story files rather than TypeScript story files.", - "default": false - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": true - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - } - }, - "required": ["project"], - "examplesFile": "---\ntitle: Storybook configuration generator examples\ndescription: This page contains examples for the @nx/nuxt:storybook-configuration generator.\n---\n\nThis generator calls the `@nx/vue:storybook-configuration` generator under the hood. It will set up Storybook for your **Nuxt** project.\n\n```bash\nnx g @nx/nuxt:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Vue overview page](/recipes/storybook/overview-vue#generate-storybook-configuration-for-a-vue-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/vue/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui --generateStories=true --ignorePaths=\"libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\"\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", - "presets": [] - }, - "description": "Set up storybook for a Nuxt app.", - "hidden": false, - "implementation": "/packages/nuxt/src/generators/storybook-configuration/configuration.ts", - "aliases": [], - "path": "/packages/nuxt/src/generators/storybook-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/nx/documents/add.md b/docs/generated/packages/nx/documents/add.md deleted file mode 100644 index 40b53cd2e18c5..0000000000000 --- a/docs/generated/packages/nx/documents/add.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: 'add - CLI command' -description: 'Install a plugin and initialize it.' ---- - -# add - -Install a plugin and initialize it. - -## Usage - -```shell -nx add -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Install the `@nx/react` package matching the installed version of the `nx` package and run its `@nx/react:init` generator: - -```shell - nx add @nx/react -``` - -Install the latest version of the `non-core-nx-plugin` package and run its `non-core-nx-plugin:init` generator if available: - -```shell - nx add non-core-nx-plugin -``` - -Install version `17.0.0` of the `@nx/react` package and run its `@nx/react:init` generator: - -```shell - nx add @nx/react@17.0.0 -``` - -## Options - -### help - -Type: `boolean` - -Show help - -### packageSpecifier - -Type: `string` - -The package name and optional version (e.g. `@nx/react` or `@nx/react@latest`) to install and initialize. If the version is not specified it will install the same version as the `nx` package for Nx core plugins or the latest version for other packages - -### updatePackageScripts - -Type: `boolean` - -Update `package.json` scripts with inferred targets. Defaults to `true` when the package is a core Nx plugin - -### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/affected-dep-graph.md b/docs/generated/packages/nx/documents/affected-dep-graph.md deleted file mode 100644 index 2a2dd1afc64a8..0000000000000 --- a/docs/generated/packages/nx/documents/affected-dep-graph.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: 'affected:graph - CLI command' -description: 'Graph dependencies affected by changes' ---- - -# affected:graph - -**Deprecated:** Use `nx graph --affected`, or `nx affected --graph` instead depending on which best suits your use case. The `affected:graph` command will be removed in Nx 19. - -Graph dependencies affected by changes - -## Usage - -```shell -nx affected:graph -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Open the project graph of the workspace in the browser, and highlight the projects affected by changing the index.ts file: - -```shell - nx affected:graph --files=libs/mylib/src/index.ts -``` - -Open the project graph of the workspace in the browser, and highlight the projects affected by the changes between main and HEAD (e.g., PR): - -```shell - nx affected:graph --base=main --head=HEAD -``` - -Save the project graph of the workspace in a json file, and highlight the projects affected by the changes between main and HEAD (e.g., PR): - -```shell - nx affected:graph --base=main --head=HEAD --file=output.json -``` - -Generate a static website with project graph data in an html file, highlighting the projects affected by the changes between main and HEAD (e.g., PR): - -```shell - nx affected:graph --base=main --head=HEAD --file=output.html -``` - -Open the project graph of the workspace in the browser, and highlight the projects affected by the last commit on main: - -```shell - nx affected:graph --base=main~1 --head=main -``` - -Open the project graph of the workspace in the browser, highlight the projects affected, but exclude project-one and project-two: - -```shell - nx affected:graph --exclude=project-one,project-two -``` - -## Options - -### base - -Type: `string` - -Base of the current branch (usually main) - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### file - -Type: `string` - -Output file (e.g. --file=output.json or --file=dep-graph.html) - -### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -### focus - -Type: `string` - -Use to show the project graph for a particular project and every node that is either an ancestor or a descendant. - -### groupByFolder - -Type: `boolean` - -Group projects by folder in the project graph - -### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -### help - -Type: `boolean` - -Show help - -### host - -Type: `string` - -Bind the project graph server to a specific ip address. - -### open - -Type: `boolean` - -Default: `true` - -Open the project graph in the browser. - -### port - -Type: `number` - -Bind the project graph server to a specific port. - -### targets - -Type: `string` - -The target to show tasks for in the task graph - -### uncommitted - -Type: `boolean` - -Uncommitted changes - -### untracked - -Type: `boolean` - -Untracked changes - -### version - -Type: `boolean` - -Show version number - -### view - -Type: `string` - -Choices: [projects, tasks] - -Default: `projects` - -Choose whether to view the projects or task graph - -### watch - -Type: `boolean` - -Default: `false` - -Watch for changes to project graph and update in-browser diff --git a/docs/generated/packages/nx/documents/affected.md b/docs/generated/packages/nx/documents/affected.md deleted file mode 100644 index f951984d55c29..0000000000000 --- a/docs/generated/packages/nx/documents/affected.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: 'affected - CLI command' -description: 'Run target for affected projects' ---- - -# affected - -Run target for affected projects - -## Usage - -```shell -nx affected -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Run custom target for all affected projects: - -```shell - nx affected -t custom-target -``` - -Run tests in parallel: - -```shell - nx affected -t test --parallel=5 -``` - -Run lint, test, and build targets for affected projects. Requires Nx v15.4+: - -```shell - nx affected -t lint test build -``` - -Run tests for all the projects affected by changing the index.ts file: - -```shell - nx affected -t test --files=libs/mylib/src/index.ts -``` - -Run tests for all the projects affected by the changes between main and HEAD (e.g., PR): - -```shell - nx affected -t test --base=main --head=HEAD -``` - -Run tests for all the projects affected by the last commit on main: - -```shell - nx affected -t test --base=main~1 --head=main -``` - -Run build for only projects with the tag `dotnet`: - -```shell - nx affected -t=build --exclude='*,!tag:dotnet' -``` - -Use the currently executing project name in your command.: - -```shell - nx affected -t build --tag=$NX_TASK_TARGET_PROJECT:latest -``` - -## Options - -### ~~all~~ - -Type: `boolean` - -**Deprecated:** Use `nx run-many` instead - -### base - -Type: `string` - -Base of the current branch (usually main) - -### batch - -Type: `boolean` - -Default: `false` - -Run task(s) in batches for executors which support batches - -### configuration - -Type: `string` - -This is the configuration to use when performing tasks on projects - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -### graph - -Type: `string` - -Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. - -### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -### help - -Type: `boolean` - -Show help - -### nxBail - -Type: `boolean` - -Default: `false` - -Stop command execution after the first failed task - -### nxIgnoreCycles - -Type: `boolean` - -Default: `false` - -Ignore cycles in the task graph - -### output-style - -Type: `string` - -Choices: [dynamic, static, stream, stream-without-prefixes] - -Defines how Nx emits outputs tasks logs - -### parallel - -Type: `string` - -Max number of parallel processes [default is 3] - -### runner - -Type: `string` - -This is the name of the tasks runner configured in nx.json - -### skipNxCache - -Type: `boolean` - -Default: `false` - -Rerun the tasks even when the results are available in the cache - -### targets - -Type: `string` - -Tasks to run for affected projects - -### uncommitted - -Type: `boolean` - -Uncommitted changes - -### untracked - -Type: `boolean` - -Untracked changes - -### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/connect-to-nx-cloud.md b/docs/generated/packages/nx/documents/connect-to-nx-cloud.md deleted file mode 100644 index 247c3df195843..0000000000000 --- a/docs/generated/packages/nx/documents/connect-to-nx-cloud.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: 'connect - CLI command' -description: 'Connect workspace to Nx Cloud' ---- - -# connect - -Connect workspace to Nx Cloud - -## Usage - -```shell -nx connect -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Options - -### help - -Type: `boolean` - -Show help - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/create-nx-workspace.md b/docs/generated/packages/nx/documents/create-nx-workspace.md deleted file mode 100644 index 4292def25a1e3..0000000000000 --- a/docs/generated/packages/nx/documents/create-nx-workspace.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: 'create-nx-workspace - CLI command' -description: 'Create a new Nx workspace' ---- - -# create-nx-workspace - -Create a new Nx workspace - -## Usage - -```bash -create-nx-workspace [name] [options] -``` - -Install `create-nx-workspace` globally to invoke the command directly, or use `npx create-nx-workspace`, `yarn create nx-workspace`, or `pnpx create-nx-workspace`. - -## Options - -### allPrompts - -Type: `boolean` - -Default: `false` - -Show all prompts - -### appName - -Type: `string` - -The name of the app when using a monorepo with certain stacks - -### bundler - -Type: `string` - -Bundler to be used to build the app - -### commit.email - -Type: `string` - -E-mail of the committer - -### commit.message - -Type: `string` - -Default: `Initial commit` - -Commit message - -### commit.name - -Type: `string` - -Name of the committer - -### defaultBase - -Type: `string` - -Default: `main` - -Default base to use for new projects - -### docker - -Type: `boolean` - -Generate a Dockerfile for the Node API - -### e2eTestRunner - -Type: `string` - -Choices: [cypress, playwright, none] - -Test runner to use for end to end (E2E) tests. - -### framework - -Type: `string` - -Framework option to be used with certain stacks - -### help - -Type: `boolean` - -Show help - -### interactive - -Type: `boolean` - -Default: `true` - -Enable interactive mode with presets - -### name - -Type: `string` - -Workspace name (e.g. org name) - -### nextAppDir - -Type: `boolean` - -Enable the App Router for Next.js - -### nextSrcDir - -Type: `boolean` - -Generate a 'src/' directory for Next.js - -### nxCloud - -Type: `string` - -Choices: [yes, github, circleci, skip] - -Do you want Nx Cloud to make your CI fast? - -### packageManager - -Type: `string` - -Choices: [npm, pnpm, yarn] - -Default: `npm` - -Package manager to use - -### prefix - -Type: `string` - -Prefix to use for Angular component and directive selectors. - -### preset - -Type: `string` - -Customizes the initial content of your workspace. Default presets include: ["apps", "empty", "core", "npm", "ts", "web-components", "angular-monorepo", "angular-standalone", "react-monorepo", "react-standalone", "vue-monorepo", "vue-standalone", "nuxt", "nuxt-standalone", "next", "nextjs-standalone", "remix-monorepo", "remix-standalone", "react-native", "expo", "nest", "express", "react", "vue", "angular", "node-standalone", "node-monorepo", "ts-standalone"]. To build your own see https://nx.dev/extending-nx/recipes/create-preset - -### routing - -Type: `boolean` - -Default: `true` - -Add a routing setup for an Angular app - -### skipGit - -Type: `boolean` - -Default: `false` - -Skip initializing a git repository - -### ssr - -Type: `boolean` - -Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application - -### standaloneApi - -Type: `boolean` - -Default: `true` - -Use Standalone Components if generating an Angular app - -### style - -Type: `string` - -Stylesheet type to be used with certain stacks - -### version - -Type: `boolean` - -Show version number - -### workspaceType - -Type: `string` - -Choices: [integrated, package-based, standalone] - -The type of workspace to create diff --git a/docs/generated/packages/nx/documents/daemon.md b/docs/generated/packages/nx/documents/daemon.md deleted file mode 100644 index d9f12325e5710..0000000000000 --- a/docs/generated/packages/nx/documents/daemon.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: 'daemon - CLI command' -description: 'Prints information about the Nx Daemon process or starts a daemon process' ---- - -# daemon - -Prints information about the Nx Daemon process or starts a daemon process - -## Usage - -```shell -nx daemon -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Options - -### help - -Type: `boolean` - -Show help - -### start - -Type: `boolean` - -Default: `false` - -### stop - -Type: `boolean` - -Default: `false` - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/dep-graph.md b/docs/generated/packages/nx/documents/dep-graph.md deleted file mode 100644 index 4dd438d168784..0000000000000 --- a/docs/generated/packages/nx/documents/dep-graph.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: 'graph - CLI command' -description: 'Graph dependencies within workspace' ---- - -# graph - -Graph dependencies within workspace - -## Usage - -```shell -nx graph -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Open the project graph of the workspace in the browser: - -```shell - nx graph -``` - -Save the project graph into a json file: - -```shell - nx graph --file=output.json -``` - -Generate a static website with project graph into an html file, accompanied by an asset folder called static: - -```shell - nx graph --file=output.html -``` - -Show the graph where every node is either an ancestor or a descendant of todos-feature-main: - -```shell - nx graph --focus=todos-feature-main -``` - -Include project-one and project-two in the project graph: - -```shell - nx graph --include=project-one,project-two -``` - -Exclude project-one and project-two from the project graph: - -```shell - nx graph --exclude=project-one,project-two -``` - -Show the graph where every node is either an ancestor or a descendant of todos-feature-main, but exclude project-one and project-two: - -```shell - nx graph --focus=todos-feature-main --exclude=project-one,project-two -``` - -Watch for changes to project graph and update in-browser: - -```shell - nx graph --watch -``` - -## Options - -### affected - -Type: `boolean` - -Highlight affected projects - -### base - -Type: `string` - -Base of the current branch (usually main) - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### file - -Type: `string` - -Output file (e.g. --file=output.json or --file=dep-graph.html) - -### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -### focus - -Type: `string` - -Use to show the project graph for a particular project and every node that is either an ancestor or a descendant. - -### groupByFolder - -Type: `boolean` - -Group projects by folder in the project graph - -### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -### help - -Type: `boolean` - -Show help - -### host - -Type: `string` - -Bind the project graph server to a specific ip address. - -### open - -Type: `boolean` - -Default: `true` - -Open the project graph in the browser. - -### port - -Type: `number` - -Bind the project graph server to a specific port. - -### targets - -Type: `string` - -The target to show tasks for in the task graph - -### uncommitted - -Type: `boolean` - -Uncommitted changes - -### untracked - -Type: `boolean` - -Untracked changes - -### version - -Type: `boolean` - -Show version number - -### view - -Type: `string` - -Choices: [projects, tasks] - -Default: `projects` - -Choose whether to view the projects or task graph - -### watch - -Type: `boolean` - -Default: `false` - -Watch for changes to project graph and update in-browser diff --git a/docs/generated/packages/nx/documents/exec.md b/docs/generated/packages/nx/documents/exec.md deleted file mode 100644 index d74327714dfed..0000000000000 --- a/docs/generated/packages/nx/documents/exec.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: 'exec - CLI command' -description: 'Executes any command as if it was a target on the project' ---- - -# exec - -- Executes any command as if it was a target on the project -- Executes an arbitrary command in each package - -## Usage - -In package.json, adding a script with `nx exec` will run the command as if it is a target that project: - -```json -{ - "name": "myorg", - "version": "0.0.1", - "scripts": { - "build": "nx exec -- [..args]" - } -} -``` - -It will run the command for `myorg`. - -When run from the terminal, `nx exec` will run the command for all projects in the workspace: - -``` -nx exec -- [..args] # runs the command in all projects -nx exec -- tsc -nx exec -- echo \$NX_PROJECT_NAME -nx exec -- echo \$NX_PROJECT_ROOT_PATH -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Examples - -You can use `npm run ` for a project and leverage the caching by wrap your command with `nx exec`. - -For example, you can run `npm run docs` as a Nx target for `myorg`: - -``` -{ - "name": "myorg", - "nx": {}, - "scripts": { - "docs": "nx exec -- node ./scripts/some-script.js" - } -} -``` - -You may also run a script located in the project directory for all projects: - -``` -nx exec -- node ./scripts/some-script.js -``` - -The name of the current project is available through the environment variable $NX_PROJECT_NAME: - -``` -nx exec -- echo \$NX_PROJECT_NAME -``` - -The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH: - -``` -nx exec -- echo \$NX_PROJECT_ROOT_PATH -``` - -## Options - -### all - -Type: `boolean` - -Default: `true` - -[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required. - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### graph - -Type: `string` - -Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. - -### help - -Type: `boolean` - -Show help - -### nxBail - -Type: `boolean` - -Default: `false` - -Stop command execution after the first failed task - -### nxIgnoreCycles - -Type: `boolean` - -Default: `false` - -Ignore cycles in the task graph - -### parallel - -Type: `string` - -Max number of parallel processes [default is 3] - -### projects - -Type: `string` - -Projects to run. (comma/space delimited project names and/or patterns) - -### runner - -Type: `string` - -This is the name of the tasks runner configured in nx.json - -### skipNxCache - -Type: `boolean` - -Default: `false` - -Rerun the tasks even when the results are available in the cache - -### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/format-check.md b/docs/generated/packages/nx/documents/format-check.md deleted file mode 100644 index 66886623b640d..0000000000000 --- a/docs/generated/packages/nx/documents/format-check.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: 'format:check - CLI command' -description: 'Check for un-formatted files' ---- - -# format:check - -Check for un-formatted files - -## Usage - -```shell -nx format:check -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Options - -### all - -Type: `boolean` - -Format all projects - -### base - -Type: `string` - -Base of the current branch (usually main) - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -### help - -Type: `boolean` - -Show help - -### libs-and-apps - -Type: `boolean` - -Format only libraries and applications files. - -### projects - -Type: `string` - -Projects to format (comma/space delimited) - -### uncommitted - -Type: `boolean` - -Uncommitted changes - -### untracked - -Type: `boolean` - -Untracked changes - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/format-write.md b/docs/generated/packages/nx/documents/format-write.md deleted file mode 100644 index c7bfcf03ef154..0000000000000 --- a/docs/generated/packages/nx/documents/format-write.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: 'format:write - CLI command' -description: 'Overwrite un-formatted files' ---- - -# format:write - -Overwrite un-formatted files - -## Usage - -```shell -nx format:write -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Options - -### all - -Type: `boolean` - -Format all projects - -### base - -Type: `string` - -Base of the current branch (usually main) - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -### help - -Type: `boolean` - -Show help - -### libs-and-apps - -Type: `boolean` - -Format only libraries and applications files. - -### projects - -Type: `string` - -Projects to format (comma/space delimited) - -### uncommitted - -Type: `boolean` - -Uncommitted changes - -### untracked - -Type: `boolean` - -Untracked changes - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/generate.md b/docs/generated/packages/nx/documents/generate.md deleted file mode 100644 index 9f37d3dbea1c5..0000000000000 --- a/docs/generated/packages/nx/documents/generate.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: 'generate - CLI command' -description: 'Runs a generator that creates and/or modifies files based on a generator from a collection.' ---- - -# generate - -Runs a generator that creates and/or modifies files based on a generator from a collection. - -## Usage - -```shell -nx generate -``` - -```shell -nx g -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`. - -### Examples - -Generate a new Angular application: - -```shell -nx generate @nx/angular:app myapp -``` - -Generate a new React application: - -```shell -nx generate @nx/react:app myapp -``` - -Generate a new web component application: - -```shell -nx generate @nx/web:app myapp -``` - -Generate a new Node application: - -```shell -nx generate @nx/node:app myapp -``` - -Generate a new Angular library application: - -```shell -nx generate @nx/angular:library mylibrary -``` - -Generate a new React library application: - -```shell -nx generate @nx/react:library mylibrary -``` - -Generate a new Node library application: - -```shell -nx generate @nx/node:library mylibrary -``` - -## Options - -### defaults - -Default: `false` - -When true, disables interactive input prompts for options with a default. - -### dryRun - -Default: `false` - -When true, preview the changes without updating files. - -### force - -Default: `false` - -When true, forces overwriting of existing files. - -### interactive - -Default: `true` - -When false, disables interactive input prompts. - -### help - -Show help and display available generators in the default collection. - -### quiet - -Default: `false` - -When true, disables Nx specific logging related to running the generator or its outputs. - -### version - -Show version number diff --git a/docs/generated/packages/nx/documents/init.md b/docs/generated/packages/nx/documents/init.md deleted file mode 100644 index c56f35d275066..0000000000000 --- a/docs/generated/packages/nx/documents/init.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: 'init - CLI command' -description: 'Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up remote caching. For more info, check https://nx.dev/recipes/adopting-nx.' ---- - -# init - -Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up remote caching. For more info, check https://nx.dev/recipes/adopting-nx. - -## Usage - -```shell -nx init -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Options - -### help - -Type: `boolean` - -Show help - -### interactive - -Type: `boolean` - -Default: `true` - -When false disables interactive input prompts for options. - -### nxCloud - -Type: `boolean` - -Set up distributed caching with Nx Cloud. - -### useDotNxInstallation - -Type: `boolean` - -Default: `false` - -Initialize an Nx workspace setup in the .nx directory of the current repository. - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/list.md b/docs/generated/packages/nx/documents/list.md deleted file mode 100644 index 3811bd9663fad..0000000000000 --- a/docs/generated/packages/nx/documents/list.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: 'list - CLI command' -description: 'Lists installed plugins, capabilities of installed plugins and other available plugins.' ---- - -# list - -Lists installed plugins, capabilities of installed plugins and other available plugins. - -## Usage - -```shell -nx list [plugin] -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -List the plugins installed in the current workspace: - -```shell - nx list -``` - -List the generators and executors available in the `@nx/web` plugin if it is installed (If the plugin is not installed `nx` will show advice on how to add it to your workspace): - -```shell - nx list @nx/web -``` - -## Options - -### help - -Type: `boolean` - -Show help - -### plugin - -Type: `string` - -The name of an installed plugin to query - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/migrate.md b/docs/generated/packages/nx/documents/migrate.md deleted file mode 100644 index f4a2d0f50e973..0000000000000 --- a/docs/generated/packages/nx/documents/migrate.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: 'migrate - CLI command' -description: - 'Creates a migrations file or runs migrations from the migrations file. - - Migrate packages and create migrations.json (e.g., nx migrate @nx/workspace@latest) - - Run migrations (e.g., nx migrate --run-migrations=migrations.json). Use flag --if-exists to run migrations only if the migrations file exists.' ---- - -# migrate - -Creates a migrations file or runs migrations from the migrations file. - -- Migrate packages and create migrations.json (e.g., nx migrate @nx/workspace@latest) -- Run migrations (e.g., nx migrate --run-migrations=migrations.json). Use flag --if-exists to run migrations only if the migrations file exists. - -## Usage - -```shell -nx migrate [packageAndVersion] -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Update all Nx plugins to "latest". This will generate migrations.json: - -```shell - nx migrate latest -``` - -Update all Nx plugins to "9.0.0". This will generate migrations.json: - -```shell - nx migrate 9.0.0 -``` - -Update @nx/workspace and generate the list of migrations starting with version 8.0.0 of @nx/workspace and @nx/node, regardless of what is installed locally: - -```shell - nx migrate @nx/workspace@9.0.0 --from="@nx/workspace@8.0.0,@nx/node@8.0.0" -``` - -Update @nx/workspace to "9.0.0". If it tries to update @nx/react or @nx/angular, use version "9.0.1": - -```shell - nx migrate @nx/workspace@9.0.0 --to="@nx/react@9.0.1,@nx/angular@9.0.1" -``` - -Update another-package to "12.0.0". This will update other packages and will generate migrations.json file: - -```shell - nx migrate another-package@12.0.0 -``` - -Collect package updates and migrations in interactive mode. In this mode, the user will be prompted whether to apply any optional package update and migration: - -```shell - nx migrate latest --interactive -``` - -Collect package updates and migrations starting with version 14.5.0 of "nx" (and Nx first-party plugins), regardless of what is installed locally, while excluding migrations that should have been applied on previous updates: - -```shell - nx migrate latest --from=nx@14.5.0 --exclude-applied-migrations -``` - -Run migrations from the provided migrations.json file. You can modify migrations.json and run this command many times: - -```shell - nx migrate --run-migrations=migrations.json -``` - -Create a dedicated commit for each successfully completed migration. You can customize the prefix used for each commit by additionally setting --commit-prefix="PREFIX_HERE ": - -```shell - nx migrate --run-migrations --create-commits -``` - -## Options - -### commitPrefix - -Type: `string` - -Default: `chore: [nx migration] ` - -Commit prefix to apply to the commit for each migration, when --create-commits is enabled - -### createCommits - -Type: `boolean` - -Default: `false` - -Automatically create a git commit after each migration runs - -### excludeAppliedMigrations - -Type: `boolean` - -Default: `false` - -Exclude migrations that should have been applied on previous updates. To be used with --from - -### from - -Type: `string` - -Use the provided versions for packages instead of the ones installed in node_modules (e.g., --from="@nx/react@16.0.0,@nx/js@16.0.0") - -### help - -Type: `boolean` - -Show help - -### ifExists - -Type: `boolean` - -Default: `false` - -Run migrations only if the migrations file exists, if not continues successfully - -### interactive - -Type: `boolean` - -Default: `false` - -Enable prompts to confirm whether to collect optional package updates and migrations - -### packageAndVersion - -Type: `string` - -The target package and version (e.g, @nx/workspace@16.0.0) - -### runMigrations - -Type: `string` - -Execute migrations from a file (when the file isn't provided, execute migrations from migrations.json) - -### to - -Type: `string` - -Use the provided versions for packages instead of the ones calculated by the migrator (e.g., --to="@nx/react@16.0.0,@nx/js@16.0.0") - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/print-affected.md b/docs/generated/packages/nx/documents/print-affected.md deleted file mode 100644 index 934bcea45fe5b..0000000000000 --- a/docs/generated/packages/nx/documents/print-affected.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: 'print-affected - CLI command' -description: 'Prints information about the projects and targets affected by changes' ---- - -# print-affected - -**Deprecated:** Use `nx show projects --affected`, `nx affected --graph -t build` or `nx graph --affected` depending on which best suits your use case. The `print-affected` command will be removed in Nx 19. - -Prints information about the projects and targets affected by changes - -## Usage - -```shell -nx print-affected -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Print information about affected projects and the project graph: - -```shell - nx print-affected -``` - -Print information about the projects affected by the changes between main and HEAD (e.g,. PR): - -```shell - nx print-affected --base=main --head=HEAD -``` - -Prints information about the affected projects and a list of tasks to test them: - -```shell - nx print-affected -t test -``` - -Prints the projects property from the print-affected output: - -```shell - nx print-affected -t build --select=projects -``` - -Prints the tasks.target.project property from the print-affected output: - -```shell - nx print-affected -t build --select=tasks.target.project -``` - -## Options - -### base - -Type: `string` - -Base of the current branch (usually main) - -### configuration - -Type: `string` - -This is the configuration to use when performing tasks on projects - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -### help - -Type: `boolean` - -Show help - -### select - -Type: `string` - -Select the subset of the returned json document (e.g., --select=projects) - -### targets - -Type: `string` - -Tasks to run for affected projects - -### type - -Type: `string` - -Choices: [app, lib] - -Select the type of projects to be returned (e.g., --type=app) - -### uncommitted - -Type: `boolean` - -Uncommitted changes - -### untracked - -Type: `boolean` - -Untracked changes - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/release.md b/docs/generated/packages/nx/documents/release.md deleted file mode 100644 index d1920df0d442c..0000000000000 --- a/docs/generated/packages/nx/documents/release.md +++ /dev/null @@ -1,390 +0,0 @@ ---- -title: 'release - CLI command' -description: 'Orchestrate versioning and publishing of applications and libraries' ---- - -# release - -Orchestrate versioning and publishing of applications and libraries - -## Usage - -```shell -nx release -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Shared Options - -### dry-run - -Type: `boolean` - -Default: `false` - -Preview the changes without updating files/creating releases - -### first-release - -Type: `boolean` - -Indicates that this is the first release for the selected release group. If the current version cannot be determined as usual, the version on disk will be used as a fallback. This is useful when using git or the registry to determine the current version of packages, since those sources are only available after the first release. Also indicates that changelog generation should not assume a previous git tag exists and that publishing should not check for the existence of the package before running. - -### groups - -Type: `string` - -One or more release groups to target with the current command. - -### help - -Type: `boolean` - -Show help - -### projects - -Type: `string` - -Projects to run. (comma/space delimited project names and/or patterns) - -### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -### version - -Type: `boolean` - -Show version number - -## Subcommands - -### Base Command Options - -Create a version and release for the workspace, generate a changelog, and optionally publish the packages - -```shell -nx release [specifier] -``` - -#### Options - -##### help - -Type: `boolean` - -Show help - -##### skip-publish - -Type: `boolean` - -Skip publishing by automatically answering no to the confirmation prompt for publishing - -##### specifier - -Type: `string` - -Exact version or semver keyword to apply to the selected release group. - -##### version - -Type: `boolean` - -Show version number - -##### yes - -Type: `boolean` - -Automatically answer yes to the confirmation prompt for publishing - -### version - -Create a version and release for one or more applications and libraries - -```shell -nx release version [specifier] -``` - -#### Options - -##### git-commit - -Type: `boolean` - -Whether or not to automatically commit the changes made by this command - -##### git-commit-args - -Type: `string` - -Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes - -##### git-commit-message - -Type: `string` - -Custom git commit message to use when committing the changes made by this command. {version} will be dynamically interpolated when performing fixed releases, interpolated tags will be appended to the commit body when performing independent releases. - -##### git-tag - -Type: `boolean` - -Whether or not to automatically tag the changes made by this command - -##### git-tag-args - -Type: `string` - -Additional arguments to pass to the `git tag` command invoked behind the scenes - -##### git-tag-message - -Type: `string` - -Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself. - -##### help - -Type: `boolean` - -Show help - -##### preid - -Type: `string` - -The optional prerelease identifier to apply to the version, in the case that specifier has been set to prerelease. - -##### specifier - -Type: `string` - -Exact version or semver keyword to apply to the selected release group. - -##### stage-changes - -Type: `boolean` - -Whether or not to stage the changes made by this command. Always treated as true if git-commit is true. - -##### version - -Type: `boolean` - -Show version number - -### changelog - -Generate a changelog for one or more projects, and optionally push to Github - -```shell -nx release changelog [version] -``` - -#### Options - -##### from - -Type: `string` - -The git reference to use as the start of the changelog. If not set it will attempt to resolve the latest tag and use that - -##### git-commit - -Type: `boolean` - -Whether or not to automatically commit the changes made by this command - -##### git-commit-args - -Type: `string` - -Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes - -##### git-commit-message - -Type: `string` - -Custom git commit message to use when committing the changes made by this command. {version} will be dynamically interpolated when performing fixed releases, interpolated tags will be appended to the commit body when performing independent releases. - -##### git-remote - -Type: `string` - -Default: `origin` - -Alternate git remote in the form {user}/{repo} on which to create the Github release (useful for testing) - -##### git-tag - -Type: `boolean` - -Whether or not to automatically tag the changes made by this command - -##### git-tag-args - -Type: `string` - -Additional arguments to pass to the `git tag` command invoked behind the scenes - -##### git-tag-message - -Type: `string` - -Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself. - -##### help - -Type: `boolean` - -Show help - -##### interactive - -Type: `string` - -Choices: [all, workspace, projects] - -Interactively modify changelog markdown contents in your code editor before applying the changes. You can set it to be interactive for all changelogs, or only the workspace level, or only the project level - -##### stage-changes - -Type: `boolean` - -Whether or not to stage the changes made by this command. Always treated as true if git-commit is true. - -##### to - -Type: `string` - -Default: `HEAD` - -The git reference to use as the end of the changelog - -##### version - -Type: `string` - -The version to create a Github release and changelog for - -### publish - -Publish a versioned project to a registry - -```shell -nx release publish -``` - -#### Options - -##### all - -Type: `boolean` - -Default: `true` - -[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required. - -##### exclude - -Type: `string` - -Exclude certain projects from being processed - -##### graph - -Type: `string` - -Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. - -##### help - -Type: `boolean` - -Show help - -##### nxBail - -Type: `boolean` - -Default: `false` - -Stop command execution after the first failed task - -##### nxIgnoreCycles - -Type: `boolean` - -Default: `false` - -Ignore cycles in the task graph - -##### otp - -Type: `number` - -A one-time password for publishing to a registry that requires 2FA - -##### output-style - -Type: `string` - -Choices: [dynamic, static, stream, stream-without-prefixes] - -Defines how Nx emits outputs tasks logs - -##### parallel - -Type: `string` - -Max number of parallel processes [default is 3] - -##### projects - -Type: `string` - -Projects to run. (comma/space delimited project names and/or patterns) - -##### registry - -Type: `string` - -The registry to publish to - -##### runner - -Type: `string` - -This is the name of the tasks runner configured in nx.json - -##### skipNxCache - -Type: `boolean` - -Default: `false` - -Rerun the tasks even when the results are available in the cache - -##### tag - -Type: `string` - -The distribution tag to apply to the published package - -##### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -##### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/repair.md b/docs/generated/packages/nx/documents/repair.md deleted file mode 100644 index e022cc9a76ae6..0000000000000 --- a/docs/generated/packages/nx/documents/repair.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: 'repair - CLI command' -description: 'Repair any configuration that is no longer supported by Nx. - - Specifically, this will run every migration within the `nx` package - against the current repository. Doing so should fix any configuration - details left behind if the repository was previously updated to a new - Nx version without using `nx migrate`. - - If your repository has only ever updated to newer versions of Nx with - `nx migrate`, running `nx repair` should do nothing. - ' ---- - -# repair - -Repair any configuration that is no longer supported by Nx. - - Specifically, this will run every migration within the `nx` package - against the current repository. Doing so should fix any configuration - details left behind if the repository was previously updated to a new - Nx version without using `nx migrate`. - - If your repository has only ever updated to newer versions of Nx with - `nx migrate`, running `nx repair` should do nothing. - -## Usage - -```shell -nx repair -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -## Options - -### help - -Type: `boolean` - -Show help - -### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/report.md b/docs/generated/packages/nx/documents/report.md deleted file mode 100644 index 6b7e88a2901a7..0000000000000 --- a/docs/generated/packages/nx/documents/report.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 'report - CLI command' -description: 'Reports useful version numbers to copy into the Nx issue template' ---- - -# report - -Reports useful version numbers to copy into the Nx issue template - -## Usage - -```shell -nx report -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. diff --git a/docs/generated/packages/nx/documents/reset.md b/docs/generated/packages/nx/documents/reset.md deleted file mode 100644 index 7f036bb07d82d..0000000000000 --- a/docs/generated/packages/nx/documents/reset.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 'reset - CLI command' -description: 'Clears all the cached Nx artifacts and metadata about the workspace and shuts down the Nx Daemon.' ---- - -# reset - -Clears all the cached Nx artifacts and metadata about the workspace and shuts down the Nx Daemon. - -## Usage - -```shell -nx reset -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. diff --git a/docs/generated/packages/nx/documents/run-many.md b/docs/generated/packages/nx/documents/run-many.md deleted file mode 100644 index 7feac45a42b82..0000000000000 --- a/docs/generated/packages/nx/documents/run-many.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: 'run-many - CLI command' -description: 'Run target for multiple listed projects' ---- - -# run-many - -Run target for multiple listed projects - -## Usage - -```shell -nx run-many -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Test all projects: - -```shell - nx run-many -t test -``` - -Test proj1 and proj2 in parallel: - -```shell - nx run-many -t test -p proj1 proj2 -``` - -Test proj1 and proj2 in parallel using 5 workers: - -```shell - nx run-many -t test -p proj1 proj2 --parallel=5 -``` - -Test proj1 and proj2 in sequence: - -```shell - nx run-many -t test -p proj1 proj2 --parallel=false -``` - -Test all projects ending with `*-app` except `excluded-app`. Note: your shell may require you to escape the `*` like this: `\*`: - -```shell - nx run-many -t test --projects=*-app --exclude excluded-app -``` - -Test all projects with tags starting with `api-`. Note: your shell may require you to escape the `*` like this: `\*`: - -```shell - nx run-many -t test --projects=tag:api-* -``` - -Test all projects with a `type:ui` tag: - -```shell - nx run-many -t test --projects=tag:type:ui -``` - -Test all projects with a `type:feature` or `type:ui` tag: - -```shell - nx run-many -t test --projects=tag:type:feature,tag:type:ui -``` - -Run lint, test, and build targets for all projects. Requires Nx v15.4+: - -```shell - nx run-many --targets=lint,test,build -``` - -## Options - -### all - -Type: `boolean` - -Default: `true` - -[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required. - -### batch - -Type: `boolean` - -Default: `false` - -Run task(s) in batches for executors which support batches - -### configuration - -Type: `string` - -This is the configuration to use when performing tasks on projects - -### exclude - -Type: `string` - -Exclude certain projects from being processed - -### graph - -Type: `string` - -Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. - -### help - -Type: `boolean` - -Show help - -### nxBail - -Type: `boolean` - -Default: `false` - -Stop command execution after the first failed task - -### nxIgnoreCycles - -Type: `boolean` - -Default: `false` - -Ignore cycles in the task graph - -### output-style - -Type: `string` - -Choices: [dynamic, static, stream, stream-without-prefixes] - -Defines how Nx emits outputs tasks logs - -### parallel - -Type: `string` - -Max number of parallel processes [default is 3] - -### projects - -Type: `string` - -Projects to run. (comma/space delimited project names and/or patterns) - -### runner - -Type: `string` - -This is the name of the tasks runner configured in nx.json - -### skipNxCache - -Type: `boolean` - -Default: `false` - -Rerun the tasks even when the results are available in the cache - -### targets - -Type: `string` - -Tasks to run for affected projects - -### verbose - -Type: `boolean` - -Prints additional information about the commands (e.g., stack traces) - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/documents/run.md b/docs/generated/packages/nx/documents/run.md deleted file mode 100644 index 82c9688f27f4b..0000000000000 --- a/docs/generated/packages/nx/documents/run.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 'run - CLI command' -description: 'Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.' ---- - -# run - -Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file. - -## Usage - -```shell -nx run [options] -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`. - -### Examples - -Run the `build` target for the `myapp` : - -```shell -nx run myapp:build -``` - -Run the `build` target for the `myapp` project with a `production` configuration: - -```shell -nx run myapp:build:production -``` - -## Options - -### configuration (-c) - -A named builder configuration, defined in the "configurations" section of the workspace configuration file. The builder uses the named configuration to run the given target. - -### help - -Show help - -### version - -Show version number diff --git a/docs/generated/packages/nx/documents/show.md b/docs/generated/packages/nx/documents/show.md deleted file mode 100644 index c321d452b2bd0..0000000000000 --- a/docs/generated/packages/nx/documents/show.md +++ /dev/null @@ -1,212 +0,0 @@ ---- -title: 'show - CLI command' -description: 'Show information about the workspace (e.g., list of projects)' ---- - -# show - -Show information about the workspace (e.g., list of projects) - -## Usage - -```shell -nx show -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Show all projects in the workspace: - -```shell - nx show projects -``` - -Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many.: - -```shell - nx show projects --projects api-* -``` - -Show all projects with a serve target: - -```shell - nx show projects --with-target serve -``` - -Show affected projects in the workspace: - -```shell - nx show projects --affected -``` - -Show affected apps in the workspace: - -```shell - nx show projects --affected --type app -``` - -Show affected projects in the workspace, excluding end-to-end projects: - -```shell - nx show projects --affected --exclude=*-e2e -``` - -Show detailed information about "my-app" in a json format.: - -```shell - nx show project my-app -``` - -Show information about "my-app" in a human readable format.: - -```shell - nx show project my-app --json false -``` - -Opens a web browser to explore the configuration of "my-app": - -```shell - nx show project my-app --web -``` - -## Shared Options - -### help - -Type: `boolean` - -Show help - -### json - -Type: `boolean` - -Output JSON - -### version - -Type: `boolean` - -Show version number - -## Subcommands - -### projects - -Show a list of projects in the workspace - -```shell -nx show projects -``` - -#### Options - -##### affected - -Type: `boolean` - -Show only affected projects - -##### base - -Type: `string` - -Base of the current branch (usually main) - -##### exclude - -Type: `string` - -Exclude certain projects from being processed - -##### files - -Type: `string` - -Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces - -##### head - -Type: `string` - -Latest commit of the current branch (usually HEAD) - -##### help - -Type: `boolean` - -Show help - -##### projects - -Type: `string` - -Show only projects that match a given pattern. - -##### type - -Type: `string` - -Choices: [app, lib, e2e] - -Select only projects of the given type - -##### uncommitted - -Type: `boolean` - -Uncommitted changes - -##### untracked - -Type: `boolean` - -Untracked changes - -##### version - -Type: `boolean` - -Show version number - -##### withTarget - -Type: `string` - -Show only projects that have a specific target - -### project - -Shows resolved project configuration for a given project. - -```shell -nx show project -``` - -#### Options - -##### help - -Type: `boolean` - -Show help - -##### projectName - -Type: `string` - -Which project should be viewed? - -##### version - -Type: `boolean` - -Show version number - -##### web - -Type: `boolean` - -Show project details in the browser diff --git a/docs/generated/packages/nx/documents/view-logs.md b/docs/generated/packages/nx/documents/view-logs.md deleted file mode 100644 index 0975edec251ed..0000000000000 --- a/docs/generated/packages/nx/documents/view-logs.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 'view-logs - CLI command' -description: 'Enables you to view and interact with the logs via the advanced analytic UI from Nx Cloud to help you debug your issue. To do this, Nx needs to connect your workspace to Nx Cloud and upload the most recent run details. Only the metrics are uploaded, not the artefacts.' ---- - -# view-logs - -Enables you to view and interact with the logs via the advanced analytic UI from Nx Cloud to help you debug your issue. To do this, Nx needs to connect your workspace to Nx Cloud and upload the most recent run details. Only the metrics are uploaded, not the artefacts. - -## Usage - -```shell -nx view-logs -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. diff --git a/docs/generated/packages/nx/documents/watch.md b/docs/generated/packages/nx/documents/watch.md deleted file mode 100644 index 5fb31bdeb6a8b..0000000000000 --- a/docs/generated/packages/nx/documents/watch.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 'watch - CLI command' -description: 'Watch for changes within projects, and execute commands' ---- - -# watch - -Watch for changes within projects, and execute commands - -## Usage - -```shell -nx watch -``` - -Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. - -### Examples - -Watch the "app" project and echo the project name and the files that changed: - -```shell - nx watch --projects=app -- echo \$NX_PROJECT_NAME \$NX_FILE_CHANGES -``` - -Watch "app1" and "app2" and echo the project name whenever a specified project or its dependencies change: - -```shell - nx watch --projects=app1,app2 --includeDependentProjects -- echo \$NX_PROJECT_NAME -``` - -Watch all projects (including newly created projects) in the workspace: - -```shell - nx watch --all -- echo \$NX_PROJECT_NAME -``` - -## Options - -### all - -Type: `boolean` - -Watch all projects. - -### help - -Type: `boolean` - -Show help - -### includeDependentProjects - -Type: `boolean` - -When watching selected projects, include dependent projects as well. - -### projects - -Type: `string` - -Projects to watch (comma/space delimited). - -### verbose - -Type: `boolean` - -Run watch mode in verbose mode, where commands are logged before execution. - -### version - -Type: `boolean` - -Show version number diff --git a/docs/generated/packages/nx/executors/noop.json b/docs/generated/packages/nx/executors/noop.json deleted file mode 100644 index 767dddbcf9146..0000000000000 --- a/docs/generated/packages/nx/executors/noop.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "noop", - "implementation": "/packages/nx/src/executors/noop/noop.impl.ts", - "schema": { - "version": 2, - "title": "Noop", - "description": "An executor that does nothing.", - "type": "object", - "cli": "nx", - "outputCapture": "pipe", - "properties": {}, - "additionalProperties": true, - "presets": [] - }, - "description": "An executor that does nothing", - "aliases": [], - "hidden": false, - "path": "/packages/nx/src/executors/noop/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/nx/executors/run-commands.json b/docs/generated/packages/nx/executors/run-commands.json deleted file mode 100644 index b4717441fd944..0000000000000 --- a/docs/generated/packages/nx/executors/run-commands.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "name": "run-commands", - "implementation": "/packages/nx/src/executors/run-commands/run-commands.impl.ts", - "schema": { - "version": 2, - "title": "Run Commands", - "description": "Run any custom commands with Nx.", - "type": "object", - "cli": "nx", - "outputCapture": "pipe", - "presets": [ - { "name": "Arguments forwarding", "keys": ["commands"] }, - { "name": "Custom done conditions", "keys": ["commands", "readyWhen"] }, - { "name": "Setting the cwd", "keys": ["commands", "cwd"] } - ], - "properties": { - "commands": { - "type": "array", - "description": "Commands to run in child process.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "command": { - "type": "string", - "description": "Command to run in child process." - }, - "forwardAllArgs": { - "type": "boolean", - "description": "Whether arguments should be forwarded when interpolation is not present." - }, - "prefix": { - "type": "string", - "description": "Prefix in front of every line out of the output" - }, - "color": { - "type": "string", - "description": "Color of the output", - "enum": [ - "black", - "red", - "green", - "yellow", - "blue", - "magenta", - "cyan", - "white" - ] - }, - "bgColor": { - "type": "string", - "description": "Background color of the output", - "enum": [ - "bgBlack", - "bgRed", - "bgGreen", - "bgYellow", - "bgBlue", - "bgMagenta", - "bgCyan", - "bgWhite" - ] - }, - "description": { - "type": "string", - "description": "An optional description useful for inline documentation purposes. It is not used as part of the execution of the command." - } - }, - "additionalProperties": false, - "required": ["command"] - }, - { "type": "string" } - ] - }, - "x-priority": "important" - }, - "command": { - "type": "string", - "description": "Command to run in child process.", - "x-priority": "important" - }, - "parallel": { - "type": "boolean", - "description": "Run commands in parallel.", - "default": true, - "x-priority": "important" - }, - "readyWhen": { - "type": "string", - "description": "String to appear in `stdout` or `stderr` that indicates that the task is done. When running multiple commands, this option can only be used when `parallel` is set to `true`. If not specified, the task is done when all the child processes complete." - }, - "args": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Extra arguments. You can pass them as follows: nx run project:target --args='--wait=100'. You can then use {args.wait} syntax to interpolate them in the workspace config file. See example [above](#chaining-commands-interpolating-args-and-setting-the-cwd)" - }, - "envFile": { - "type": "string", - "description": "You may specify a custom .env file path." - }, - "color": { - "type": "boolean", - "description": "Use colors when showing output of command.", - "default": false - }, - "cwd": { - "type": "string", - "description": "Current working directory of the commands. If it's not specified the commands will run in the workspace root, if a relative path is specified the commands will run in that path relative to the workspace root and if it's an absolute path the commands will run in that path." - }, - "env": { - "type": "object", - "description": "Environment variables that will be made available to the commands. This property has priority over the `.env` files.", - "additionalProperties": { "type": "string" } - }, - "__unparsed__": { - "hidden": true, - "type": "array", - "items": { "type": "string" }, - "$default": { "$source": "unparsed" }, - "x-priority": "internal" - } - }, - "additionalProperties": true, - "oneOf": [{ "required": ["commands"] }, { "required": ["command"] }], - "examplesFile": "`project.json`:\n\n```json\n{\n // ...\n \"targets\": {\n //...\n \"ls-project-root\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"ls apps/frontend/src\"\n }\n }\n }\n}\n```\n\n```bash\nnx run frontend:ls-project-root\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Chaining commands\" %}\n\nThe `commands` option accepts as many commands as you want. By default, they all run in parallel.\nYou can run them sequentially by setting `parallel: false`:\n\n```json\n\"create-script\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"commands\": [\n \"mkdir -p apps/frontend/scripts\",\n \"touch apps/frontend/scripts/my-script.sh\",\n \"chmod +x apps/frontend/scripts/my-script.sh\"\n ],\n \"parallel\": false\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Setting the cwd\" %}\n\nBy setting the `cwd` option, each command will run in the `apps/frontend` folder.\n\n```json\n\"create-script\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"cwd\": \"apps/frontend\",\n \"commands\": [\n \"mkdir -p scripts\",\n \"touch scripts/my-script.sh\",\n \"chmod +x scripts/my-script.sh\"\n ],\n \"parallel\": false\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Interpolating Args\" %}\n\nYou can use custom arguments in your scripts with `{args.[someFlag]}`:\n\n```json\n\"create-script\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"cwd\": \"apps/frontend\",\n \"commands\": [\n \"mkdir -p scripts\",\n \"touch scripts/{args.name}.sh\",\n \"chmod +x scripts/{args.name}.sh\"\n ],\n \"parallel\": false\n }\n}\n```\n\nWe run the above with:\n\n```bash\nnx run frontend:create-script --args=\"--name=example\"\n```\n\nor simply with:\n\n```bash\nnx run frontend:create-script --name=example\n```\n\n{% /tab %}\n{% tab label=\"Arguments forwarding\" %}\nWhen interpolation is not present in the command, all arguments are forwarded to the command by default.\n\nThis is useful when you need to pass raw argument strings to your command.\n\nFor example, when you run:\n\n```bash\nnx run frontend:webpack --args=\"--config=example.config.js\"\n```\n\n```json\n\"webpack\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"webpack\"\n }\n}\n```\n\nThe above command will execute: `webpack --config=example.config.js`\n\nThis functionality can be disabled by using `commands` and expanding each `command` into an object\nthat sets the `forwardAllArgs` option to `false` as shown below:\n\n```json\n\"webpack\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"commands\": [\n {\n \"command\": \"webpack\",\n \"forwardAllArgs\": false\n }\n ]\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Shorthand\" %}\nWhen you only need to run a single command, you can use a shorthand for nx:run-commands:\n\n```json\n\"webpack\": {\n \"command\": \"webpack\"\n}\n```\n\n{% /tab %}\n{% tab label=\"Custom done conditions\" %}\n\nNormally, `run-commands` considers the commands done when all of them have finished running. If you don't need to wait until they're all done, you can set a special string that considers the commands finished the moment the string appears in `stdout` or `stderr`:\n\n```json\n\"finish-when-ready\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"commands\": [\n \"sleep 5 && echo 'FINISHED'\",\n \"echo 'READY'\"\n ],\n \"readyWhen\": \"READY\",\n \"parallel\": true\n }\n}\n```\n\n```bash\nnx run frontend:finish-when-ready\n```\n\nThe above commands will finish immediately, instead of waiting for 5 seconds.\n{% /tab %}\n{% tab label=\"Nx Affected\" %}\n\nThe true power of `run-commands` comes from the fact that it runs through `nx`, which knows about your project graph. So you can run **custom commands** only for the projects that have been affected by a change.\n\nWe can create some configurations to generate docs, and if run using `nx affected`, it will only generate documentation for the projects that have been changed:\n\n```bash\nnx affected --target=generate-docs\n```\n\n```json\n//...\n\"frontend\": {\n \"targets\": {\n //...\n \"generate-docs\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"npx compodoc -p apps/frontend/tsconfig.app.json\"\n }\n }\n }\n},\n\"api\": {\n \"targets\": {\n //...\n \"generate-docs\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"npx compodoc -p apps/api/tsconfig.app.json\"\n }\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" - }, - "description": "Run any custom commands with Nx.", - "aliases": [], - "hidden": false, - "path": "/packages/nx/src/executors/run-commands/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/nx/executors/run-script.json b/docs/generated/packages/nx/executors/run-script.json deleted file mode 100644 index 04ba275016d75..0000000000000 --- a/docs/generated/packages/nx/executors/run-script.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "run-script", - "implementation": "/packages/nx/src/executors/run-script/run-script.impl.ts", - "schema": { - "version": 2, - "title": "Run Script", - "description": "Run any NPM script of a project in the project's root directory.", - "type": "object", - "cli": "nx", - "outputCapture": "pipe", - "properties": { - "script": { - "type": "string", - "description": "An npm script name in the `package.json` file of the project (e.g., `build`)." - }, - "__unparsed__": { - "hidden": true, - "type": "array", - "items": { "type": "string" }, - "$default": { "$source": "unparsed" }, - "x-priority": "internal" - } - }, - "additionalProperties": true, - "required": ["script"], - "examplesFile": "`workspace.json`:\n\n```json\n\"frontend\": {\n \"root\": \"packages/frontend\",\n \"targets\": {\n \"build\": {\n \"executor\": \"nx:run-script\",\n \"options\": {\n \"script\": \"build-my-project\"\n }\n }\n }\n}\n```\n\n```bash\nnx run frontend:build\n```\n\nThe `build` target is going to run `npm run build-my-project` (or `yarn build-my-project`) in the `packages/frontend` directory.\n\n#### Caching Artifacts\n\nBy default, Nx is going to cache `dist/packages/frontend`, `packages/frontend/dist`, `packages/frontend/build`, `packages/frontend/public`. If your npm script writes files to other places, you can override the list of cached outputs as follows:\n\n```json\n\"frontend\": {\n \"root\": \"packages/frontend\",\n \"targets\": {\n \"build\": {\n \"executor\": \"nx:run-script\",\n \"outputs\": [\"{projectRoot}/dist\", \"{projectRoot}/docs\"],\n \"options\": {\n \"script\": \"build-my-project\"\n }\n }\n }\n}\n```\n", - "presets": [] - }, - "description": "Run an NPM script using Nx.", - "aliases": [], - "hidden": false, - "path": "/packages/nx/src/executors/run-script/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/nx/generators/connect-to-nx-cloud.json b/docs/generated/packages/nx/generators/connect-to-nx-cloud.json deleted file mode 100644 index c9c3e2eff6933..0000000000000 --- a/docs/generated/packages/nx/generators/connect-to-nx-cloud.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "connect-to-nx-cloud", - "factory": "./src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud", - "schema": { - "$schema": "https://json-schema.org/schema", - "id": "NxCloudInit", - "title": "Add Nx Cloud Configuration to the workspace", - "description": "Connect a workspace to Nx Cloud.", - "type": "object", - "cli": "nx", - "properties": { - "analytics": { - "type": "boolean", - "description": "Anonymously store hashed machine ID for task runs", - "default": false - }, - "installationSource": { - "type": "string", - "description": "Name of Nx Cloud installation invoker (ex. user, add-nx-to-monorepo, create-nx-workspace, nx-upgrade", - "default": "user" - }, - "hideFormatLogs": { - "type": "boolean", - "description": "Hide formatting logs", - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": [], - "presets": [] - }, - "description": "Connect a workspace to Nx Cloud", - "x-hidden": true, - "implementation": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/playwright/documents/overview.md b/docs/generated/packages/playwright/documents/overview.md deleted file mode 100644 index 27371af3b10f9..0000000000000 --- a/docs/generated/packages/playwright/documents/overview.md +++ /dev/null @@ -1,256 +0,0 @@ ---- -title: Overview of the Nx Playwright Plugin -description: The Nx Plugin for Playwright contains executors and generators that support e2e testing with Playwright. This page also explains how to configure Playwright on your Nx workspace. ---- - -Playwright is a modern web test runner. With included features such as: - -- Cross browser support, including mobile browsers -- Multi tab, origin, and user support -- Automatic waiting -- Test generation -- Screenshots and videos - -## Setting Up @nx/playwright - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/playwright` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/playwright` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/playwright -``` - -This will install the correct version of `@nx/playwright`. - -### How @nx/playwright Infers Tasks - -The `@nx/playwright` plugin will create a task for any project that has a Playwright configuration file present. Any of the following files will be recognized as a Playwright configuration file: - -- `playwright.config.js` -- `playwright.config.ts` -- `playwright.config.mjs` -- `playwright.config.mts` -- `playwright.config.cjs` -- `playwright.config.cts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/playwright Configuration - -The `@nx/playwright/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/playwright/plugin", - "options": { - "ciTargetName": "e2e-ci", - "targetName": "e2e" - } - } - ] -} -``` - -The `targetName` and `ciTargetName` options control the name of the inferred Playwright tasks. The default names are `e2e` and `e2e-ci`. - -### Splitting E2E tasks by file - -The `@nx/playwright/plugin` will automatically split your e2e tasks by file. You can read more about this feature [here](/ci/features/split-e2e-tasks). - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/playwright` package with your package manager. - -```shell {% skipRescope=true %} -npm add -D @nx/playwright -``` - -{% /tab %} -{% /tabs %} - -## E2E Testing - -By default, when creating a new frontend application, Nx will prompt for which e2e test runner to use. Select `playwright` or pass in the arg `--e2eTestRunner=playwright` - -```shell -nx g @nx/web:app frontend --e2eTestRunner=playwright -``` - -### Add Playwright e2e to an existing project - -To generate an E2E project for an existing project, run the following generator - -```shell -nx g @nx/playwright:configuration --project=your-app-name -``` - -Optionally, you can use the `--webServerCommand` and `--webServerAddress` option, to auto setup the [web server option](https://playwright.dev/docs/test-webserver) in the playwright config - -```shell -nx g @nx/playwright:configuration --project=your-app-name --webServerCommand="npx serve your-project-name" --webServerAddress="http://localhost:4200" -``` - -### Testing Applications - -Run `nx e2e ` to execute e2e tests with Playwright - -{% callout type="note" title="Selecting Specific Specs" %} - -You can use the `--grep/-g` flag to glob for test files. -You can use the `--grepInvert/-gv` flag to glob for files to _not_ run. - -```bash -# run the tests in the feat-a/ directory -nx e2e frontend-e2e --grep="**feat-a/**" - -# run everything except feat-a/ directory -nx e2e frontend-e2e --grepInvert=**feat-a/** -``` - -{% /callout %} - -By default, Playwright will run in headless mode. You will have the result of all the tests and errors (if any) in your -terminal. Test output such as reports, screenshots and videos, will be accessible in `dist/.playwright/apps//`. This can be configured with the `outputDir` configuration options. - -{% callout type="note" title="Output Caching" %} -If changing the output directory or report output, make sure to update the [target outputs](/concepts/how-caching-works#what-is-cached) so the artifacts are correctly cached -{% /callout %} - -### Watching for Changes - -With, `nx e2e frontend-e2e --ui` Playwright will start in headed mode where you can see your application being tested. - -From, there you can toggle on the watch icon which will rerun the tests when the spec file updates. - -```shell -nx e2e --ui -``` - -You can also use `--headed` flag to run Playwright where the browser can be seen without using the [Playwright UI](https://playwright.dev/docs/test-ui-mode) - -### Specifying a Base Url - -The `baseURL` property within the Playwright configuration can control where the tests visit by default. - -```ts -import { defineConfig } from '@playwright/test'; - -export default defineConfig({ - // Rest of your config... - - // Run your local dev server before starting the tests - webServer: { - command: 'npx serve ', - url: 'http://localhost:4200', - reuseExistingServer: !process.env.CI, - }, - use: { - baseURL: 'http://localhost:4200', // url playwright visits with `await page.goto('/')`; - }, -}); -``` - -In order to set different `baseURL` values for different environments you can pass them via the [environment variables and nx configurations](/recipes/tips-n-tricks/define-environment-variables) or optionally via setting them per the environment they are needed in such as `CI` - -```ts -import { defineConfig } from '@playwright/test'; - -const baseUrl = - process.env.BASE_URL ?? process.env.CI - ? 'https://some-staging-url.example.com' - : 'http://localhost:4200'; - -export default defineConfig({ - // Rest of your config... - - // Run your local dev server before starting the tests - webServer: { - command: 'npx serve ', - url: baseUrl, - reuseExistingServer: !process.env.CI, - }, - use: { - baseURL: baseUrl, // url playwright visits with `await page.goto('/')`; - }, -}); -``` - -By default Nx, provides a `nxE2EPreset` with predefined configuration for Playwright. - -```ts -import { defineConfig } from '@playwright/test'; -import { nxE2EPreset } from '@nx/playwright/preset'; -import { workspaceRoot } from '@nx/devkit'; - -// For CI, you may want to set BASE_URL to the deployed application. -const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'; - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -export default defineConfig({ - ...nxE2EPreset(__filename, { testDir: './e2e' }), - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - baseURL, - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - /* Run your local dev server before starting the tests */ - webServer: { - command: 'npx nx serve ', - url: baseURL, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, -}); -``` - -This preset sets up the `outputDir` and [HTML reporter](https://playwright.dev/docs/test-reporters#html-reporter) to output in `dist/.playwright/` and sets up chromium, firefox, webkit browsers to be used a browser targets. If you want to use mobile and/or branded browsers you can pass those options into the preset function - -```ts -export default defineConfig({ - ...nxE2EPreset(__filename, { - testDir: './e2e', - includeMobileBrowsers: true, // includes mobile Chrome and Safari - includeBrandedBrowsers: true, // includes Google Chrome and Microsoft Edge - }), - // other settings -}); -``` - -If you want to override any settings within the `nxE2EPreset`, You can define them after the preset like so - -```ts -const config = nxE2EPreset(__filename, { - testDir: './e2e', - includeMobileBrowsers: true, // includes mobile Chrome and Safari - includeBrandedBrowsers: true, // includes Google Chrome and Microsoft Edge -}); -export default defineConfig({ - ...config - retries: 3, - reporters: [...config.reporters, /* other reporter settings */], -}); -``` - -See the [Playwright configuration docs](https://playwright.dev/docs/test-configuration) for more options for Playwright. diff --git a/docs/generated/packages/playwright/executors/playwright.json b/docs/generated/packages/playwright/executors/playwright.json deleted file mode 100644 index 5cb06ef6e27ae..0000000000000 --- a/docs/generated/packages/playwright/executors/playwright.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "name": "playwright", - "implementation": "/packages/playwright/src/executors/playwright/playwright.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "title": "Playwright executor", - "description": "Run Playwright tests.", - "type": "object", - "properties": { - "browser": { - "type": "string", - "description": "Browser to use for tests, one of 'all', 'chromium', 'firefox' or 'webkit'. If a playwright config is provided/discovered then the browserName value is expected from the configured 'projects'", - "x-priority": "important" - }, - "config": { - "type": "string", - "description": "Configuration file, or a test directory with optional", - "x-completion-type": "file", - "x-completion-glob": "playwright?(*)@(.js|.cjs|.mjs|.ts|.cts|.mtx)", - "x-priority": "important" - }, - "debug": { - "type": "boolean", - "description": "Run tests with Playwright Inspector. Shortcut for 'PWDEBUG=1' environment variable and '--timeout=0',--max-failures=1 --headed --workers=1' options" - }, - "forbidOnly": { - "type": "boolean", - "description": "Fail if test.only is called" - }, - "fullyParallel": { - "type": "boolean", - "description": "Run all tests in parallel" - }, - "grep": { - "alias": "g", - "type": "string", - "description": "Only run tests matching this regular expression" - }, - "globalTimeout": { - "type": "number", - "description": "Maximum time this test suite can run in milliseconds" - }, - "grepInvert": { - "alias": "gv", - "type": "string", - "description": "Only run tests that do not match this regular expression" - }, - "testFiles": { - "alias": "t", - "type": "array", - "description": "Test files to run", - "items": { "type": "string" } - }, - "headed": { - "type": "boolean", - "description": "Run tests in headed browsers", - "x-priority": "important" - }, - "ignoreSnapshots": { - "type": "boolean", - "description": "Ignore screenshot and snapshot expectations" - }, - "workers": { - "alias": "j", - "type": "string", - "description": "Number of concurrent workers or percentage of logical CPU cores, use 1 to run in a single worker" - }, - "list": { - "type": "boolean", - "description": "Collect all the tests and report them, but do not run" - }, - "maxFailures": { - "alias": "x", - "oneOf": [{ "type": "number" }, { "type": "boolean" }], - "description": "Stop after the first N failures" - }, - "noDeps": { - "type": "boolean", - "description": "Do not run project dependencies" - }, - "output": { - "type": "string", - "description": "Folder for output artifacts" - }, - "passWithNoTests": { - "type": "boolean", - "description": "Makes test run succeed even if no tests were found", - "default": true - }, - "project": { - "description": "Only run tests from the specified list of projects", - "type": "array", - "items": { "type": "string" } - }, - "quiet": { - "alias": "q", - "type": "boolean", - "description": "Suppress stdio" - }, - "repeatEach": { - "type": "number", - "description": "Run each test N times" - }, - "reporter": { - "type": "string", - "enum": [ - "list", - "line", - "dot", - "json", - "junit", - "null", - "github", - "html", - "blob" - ], - "description": "Reporter to use, comma-separated, can be 'list', 'line', 'dot', 'json', 'junit', 'null', 'github', 'html', 'blob'. To configure reporter options, use the playwright configuration." - }, - "retries": { - "type": "number", - "description": "Maximum retry count for flaky tests, zero for no retries" - }, - "shard": { - "type": "string", - "description": "Shard tests and execute only the selected shard, specify in the form 'current/all', 1-based, for example '3/5'" - }, - "timeout": { - "type": "number", - "description": "Specify test timeout threshold in milliseconds, zero for unlimited" - }, - "trace": { - "type": "string", - "enum": [ - "on", - "off", - "on-first-retry", - "on-all-retries", - "retain-on-failure" - ], - "description": "Force tracing mode, can be 'on', 'off', 'on-first-retry', 'on-all-retries', 'retain-on-failure'" - }, - "updateSnapshots": { - "alias": "u", - "type": "boolean", - "description": "Update snapshots with actual results. Snapshots will be created if missing." - }, - "ui": { - "type": "boolean", - "description": "Run tests in interactive UI mode" - }, - "uiHost": { - "type": "string", - "description": "Host to serve UI on; specifying this option opens UI in a browser tab" - }, - "uiPort": { - "type": "string", - "description": "Port to serve UI on, 0 for any free port; specifying this option opens UI in a browser tab" - }, - "skipInstall": { - "type": "boolean", - "description": "Skip running playwright install before running playwright tests. This is to ensure that playwright browsers are installed before running tests.", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Run Playwright tests.", - "aliases": [], - "hidden": false, - "path": "/packages/playwright/src/executors/playwright/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/playwright/generators/configuration.json b/docs/generated/packages/playwright/generators/configuration.json deleted file mode 100644 index a354fdcb4d228..0000000000000 --- a/docs/generated/packages/playwright/generators/configuration.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "configuration", - "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxPlaywrightConfiguration", - "description": "Add a Playwright configuration.", - "title": "Add a Playwright configuration", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The project to add a Playwright configuration to.", - "$default": { "$source": "projectName" }, - "x-priority": "important", - "x-prompt": "What is the name of the project to set up Playwright for?" - }, - "directory": { - "type": "string", - "description": "A directory where the project is placed relative from the project root.", - "x-priority": "important", - "default": "e2e" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "webServerCommand": { - "type": "string", - "description": "The command to start the web server." - }, - "webServerAddress": { - "type": "string", - "description": "The address of the web server." - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "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 - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "rootProject": { - "description": "Create a application at the root of the workspace", - "type": "boolean", - "default": false, - "hidden": true, - "x-priority": "internal" - }, - "skipInstall": { - "type": "boolean", - "description": "Skip running `playwright install`. This is to ensure that playwright browsers are installed.", - "default": false - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Add Nx Playwright configuration to your project", - "implementation": "/packages/playwright/src/generators/configuration/configuration#configurationGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/playwright/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/playwright/generators/init.json b/docs/generated/packages/playwright/generators/init.json deleted file mode 100644 index c705ebc0c5c9b..0000000000000 --- a/docs/generated/packages/playwright/generators/init.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#initGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxPlaywrightInit", - "title": "Playwright Init Generator", - "description": "Initializes a Playwright project in the current workspace.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initializes a Playwright project in the current workspace", - "implementation": "/packages/playwright/src/generators/init/init#initGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/playwright/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/documents/overview.md b/docs/generated/packages/plugin/documents/overview.md deleted file mode 100644 index 30179db3dae2c..0000000000000 --- a/docs/generated/packages/plugin/documents/overview.md +++ /dev/null @@ -1,5 +0,0 @@ -Nx plugins are npm packages that contain [generators](/features/generate-code) and [executors](/concepts/executors-and-configurations) to extend a Nx workspace. - -This package contains tooling to help plugin authors create and maintain plugins. - -For more information, see the [plugins](/extending-nx/intro/getting-started) section of docs. diff --git a/docs/generated/packages/plugin/executors/e2e.json b/docs/generated/packages/plugin/executors/e2e.json deleted file mode 100644 index e6c2f25dc2315..0000000000000 --- a/docs/generated/packages/plugin/executors/e2e.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "name": "e2e", - "implementation": "/packages/plugin/src/executors/e2e/e2e.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Nx Plugin Playground Target", - "description": "Creates a playground for a Nx Plugin.", - "cli": "nx", - "type": "object", - "properties": { - "target": { - "description": "The build target for the Nx Plugin project.", - "type": "string", - "x-priority": "important" - }, - "jestConfig": { - "type": "string", - "description": "Jest config file.", - "x-completion-type": "file", - "x-completion-glob": "jest.config@(.js|.ts)", - "x-priority": "important" - }, - "tsSpecConfig": { - "type": "string", - "description": "The tsconfig file for specs.", - "x-deprecated": "Use the `tsconfig` property for `ts-jest` in the e2e project `jest.config.js` file. It will be removed in the next major release.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "codeCoverage": { - "description": "Indicates that test coverage information should be collected and reported in the output. (https://jestjs.io/docs/cli#--coverageboolean)", - "type": "boolean", - "aliases": ["coverage"] - }, - "config": { - "description": "The path to a Jest config file specifying how to find and execute tests. If no `rootDir` is set in the config, the directory containing the config file is assumed to be the `rootDir` for the project. This can also be a JSON-encoded value which Jest will use as configuration.", - "type": "string" - }, - "clearCache": { - "description": "Deletes the Jest cache directory and then exits without running tests. Will delete Jest's default cache directory. _Note: clearing the cache will reduce performance_.", - "type": "boolean" - }, - "detectOpenHandles": { - "description": "Attempt to collect and print open handles preventing Jest from exiting cleanly (https://jestjs.io/docs/cli#--detectopenhandles)", - "type": "boolean" - }, - "logHeapUsage": { - "description": "Logs the heap usage after every test. Useful to debug memory leaks. Use together with --runInBand and --expose-gc in node.", - "type": "boolean" - }, - "detectLeaks": { - "description": "**EXPERIMENTAL**: Detect memory leaks in tests. After executing a test, it will try to garbage collect the global object used, and fail if it was leaked", - "type": "boolean" - }, - "testFile": { - "description": "The name of the file to test.", - "type": "string", - "x-completion-type": "file", - "x-completion-glob": "**/*.+(spec|test).+(ts|js)" - }, - "tsConfig": { - "description": "The name of the Typescript configuration file. Set the tsconfig option in the jest config file. ", - "type": "string", - "x-deprecated": "Use the ts-jest configuration options in the jest config file instead." - }, - "setupFile": { - "description": "The name of a setup file used by Jest. (use Jest config file https://jestjs.io/docs/en/configuration#setupfilesafterenv-array)", - "type": "string", - "x-deprecated": "Use the setupFilesAfterEnv option in the jest config file. https://jestjs.io/docs/en/configuration#setupfilesafterenv-array" - }, - "bail": { - "alias": "b", - "description": "Exit the test suite immediately after `n` number of failing tests. (https://jestjs.io/docs/cli#--bail)", - "oneOf": [{ "type": "number" }, { "type": "boolean" }] - }, - "ci": { - "description": "Whether to run Jest in continuous integration (CI) mode. This option is on by default in most popular CI environments. It will prevent snapshots from being written unless explicitly requested. (https://jestjs.io/docs/cli#--ci)", - "type": "boolean" - }, - "color": { - "alias": "colors", - "description": "Forces test results output color highlighting (even if `stdout` is not a TTY). Set to false if you would like to have no colors. (https://jestjs.io/docs/cli#--colors)", - "type": "boolean" - }, - "findRelatedTests": { - "description": "Find and run the tests that cover a comma separated list of source files that were passed in as arguments. (https://jestjs.io/docs/cli#--findrelatedtests-spaceseparatedlistofsourcefiles)", - "type": "string" - }, - "json": { - "description": "Prints the test results in `JSON`. This mode will send all other test output and user messages to `stderr`. (https://jestjs.io/docs/cli#--json)", - "type": "boolean" - }, - "maxWorkers": { - "alias": "w", - "description": "Specifies the maximum number of workers the worker-pool will spawn for running tests. This defaults to the number of the cores available on your machine. Useful for CI. (its usually best not to override this default) (https://jestjs.io/docs/cli#--maxworkersnumstring)", - "oneOf": [{ "type": "number" }, { "type": "string" }] - }, - "onlyChanged": { - "alias": "o", - "description": "Attempts to identify which tests to run based on which files have changed in the current repository. Only works if you're running tests in a `git` or `hg` repository at the moment. (https://jestjs.io/docs/cli#--onlychanged)", - "type": "boolean" - }, - "changedSince": { - "description": "Runs tests related to the changes since the provided branch or commit hash. If the current branch has diverged from the given branch, then only changes made locally will be tested. (https://jestjs.io/docs/cli#--changedsince)", - "type": "string" - }, - "outputFile": { - "description": "Write test results to a file when the `--json` option is also specified. (https://jestjs.io/docs/cli#--outputfilefilename)", - "type": "string" - }, - "passWithNoTests": { - "description": "Will not fail if no tests are found (for example while using `--testPathPattern`.) (https://jestjs.io/docs/cli#--passwithnotests)", - "type": "boolean" - }, - "runInBand": { - "alias": "i", - "description": "Run all tests serially in the current process (rather than creating a worker pool of child processes that run tests). This is sometimes useful for debugging, but such use cases are pretty rare. Useful for CI. (https://jestjs.io/docs/cli#--runinband)", - "type": "boolean", - "default": true - }, - "showConfig": { - "description": "Print your Jest config and then exits. (https://jestjs.io/docs/en/cli#--showconfig)", - "type": "boolean" - }, - "silent": { - "description": "Prevent tests from printing messages through the console. (https://jestjs.io/docs/cli#--silent)", - "type": "boolean" - }, - "testNamePattern": { - "alias": "t", - "description": "Run only tests with a name that matches the regex pattern. (https://jestjs.io/docs/cli#--testnamepatternregex)", - "type": "string" - }, - "testPathIgnorePatterns": { - "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. Only run those tests with a path that does not match with the provided regexp expressions. (https://jestjs.io/docs/cli#--testpathignorepatternsregexarray)", - "type": "array", - "items": { "type": "string" } - }, - "testPathPattern": { - "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. (https://jestjs.io/docs/cli#--testpathpatternregex)", - "type": "array", - "items": { "type": "string" }, - "default": [] - }, - "colors": { - "description": "Forces test results output highlighting even if stdout is not a TTY. (https://jestjs.io/docs/cli#--colors)", - "type": "boolean" - }, - "reporters": { - "description": "Run tests with specified reporters. Reporter options are not available via CLI. Example with multiple reporters: `jest --reporters=\"default\" --reporters=\"jest-junit\"`. (https://jestjs.io/docs/cli#--reporters)", - "type": "array", - "items": { "type": "string" } - }, - "verbose": { - "description": "Display individual test results with the test suite hierarchy. (https://jestjs.io/docs/cli#--verbose)", - "type": "boolean" - }, - "coverageReporters": { - "description": "A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter.", - "type": "array", - "items": { "type": "string" } - }, - "coverageDirectory": { - "description": "The directory where Jest should output its coverage files.", - "type": "string" - }, - "testResultsProcessor": { - "description": "Node module that implements a custom results processor. (https://jestjs.io/docs/en/configuration#testresultsprocessor-string)", - "type": "string" - }, - "updateSnapshot": { - "alias": "u", - "description": "Use this flag to re-record snapshots. Can be used together with a test suite pattern or with `--testNamePattern` to re-record snapshot for test matching the pattern. (https://jestjs.io/docs/cli#--updatesnapshot)", - "type": "boolean" - }, - "useStderr": { - "description": "Divert all output to stderr.", - "type": "boolean" - }, - "watch": { - "description": "Watch files for changes and rerun tests related to changed files. If you want to re-run all tests when a file has changed, use the `--watchAll` option. (https://jestjs.io/docs/cli#--watch)", - "type": "boolean" - }, - "watchAll": { - "description": "Watch files for changes and rerun all tests when something changes. If you want to re-run only the tests that depend on the changed files, use the `--watch` option. (https://jestjs.io/docs/cli#--watchall)", - "type": "boolean" - }, - "testLocationInResults": { - "description": "Adds a location field to test results. Used to report location of a test in a reporter. { \"column\": 4, \"line\": 5 } (https://jestjs.io/docs/cli#--testlocationinresults)", - "type": "boolean" - }, - "testTimeout": { - "description": "Default timeout of a test in milliseconds. Default value: `5000`. (https://jestjs.io/docs/cli#--testtimeoutnumber)", - "type": "number" - } - }, - "additionalProperties": false, - "required": ["target", "jestConfig"], - "presets": [] - }, - "description": "Creates and runs the E2E tests for an Nx Plugin.", - "x-deprecated": "@nx/plugin:e2e is deprecated and will be removed in Nx v19. Use @nx/jest:jest instead.", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/executors/e2e/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/plugin/generators/create-package.json b/docs/generated/packages/plugin/generators/create-package.json deleted file mode 100644 index 86536d0fe16bb..0000000000000 --- a/docs/generated/packages/plugin/generators/create-package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "create-package", - "factory": "./src/generators/create-package/create-package#createPackageGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginCreatePackage", - "title": "Create a framework package", - "description": "Create a framework package that uses Nx CLI.", - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Basic executable\" %}\n\nCreate an executable that initializes an Nx workspace with {my-plugin}'s preset:\n\n```bash\nnx g @nx/plugin:create-package create-my-plugin --project my-plugin\n```\n\n{% /tab %}\n{% /tabs %}\n", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The package name of cli, e.g. `create-framework-package`. Note this must be a valid NPM name to be published.", - "pattern": "create-.+|^@.+/create(?:-.+)?", - "$default": { "$source": "argv", "index": 0 }, - "x-priority": "important" - }, - "project": { - "type": "string", - "description": "The name of the generator project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-prompt": "What is the name of the project for the generator?", - "x-priority": "important" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "directory": { - "type": "string", - "description": "A directory where the app is placed." - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "compiler": { - "type": "string", - "enum": ["tsc", "swc"], - "default": "tsc", - "description": "The compiler used by the build and test targets." - }, - "e2eProject": { - "type": "string", - "description": "The name of the e2e project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-prompt": "What is the name of the e2e project?" - } - }, - "required": ["name", "project"], - "presets": [] - }, - "description": "Create a package which can be used by npx to create a new workspace", - "implementation": "/packages/plugin/src/generators/create-package/create-package#createPackageGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/create-package/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/e2e-project.json b/docs/generated/packages/plugin/generators/e2e-project.json deleted file mode 100644 index 6956a0e498ffa..0000000000000 --- a/docs/generated/packages/plugin/generators/e2e-project.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "e2e-project", - "factory": "./src/generators/e2e-project/e2e#e2eProjectGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginE2E", - "title": "Create an E2E app for a Nx Plugin", - "description": "Create an E2E app for a Nx Plugin.", - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"E2E Project\" %}\n\nScaffolds an E2E project for the plugin `my-plugin`.\n\n```bash\nnx g @nx/plugin:e2e-project --pluginName my-plugin --npmPackageName my-plugin --pluginOutputPath dist/my-plugin\n```\n\n{% /tab %}\n{% /tabs %}\n", - "type": "object", - "properties": { - "pluginName": { - "type": "string", - "description": "the project name of the plugin to be tested.", - "x-priority": "important" - }, - "npmPackageName": { - "type": "string", - "description": "the package name of the plugin as it would be published to NPM.", - "x-priority": "important" - }, - "projectDirectory": { - "type": "string", - "description": "the directory where the plugin is placed." - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "pluginOutputPath": { - "type": "string", - "description": "the output path of the plugin after it builds.", - "x-priority": "important" - }, - "jestConfig": { "type": "string", "description": "Jest config file." }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "minimal": { - "type": "boolean", - "description": "Generate the e2e project with a minimal setup. This would involve not generating tests for a default executor and generator.", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["pluginName", "npmPackageName"], - "presets": [] - }, - "description": "Create a E2E application for a Nx Plugin.", - "implementation": "/packages/plugin/src/generators/e2e-project/e2e#e2eProjectGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/e2e-project/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/executor.json b/docs/generated/packages/plugin/generators/executor.json deleted file mode 100644 index 326befb2d2082..0000000000000 --- a/docs/generated/packages/plugin/generators/executor.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "executor", - "factory": "./src/generators/executor/executor#executorGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginExecutor", - "title": "Create an Executor for an Nx Plugin", - "description": "Create an Executor for an Nx Plugin.", - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Basic executor\" %}\n\nCreate a new executor called `build` inside the plugin `my-plugin`:\n\n```bash\nnx g @nx/plugin:executor build --project my-plugin\n```\n\n{% /tab %}\n{% tab label=\"With custom hashing\" %}\n\nCreate a new executor called `build` inside the plugin `my-plugin`, that uses a custom hashing function:\n\n```bash\nnx g @nx/plugin:executor build --project my-plugin --includeHasher\n```\n\n{% /tab %}\n{% /tabs %}\n", - "type": "object", - "examples": [ - { - "command": "nx g executor my-executor --project=my-plugin", - "description": "Generate `libs/my-plugin/src/executors/my-executor`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Executor name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the executor?", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the executor file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir"], - "x-priority": "important" - }, - "description": { - "type": "string", - "description": "Executor description.", - "x-priority": "important" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "includeHasher": { - "type": "boolean", - "default": false, - "description": "Should the boilerplate for a custom hasher be generated?" - }, - "skipLintChecks": { - "type": "boolean", - "default": false, - "description": "Do not add an eslint configuration for plugin json files." - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the executor in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "additionalProperties": false, - "presets": [] - }, - "description": "Create an executor for an Nx Plugin.", - "implementation": "/packages/plugin/src/generators/executor/executor#executorGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/executor/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/generator.json b/docs/generated/packages/plugin/generators/generator.json deleted file mode 100644 index acb0f6e9322f3..0000000000000 --- a/docs/generated/packages/plugin/generators/generator.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "generator", - "factory": "./src/generators/generator/generator#generatorGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginGenerator", - "title": "Create a Generator for an Nx Plugin", - "description": "Create a Generator for an Nx Plugin.", - "type": "object", - "examples": [ - { - "command": "nx g generator my-generator --project=my-plugin", - "description": "Generate `libs/my-plugin/src/generators/my-generator`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Generator name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the generator?", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the generator file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir"], - "x-priority": "important" - }, - "description": { - "type": "string", - "description": "Generator description.", - "x-priority": "important" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "skipLintChecks": { - "type": "boolean", - "default": false, - "description": "Do not add an eslint configuration for plugin json files." - }, - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "skipFormat": { - "type": "boolean", - "default": false, - "description": "Do not format files with prettier.", - "x-priority": "internal" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the generator in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - } - }, - "required": ["name"], - "additionalProperties": false, - "presets": [] - }, - "description": "Create a generator for an Nx Plugin.", - "implementation": "/packages/plugin/src/generators/generator/generator#generatorGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/generator/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/migration.json b/docs/generated/packages/plugin/generators/migration.json deleted file mode 100644 index 748604daa4d04..0000000000000 --- a/docs/generated/packages/plugin/generators/migration.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "migration", - "factory": "./src/generators/migration/migration#migrationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginMigration", - "title": "Create a Migration for an Nx Plugin", - "description": "Create a Migration for an Nx Plugin.", - "type": "object", - "examples": [ - { - "command": "nx g migration my-migration --project=my-plugin --version=1.0.0", - "description": "Adds a new migration to the project `my-plugin`, which will be triggered when migrating to version 1.0.0 or above from a previous version." - } - ], - "properties": { - "name": { - "type": "string", - "description": "Migration name.", - "$default": { "$source": "argv", "index": 0 }, - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the migration file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "aliases": ["dir"] - }, - "description": { - "type": "string", - "description": "Migration description." - }, - "packageVersion": { - "type": "string", - "description": "Version to use for the migration.", - "alias": "v", - "x-prompt": "What version would you like to use for the migration?", - "x-priority": "important" - }, - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "packageJsonUpdates": { - "type": "boolean", - "description": "Whether or not to include `package.json` updates.", - "alias": "p", - "default": false - }, - "skipLintChecks": { - "type": "boolean", - "default": false, - "description": "Do not eslint configuration for plugin json files." - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the migration in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - } - }, - "required": ["packageVersion"], - "additionalProperties": false, - "presets": [] - }, - "description": "Create a migration for an Nx Plugin.", - "implementation": "/packages/plugin/src/generators/migration/migration#migrationGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/migration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/plugin-lint-checks.json b/docs/generated/packages/plugin/generators/plugin-lint-checks.json deleted file mode 100644 index d4705e2ec908f..0000000000000 --- a/docs/generated/packages/plugin/generators/plugin-lint-checks.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "plugin-lint-checks", - "factory": "./src/generators/lint-checks/generator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "PluginLint", - "title": "", - "type": "object", - "description": "Adds linting configuration to validate common json files for nx plugins.", - "examples": [ - { - "command": "nx g @nx/plugin:lint-checks", - "description": "Sets up linting configuration to validate common json files for an nx plugin project." - } - ], - "properties": { - "projectName": { - "type": "string", - "description": "Which project should be the configuration be added to?", - "$default": { "$source": "projectName" }, - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "x-priority": "internal", - "description": "Skip formatting files with prettier.", - "default": false - } - }, - "required": ["projectName"], - "presets": [] - }, - "description": "Adds linting configuration to validate common json files for nx plugins.", - "implementation": "/packages/plugin/src/generators/lint-checks/generator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/lint-checks/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/plugin.json b/docs/generated/packages/plugin/generators/plugin.json deleted file mode 100644 index 783318084799b..0000000000000 --- a/docs/generated/packages/plugin/generators/plugin.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "name": "plugin", - "factory": "./src/generators/plugin/plugin#pluginGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginPlugin", - "title": "Create a Plugin for Nx", - "description": "Create a Plugin for Nx.", - "type": "object", - "examples": [ - { - "command": "nx g plugin my-plugin --directory=plugins --importPath=@myorg/my-plugin", - "description": "Generates an Nx plugin project called `plugins-my-plugin` at `libs/plugins/my-plugin`. The project will have an npm package name and import path of `@myorg/my-plugin`." - } - ], - "properties": { - "name": { - "type": "string", - "description": "Plugin name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the plugin?", - "x-priority": "important", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the plugin is placed." - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "importPath": { - "type": "string", - "description": "How the plugin will be published, like `@myorg/my-awesome-plugin`. Note this must be a valid NPM name.", - "x-priority": "important" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update tsconfig.json for development experience.", - "x-priority": "internal" - }, - "skipLintChecks": { - "type": "boolean", - "default": false, - "description": "Do not eslint configuration for plugin json files." - }, - "e2eTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "default": "none" - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "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 - }, - "compiler": { - "type": "string", - "enum": ["tsc", "swc"], - "default": "tsc", - "description": "The compiler used by the build and test targets." - }, - "publishable": { - "type": "boolean", - "description": "Generates a boilerplate for publishing the plugin to npm.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Create a Nx Plugin.", - "implementation": "/packages/plugin/src/generators/plugin/plugin#pluginGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/plugin/src/generators/plugin/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/plugin/generators/preset.json b/docs/generated/packages/plugin/generators/preset.json deleted file mode 100644 index 0d1ce660e58e5..0000000000000 --- a/docs/generated/packages/plugin/generators/preset.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "preset", - "factory": "./src/generators/preset/generator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxPluginPreset", - "title": "Generator ran by create-nx-plugin", - "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-plugin` or `create-nx-workspace --preset @nx/nx-plugin`.", - "examples": [ - { - "command": "npx create-nx-plugin", - "description": "Creates a new Nx workspace containing an Nx plugin." - }, - { - "command": "npx create-nx-workspace --preset @nx/plugin", - "description": "Creates a new Nx workspace containing an Nx plugin." - } - ], - "type": "object", - "properties": { - "pluginName": { - "type": "string", - "description": "Plugin name", - "aliases": ["name"] - }, - "createPackageName": { - "type": "string", - "description": "Name of package which creates a workspace" - } - }, - "required": ["pluginName"], - "presets": [] - }, - "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-workspace --preset @nx/plugin`.", - "hidden": true, - "x-use-standalone-layout": true, - "implementation": "/packages/plugin/src/generators/preset/generator.ts", - "aliases": [], - "path": "/packages/plugin/src/generators/preset/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/documents/overview.md b/docs/generated/packages/react-native/documents/overview.md deleted file mode 100644 index 25a8d81c79631..0000000000000 --- a/docs/generated/packages/react-native/documents/overview.md +++ /dev/null @@ -1,186 +0,0 @@ -React Native brings React's declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform. - -The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: - -- Integration with libraries such as Jest, Detox, and Storybook. -- Scaffolding for creating buildable libraries that can be published to npm. -- Utilities for automatic workspace refactoring. - -## Setting Up React Native - -### Create a New Workspace - -To create a new workspace with React Native, run the following command: - -```shell -npx create-nx-workspace@latest --preset=react-native --appName=your-app-name -``` - -{% callout type="note" title="Don't know what you need?" %} -You can also run the command without arguments to go through the interactive prompts. -{% /callout %} - -```shell -npx create-nx-workspace your-workspace-name -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/react-native` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/react-native` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/react-native -``` - -This will install the correct version of `@nx/react-native`. - -### How @nx/react-native Infers Tasks - -The `@nx/react-native` plugin will create a task for any project that has an app configuration file present. Any of the following files will be recognized as an app configuration file: - -- `app.config.js` -- `app.json` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/react-native Configuration - -The `@nx/react-native/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/react-native/plugin", - "options": { - "startTargetName": "start", - "podInstallTargetName": "pod-install", - "bundleTargetName": "bundle", - "runIosTargetName": "run-ios", - "runAndroidTargetName": "run-android", - "buildIosTargetName": "build-ios", - "buildAndroidTargetName": "build-android" - } - } - ] -} -``` - -Once a React Native configuration file has been identified, the targets are created with the name you specify under `startTargetName`, `podInstallTargetName`, `bundleTargetName`, `runIosTargetName`, `runAndroidTargetname`, `buildIosTargetName` or `buildAndroidTargetName` in the `nx.json` `plugins` array. The default names for the inferred targets are `start`, `pod-install`, `bundle`, `run-ios`, `run-anroid`, `build-ios` and `build-android`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/react-native` package with your package manager. - -```shell -npm add -D @nx/react-native -``` - -### Generating Applications - -To create additional React Native apps run: - -```shell -nx g @nx/react-native:app -``` - -### Generating Libraries - -To generate a new library run: - -```shell -nx g @nx/react-native:lib your-lib-name -``` - -### Generating Components - -To generate a new component inside library run: - -```shell -nx g @nx/react-native:component your-component-name --project=your-lib-name --export -``` - -Replace `your-lib-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json` - -### Upgrade React Native - -The Nx CLI provides the [`migrate` command](/features/automate-updating-dependencies) to help you stay up to date with the latest version of Nx. - -#### Use upgrade-native Generator - -To upgrade native iOS and Android code to latest, you can use the [upgrade-native](/nx-api/react-native/generators/upgrade-native) generator: - -```shell -nx generate @nx/react-native:upgrade-native -``` - -This is a command that will replace the iOS and Android native code folder entirely. - -#### Upgrade Manually - -You can also upgrade React Native iOS and Android code using the [rn-diff-purge](https://react-native-community.github.io/upgrade-helper/) project. - -### Start Metro Server - -To start the server that communicates with connected devices: - -```shell -nx start -``` - -### Run iOS - -To build your app and start it on iOS simulator or device: - -```shell -nx run-ios -``` - -### Run Android - -To build your app and start it on a connected Android emulator or device: - -```shell -nx run-android -``` - -### Build iOS - -To build an iOS app: - -```shell -nx build-ios -``` - -The build artifacts will be located under `/ios/build`. - -You can specify the build folder by setting the `buildFolder` option: - -```shell -nx build-ios --buildFolder="./build" -``` - -### Build Android - -To build an Android app, run: - -```shell -nx build-android -``` - -The build artifacts will be located under `/android/app/build`. - -## More Documentation - -- [Using Detox](/nx-api/detox) -- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/react-native/executors/build-android.json b/docs/generated/packages/react-native/executors/build-android.json deleted file mode 100644 index ad753e52a0ba5..0000000000000 --- a/docs/generated/packages/react-native/executors/build-android.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "build-android", - "implementation": "/packages/react-native/src/executors/build-android/build-android.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeBuildAndroid", - "$schema": "https://json-schema.org/schema", - "title": "Release Build for Android", - "description": "Build target options for Android.", - "type": "object", - "presets": [ - { - "name": "Build Android for current device architecture", - "keys": ["activeArchOnly"] - }, - { "name": "Build Android without metro cache", "keys": ["resetCache"] }, - { "name": "Build Android with specific tasks", "keys": ["tasks"] }, - { "name": "Build Android with a specific mode", "keys": ["mode"] } - ], - "properties": { - "mode": { - "type": "string", - "description": "Specify your app's build variant", - "default": "debug", - "examples": ["debug", "release"], - "x-priority": "important" - }, - "port": { - "type": "number", - "description": "The port where the packager server is listening on.", - "default": 8081 - }, - "tasks": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Run custom Gradle tasks. By default it's \"assembleDebug\". Will override passed mode and variant arguments.", - "examples": [ - "assembleDebug", - "assembleRelease", - "bundleDebug", - "bundleRelease", - "installDebug", - "installRelease" - ] - }, - "activeArchOnly": { - "type": "boolean", - "description": "Build native libraries only for the current device architecture for debug builds.", - "default": false - }, - "extraParams": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Custom params passed to gradle build command", - "examples": ["-x lint -x test"] - }, - "interactive": { - "type": "boolean", - "description": "Explicitly select build type and flavour to use before running a build" - }, - "resetCache": { - "type": "boolean", - "description": "Resets metro cache.", - "default": false - } - }, - "required": [], - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:build-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build with custom tasks\" %}\nThe `tasks` option accepts any custom gradle task, such as `assembleDebug`, `assembleRelease`, `bundleDebug`, `bundleRelease`, `installDebug`, `installRelease`.\nFor example, pass in `bundleRelease` or `bundleRelease` to tasks, it will create with `.aab` extension under bundle folder.\nPass in `assembleDebug` or `assembleRelease` to tasks, it will create a build with `.apk` extension under apk folder.\nPass in `installDebug` or `installRelease` to tasks, it will create a build with `.apk` extension and immediately install it on a running emulator or connected device.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"tasks\": [\"bundleRelease\"]\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Build for debug/release\" %}\n\nThe `mode` option allows you determine whether to build for debug/release apk.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"mode\": \"debug\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Build for current device architecture\" %}\n\nThe `activeArchOnly` option allows you to build native libraries only for the current device architecture for debug builds.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"activeArchOnly\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" - }, - "description": "Release Build for Android.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/build-android/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/build-ios.json b/docs/generated/packages/react-native/executors/build-ios.json deleted file mode 100644 index ca4496b65e779..0000000000000 --- a/docs/generated/packages/react-native/executors/build-ios.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "build-ios", - "implementation": "/packages/react-native/src/executors/build-ios/build-ios.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "cli": "nx", - "title": "React Native Build iOS executor", - "description": "Build iOS app.", - "type": "object", - "presets": [ - { "name": "Build iOS for a simulator", "keys": ["simulator"] }, - { "name": "Build iOS for a device", "keys": ["device"] }, - { "name": "Build iOS for a device with udid", "keys": ["udid"] } - ], - "properties": { - "simulator": { - "type": "string", - "description": "Explicitly set simulator to use. Optionally include iOS version between parenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"", - "examples": [ - "iPhone 14", - "iPhone 13", - "iPhone 12", - "iPhone 11", - "iPhone X" - ], - "x-priority": "important" - }, - "mode": { - "type": "string", - "description": "Explicitly set the scheme configuration to use", - "default": "Debug", - "examples": ["Debug", "Release"], - "x-priority": "important" - }, - "scheme": { - "type": "string", - "description": "Explicitly set Xcode scheme to use" - }, - "device": { - "type": "string", - "description": "Explicitly set device to use by name. The value is not required if you have a single device connected." - }, - "udid": { - "type": "string", - "description": "Explicitly set device to use by udid" - }, - "verbose": { - "type": "boolean", - "description": "Do not use xcbeautify or xcpretty even if installed" - }, - "port": { - "type": "number", - "description": "The port where the packager server is listening on.", - "default": 8081 - }, - "xcconfig": { - "type": "string", - "description": "Explicitly set xcconfig to use" - }, - "buildFolder": { - "type": "string", - "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory", - "default": "./build" - }, - "interactive": { - "type": "boolean", - "description": "Explicitly select which scheme and configuration to use before running a build" - }, - "extraParams": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Custom params that will be passed to xcodebuild command." - }, - "resetCache": { - "type": "boolean", - "description": "Resets metro cache.", - "default": false - } - }, - "required": [], - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:build-ios\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build in Specific Location\" %}\nThe `buildFolder` option allows to specify the location for ios build artifacts. It corresponds to Xcode's -derivedDataPath.\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"buildFolder\": \"dist/ios/build\"\n }\n }\n```\n\n```bash\nnx build-ios --buildFolder=dist/ios/build\n```\n\n{% /tab %}\n{% tab label=\"Build the Debug/Release app\" %}\nThe `mode` option allows to specify the xcode configuartion, such as `Debug` or `Release`.\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"mode\": \"Release\"\n }\n }\n```\n\n```bash\nnx build-ios --mode=Debug\nnx build-ios --mode=Release\n```\n\n{% /tab %}\n{% tab label=\"Build for a simulator\" %}\nThe `simulator` option allows you to launch your iOS app in a specific simulator:\n\nTo see all the available simulators, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"simulator\": \"iPhone 14 Pro\"\n }\n }\n```\n\n```bash\nnx build-ios --simulator=\"iPhone 14 Pro\"\n```\n\n{% /tab %}\n{% tab label=\"Build for a device\" %}\nThe `device` option allows you to launch your iOS app in a specific device.\n\nTo see all the available device, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"device\": \"deviceName\"\n }\n }\n```\n\n```bash\nnx build-ios --device=\"deviceName\"\n```\n\n{% /tab %}\n{% tab label=\"Set Device by udid\" %}\nThe `udid` option allows you to explicitly set device to use by udid.\n\nTo see all the available simulators and devices with udid, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"udid\": \"device udid\"\n }\n }\n```\n\n```bash\nnx build-ios --udid=\"device udid\"\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" - }, - "description": "Build iOS app", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/build-ios/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/bundle.json b/docs/generated/packages/react-native/executors/bundle.json deleted file mode 100644 index 22dcc39c73e79..0000000000000 --- a/docs/generated/packages/react-native/executors/bundle.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "bundle", - "implementation": "/packages/react-native/src/executors/bundle/bundle.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeBundle", - "$schema": "https://json-schema.org/schema", - "title": "Offline JS Bundle for React Native", - "description": "JS Bundle target options.", - "type": "object", - "presets": [ - { "name": "Bundle for a specific platform", "keys": ["platform"] }, - { "name": "Bundle a development build", "keys": ["dev"] }, - { "name": "Bundle to a specific output path", "keys": ["bundleOutput"] }, - { "name": "Bundle without global cache", "keys": ["resetCache"] } - ], - "properties": { - "entryFile": { - "type": "string", - "description": "The entry file relative to project root.", - "x-completion-type": "file", - "x-completion-glob": "main@(.js|.ts)" - }, - "platform": { - "enum": ["ios", "android"], - "alias": "p", - "description": "Platform to build for." - }, - "transformer": { - "type": "string", - "description": "Specify a custom transformer to be used." - }, - "dev": { - "type": "boolean", - "description": "Generate a development build.", - "default": true - }, - "minify": { - "type": "boolean", - "description": "Allows overriding whether bundle is minified." - }, - "bundleOutput": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory" - }, - "maxWorkers": { - "type": "number", - "description": "The number of workers we should parallelize the transformer on." - }, - "sourcemapOutput": { - "type": "string", - "description": "File name where to store the sourcemap file for resulting bundle, ex. /tmp/groups.map." - }, - "sourcemapSourcesRoot": { - "type": "string", - "description": "Path to make sourcemaps sources entries relative to, ex. /root/dir." - }, - "sourcemapUseAbsolutePath": { - "type": "boolean", - "description": "Report SourceMapURL using its full path.", - "default": false - }, - "assetsDest": { - "type": "string", - "description": "Directory name where to store assets referenced in the bundle." - }, - "resetCache": { - "type": "boolean", - "description": "Removes cached files.", - "default": false - }, - "readGlobalCache": { - "type": "boolean", - "description": "Try to fetch transformed JS code from the global cache, if configured.", - "default": false - } - }, - "required": ["platform", "entryFile", "bundleOutput"], - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"outputs\": [\"{projectRoot}/build\"],\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\"\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\"\n }\n }\n }\n}\n```\n\n```bash\nnx run mobile:bundle-ios\nnx run mobile:bundle-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Bundle with sourcemap\" %}\nThe `sourcemapOutput` option allows you to specify the path of the source map relative to app folder:\n\n```json\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\",\n \"sourcemapOutput\": \"../../dist/apps/mobile/ios/main.map\",\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\",\n \"sourcemapOutput\": \"../../dist/apps/mobile/android/main.map\",\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Create a dev/release bundle\" %}\n\nThe `dev` option determines whether to create a dev or release bundle. The default value is `true`, by setting it as `false`, warnings are disabled and the bundle is minified.\n\n```json\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\",\n \"dev\": false\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\",\n \"dev\": false\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Create a minified bundle\" %}\n\nThe `minify` option allows you to create a minified bundle:\n\n```json\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\",\n \"minify\": true\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\",\n \"minify\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" - }, - "description": "Builds the JavaScript bundle for offline use.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/bundle/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/ensure-symlink.json b/docs/generated/packages/react-native/executors/ensure-symlink.json deleted file mode 100644 index 5145424309d8d..0000000000000 --- a/docs/generated/packages/react-native/executors/ensure-symlink.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "ensure-symlink", - "implementation": "/packages/react-native/src/executors/ensure-symlink/ensure-symlink.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeEnsureSymlink", - "$schema": "https://json-schema.org/schema", - "title": "Ensure Symlink for React Native", - "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", - "type": "object", - "properties": {}, - "presets": [] - }, - "description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/ensure-symlink/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/pod-install.json b/docs/generated/packages/react-native/executors/pod-install.json deleted file mode 100644 index 1552af8f7930f..0000000000000 --- a/docs/generated/packages/react-native/executors/pod-install.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "pod-install", - "implementation": "/packages/react-native/src/executors/pod-install/pod-install.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativePodInstall", - "$schema": "https://json-schema.org/schema", - "title": "Run Pod Install for React Native iOS Project", - "description": "Run `pod install` for React Native iOS Project.", - "type": "object", - "properties": { - "buildFolder": { - "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory.", - "type": "string", - "default": "./build" - }, - "repoUpdate": { - "description": "Force running `pod repo update` before install.", - "type": "boolean", - "default": false - }, - "deployment": { - "description": "Disallow any changes to the Podfile or the Podfile.lock during installation.", - "type": "boolean", - "default": false - }, - "useBundler": { - "description": "Run cocoapods within a Bundler environment, i.e. with the `bundle exec pod install` command", - "type": "boolean", - "default": false - } - }, - "required": ["buildFolder"], - "presets": [] - }, - "description": "Run `pod install` in the `ios` directory.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/pod-install/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/run-android.json b/docs/generated/packages/react-native/executors/run-android.json deleted file mode 100644 index 2b37c24a4fc5a..0000000000000 --- a/docs/generated/packages/react-native/executors/run-android.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "name": "run-android", - "implementation": "/packages/react-native/src/executors/run-android/run-android.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeRunAndroid", - "$schema": "https://json-schema.org/schema", - "title": "Run Android application", - "description": "Run Android target options.", - "type": "object", - "presets": [ - { - "name": "Run Android for the current device architecture", - "keys": ["activeArchOnly"] - }, - { - "name": "Lists all available Android devices and simulators", - "keys": ["listDevices"] - }, - { "name": "Run Android without metro cache", "keys": ["resetCache"] } - ], - "properties": { - "appId": { - "type": "string", - "description": "Specify an `applicationId` to launch after build. If not specified, `package` from `AndroidManifest.xml` will be used." - }, - "appIdSuffix": { - "type": "string", - "description": "Specify an `applicationIdSuffix` to launch after build." - }, - "mainActivity": { - "type": "string", - "description": "Name of the activity to start.", - "default": "MainActivity" - }, - "deviceId": { - "type": "string", - "description": "Builds your app and starts it on a specific device/simulator with the given device id (listed by running `adb devices` on the command line)." - }, - "listDevices": { - "type": "boolean", - "description": "Lists all available Android devices and simulators and let you choose one to run the app" - }, - "binaryPath": { - "type": "string", - "description": "Path relative to project root where pre-built .apk binary lives." - }, - "mode": { - "type": "string", - "description": "Specify your app's build variant", - "default": "debug", - "examples": ["debug", "release"], - "x-priority": "important" - }, - "port": { - "type": "number", - "description": "The port where the packager server is listening on.", - "default": 8081 - }, - "tasks": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Run custom Gradle tasks. By default it's \"assembleDebug\". Will override passed mode and variant arguments.", - "examples": [ - "assembleDebug", - "assembleRelease", - "bundleDebug", - "bundleRelease", - "installDebug", - "installRelease" - ] - }, - "activeArchOnly": { - "type": "boolean", - "description": "Build native libraries only for the current device architecture for debug builds.", - "default": false - }, - "extraParams": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Custom params passed to gradle build command" - }, - "interactive": { - "type": "boolean", - "description": "Explicitly select build type and flavour to use before running a build" - }, - "resetCache": { - "type": "boolean", - "description": "Resets metro cache.", - "default": false - } - }, - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-android\": {\n \"executor\": \"@nx/react-native:run-android\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:run-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Run on a specific device/simulator\" %}\nTo see all the avaiable emulators, run command:\n\n```bash\nemulator -list-avds\n```\n\nThe `deviceId` option allows you to launch your android app in a specific device/simulator:\n\n```json\n \"run-android\": {\n \"executor\": \"@nx/react-native:run-android\",\n \"options\": {\n \"deviceId\": \"Pixel_5_API_30\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Run the debug/release app\" %}\nThe `mode` option allows to specify the build variant, such as `debug` or `release`.\n\n```json\n \"run-android\": {\n \"executor\": \"@nx/react-native:run-android\",\n \"options\": {\n \"mode\": \"release\"\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" - }, - "description": "Runs Android application.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/run-android/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/run-ios.json b/docs/generated/packages/react-native/executors/run-ios.json deleted file mode 100644 index 9028c9954a8a2..0000000000000 --- a/docs/generated/packages/react-native/executors/run-ios.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "run-ios", - "implementation": "/packages/react-native/src/executors/run-ios/run-ios.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeRunIos", - "$schema": "https://json-schema.org/schema", - "title": "Run iOS application", - "description": "Run iOS target options.", - "type": "object", - "presets": [ - { "name": "Run iOS on a simulator", "keys": ["simulator"] }, - { "name": "Run iOS on a device", "keys": ["device"] }, - { "name": "Run iOS on a device with udid", "keys": ["udid"] } - ], - "properties": { - "simulator": { - "type": "string", - "description": "Explicitly set simulator to use. Optionally include iOS version between parenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"", - "examples": [ - "iPhone 14", - "iPhone 13", - "iPhone 12", - "iPhone 11", - "iPhone X" - ], - "x-priority": "important" - }, - "mode": { - "type": "string", - "description": "Explicitly set the scheme configuration to use", - "default": "Debug", - "examples": ["Debug", "Release"], - "x-priority": "important" - }, - "scheme": { - "type": "string", - "description": "Explicitly set Xcode scheme to use" - }, - "device": { - "type": "string", - "description": "Explicitly set device to use by name. The value is not required if you have a single device connected." - }, - "udid": { - "type": "string", - "description": "Explicitly set device to use by udid" - }, - "verbose": { - "type": "boolean", - "description": "Do not use xcbeautify or xcpretty even if installed" - }, - "port": { - "type": "number", - "description": "The port where the packager server is listening on.", - "default": 8081 - }, - "xcconfig": { - "type": "string", - "description": "Explicitly set xcconfig to use" - }, - "buildFolder": { - "type": "string", - "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory.", - "buildFolder": "./build" - }, - "interactive": { - "type": "boolean", - "description": "Explicitly select which scheme and configuration to use before running a build" - }, - "extraParams": { - "oneOf": [ - { "type": "array", "items": { "type": "string" } }, - { "type": "string" } - ], - "description": "Custom params that will be passed to xcodebuild command." - }, - "resetCache": { - "type": "boolean", - "description": "Resets metro cache.", - "default": false - }, - "binaryPath": { - "type": "string", - "description": "Path relative to project root where pre-built .app binary lives." - } - }, - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:run-ios\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build the Debug/Release app\" %}\nThe `mode` option allows to specify the xcode configuartion schema, such as `Debug` or `Release`.\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"mode\": \"Release\"\n }\n }\n```\n\n```bash\nnx run-ios --mode=Debug\n```\n\n{% /tab %}\n{% tab label=\"Run on a simulator\" %}\nThe `simulator` option allows you to launch your iOS app in a specific simulator.\n\nTo see all the available simulators, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"simulator\": \"iPhone 14 Pro (16.2)\"\n }\n }\n```\n\n```bash\nnx run-ios --simulator=\"iPhone 14 Pro (16.2)\"\n```\n\n{% /tab %}\n{% tab label=\"Run on a device\" %}\nThe `device` option allows you to launch your iOS app in a specific device.\n\nTo see all the available devices, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"device\": \"deviceName\"\n }\n }\n```\n\n```bash\nnx run-ios --device=\"deviceName\"\n```\n\n{% /tab %}\n{% tab label=\"Set Device by udid\" %}\nThe `udid` option allows you to explicitly set device to use by udid.\n\nTo see all the available simulators and devices with udid, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"udid\": \"device udid\"\n }\n }\n```\n\n```bash\nnx run-ios --udid=\"device udid\"\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" - }, - "description": "Runs iOS application.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/run-ios/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/start.json b/docs/generated/packages/react-native/executors/start.json deleted file mode 100644 index aa6acdbd0b042..0000000000000 --- a/docs/generated/packages/react-native/executors/start.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "start", - "implementation": "/packages/react-native/src/executors/start/start.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeStart", - "$schema": "https://json-schema.org/schema", - "title": "Packager Server for React Native", - "description": "Packager Server target options.", - "type": "object", - "properties": { - "port": { - "type": "number", - "description": "The port to listen on.", - "default": 8081 - }, - "resetCache": { - "type": "boolean", - "description": "Resets metro cache.", - "default": false - }, - "interactive": { - "type": "boolean", - "description": "Run packager server in interactive mode.", - "default": true - } - }, - "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"start\": {\n \"executor\": \"@nx/react-native:start\",\n \"options\": {\n \"port\": 8081\n }\n }\n }\n}\n```\n\n```bash\nnx run mobile:start\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Starts the server non-interactively\" %}\nThe `interactive` option allows you to specify whether to use interactive mode:\n\n```json\n \"start\": {\n \"executor\": \"@nx/react-native:start\",\n \"options\": {\n \"port\": 8081,\n \"interactive\": false\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Starts the server with cache reset\" %}\n\nThe `resetCache` option allows you to remove cached files.\n\n```json\n \"start\": {\n \"executor\": \"@nx/react-native:start\",\n \"options\": {\n \"port\": 8081,\n \"resetCache\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", - "presets": [] - }, - "description": "Starts the Javascript server that communicates with connected devices.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/start/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/storybook.json b/docs/generated/packages/react-native/executors/storybook.json deleted file mode 100644 index ca4ea42c4394c..0000000000000 --- a/docs/generated/packages/react-native/executors/storybook.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "storybook", - "implementation": "/packages/react-native/src/executors/storybook/storybook.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "React Native Storybook Load Stories", - "cli": "nx", - "description": "Load stories for react native.", - "type": "object", - "properties": { - "searchDir": { - "type": "array", - "items": { "type": "string" }, - "default": [], - "description": "The directory or directories, relative to the project root, to search for files in." - }, - "outputFile": { - "type": "string", - "description": "The output file that will be written. It is relative to the project directory.", - "default": "./.storybook/story-loader.ts" - }, - "pattern": { - "type": "string", - "description": "The pattern of files to look at. It can be a specific file, or any valid glob. Note: if using the CLI, globs with `**/*...` must be escaped with quotes", - "default": "**/*.stories.@(js|jsx|ts|tsx|md)" - } - }, - "required": ["searchDir", "outputFile", "pattern"], - "presets": [] - }, - "description": "Serve React Native Storybook.", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/storybook/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/sync-deps.json b/docs/generated/packages/react-native/executors/sync-deps.json deleted file mode 100644 index 6eb033ee1eb45..0000000000000 --- a/docs/generated/packages/react-native/executors/sync-deps.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "sync-deps", - "implementation": "/packages/react-native/src/executors/sync-deps/sync-deps.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "cli": "nx", - "$id": "NxReactNativeSyncDeps", - "$schema": "https://json-schema.org/schema", - "title": "Sync Deps for React Native", - "description": "Updates `package.json` with project dependencies.", - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { "type": "string" }, - "default": [], - "description": "An array of additional npm packages to include." - }, - "exclude": { - "type": "array", - "items": { "type": "string" }, - "default": [], - "description": "An array of npm packages to exclude." - }, - "all": { - "type": "boolean", - "description": "Copy all dependencies and devDependencies from the workspace root package.json.", - "default": false - } - }, - "presets": [] - }, - "description": "Syncs dependencies to `package.json` (required for autolinking).", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/sync-deps/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/executors/upgrade.json b/docs/generated/packages/react-native/executors/upgrade.json deleted file mode 100644 index 3da81efac7021..0000000000000 --- a/docs/generated/packages/react-native/executors/upgrade.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "upgrade", - "implementation": "/packages/react-native/src/executors/upgrade/upgrade.impl.ts", - "schema": { - "$schema": "http://json-schema.org/schema", - "version": 2, - "cli": "nx", - "$id": "NxReactNativeUpgrade", - "title": "React Native Upgrade Executor", - "description": "Upgrade React Native code for project.", - "type": "object", - "properties": {}, - "required": [], - "presets": [] - }, - "description": "upgrade executor", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/executors/upgrade/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react-native/generators/application.json b/docs/generated/packages/react-native/generators/application.json deleted file mode 100644 index 447a4ec4363c0..0000000000000 --- a/docs/generated/packages/react-native/generators/application.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#reactNativeApplicationGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxReactNativeApplication", - "$schema": "https://json-schema.org/schema", - "title": "Create a React Application for Nx", - "description": "Create a React Application for Nx.", - "examples": [ - { - "command": "nx g @nx/react-native:app myapp --directory=nested", - "description": "Generate `apps/nested/myapp`" - }, - { - "command": "nx g @nx/react-native:app myapp --classComponent", - "description": "Use class components instead of functional components" - } - ], - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "displayName": { - "description": "The display name to show in the application. Defaults to name.", - "type": "string" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files", - "default": false - }, - "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 - }, - "e2eTestRunner": { - "description": "Adds the specified e2e test runner.", - "type": "string", - "enum": ["cypress", "playwright", "detox", "none"], - "default": "cypress" - }, - "install": { - "type": "boolean", - "description": "Runs `pod install` for native modules before building iOS app.", - "x-prompt": "Run 'pod install' for native modules?", - "default": true - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "bundler": { - "description": "The bundler to use.", - "type": "string", - "enum": ["vite", "webpack"], - "x-prompt": "Which bundler do you want to use to build the application?", - "default": "webpack", - "x-priority": "important" - } - }, - "required": [], - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create a React Native application.", - "implementation": "/packages/react-native/src/generators/application/application#reactNativeApplicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react-native/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/component-story.json b/docs/generated/packages/react-native/generators/component-story.json deleted file mode 100644 index cef0d5c36513a..0000000000000 --- a/docs/generated/packages/react-native/generators/component-story.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "component-story", - "factory": "./src/generators/component-story/component-story#componentStoryGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactNativeComponentStory", - "title": "React native component story", - "description": "Generate storybook story for a react-native component.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "The project where to add the components.", - "examples": ["shared-ui-component"], - "$default": { "$source": "projectName", "index": 0 }, - "x-prompt": "What's name of the project where the component lives?", - "x-priority": "important" - }, - "componentPath": { - "type": "string", - "description": "Relative path to the component file from the library root.", - "examples": ["lib/components"], - "x-prompt": "What's path of the component relative to the project's lib root?", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "default": true, - "x-priority": "important" - } - }, - "required": ["project", "componentPath"], - "presets": [] - }, - "description": "Generate Storybook story for a React Native component.", - "implementation": "/packages/react-native/src/generators/component-story/component-story#componentStoryGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/generators/component-story/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/component.json b/docs/generated/packages/react-native/generators/component.json deleted file mode 100644 index 46c67785ff344..0000000000000 --- a/docs/generated/packages/react-native/generators/component.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "component", - "factory": "./src/generators/component/component#reactNativeComponentGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxReactNativeApplication", - "$schema": "https://json-schema.org/schema", - "title": "Create a React Native Component for Nx", - "description": "Create a React native Component for Nx.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/react-native:component my-component --project=mylib", - "description": "Generate a component in the `mylib` library" - }, - { - "command": "nx g @nx/react-native:component my-component --project=mylib --classComponent", - "description": "Generate a class component in the `mylib` library" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "skipTests": { - "type": "boolean", - "description": "When true, does not create `spec.ts` test files for the new component.", - "default": false - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "flat": { - "type": "boolean", - "description": "Create component at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." - }, - "export": { - "type": "boolean", - "description": "When true, the component is exported from the project `index.ts` (if it exists).", - "alias": "e", - "default": false, - "x-prompt": "Should this component be exported in the project?" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false, - "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "classComponent": { - "type": "boolean", - "alias": "C", - "description": "Use class components instead of functional component.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Create a React Native component.", - "aliases": ["c"], - "implementation": "/packages/react-native/src/generators/component/component#reactNativeComponentGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react-native/src/generators/component/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/init.json b/docs/generated/packages/react-native/generators/init.json deleted file mode 100644 index 02718c332abfc..0000000000000 --- a/docs/generated/packages/react-native/generators/init.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#reactNativeInitGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxReactNativeInit", - "$schema": "https://json-schema.org/schema", - "title": "Add Nx React Native Schematics", - "description": "Add Nx React native schematics.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nx/react-native` plugin.", - "hidden": true, - "implementation": "/packages/react-native/src/generators/init/init#reactNativeInitGeneratorInternal.ts", - "aliases": [], - "path": "/packages/react-native/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/library.json b/docs/generated/packages/react-native/generators/library.json deleted file mode 100644 index e5f6208790865..0000000000000 --- a/docs/generated/packages/react-native/generators/library.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#reactNativeLibraryGeneratorInternal", - "schema": { - "cli": "nx", - "$id": "NxReactNativeLibrary", - "$schema": "https://json-schema.org/schema", - "title": "Create a React Native Library for Nx", - "description": "Create a React Native Library for Nx.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/react-native:lib mylib --directory=myapp", - "description": "Generate `libs/myapp/mylib`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Library name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update `tsconfig.json` for development experience.", - "x-priority": "internal" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false - }, - "publishable": { - "type": "boolean", - "description": "Create a publishable library." - }, - "buildable": { - "type": "boolean", - "default": false, - "description": "Generate a buildable library." - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`." - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "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 - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a React Native library.", - "implementation": "/packages/react-native/src/generators/library/library#reactNativeLibraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react-native/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/stories.json b/docs/generated/packages/react-native/generators/stories.json deleted file mode 100644 index b0521437272b0..0000000000000 --- a/docs/generated/packages/react-native/generators/stories.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "stories", - "factory": "./src/generators/stories/stories#storiesGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactNativeStorybookStories", - "title": "Generate React Native Storybook stories", - "description": "Generate stories/specs for all components declared in a React Native project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate stories.", - "$default": { "$source": "projectName", "index": 0 }, - "x-prompt": "For which project do you want to generate stories?", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "default": true - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Create stories for all components declared in an application or library.", - "implementation": "/packages/react-native/src/generators/stories/stories#storiesGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/generators/stories/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/storybook-configuration.json b/docs/generated/packages/react-native/generators/storybook-configuration.json deleted file mode 100644 index e8233f36189fb..0000000000000 --- a/docs/generated/packages/react-native/generators/storybook-configuration.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "storybook-configuration", - "factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactNativeStorybookConfigure", - "title": "React native Storybook configuration", - "description": "Set up Storybook for a React-Native app or library.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "alias": ["configureTestRunner"], - "default": true - }, - "generateStories": { - "type": "boolean", - "description": "Automatically generate `*.stories.ts` files for components declared in this project?", - "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", - "default": true, - "x-priority": "important" - }, - "configureStaticServe": { - "type": "boolean", - "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", - "x-prompt": "Configure a static file server for the storybook instance?", - "default": true, - "x-priority": "important" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript story files rather than TypeScript story files.", - "default": false - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": true - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Set up Storybook for a React Native application or library.", - "implementation": "/packages/react-native/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/generators/storybook-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/upgrade-native.json b/docs/generated/packages/react-native/generators/upgrade-native.json deleted file mode 100644 index 98d7f923df80f..0000000000000 --- a/docs/generated/packages/react-native/generators/upgrade-native.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "upgrade-native", - "factory": "./src/generators/upgrade-native/upgrade-native#reactNativeUpgradeNativeGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactNativeUpgradeNativeConfigure", - "title": "React native upgrade native configuration", - "description": "Upgrade native iOS and Android code to latest.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Application project name to upgrade native files.", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "project" - }, - "displayName": { - "description": "The display name to show in the application. Defaults to name.", - "type": "string" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files", - "default": false - }, - "e2eTestRunner": { - "description": "Adds the specified e2e test runner.", - "type": "string", - "enum": ["cypress", "playwright", "detox", "none"], - "default": "cypress" - }, - "install": { - "type": "boolean", - "description": "Runs `pod install` for native modules before building iOS app.", - "default": true, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Destructive command to upgrade native iOS and Android code to latest.", - "implementation": "/packages/react-native/src/generators/upgrade-native/upgrade-native#reactNativeUpgradeNativeGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/generators/upgrade-native/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react-native/generators/web-configuration.json b/docs/generated/packages/react-native/generators/web-configuration.json deleted file mode 100644 index d472267f6b4ba..0000000000000 --- a/docs/generated/packages/react-native/generators/web-configuration.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "web-configuration", - "factory": "./src/generators/web-configuration/web-configuration#webConfigurationGenerator", - "schema": { - "$schema": "http://json-schema.org/schema", - "$id": "NxReactNativeWebConfiguration", - "description": "Setup web configuration to React Native apps using react-native-web.", - "title": "Nx React Native Web configuration", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate web configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate web configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "bundler": { - "description": "The bundler to use.", - "type": "string", - "enum": ["vite", "webpack"], - "x-prompt": "Which bundler do you want to use to build the application?", - "default": "webpack", - "x-priority": "important" - } - }, - "required": ["project", "bundler"], - "presets": [] - }, - "description": "Set up web configuration for a React Native app", - "implementation": "/packages/react-native/src/generators/web-configuration/web-configuration#webConfigurationGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native/src/generators/web-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/documents/overview.md b/docs/generated/packages/react/documents/overview.md deleted file mode 100644 index 947c67178a852..0000000000000 --- a/docs/generated/packages/react/documents/overview.md +++ /dev/null @@ -1,154 +0,0 @@ -The React plugin contains executors and generators for managing React applications and libraries within an Nx workspace. -It provides: - -- Integration with libraries such as Jest, Cypress, and Storybook. -- Generators for applications, libraries, components, hooks, and more. -- Library build support for publishing packages to npm or other registries. -- Utilities for automatic workspace refactoring. - -## Setting Up @nx/react - -### Generating a new Workspace - -To create a new workspace with React, run `npx create-nx-workspace@latest --preset=react-standalone`. - -{% callout type="note" title="React Tutorials" %} -For a full tutorial experience, follow the [React Standalone Tutorial](/getting-started/tutorials/react-standalone-tutorial) or the [React Monorepo Tutorial](/getting-started/tutorials/react-monorepo-tutorial) -{% /callout %} - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/react` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/react` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/react -``` - -This will install the correct version of `@nx/react`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/react` package with your package manager. - -```shell -npm add -D @nx/react -``` - -{% /tab %} -{% /tabs %} - -## Using the @nx/react Plugin - -### Creating Applications and Libraries - -You can add a new application with the following: - -```shell -nx g @nx/react:app my-new-app -``` - -To start the application in development mode, run `nx serve my-new-app`. - -And add a new library as follows: - -```shell -nx g @nx/react:lib my-new-lib - -# If you want the library to be buildable or publishable to npm -nx g @nx/react:lib my-new-lib --bundler=vite -nx g @nx/react:lib my-new-lib --bundler=rollup -nx g @nx/react:lib my-new-lib \ ---publishable \ ---importPath=@myorg/my-new-lib -``` - -Read more about [building and publishing libraries here](/concepts/more-concepts/buildable-and-publishable-libraries). - -### Creating Components - -Adding a component to an existing project can be done with: - -```shell -nx g @nx/react:component my-new-component \ ---project=my-new-app - -# Note: If you want to export the component -# from the library use --export -nx g @nx/react:component my-new-component \ ---project=my-new-lib \ ---export -``` - -Replace `my-new-app` and `my-new-lib` with the name of your projects. - -### Creating Hooks - -If you want to add a new hook, run the following - -```shell -nx g @nx/react:hook my-new-hook --project=my-new-lib -``` - -Replace `my-new-lib` with the name of your project. - -## Using React - -### Testing Projects - -You can run unit tests with: - -```shell -nx test my-new-app -nx test my-new-lib -``` - -Replace `my-new-app` with the name or your project. This command works for both applications and libraries. - -You can also run E2E tests for applications: - -```shell -nx e2e my-new-app-e2e -``` - -Replace `my-new-app-e2e` with the name or your project with `-e2e` appended. - -### Building Projects - -React applications can be build with: - -```shell -nx build my-new-app -``` - -And if you generated a library with `--bundler` specified, then you can build a library as well: - -```shell -nx build my-new-lib -``` - -The output is in the `dist` folder. You can customize the output folder by setting `outputPath` in the -project's `project.json` file. - -The application in `dist` is deployable, and you can try it out locally with: - -```shell -npx http-server dist/apps/my-new-app -``` - -The library in `dist` is publishable to npm or a private registry. - -## More Documentation - -- [React Standalone Tutorial](/getting-started/tutorials/react-standalone-tutorial) -- [React Monorepo Tutorial](/getting-started/tutorials/react-monorepo-tutorial) -- [Using Cypress](/nx-api/cypress) -- [Using Jest](/nx-api/jest) -- [Using Storybook](/recipes/storybook/overview-react) diff --git a/docs/generated/packages/react/executors/module-federation-dev-server.json b/docs/generated/packages/react/executors/module-federation-dev-server.json deleted file mode 100644 index e8e479554b635..0000000000000 --- a/docs/generated/packages/react/executors/module-federation-dev-server.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "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": { "type": "string" }, - "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 for when the `host` application is using a `remote` that does not live in the same workspace as the `host`.", - "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." - } - }, - "presets": [] - }, - "description": "Serve a host or remote application.", - "aliases": [], - "hidden": false, - "path": "/packages/react/src/executors/module-federation-dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react/executors/module-federation-ssr-dev-server.json b/docs/generated/packages/react/executors/module-federation-ssr-dev-server.json deleted file mode 100644 index fb5b3ec88d0c4..0000000000000 --- a/docs/generated/packages/react/executors/module-federation-ssr-dev-server.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "module-federation-ssr-dev-server", - "implementation": "/packages/react/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Module Federation SSR Dev Server", - "description": "Serve a SSR host application along with its known remotes.", - "cli": "nx", - "type": "object", - "properties": { - "browserTarget": { - "type": "string", - "description": "Target which builds the browser application.", - "x-priority": "important" - }, - "serverTarget": { - "type": "string", - "description": "Target which builds the server application.", - "x-priority": "important" - }, - "port": { - "type": "number", - "description": "The port to be set on `process.env.PORT` for use in the server.", - "default": 4200, - "x-priority": "important" - }, - "devRemotes": { - "type": "array", - "items": { "type": "string" }, - "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.", - "x-priority": "important" - }, - "host": { - "type": "string", - "description": "Host to listen on.", - "default": "localhost" - } - }, - "required": ["browserTarget", "serverTarget"], - "presets": [] - }, - "description": "Serve a host application along with it's known remotes.", - "aliases": [], - "hidden": false, - "path": "/packages/react/src/executors/module-federation-ssr-dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/react/generators/application.json b/docs/generated/packages/react/generators/application.json deleted file mode 100644 index c463a55f583f3..0000000000000 --- a/docs/generated/packages/react/generators/application.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactApp", - "title": "Create a React Application", - "description": "Create a React application for Nx.", - "examples": [ - { - "command": "nx g app myapp --directory=myorg", - "description": "Generate `apps/myorg/myapp` and `apps/myorg/myapp-e2e`" - }, - { - "command": "nx g app myapp --classComponent", - "description": "Use class components instead of functional components" - }, - { - "command": "nx g app myapp --routing", - "description": "Set up React Router" - } - ], - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "tailwind", - "label": "tailwind [ https://tailwindcss.com/ ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "routing": { - "type": "boolean", - "description": "Generate application with routes.", - "x-prompt": "Would you like to add React Router to this application?", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipNxJson": { - "description": "Skip updating `nx.json` with default options based on values provided to this app.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "vitest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false - }, - "classComponent": { - "type": "boolean", - "description": "Use class components instead of functional component.", - "alias": "C", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "globalCss": { - "type": "boolean", - "description": "Default is `false`. When `true`, the component is generated with `*.css`/`*.scss` instead of `*.module.css`/`*.module.scss`.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Creates an application with strict mode and strict type checking.", - "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 - }, - "compiler": { - "type": "string", - "description": "The compiler to use.", - "enum": ["babel", "swc"], - "default": "babel" - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "rootProject": { - "description": "Create a application at the root of the workspace", - "type": "boolean", - "default": false, - "hidden": true - }, - "bundler": { - "description": "The bundler to use.", - "type": "string", - "enum": ["vite", "webpack", "rspack"], - "x-prompt": "Which bundler do you want to use to build the application?", - "default": "webpack", - "x-priority": "important" - }, - "minimal": { - "description": "Generate a React app with a minimal setup, no separate test files.", - "type": "boolean", - "default": false - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/react:application my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Application using Vite as bundler\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/react:app my-app --bundler=vite\n```\n\nWhen choosing `vite` as the bundler, your unit tests will be set up with `vitest`, unless you choose `none` for `unitTestRunner`.\n\n{% /tab %}\n\n{% tab label=\"Specify directory and style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/react:app my-app --directory=apps/my-dir/my-app --style=scss\n```\n\n{% /tab %}\n\n{% tab label=\"Add tags\" %}\n\nAdd tags to the application (used for linting).\n\n```bash\nnx g @nx/react:app my-app --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create a React application.", - "implementation": "/packages/react/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/component-cypress-spec.json b/docs/generated/packages/react/generators/component-cypress-spec.json deleted file mode 100644 index 4efc7e1b56460..0000000000000 --- a/docs/generated/packages/react/generators/component-cypress-spec.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "component-cypress-spec", - "factory": "./src/generators/component-cypress-spec/component-cypress-spec#componentCypressGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactComponentCypressSpec", - "title": "Create component Cypress spec", - "description": "Create a Cypress spec for a UI component that has a story.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The project name for which to generate tests.", - "examples": ["shared-ui-component"], - "$default": { "$source": "projectName", "index": 0 }, - "x-prompt": "What's name of the project for which to generate tests?", - "x-priority": "important" - }, - "componentPath": { - "type": "string", - "description": "Relative path to the component file from the library root?", - "examples": ["lib/components"], - "x-prompt": "What's path of the component relative to the project's lib root for which to generate a test?", - "x-priority": "important" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "cypressProject": { - "type": "string", - "description": "The Cypress project to generate the stories under. By default, inferred from `project`." - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project", "componentPath"], - "presets": [] - }, - "description": "Create a Cypress spec for a UI component that has a story.", - "hidden": false, - "implementation": "/packages/react/src/generators/component-cypress-spec/component-cypress-spec#componentCypressGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/component-cypress-spec/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/component-story.json b/docs/generated/packages/react/generators/component-story.json deleted file mode 100644 index a8d1078b65b95..0000000000000 --- a/docs/generated/packages/react/generators/component-story.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "component-story", - "factory": "./src/generators/component-story/component-story#componentStoryGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactComponentStory", - "title": "Create component story", - "description": "Generate storybook story for a react component.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "The project where to add the components.", - "examples": ["shared-ui-component"], - "$default": { "$source": "projectName", "index": 0 }, - "x-prompt": "What's name of the project where the component lives?", - "x-priority": "important" - }, - "componentPath": { - "type": "string", - "description": "Relative path to the component file from the library root.", - "examples": ["lib/components"], - "x-prompt": "What's path of the component relative to the project's lib root?", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "default": true, - "x-priority": "important" - } - }, - "required": ["project", "componentPath"], - "presets": [] - }, - "description": "Generate storybook story for a React component", - "hidden": false, - "implementation": "/packages/react/src/generators/component-story/component-story#componentStoryGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/component-story/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/component-test.json b/docs/generated/packages/react/generators/component-test.json deleted file mode 100644 index f3a9a5c76f6d6..0000000000000 --- a/docs/generated/packages/react/generators/component-test.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "component-test", - "factory": "./src/generators/component-test/component-test#componentTestGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactCypressComponentTest", - "title": "Add Cypress component test", - "description": "Add a Cypress component test for a component.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/react:component-test --project=my-react-project --component-path=src/lib/fancy-component.tsx", - "description": "Create a cypress component test for FancyComponent" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project the component is apart of", - "x-dropdown": "projects", - "x-prompt": "What project is this component apart of?", - "x-priority": "important" - }, - "componentPath": { - "type": "string", - "description": "Path to component, from the project source root", - "x-prompt": "What is the path to the component?", - "x-priority": "important" - } - }, - "required": ["project", "componentPath"], - "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nReact component testing with Nx requires **Cypress version 10** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you're wanting to create Cypress tests for a Storybook story, then check out the [component-cypress-spec generator docs](/packages/react/generators/component-cypress-spec)\n\nIf you're wanting to create Storybook stories for a component, then check out the [stories generator docs](/packages/react/generators/stories) or [component-story generator docs](/packages/react/generators/component-cypress-spec)\n\n{% /callout %}\n\nThis generator is used to create a Cypress component test file for a given React component.\n\n```shell\nnx g @nx/react:component-test --project=my-cool-react-project --componentPath=src/my-fancy-button.tsx\n```\n\nTest file are generated with the `.cy.` suffix. this is to prevent colliding with any existing `.spec.` files contained in the project.\n\nIt's currently expected the generated `.cy.` file will live side by side with the component. It is also assumed the project is already setup for component testing. If it isn't, then you can run the [cypress-component-project generator](/packages/react/generators/cypress-component-configuration) to set up the project for component testing.\n", - "presets": [] - }, - "description": "Generate a Cypress component test for a React component", - "hidden": false, - "implementation": "/packages/react/src/generators/component-test/component-test#componentTestGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/component-test/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/component.json b/docs/generated/packages/react/generators/component.json deleted file mode 100644 index 7b8aafb0c85c6..0000000000000 --- a/docs/generated/packages/react/generators/component.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "name": "component", - "factory": "./src/generators/component/component#componentGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactComponent", - "title": "Create a React Component", - "description": "Create a React Component for Nx.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?", - "x-priority": "important" - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "alias": "s", - "default": "css", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "skipTests": { - "type": "boolean", - "description": "When true, does not create `spec.ts` test files for the new component.", - "default": false, - "x-priority": "internal" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "alias": "dir", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "flat": { - "type": "boolean", - "description": "Create component at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." - }, - "export": { - "type": "boolean", - "description": "When true, the component is exported from the project `index.ts` (if it exists).", - "alias": "e", - "default": false, - "x-prompt": "Should this component be exported in the project?" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false, - "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "pascalCaseDirectory": { - "type": "boolean", - "description": "Use pascal case directory name (e.g. `App/App.tsx`).", - "alias": "R", - "default": false, - "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "classComponent": { - "type": "boolean", - "alias": "C", - "description": "Use class components instead of functional component.", - "default": false - }, - "routing": { - "type": "boolean", - "description": "Generate a library with routes." - }, - "globalCss": { - "type": "boolean", - "description": "Default is `false`. When `true`, the component is generated with `*.css`/`*.scss` instead of `*.module.css`/`*.module.scss`.", - "default": false - }, - "fileName": { - "type": "string", - "description": "Create a component with this file name." - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Component\" %}\n\nCreate a component named `my-component` under the `libs/ui` project:\n\n```shell\nnx g @nx/react:component libs/ui/src/my-component\n```\n\n{% /tab %}\n\n{% tab label=\"Standalone Component\" %}\n\nCreate a class component named `my-component` under the `libs/ui` project:\n\n```shell\nnx g @nx/react:component libs/ui/src/my-component --classComponent\n```\n\n{% /tab %}\n", - "presets": [] - }, - "description": "Create a React component.", - "aliases": ["c"], - "implementation": "/packages/react/src/generators/component/component#componentGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react/src/generators/component/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/cypress-component-configuration.json b/docs/generated/packages/react/generators/cypress-component-configuration.json deleted file mode 100644 index 92318551bd83c..0000000000000 --- a/docs/generated/packages/react/generators/cypress-component-configuration.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "cypress-component-configuration", - "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactCypressComponentTestConfiguration", - "title": "Add Cypress component testing", - "description": "Add a Cypress component testing configuration to an existing project.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/react:cypress-component-configuration --project=my-react-project", - "description": "Add component testing to your react project" - }, - { - "command": "nx g @nx/react:cypress-component-configuration --project=my-react-project --generate-tests", - "description": "Add component testing to your react project and generate component tests for your existing components" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add cypress component testing configuration to", - "x-dropdown": "projects", - "x-prompt": "What project should we add Cypress component testing to?", - "x-priority": "important" - }, - "generateTests": { - "type": "boolean", - "description": "Generate default component tests for existing components in the project", - "x-prompt": "Automatically generate tests for components declared in this project?", - "default": false, - "x-priority": "important" - }, - "buildTarget": { - "type": "string", - "description": "A build target used to configure Cypress component testing in the format of `project:target[:configuration]`. The build target should be from a React app. If not provided we will try to infer it from your projects usage.", - "pattern": "^[^:\\s]+:[^:\\s]+(:\\S+)?$" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files", - "default": false, - "x-priority": "internal" - }, - "bundler": { - "description": "The bundler to use for Cypress Component Testing.", - "type": "string", - "enum": ["vite", "webpack"], - "hidden": true, - "x-priority": "internal" - } - }, - "required": ["project"], - "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nReact component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you want to test components via Storybook with Cypress, then check out the [storybook-configuration generator docs](/nx-api/react/generators/storybook-configuration). However, this functionality is deprecated, and will be removed on Nx version 19.\n{% /callout %}\n\nThis generator is designed to get your React project up and running with Cypress Component Testing.\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project\n```\n\nRunning this generator, adds the required files to the specified project with a preconfigured `cypress.config.ts` designed for Nx workspaces.\n\nThe following file will be added to projects where the Component Testing build target is using `webpack` for bundling:\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/react/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename, {\n bundler: 'webpack',\n }),\n});\n```\n\nThe following file will be added to projects where the Component Testing build target is using `vite` for bundling:\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/react/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename, {\n bundler: 'vite',\n }),\n});\n```\n\nHere is an example on how to add custom options to the configuration\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/react/plugins/component-testing';\n\nexport default defineConfig({\n component: {\n ...nxComponentTestingPreset(__filename, {\n bundler: 'webpack',\n }),\n // extra options here\n },\n});\n```\n\n## The `bundler` option\n\nComponent testing supports two different bundlers: `webpack` and `vite`. The Nx generator will pick up the bundler used in the specified project's build target. If the build target is using `@nx/webpack:webpack`, then the generator will use `webpack` as the bundler. If the build target is using `@nx/vite:build`, then the generator will use `vite` as the bundler.\n\nYou can manually set the bundler by passing `--bundler=webpack` or `--bundler=vite` to the generator, but that is not needed since the generator will pick up the correct bundler for you. However, if you want to use a different bundler than the one that is used in the build target, then you can manually set it using that flag.\n\n## Specifying a Build Target\n\nComponent testing requires a _build target_ to correctly run the component test dev server. This option can be manually specified with `--build-target=some-react-app:build`, but Nx will infer this usage from the [project graph](/concepts/mental-model#the-project-graph) if one isn't provided.\n\nFor React projects, the build target needs to be using the `@nx/webpack:webpack` executor.\nThe generator will throw an error if a build target can't be found and suggest passing one in manually.\n\nLetting Nx infer the build target by default\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project\n```\n\nManually specifying the build target\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project --build-target:some-react-app:build --generate-tests\n```\n\n{% callout type=\"note\" title=\"Build Target with Configuration\" %}\nIf you're wanting to use a build target with a specific configuration. i.e. `my-app:build:production`,\nthen manually providing `--build-target=my-app:build:production` is the best way to do that.\n{% /callout %}\n\n## Auto Generating Tests\n\nYou can optionally use the `--generate-tests` flag to generate a test file for each component in your project.\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project --generate-tests\n```\n\n## Running Component Tests\n\nA new `component-test` target will be added to the specified project to run your component tests.\n\n```shell\nnx g component-test my-cool-react-project\n```\n\nHere is an example of the project configuration that is generated. The `--build-target` option is added as the `devServerTarget` which can be changed as needed.\n\n```json {% fileName=\"project.json\" %}\n{\n \"targets\" {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"/cypress.config.ts\",\n \"testingType\": \"component\",\n \"devServerTarget\": \"some-react-app:build\",\n \"skipServe\": true\n }\n }\n }\n}\n```\n\nNx also supports [Angular component testing](/packages/angular/generators/cypress-component-configuration).\n", - "presets": [] - }, - "description": "Setup Cypress component testing for a React project", - "hidden": false, - "implementation": "/packages/react/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/cypress-component-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/federate-module.json b/docs/generated/packages/react/generators/federate-module.json deleted file mode 100644 index b490fdb5911bb..0000000000000 --- a/docs/generated/packages/react/generators/federate-module.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "federate-module", - "factory": "./src/generators/federate-module/federate-module#federateModuleGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactFederateModule", - "title": "Federate Module", - "description": "Create a federated module, which can be loaded by a remote host.", - "examples": [ - { - "command": "nx g federate-module MyModule --path=./src/component/my-cmp.ts --remote=my-remote-app --remoteDirectory=apps/my-remote-app", - "description": "Create a federated module from my-remote-app, that exposes my-cmp from ./src/component/my-cmp.ts as MyModule." - } - ], - "type": "object", - "properties": { - "path": { - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "description": "The path to locate the federated module. This path should be relative to the workspace root and the file should exist.", - "x-prompt": "What is the path to the module to be federated?" - }, - "name": { - "description": "The name of the module.", - "type": "string", - "x-prompt": "What name would you like to use for the module?", - "pattern": "^[a-zA-Z][^:]*$", - "x-priority": "important" - }, - "remote": { - "type": "string", - "description": "The name of the remote.", - "x-prompt": "What is/should the remote be named?" - }, - "remoteDirectory": { - "description": "The directory of the new remote application if one needs to be created.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "none", - "alias": "s" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "host": { - "type": "string", - "description": "The host / shell application for this remote." - } - }, - "required": ["name", "path", "remote"], - "additionalProperties": false, - "presets": [] - }, - "description": "Federate a module.", - "hidden": false, - "implementation": "/packages/react/src/generators/federate-module/federate-module#federateModuleGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/federate-module/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/hook.json b/docs/generated/packages/react/generators/hook.json deleted file mode 100644 index ef84c39c7671a..0000000000000 --- a/docs/generated/packages/react/generators/hook.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "hook", - "factory": "./src/generators/hook/hook#hookGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactHook", - "title": "Create a React Hook for Nx", - "description": "Create a React component using Hooks in a dedicated React project.", - "type": "object", - "examples": [ - { - "command": "nx g hook my-hook --project=mylib", - "description": "Generate a hook in the `mylib` library" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the hook.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the hook?", - "x-priority": "important" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "skipTests": { - "type": "boolean", - "description": "When true, does not create `spec.ts` test files for the new hook.", - "default": false, - "x-priority": "internal" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the hook file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "flat": { - "type": "boolean", - "description": "Create hook at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "export": { - "type": "boolean", - "description": "When true, the hook is exported from the project `index.ts` (if it exists).", - "alias": "e", - "default": false, - "x-prompt": "Should this hook be exported in the project?" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case hook file name (e.g. `useHook.ts`).", - "alias": "P", - "default": false, - "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - }, - "pascalCaseDirectory": { - "type": "boolean", - "description": "Use pascal case directory name (e.g. `useHook/useHook.ts`).", - "alias": "R", - "default": false, - "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Create a hook.", - "aliases": ["c"], - "implementation": "/packages/react/src/generators/hook/hook#hookGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react/src/generators/hook/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/host.json b/docs/generated/packages/react/generators/host.json deleted file mode 100644 index 25b635247c422..0000000000000 --- a/docs/generated/packages/react/generators/host.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "name": "host", - "factory": "./src/generators/host/host#hostGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorReactHost", - "cli": "nx", - "title": "Generate Module Federation Setup for React Host App", - "description": "Create Module Federation configuration files for given React Host Application.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the host application to generate the Module Federation configuration", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use as the host application?", - "pattern": "^[a-zA-Z][^:]*$", - "x-priority": "important" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "tailwind", - "label": "tailwind [ https://tailwindcss.com/ ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "dynamic": { - "type": "boolean", - "description": "Should the host application use dynamic federation?", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipNxJson": { - "description": "Skip updating workspace.json with default options based on values provided to this app (e.g. babel, style).", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. App.tsx).", - "alias": "P", - "default": false - }, - "classComponent": { - "type": "boolean", - "description": "Use class components instead of functional component.", - "alias": "C", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "globalCss": { - "type": "boolean", - "description": "Default is false. When true, the component is generated with *.css/*.scss instead of *.module.css/*.module.scss", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Creates an application with strict mode and strict type checking", - "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 - }, - "compiler": { - "type": "string", - "description": "The compiler to use", - "enum": ["babel", "swc"], - "default": "babel" - }, - "remotes": { - "type": "array", - "description": "A list of remote application names that the host application should consume.", - "default": [], - "x-priority": "important" - }, - "devServerPort": { - "type": "number", - "description": "The port for the dev server of the remote app.", - "default": 4200, - "x-priority": "important" - }, - "ssr": { - "description": "Whether to configure SSR for the host application", - "type": "boolean", - "default": false - }, - "minimal": { - "description": "Generate a React app with a minimal setup. No nx starter template.", - "type": "boolean", - "default": false - }, - "typescriptConfiguration": { - "type": "boolean", - "description": "Whether the module federation configuration and webpack configuration files should use TS. When --js is used, this flag is ignored.", - "default": true - } - }, - "required": ["name"], - "additionalProperties": false, - "presets": [] - }, - "x-type": "application", - "description": "Generate a host react application", - "implementation": "/packages/react/src/generators/host/host#hostGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react/src/generators/host/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/init.json b/docs/generated/packages/react/generators/init.json deleted file mode 100644 index d2061793c1e59..0000000000000 --- a/docs/generated/packages/react/generators/init.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#reactInitGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxReactNgInit", - "title": "Init React Plugin", - "description": "Initialize a React Plugin.", - "cli": "nx", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/react` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/react/src/generators/init/init#reactInitGenerator.ts", - "path": "/packages/react/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/library.json b/docs/generated/packages/react/generators/library.json deleted file mode 100644 index cd86079a66551..0000000000000 --- a/docs/generated/packages/react/generators/library.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactLibrary", - "title": "Create a React Library", - "description": "Create a React Library for an Nx workspace.", - "type": "object", - "examples": [ - { - "command": "nx g lib mylib --directory=myapp", - "description": "Generate `libs/myapp/mylib`" - }, - { - "command": "nx g lib mylib --appProject=myapp", - "description": "Generate a library with routes and add them to `myapp`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Library name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "vitest", "none"], - "description": "Test runner to use for unit tests.", - "x-prompt": "What unit test runner should be used?" - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files." - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update `tsconfig.json` for development experience.", - "x-priority": "internal" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false - }, - "routing": { - "type": "boolean", - "description": "Generate library with routes." - }, - "appProject": { - "type": "string", - "description": "The application project to add the library route to.", - "alias": "a" - }, - "publishable": { - "type": "boolean", - "description": "Create a publishable library." - }, - "buildable": { - "type": "boolean", - "default": false, - "description": "Generate a buildable library that uses rollup to bundle.", - "x-deprecated": "Use the `bundler` option for greater control (none, vite, rollup)." - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`." - }, - "component": { - "type": "boolean", - "description": "Generate a default component.", - "default": true - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "globalCss": { - "type": "boolean", - "description": "When `true`, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is `*.css` rather than `*.module.css`).", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "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 - }, - "bundler": { - "type": "string", - "description": "The bundler to use. Choosing 'none' means this library is not buildable.", - "enum": ["none", "vite", "rollup"], - "default": "none", - "x-prompt": "Which bundler would you like to use to build the library? Choose 'none' to skip build setup.", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "enum": ["babel", "swc"], - "default": "babel", - "description": "Which compiler to use." - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "minimal": { - "description": "Create a React library with a minimal setup, no separate test files.", - "type": "boolean", - "default": false - }, - "simpleName": { - "description": "Don't include the directory in the name of the module of the library.", - "type": "boolean", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a React library.", - "implementation": "/packages/react/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/redux.json b/docs/generated/packages/react/generators/redux.json deleted file mode 100644 index c62324fef9cde..0000000000000 --- a/docs/generated/packages/react/generators/redux.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "redux", - "factory": "./src/generators/redux/redux#reduxGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "redux", - "title": "Create Redux state", - "description": "Create a Redux state slice for a React project.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Redux slice name.", - "$default": { "$source": "argv", "index": 0 }, - "x-priority": "important" - }, - "project": { - "type": "string", - "description": "The name of the project to add the slice to. If it is an application, then the store configuration will be updated too.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "directory": { - "type": "string", - "alias": "dir", - "default": "", - "description": "The directory at which to create the Redux files. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "appProject": { - "type": "string", - "description": "The application project to add the slice to.", - "alias": "a" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Create a Redux slice for a project.", - "aliases": ["slice"], - "implementation": "/packages/react/src/generators/redux/redux#reduxGeneratorInternal.ts", - "hidden": false, - "path": "/packages/react/src/generators/redux/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/remote.json b/docs/generated/packages/react/generators/remote.json deleted file mode 100644 index eeba3d1dafc95..0000000000000 --- a/docs/generated/packages/react/generators/remote.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "name": "remote", - "factory": "./src/generators/remote/remote#remoteGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorReactRemote", - "cli": "nx", - "title": "Generate Module Federation Setup for React Remote App", - "description": "Create Module Federation configuration files for given React Remote Application.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the remote application to generate the Module Federation configuration", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use as the remote application?", - "pattern": "^[a-zA-Z][^:]*$", - "x-priority": "important" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "dynamic": { - "type": "boolean", - "description": "Should the host application use dynamic federation?", - "default": false, - "x-priority": "internal" - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { - "value": "tailwind", - "label": "tailwind [ https://tailwindcss.com/ ]" - }, - { - "value": "styled-components", - "label": "styled-components [ https://styled-components.com ]" - }, - { - "value": "@emotion/styled", - "label": "emotion [ https://emotion.sh ]" - }, - { - "value": "styled-jsx", - "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "routing": { - "type": "boolean", - "description": "Generate application with routes.", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipNxJson": { - "description": "Skip updating workspace.json with default options based on values provided to this app (e.g. babel, style).", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "none"], - "description": "Test runner to use for unit tests.", - "default": "jest" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. App.tsx).", - "alias": "P", - "default": false - }, - "classComponent": { - "type": "boolean", - "description": "Use class components instead of functional component.", - "alias": "C", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "globalCss": { - "type": "boolean", - "description": "Default is false. When true, the component is generated with *.css/*.scss instead of *.module.css/*.module.scss.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Creates an application with strict mode and strict type checking.", - "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 - }, - "compiler": { - "type": "string", - "description": "The compiler to use.", - "enum": ["babel", "swc"], - "default": "babel" - }, - "host": { - "type": "string", - "description": "The host / shell application for this remote.", - "x-priority": "important" - }, - "devServerPort": { - "type": "number", - "description": "The port for the dev server of the remote app.", - "x-priority": "important" - }, - "ssr": { - "description": "Whether to configure SSR for the host application", - "type": "boolean", - "default": false - }, - "typescriptConfiguration": { - "type": "boolean", - "description": "Whether the module federation configuration and webpack configuration files should use TS. When --js is used, this flag is ignored.", - "default": true - } - }, - "required": ["name"], - "additionalProperties": false, - "presets": [] - }, - "x-type": "application", - "description": "Generate a remote react application", - "implementation": "/packages/react/src/generators/remote/remote#remoteGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react/src/generators/remote/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/setup-ssr.json b/docs/generated/packages/react/generators/setup-ssr.json deleted file mode 100644 index 874b7dbf480f2..0000000000000 --- a/docs/generated/packages/react/generators/setup-ssr.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "setup-ssr", - "factory": "./src/generators/setup-ssr/setup-ssr#setupSsrGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "GeneratorReactSSRSetup", - "cli": "nx", - "title": "Generate SSR setup for a React app", - "description": "Create the additional configuration required to enable SSR via Express for a React application.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the application to add SSR support to.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What app would you like to add SSR support to?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "appComponentImportPath": { - "type": "string", - "description": "The import path of the component, relative to project sourceRoot.", - "default": "app/app" - }, - "serverPort": { - "type": "number", - "default": 4200, - "description": "The port for the Express server.", - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting the workspace after the generator completes.", - "x-priority": "internal" - }, - "extraInclude": { - "type": "array", - "items": { "type": "string" }, - "hidden": true, - "description": "Extra include entries in tsconfig.", - "default": [] - } - }, - "required": ["project"], - "additionalProperties": false, - "presets": [] - }, - "description": "Set up SSR configuration for a project.", - "hidden": false, - "implementation": "/packages/react/src/generators/setup-ssr/setup-ssr#setupSsrGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/setup-ssr/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/setup-tailwind.json b/docs/generated/packages/react/generators/setup-tailwind.json deleted file mode 100644 index e87ffb2fa7c00..0000000000000 --- a/docs/generated/packages/react/generators/setup-tailwind.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "setup-tailwind", - "factory": "./src/generators/setup-tailwind/setup-tailwind#setupTailwindGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactTailwindSetupGenerator", - "title": "Configures Tailwind CSS for an application or a buildable/publishable library.", - "description": "Adds the Tailwind CSS configuration files for a given React project and installs, if needed, the packages required for Tailwind CSS to work.", - "type": "object", - "examples": [ - { - "command": "nx g setup-tailwind --project=my-app", - "description": "Initialize Tailwind configuration for the `my-app` project." - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add the Tailwind CSS setup for.", - "alias": "p", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "projects", - "x-prompt": "What project would you like to add the Tailwind CSS setup?", - "x-priority": "important" - }, - "buildTarget": { - "type": "string", - "description": "The name of the target used to build the project. This option is not needed in most cases.", - "default": "build", - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skips formatting the workspace after the generator completes.", - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - } - }, - "additionalProperties": false, - "required": ["project"], - "presets": [] - }, - "description": "Set up Tailwind configuration for a project.", - "hidden": false, - "implementation": "/packages/react/src/generators/setup-tailwind/setup-tailwind#setupTailwindGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/setup-tailwind/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/stories.json b/docs/generated/packages/react/generators/stories.json deleted file mode 100644 index 4f5a13820c10a..0000000000000 --- a/docs/generated/packages/react/generators/stories.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "stories", - "factory": "./src/generators/stories/stories#storiesGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactStorybookStories", - "title": "Generate React Storybook stories", - "description": "Generate stories/specs for all components declared in a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate stories.", - "$default": { "$source": "projectName", "index": 0 }, - "x-prompt": "For which project do you want to generate stories?", - "x-priority": "important" - }, - "generateCypressSpecs": { - "type": "boolean", - "description": "Automatically generate `*.spec.ts` files in the cypress e2e app generated by the cypress-configure generator." - }, - "cypressProject": { - "type": "string", - "description": "The Cypress project to generate the stories under. This is inferred from `project` by default." - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "default": true - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "examplesFile": "This generator will generate stories for all your components in your project. The stories will be generated using [Component Story Format 3 (CSF3)](https://storybook.js.org/blog/storybook-csf3-is-here/).\n\n```bash\nnx g @nx/react:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for React overview page](/recipes/storybook/overview-react#auto-generate-stories).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/react:stories --name=ui --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*\n```\n\nThis will generate stories for all the components in the `ui` project, except for the ones in the `libs/ui/src/not-stories` directory, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/react:stories --name=ui --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n", - "presets": [] - }, - "description": "Create stories/specs for all components declared in an app or library.", - "hidden": false, - "implementation": "/packages/react/src/generators/stories/stories#storiesGenerator.ts", - "aliases": [], - "path": "/packages/react/src/generators/stories/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/react/generators/storybook-configuration.json b/docs/generated/packages/react/generators/storybook-configuration.json deleted file mode 100644 index 75de45d624622..0000000000000 --- a/docs/generated/packages/react/generators/storybook-configuration.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "name": "storybook-configuration", - "factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxReactStorybookConfigure", - "title": "React Storybook Configure", - "description": "Set up Storybook for a React app or library.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "alias": ["configureTestRunner"], - "default": true - }, - "configureCypress": { - "type": "boolean", - "description": "Run the cypress-configure generator.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "generateStories": { - "type": "boolean", - "description": "Automatically generate `*.stories.ts` files for components declared in this project?", - "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", - "default": true, - "x-priority": "important" - }, - "generateCypressSpecs": { - "type": "boolean", - "description": "Automatically generate test files in the Cypress E2E app generated by the `cypress-configure` generator.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "configureStaticServe": { - "type": "boolean", - "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", - "x-prompt": "Configure a static file server for the storybook instance?", - "default": true, - "x-priority": "important" - }, - "cypressDirectory": { - "type": "string", - "description": "A directory where the Cypress project will be placed. Placed at the root by default.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript story files rather than TypeScript story files.", - "default": false - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": true - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - } - }, - "required": ["project"], - "examplesFile": "This generator will set up Storybook for your **React** project. You can also use this generator to generate Storybook configuration for your **Next.js** project. By default, starting Nx 16, Storybook v7 is used.\n\n```bash\nnx g @nx/react:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for React overview page](/recipes/storybook/overview-react#generate-storybook-configuration-for-an-react-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/react/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/react:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/react:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/react:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/react:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", - "presets": [] - }, - "description": "Set up storybook for a React app or library.", - "hidden": false, - "implementation": "/packages/react/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts", - "aliases": [], - "path": "/packages/react/src/generators/storybook-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/documents/overview.md b/docs/generated/packages/remix/documents/overview.md deleted file mode 100644 index f0e13f283292c..0000000000000 --- a/docs/generated/packages/remix/documents/overview.md +++ /dev/null @@ -1,288 +0,0 @@ ---- -title: Overview of the Nx Remix Plugin -description: The Nx Plugin for Remix contains executors, generators, and utilities for managing Remix applications and libraries within an Nx workspace. ---- - -The Nx Plugin for Remix contains executors, generators, and utilities for managing Remix applications and libraries -within an Nx workspace. It provides: - -- Integration with libraries such as Storybook, Jest, Vitest and Cypress. -- Generators to help scaffold code quickly, including: - - Libraries, both internal to your codebase and publishable to npm - - Routes - - Loaders - - Actions - - Meta -- Utilities for automatic workspace refactoring. - -## Setting up @nx/remix - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/remix` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/remix` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/remix -``` - -This will install the correct version of `@nx/remix`. - -### How @nx/remix Infers Tasks - -The `@nx/remix` plugin will create a task for any project that has a Remix configuration file present. Any of the following files will be recognized as a Remix configuration file: - -- `remix.config.js` -- `remix.config.mjs` -- `remix.config.cjs` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/remix Configuration - -The `@nx/remix/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/remix/plugin", - "options": { - "buildTargetName": "build", - "serveTargetName": "serve", - "startTargetName": "start", - "typecheckTargetName": "typecheck" - } - } - ] -} -``` - -The `buildTargetName`, `serveTargetName`, `startTargetName` and `typecheckTargetName` options control the names of the inferred Remix tasks. The default names are `build`, `serve`, `start` and `typecheck`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/remix` package with your package manager. - -```shell -npm add -D @nx/remix -``` - -{% /tab %} -{% /tabs %} - -## Using the Remix Plugin - -## Generate a Remix Application - -{% callout type="note" title="Directory Flag Behavior Changes" %} -The command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, omit the `--directory` flag. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details. -{% /callout %} - -```{% command="nx g @nx/remix:app myapp --directory=apps/myapp" path="~/acme" %} -NX Generating @nx/remix:application - -✔ What unit test runner should be used? · vitest - -CREATE apps/myapp/project.json -UPDATE package.json -CREATE apps/myapp/README.md -CREATE apps/myapp/app/root.tsx -CREATE apps/myapp/app/routes/_index.tsx -CREATE apps/myapp/public/favicon.ico -CREATE apps/myapp/remix.config.js -CREATE apps/myapp/remix.env.d.ts -CREATE apps/myapp/tsconfig.json -CREATE apps/myapp/.gitignore -CREATE apps/myapp/package.json -UPDATE nx.json -CREATE tsconfig.base.json -CREATE .prettierrc -CREATE .prettierignore -UPDATE .vscode/extensions.json -CREATE apps/myapp/vite.config.ts -CREATE apps/myapp/tsconfig.spec.json -CREATE apps/myapp/test-setup.ts -CREATE apps/myapp-e2e/cypress.config.ts -CREATE apps/myapp-e2e/src/e2e/app.cy.ts -CREATE apps/myapp-e2e/src/fixtures/example.json -CREATE apps/myapp-e2e/src/support/commands.ts -CREATE apps/myapp-e2e/src/support/e2e.ts -CREATE apps/myapp-e2e/tsconfig.json -CREATE apps/myapp-e2e/project.json -CREATE .eslintrc.json -CREATE .eslintignore -CREATE apps/myapp-e2e/.eslintrc.json -``` - -## Build, Serve and Test your Application - -1. To build your application run: - -```{% command="nx build myapp" path="~/acme" %} -> nx run myapp:build - -Building Remix app in production mode... - -Built in 857ms - -—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— - -NX Successfully ran target build for project myapp (3s) -``` - -2. To serve your application for use during development run: - -```{% command="nx serve myapp" path="~/acme" %} -> nx run myapp:serve - -💿 Building... -💿 Rebuilt in 377ms -Remix App Server started at http://localhost:3000 (http://192.168.0.14:3000) -``` - -3. To test the application using vitest run: - -```{% command="nx test myapp" path="~/acme" %} -> nx run myapp:test - -RUN v0.31.4 /Users/columferry/dev/nrwl/issues/remixguide/acme/apps/myapp -stderr | app/routes/index.spec.ts > test > should render -Warning: Functions are not valid as a React child. This may happen if you return a Component instead of from render. Or maybe you meant to call this function rather than return it. -✓ app/routes/index.spec.ts (1 test) 10ms -Test Files 1 passed (1) - Tests 1 passed (1) -Start at 16:15:45 -Duration 1.20s (transform 51ms, setup 139ms, collect 180ms, tests 10ms, environment 379ms, prepare 103ms) - -—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— - -NX Successfully ran target test for project myapp (2s) -``` - -## Generating an Nx Library - -When developing your application, it often makes sense to split your codebase into smaller more focused libraries. - -To generate a library to use in your Remix application run: - -```{% command="nx g @nx/remix:lib login --directory=libs/login" path="~/acme" %} -NX Generating @nx/remix:library - -✔ What test runner should be used? · vitest -UPDATE nx.json -UPDATE package.json -CREATE babel.config.json -CREATE libs/login/project.json -CREATE libs/login/.eslintrc.json -CREATE libs/login/README.md -CREATE libs/login/src/index.ts -CREATE libs/login/tsconfig.lib.json -CREATE libs/login/tsconfig.json -CREATE libs/login/vite.config.ts -CREATE libs/login/tsconfig.spec.json -CREATE libs/login/src/lib/login.module.css -CREATE libs/login/src/lib/login.spec.tsx -CREATE libs/login/src/lib/login.tsx -UPDATE tsconfig.base.json -CREATE libs/login/src/test-setup.ts -CREATE libs/login/src/server.ts -``` - -You can then use the library by importing one of the exports into your application: - -`apps/myapp/app/routes/index.tsx` - -```tsx -import { Login } from '@acme/login'; - -export default function Index() { - return ( -
- -
- ); -} -``` - -You can also run test on your library: - -`nx test login` - -## Generating a Route - -To generate a route for your application: - -```{% command="nx g @nx/remix:route admin --path=apps/myapp/app/routes" path="~/acme" %} -NX Generating @nx/remix:route - -CREATE apps/myapp/app/routes/admin.tsx -CREATE apps/myapp/app/styles/admin.css -``` - -## Using a loader from your Library - -To use a Route Loader where the logic lives in your library, follow the steps below. - -1. Generate a loader for your route: - -```{% command="nx g @nx/remix:loader admin --path=apps/myapp/app/routes" path="~/acme" %} -NX Generating @nx/remix:loader - -UPDATE apps/myapp/app/routes/admin.tsx -``` - -2. Add a new file in your `login` lib - -`libs/login/src/lib/admin/admin.loader.ts` - -```ts -import { json, LoaderFunctionArgs } from '@remix-run/node'; - -export const adminLoader = async ({ request }: LoaderFunctionArgs) => { - return json({ - message: 'Hello, world!', - }); -}; -``` - -Export the function from the `libs/login/src/server.ts` file: - -```ts -export * from './lib/admin/admin.loader'; -``` - -3. Use the loader in your `apps/myapp/app/routes/admin.tsx` - -Replace the default loader code: - -```tsx -export const loader = async ({ request }: LoaderFunctionArgs) => { - return json({ - message: 'Hello, world!', - }); -}; -``` - -with - -```tsx -import { adminLoader } from '@acme/login/server'; - -export const loader = adminLoader; -``` - -## GitHub Repository with Example - -You can see an example of an Nx Workspace using Remix by clicking below. - -{% github-repository url="https://github.com/nrwl/nx-recipes/tree/main/remix" /%} diff --git a/docs/generated/packages/remix/executors/build.json b/docs/generated/packages/remix/executors/build.json deleted file mode 100644 index 1980398baa748..0000000000000 --- a/docs/generated/packages/remix/executors/build.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "build", - "implementation": "/packages/remix/src/executors/build/build.impl.ts", - "schema": { - "version": 2, - "outputCapture": "pipe", - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "title": "Remix Build", - "description": "Build a Remix app.", - "type": "object", - "properties": { - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "includeDevDependenciesInPackageJson": { - "type": "boolean", - "description": "Include `devDependencies` in the generated package.json file. By default only production `dependencies` are included.", - "default": false - }, - "generatePackageJson": { - "type": "boolean", - "description": "Generate package.json file in the output folder.", - "default": false - }, - "generateLockfile": { - "type": "boolean", - "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", - "default": false - }, - "sourcemap": { - "type": "boolean", - "description": "Generate source maps for production.", - "default": false - } - }, - "required": ["outputPath"], - "presets": [] - }, - "description": "Build a Remix application.", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/executors/build/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/remix/executors/serve.json b/docs/generated/packages/remix/executors/serve.json deleted file mode 100644 index c86d2b2e773ef..0000000000000 --- a/docs/generated/packages/remix/executors/serve.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "serve", - "implementation": "/packages/remix/src/executors/serve/serve.impl.ts", - "schema": { - "version": 2, - "outputCapture": "pipe", - "cli": "nx", - "title": "Remix Serve", - "description": "Serve a Remix app.", - "type": "object", - "properties": { - "port": { - "type": "number", - "description": "Set PORT environment variable that can be used to serve the Remix application.", - "default": 4200 - }, - "devServerPort": { - "type": "number", - "description": "Port to start the dev server on." - }, - "debug": { - "type": "boolean", - "description": "Attach a Node.js inspector.", - "default": false - }, - "command": { - "type": "string", - "description": "Command used to run your app server." - }, - "manual": { - "type": "boolean", - "description": "Enable manual mode", - "default": false - }, - "tlsKey": { - "type": "string", - "description": "Path to TLS key (key.pem)." - }, - "tlsCert": { - "type": "string", - "description": "Path to TLS certificate (cert.pem)." - } - }, - "presets": [] - }, - "description": "Serve a Remix application.", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/executors/serve/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/remix/generators/action.json b/docs/generated/packages/remix/generators/action.json deleted file mode 100644 index 06c1215499870..0000000000000 --- a/docs/generated/packages/remix/generators/action.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "action", - "implementation": "/packages/remix/src/generators/action/action.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "action", - "type": "object", - "description": "Generate an action for a given route.", - "properties": { - "path": { - "type": "string", - "description": "The route path or path to the filename of the route.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the action in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Add an action function to an existing route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/action/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/application.json b/docs/generated/packages/remix/generators/application.json deleted file mode 100644 index 67b65b0bcc4a8..0000000000000 --- a/docs/generated/packages/remix/generators/application.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "application", - "implementation": "/packages/remix/src/generators/application/application.impl#remixApplicationGeneratorInternal.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixApplication", - "title": "Create an Application", - "description": "Generate a new Remix application.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the name of the application?" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "directory": { - "type": "string", - "description": "A directory where the app is placed.", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["vitest", "jest", "none"], - "default": "vitest", - "description": "Test runner to use for unit tests.", - "x-prompt": "What unit test runner should be used?" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "default": "cypress", - "description": "Test runner to use for e2e tests" - }, - "tags": { - "type": "string", - "description": "Add tags to the project (used for linting)", - "alias": "t" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files", - "default": false - }, - "rootProject": { - "type": "boolean", - "x-priority": "internal", - "default": false - } - }, - "presets": [] - }, - "description": "Generate a new Remix application", - "aliases": ["app"], - "x-type": "application", - "hidden": false, - "path": "/packages/remix/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/cypress-component-configuration.json b/docs/generated/packages/remix/generators/cypress-component-configuration.json deleted file mode 100644 index 54cf250d797d0..0000000000000 --- a/docs/generated/packages/remix/generators/cypress-component-configuration.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "cypress-component-configuration", - "implementation": "/packages/remix/src/generators/cypress-component-configuration/cypress-component-configuration.impl#cypressComponentConfigurationGeneratorInternal.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxRemixCypressComponentTestConfiguration", - "title": "Add Cypress component testing", - "description": "Add a Cypress component testing configuration to an existing project.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/remix:cypress-component-configuration --project=my-remix-project", - "description": "Add component testing to your Remix project" - }, - { - "command": "nx g @nx/remix:cypress-component-configuration --project=my-remix-project --generate-tests", - "description": "Add component testing to your Remix project and generate component tests for your existing components" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add cypress component testing configuration to", - "x-dropdown": "projects", - "x-prompt": "What project should we add Cypress component testing to?", - "x-priority": "important" - }, - "generateTests": { - "type": "boolean", - "description": "Generate default component tests for existing components in the project", - "x-prompt": "Automatically generate tests for components declared in this project?", - "default": false, - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Generate a Cypress Component Testing configuration for a Remix project", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/cypress-component-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/error-boundary.json b/docs/generated/packages/remix/generators/error-boundary.json deleted file mode 100644 index b5834694ecfca..0000000000000 --- a/docs/generated/packages/remix/generators/error-boundary.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "error-boundary", - "implementation": "/packages/remix/src/generators/error-boundary/error-boundary.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixErrorBoundary", - "title": "Create an ErrorBoundary for a Route", - "description": "Generate an ErrorBoundary for a given route.", - "type": "object", - "examples": [ - { - "command": "g error-boundary --routePath=apps/demo/app/routes/my-route.tsx", - "description": "Generate an ErrorBoundary for my-route.tsx" - } - ], - "properties": { - "path": { - "type": "string", - "description": "The path to route file relative to the project root." - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the error boundary in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files after generation.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Add an ErrorBoundary to an existing route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/error-boundary/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/init.json b/docs/generated/packages/remix/generators/init.json deleted file mode 100644 index 44d9cf16f7f4b..0000000000000 --- a/docs/generated/packages/remix/generators/init.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "init", - "implementation": "/packages/remix/src/generators/init/init#remixInitGeneratorInternal.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixInit", - "title": "Init Remix Plugin", - "description": "Initialize the Remix Plugin.", - "cli": "nx", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nx/remix` plugin.", - "hidden": true, - "aliases": [], - "path": "/packages/remix/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/library.json b/docs/generated/packages/remix/generators/library.json deleted file mode 100644 index 4a4b6dc7708e8..0000000000000 --- a/docs/generated/packages/remix/generators/library.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "library", - "implementation": "/packages/remix/src/generators/library/library.impl#remixLibraryGeneratorInternal.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixLibrary", - "title": "Create a Library", - "description": "Generate a Remix library to help structure workspace and application.", - "type": "object", - "examples": [ - { - "command": "g lib mylib --directory=myapp", - "description": "Generate libs/myapp/mylib" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Library name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "^[a-zA-Z].*$" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting)" - }, - "style": { - "type": "string", - "description": "Generate a stylesheet", - "enum": ["none", "css"], - "default": "css" - }, - "buildable": { - "type": "boolean", - "description": "Should the library be buildable?", - "default": false - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "vitest", "none"], - "description": "Test Runner to use for Unit Tests", - "x-prompt": "What test runner should be used?", - "default": "vitest" - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like @myorg/my-awesome-lib" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files", - "default": false - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files after generator runs", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Generate a new library", - "aliases": ["lib"], - "x-type": "library", - "hidden": false, - "path": "/packages/remix/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/loader.json b/docs/generated/packages/remix/generators/loader.json deleted file mode 100644 index b6a366ab1164a..0000000000000 --- a/docs/generated/packages/remix/generators/loader.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "loader", - "implementation": "/packages/remix/src/generators/loader/loader.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "data-loader", - "type": "object", - "description": "Generate an loader for a given route.", - "properties": { - "path": { - "type": "string", - "description": "The route path or path to the filename of the route.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the loader in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Add a loader function to an existing route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/loader/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/meta.json b/docs/generated/packages/remix/generators/meta.json deleted file mode 100644 index 85399646bdf24..0000000000000 --- a/docs/generated/packages/remix/generators/meta.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "meta", - "implementation": "/packages/remix/src/generators/meta/meta.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "meta", - "type": "object", - "description": "Generate a meta function for a given route.", - "properties": { - "path": { - "type": "string", - "description": "The route path or path to the filename of the route.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the meta function in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Add a meta function to an existing route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/meta/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/preset.json b/docs/generated/packages/remix/generators/preset.json deleted file mode 100644 index a24979c2067c0..0000000000000 --- a/docs/generated/packages/remix/generators/preset.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "preset", - "implementation": "/packages/remix/src/generators/preset/preset.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "Remix", - "title": "", - "type": "object", - "description": "Generate a Remix application in a standalone workspace. Can be used with `create-nx-workspace --preset=@nx/remix`.", - "properties": { - "tags": { - "type": "string", - "description": "Add tags to the app (used for linting).", - "alias": "t" - } - }, - "presets": [] - }, - "description": "Generate a new Remix workspace", - "hidden": true, - "aliases": [], - "path": "/packages/remix/src/generators/preset/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/resource-route.json b/docs/generated/packages/remix/generators/resource-route.json deleted file mode 100644 index f57b7f1d0a0ff..0000000000000 --- a/docs/generated/packages/remix/generators/resource-route.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "resource-route", - "implementation": "/packages/remix/src/generators/resource-route/resource-route.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixResourceRoute", - "title": "Create a Resource Route", - "type": "object", - "description": "Generate a resource route.", - "examples": [ - { - "command": "g resource-route 'path/to/page'", - "description": "Generate resource route at /path/to/page" - } - ], - "properties": { - "path": { - "type": "string", - "description": "The route path or path to the filename of the route.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar')" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the styles in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - }, - "action": { - "type": "boolean", - "description": "Generate an action function", - "default": false - }, - "loader": { - "type": "boolean", - "description": "Generate a loader function", - "default": true - }, - "skipChecks": { - "type": "boolean", - "description": "Skip route error detection", - "default": false - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Generate a new resource route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/resource-route/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/route.json b/docs/generated/packages/remix/generators/route.json deleted file mode 100644 index e9bc0ee09d160..0000000000000 --- a/docs/generated/packages/remix/generators/route.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "route", - "implementation": "/packages/remix/src/generators/route/route.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixRoute", - "title": "Create a Route", - "description": "Generate a route.", - "type": "object", - "examples": [ - { - "command": "g route 'path/to/page'", - "description": "Generate route at /path/to/page" - } - ], - "properties": { - "path": { - "type": "string", - "description": "The route path or path to the filename of the route. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar')" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the route in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and path relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - }, - "style": { - "type": "string", - "description": "Generate a stylesheet", - "enum": ["none", "css"], - "default": "css" - }, - "meta": { - "type": "boolean", - "description": "Generate a meta function", - "default": false - }, - "action": { - "type": "boolean", - "description": "Generate an action function", - "default": false - }, - "loader": { - "type": "boolean", - "description": "Generate a loader function", - "default": false - }, - "skipChecks": { - "type": "boolean", - "description": "Skip route error detection", - "default": false - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Generate a new route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/route/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/setup-tailwind.json b/docs/generated/packages/remix/generators/setup-tailwind.json deleted file mode 100644 index 215eca3cdc251..0000000000000 --- a/docs/generated/packages/remix/generators/setup-tailwind.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "setup-tailwind", - "implementation": "/packages/remix/src/generators/setup-tailwind/setup-tailwind.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixTailwind", - "title": "Add TailwindCSS to a Remix App", - "description": "Setup tailwindcss for a given project.", - "type": "object", - "examples": [ - { - "command": "g setup-tailwind --project=myapp", - "description": "Generate a TailwindCSS config for your Remix app" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add tailwind to", - "$default": { "$source": "projectName" }, - "x-prompt": "What project would you like to add Tailwind to?", - "pattern": "^[a-zA-Z].*$" - }, - "js": { - "type": "boolean", - "description": "Generate a JavaScript config file instead of a TypeScript config file", - "default": false - }, - "skipFormat": { - "type": "boolean", - "description": "Skip formatting files after generator runs", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Generates a TailwindCSS configuration for the Remix application", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/setup-tailwind/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/setup.json b/docs/generated/packages/remix/generators/setup.json deleted file mode 100644 index 7a901a0d6029b..0000000000000 --- a/docs/generated/packages/remix/generators/setup.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "setup", - "implementation": "/packages/remix/src/generators/setup/setup.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixSetup", - "title": "", - "type": "object", - "description": "Generate initial files required for Remix to work within the workspace.", - "properties": { - "packageManager": { - "type": "string", - "description": "The package manager to setup for", - "enum": ["yarn", "npm", "pnpm"] - } - }, - "presets": [] - }, - "description": "Setup a Remix in an existing workspace", - "hidden": true, - "aliases": [], - "path": "/packages/remix/src/generators/setup/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/storybook-configuration.json b/docs/generated/packages/remix/generators/storybook-configuration.json deleted file mode 100644 index c395840685585..0000000000000 --- a/docs/generated/packages/remix/generators/storybook-configuration.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "storybook-configuration", - "implementation": "/packages/remix/src/generators/storybook-configuration/storybook-configuration.impl#remixStorybookConfiguration.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxRemixStorybookConfigure", - "title": "Remix Storybook Configuration", - "description": "Set up Storybook for a Remix library.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "configureCypress": { - "type": "boolean", - "description": "Run the cypress-configure generator.", - "x-prompt": "Configure a cypress e2e app to run against the storybook instance?", - "default": true, - "x-priority": "important" - }, - "generateStories": { - "type": "boolean", - "description": "Automatically generate `*.stories.ts` files for components declared in this project?", - "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", - "default": true, - "x-priority": "important" - }, - "generateCypressSpecs": { - "type": "boolean", - "description": "Automatically generate test files in the Cypress E2E app generated by the `cypress-configure` generator.", - "x-prompt": "Automatically generate test files in the Cypress E2E app generated by the cypress-configure generator?", - "default": true, - "x-priority": "important" - }, - "configureStaticServe": { - "type": "boolean", - "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", - "x-prompt": "Configure a static file server for the storybook instance?", - "default": true, - "x-priority": "important" - }, - "cypressDirectory": { - "type": "string", - "description": "A directory where the Cypress project will be placed. Placed at the root by default." - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript story files rather than TypeScript story files.", - "default": false - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": false - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "examples": [ - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - }, - "configureTestRunner": { - "type": "boolean", - "description": "Add a Storybook Test-Runner target." - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Generates a Storybook configuration for a Remix application", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/storybook-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/remix/generators/style.json b/docs/generated/packages/remix/generators/style.json deleted file mode 100644 index d298b13073d4e..0000000000000 --- a/docs/generated/packages/remix/generators/style.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "style", - "implementation": "/packages/remix/src/generators/style/style.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRemixRouteStyle", - "title": "Add style import to a route", - "description": "Generate a style import and file for a given route.", - "type": "object", - "examples": [ - { - "command": "g style --path='apps/demo/app/routes/path/to/page.tsx'", - "description": "Generate route at apps/demo/app/routes/path/to/page.tsx" - } - ], - "properties": { - "path": { - "type": "string", - "description": "Route path", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the styles in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "project": { - "type": "string", - "description": "The name of the project.", - "pattern": "^[a-zA-Z].*$", - "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." - } - }, - "required": ["path"], - "presets": [] - }, - "description": "Generates a new stylesheet and adds it to an existing route", - "aliases": [], - "hidden": false, - "path": "/packages/remix/src/generators/style/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/rollup/executors/rollup.json b/docs/generated/packages/rollup/executors/rollup.json deleted file mode 100644 index 60f58625fde6c..0000000000000 --- a/docs/generated/packages/rollup/executors/rollup.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "name": "rollup", - "implementation": "/packages/rollup/src/executors/rollup/rollup.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Web Library Rollup Target (Experimental)", - "description": "Packages a library for different web usages (ESM, CommonJS).", - "cli": "nx", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The path to package.json file.", - "x-priority": "important" - }, - "main": { - "type": "string", - "description": "The path to the entry file, relative to project.", - "alias": "entryFile", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.js|.ts)", - "x-priority": "important" - }, - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "outputFileName": { - "type": "string", - "description": "Name of the main output file. Defaults same basename as 'main' file." - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Delete the output path before building.", - "default": true - }, - "tsConfig": { - "type": "string", - "description": "The path to tsconfig file.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "allowJs": { - "type": "boolean", - "description": "Allow JavaScript files to be compiled.", - "default": false - }, - "format": { - "type": "array", - "description": "List of module formats to output. Defaults to matching format from tsconfig (e.g. CJS for CommonJS, and ESM otherwise).", - "alias": "f", - "items": { "type": "string", "enum": ["esm", "cjs"] } - }, - "external": { - "type": "array", - "description": "A list of external modules that will not be bundled (`react`, `react-dom`, etc.). Can also be set to `all` (bundle nothing) or `none` (bundle everything).", - "oneOf": [ - { "type": "string", "enum": ["all", "none"] }, - { "type": "array", "items": { "type": "string" } } - ] - }, - "watch": { - "type": "boolean", - "description": "Enable re-building when files change.", - "default": false - }, - "rollupConfig": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "string", - "x-completion-type": "file", - "x-completion-glob": "rollup?(*)@(.js|.ts)" - } - }, - { - "type": "string", - "x-completion-type": "file", - "x-completion-glob": "rollup?(*)@(.js|.ts)" - } - ], - "description": "Path to a function which takes a rollup config and returns an updated rollup config." - }, - "extractCss": { - "type": ["boolean", "string"], - "description": "CSS files will be extracted to the output folder. Alternatively custom filename can be provided (e.g. styles.css)", - "default": true - }, - "assets": { - "type": "array", - "description": "List of static assets.", - "default": [], - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply `glob`. Defaults to the project root." - }, - "output": { - "type": "string", - "description": "Relative path within the output folder." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "compiler": { - "type": "string", - "enum": ["babel", "swc", "tsc"], - "default": "babel", - "description": "Which compiler to use." - }, - "babelUpwardRootMode": { - "type": "boolean", - "description": "Whether to set rootmode to upward. See https://babeljs.io/docs/en/options#rootmode", - "default": false - }, - "javascriptEnabled": { - "type": "boolean", - "description": "Sets `javascriptEnabled` option for less loader", - "default": false - }, - "generateExportsField": { - "type": "boolean", - "alias": "exports", - "description": "Update the output package.json file's 'exports' field. This field is used by Node and bundles.", - "default": false, - "x-priority": "important" - }, - "additionalEntryPoints": { - "type": "array", - "description": "Additional entry-points to add to exports field in the package.json file.", - "items": { "type": "string" }, - "x-priority": "important" - }, - "skipTypeCheck": { - "type": "boolean", - "description": "Whether to skip TypeScript type checking.", - "default": false - }, - "skipTypeField": { - "type": "boolean", - "description": "Prevents 'type' field from being added to compiled package.json file. Use this if you are having an issue with this field.", - "default": false - } - }, - "required": ["tsConfig", "main", "outputPath"], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply `glob`. Defaults to the project root." - }, - "output": { - "type": "string", - "description": "Relative path within the output folder." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "examplesFile": "{% tabs %}\n{% tab label=\"Including Dependencies\" %}\nTo include dependencies in the output `package.json`, the dependencies must be installed as a **dependencies** in the root `package.json`\n\n```json {% fileName=\"package.json\" %}\n{\n \"dependencies\": {\n \"some-dependency\": \"^1.0.0\"\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Using `babelUpwardRootMode`\" %}\n\nCopying from the [Babel documentation](https://babeljs.io/docs/config-files#root-babelconfigjson-file):\n\n> [...] if you are running your Babel compilation process from within a subpackage, you need to tell Babel where to look for the config. There are a few ways to do that, but the recommended way is the \"rootMode\" option with \"upward\", which will make Babel search from the working directory upward looking for your babel.config.json file, and will use its location as the \"root\" value.\n\nSetting `babelUpwardRootMode` to `true` in your `project.json` will set `rootMode` option to `upward` in the Babel config. You may want the `upward` mode in a monorepo when projects must apply their individual `.babelrc` file. We recommend that you don't set it at all, so it will use the default to `false` as the `upward` mode brings additional complexity to the build process.\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/rollup:rollup\",\n \"options\": {\n \"babelUpwardRootMode\": true,\n //...\n },\n //...\n },\n //...\n },\n //...\n}\n```\n\nWhen `babelUpwardRootMode` is `true`, Babel will look for a root `babel.config.json` at the root of the workspace, which should look something like this to include all packages:\n\n```json\n{ \"babelrcRoots\": [\"*\"] }\n```\n\nThen for each package, you must have a `.babelrc` file that will be applied to that package. For example:\n\n```json\n{\n \"presets\": [\"@babel/preset-env\", \"@babel/preset-typescript\"]\n}\n```\n\nAll packages will use its own `.babelrc` file, thus you must ensure the right presets and plugins are set in each config file. This behavior can lead to build discrepancies between packages, so we recommend that you don't set `babelUpwardRootMode` at all.\n\n```treeview\n├── packages\n│ ├── a\n│ │ └── .babelrc\n│ └── b\n│ └── .babelrc\n└── babel.config.json\n```\n\nIn workspace above, if `a` imports `b`, it will apply the config `packages/b/.babelrc` and not apply its own `packages/a/.babelrc` to `b`. Anything in `babel.config.json` will apply to all packages.\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Bundle a package using Rollup.", - "aliases": [], - "hidden": false, - "path": "/packages/rollup/src/executors/rollup/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/rollup/generators/configuration.json b/docs/generated/packages/rollup/generators/configuration.json deleted file mode 100644 index 813d3e3b3ce83..0000000000000 --- a/docs/generated/packages/rollup/generators/configuration.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "configuration", - "aliases": ["rollup-project"], - "factory": "./src/generators/configuration/configuration", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxRollupProject", - "cli": "nx", - "title": "Add Rollup Configuration to a project", - "description": "Add Rollup Configuration to a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "project", - "x-prompt": "What is the name of the project to set up a rollup for?", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "enum": ["babel", "swc", "tsc"], - "description": "The compiler to use to build source.", - "default": "babel" - }, - "main": { - "type": "string", - "description": "Path relative to the workspace root for the main entry file. Defaults to '/src/main.ts'.", - "alias": "entryFile", - "x-priority": "important" - }, - "tsConfig": { - "type": "string", - "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to '/tsconfig.app.json'.", - "x-priority": "important" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "skipValidation": { - "type": "boolean", - "default": false, - "description": "Do not perform any validation on existing project.", - "x-priority": "internal" - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`." - }, - "external": { - "type": "array", - "description": "A list of external modules that will not be bundled (`react`, `react-dom`, etc.).", - "items": { "type": "string" } - }, - "rollupConfig": { - "type": "string", - "description": "Path relative to workspace root to a custom rollup file that takes a config object and returns an updated config." - }, - "buildTarget": { - "description": "The build target to add.", - "type": "string", - "default": "build" - }, - "format": { - "description": "The format to build the library (esm or cjs).", - "type": "array", - "items": { "type": "string", "enum": ["esm", "cjs"] }, - "default": ["esm"] - } - }, - "required": [], - "presets": [] - }, - "description": "Add rollup configuration to a project.", - "implementation": "/packages/rollup/src/generators/configuration/configuration.ts", - "hidden": false, - "path": "/packages/rollup/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/rollup/generators/init.json b/docs/generated/packages/rollup/generators/init.json deleted file mode 100644 index 81fe6639068e3..0000000000000 --- a/docs/generated/packages/rollup/generators/init.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#rollupInitGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWebpackInit", - "cli": "nx", - "title": "Init Webpack Plugin", - "description": "Init Webpack Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/rollup` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/rollup/src/generators/init/init#rollupInitGenerator.ts", - "path": "/packages/rollup/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/storybook/documents/best-practices.md b/docs/generated/packages/storybook/documents/best-practices.md deleted file mode 100644 index 2fec8281b1f38..0000000000000 --- a/docs/generated/packages/storybook/documents/best-practices.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Storybook best practices for making the most out of Nx -description: The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities. ---- - -# Storybook best practices for making the most out of Nx - -## Purpose of this guide - -The purpose of this guide is to help you [set up Storybook in your Nx workspace](/nx-api/storybook) so that you can get the most out of Nx and its powerful capabilities. - -## When to use Storybook - -Usually, Storybook is mainly used for two reasons. Testing and documentation. You can read more on when and why to use Storybook in the [Why Storybook in 2022?](https://storybook.js.org/blog/why-storybook-in-2022/) article and also in the [Introduction to Storybook](https://storybook.js.org/docs/react/get-started/introduction) documentation page. - -### Testing - -Storybook helps you test your UIs. You can read more about testing with Storybook in the [How to test your UIs with Storybook](https://storybook.js.org/docs/react/writing-tests/introduction) documentation page. Essentially, Storybook uses the stories as a starting point for testing. - -### Documentation - -Storybook helps you document your UI elements, or your design system, effectively and in an interactive way. You can read more in the [How to document components](https://storybook.js.org/docs/react/writing-docs/introduction) documentation page. Essentially, you can use Storybook to publish a catalog of your components. A catalog that you can share with the design team, the developer team, the product team, anyone else in the product development process, or even the client. The components are isolated, interactive, and can be represented in all possible forms that they can take (e.g. for a button: enabled, disabled, active, etc). You can read more about publishing your Storybook in the [Publish Storybook](https://storybook.js.org/docs/react/sharing/publish-storybook) documentation page. - -## Nx and Storybook - -Now let’s see how Nx can be used to accommodate both of these pillars of Storybook. Nx takes lots of the burden off your arms when setting up Storybook initially. It essentially provides you with all that you need to start using Storybook’s capabilities (testing and documentation) right away, without having to write a single line of code. - -### Development tools - -First, let’s see what Nx offers, when you are in the process of developing a project with Storybook. - -#### Configuration generation - -You can generate the Storybook configuration files and settings using the Nx [`@nx/storybook:configuration` generator](/nx-api/storybook/generators/configuration). You can read more about configuring Storybook with Nx in our [`@nx/storybook` package overview page](/nx-api/storybook#generating-storybook-configuration). With Nx, you configure Storybook for each individual project. - -#### Stories generation - -If you are on a project using Angular, React or React Native, you can also generate stories for your components. You can do so either by using each package's `storybook-configuration` generators or by using the `stories` generator, if you already have Storybook configured for your project. - -If your project is not configured yet, check out one of these guides: - -- [Set up Storybook for React (and Next.js) Projects](/recipes/storybook/overview-react) - -- [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) - -- [Set up Storybook for Vue Projects](/recipes/storybook/overview-vue) - -If your project is [already configured](/nx-api/storybook), you can use the `stories` generator: - -- [React (and Next.js) stories generator](/nx-api/react/generators/stories) - -- [Angular stories generator](/nx-api/angular/generators/stories) - -- [Vue stories generator](/nx-api/vue/generators/stories) - -- [React Native stories generator](/nx-api/react-native/generators/stories) - -The stories generator will read your inputs (if you’re using Angular), or your props (if you're using React), and will generate stories with the corresponding arguments/controls already prefilled. - -#### Storybook interaction tests - -[Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing) allow you to test user interactions within your Storybook stories. It enhances your [Storybook](https://storybook.js.org/) setup, ensuring that not only do your components look right, but they also work correctly when interacted with. - -Nx will generate interaction tests for your stories. You can read more in our [Setting up Storybook Interaction Tests with Nx guide](/recipes/storybook/storybook-interaction-tests). - -### CI/CD tools - -Now let’s see how Nx helps in the CI/CD journey, as well. - -#### Interaction tests in your CI - -You can set up your interaction tests to run as part of your CI. You can read more in the [Storybook docs](https://storybook.js.org/docs/react/writing-tests/test-runner#set-up-ci-to-run-**tests**). - -#### Serve - -When you are configuring Storybook, Nx [adds a serve and a build target for Storybook](/nx-api/storybook#generating-storybook-configuration) in your `project.json`, as we explained above. You can use these targets to [serve](/nx-api/storybook/executors/storybook) and [build](/nx-api/storybook/executors/build) storybook locally, and also in production. Cypress will also use these targets when firing up the e2e tests. While developing, you can serve your Storybooks locally to see if your components work and look as expected. This can help you and speed up the development and debugging process (no need to fire up a complex dev stack). - -#### Build and deploy - -The build and deploy step usually comes in handy when you are ready to use Storybook for documentation, and you want to publish it. The [building](/nx-api/storybook/executors/build) step of Storybook is integrated in the Nx ecosystem, as explained above, and you can trigger your Storybook builds as you would trigger any other build inside your workspace. - -When you publish your organization’s Storybook, as a result, ideally, you would want to have one shareable Storybook page/application living under one URL, that you can share. With Nx, you can build your Storybook and it will be ready for deployment. **However**, at this point, you have one Storybook per project in your workspace, and you could end up with far too many Storybooks that are built and ready for deployment. This is not ideal, and does not accomplish the ultimate goal of “one shareable documentation page”. - -In the following section, we are going to see how to set up Storybook in these cases, to get the most out of Nx. - -## How to set up Storybook to get the most out of Nx - -### Philosophy - -Setting up Storybook on Nx reflects - and takes advantage of - the [mental model](/concepts/mental-model) of Nx, and especially the architecture of [Applications and Libraries](/concepts/more-concepts/applications-and-libraries). What that means, in essence, is that you still maintain the individual Storybook instances (per project) which you use for testing and local development, but you also keep one extra “container” for publishing, that serves as a single entry point. Let’s see this in more detail. - -#### Local development and testing - -##### Development and debugging - -In the process of setting up Storybook in your Nx workspace that we described above, you end up with one Storybook instance per project. That way, you can use your project’s Storybook targets to serve, test and build Storybook: - -```shell -nx storybook my-project -``` - -and - -```shell -nx build-storybook my-project -``` - -and - -```shell -nx test-storybook my-project -``` - -This feature is extremely useful when developing locally. The containerized stories in your Storybook are the only ones that are built/served/tested when you want to debug just one component, or just one library. You don’t have to wait for a huge Storybook containing all your stories in your repository to fire up. You just need to wait for the Storybook of a single project to start. This speeds up the process. - -##### Caching, affected, dependency management - -Since each Storybook, in this case, is attached to a project, so is the serving of Storybook and the building of Storybook and the e2e tests for that project. That means that Nx is aware of these tasks, so it caches them, it knows when to fetch them from the cache or re-run them according to the affected status of that project. It also knows that project’s dependencies and knows which things to rebuild before each task. - -#### Publishing - -When you are publishing your Storybook, you can follow the same principles described in the [Applications and Libraries Mental Model](/concepts/more-concepts/applications-and-libraries#mental-model) documentation page. The general idea is to have one central Storybook container, into which you are going to gather your stories from multiple libraries. - -You can think of the central Storybook container as a grouping of similar-concept or same-scope UI parts of your workspace. In the same way you are scoping libraries, you can group your stories as well. - -Then, according to your use-case, you can have one central Storybook for your whole workspace, importing all the stories from all the projects. Alternatively, you can have one Storybook per "scope", which imports all the stories from projects the same scope. Or even one Storybook per application, importing all the stories of all the libraries that it is depending on. As you can see, there are many options, and you can choose the one that best suits your needs. - -{% callout type="note" title="Storybook Composition" %} -In order to achieve some things mentioned above, you may use [Storybook Composition](/recipes/storybook/storybook-composition-setup). However, in this case, you would still need to build each project’s Storybook individually, and also deploy it individually. So in the cases where you have multiple projects, Storybook Composition would not be very efficient. -{% /callout %} - -Before moving on to the examples section, it could be useful to read the [Library Types](/concepts/more-concepts/library-types) documentation page and the [Grouping libraries](/concepts/more-concepts/grouping-libraries) documentation page. These could help you decide which way fits your use case better. - -## Examples / Use cases - -You can check out the following examples (recipes) to see publishing strategies for Storybook in Nx: - -- [One main Storybook instance for all projects](/recipes/storybook/one-storybook-for-all) -- [One Storybook instance per scope](/recipes/storybook/one-storybook-per-scope) -- [One main Storybook instance using Storybook Composition](/recipes/storybook/one-storybook-with-composition) - -## Conclusion - -In this guide, we have given a direction towards the most efficient way to use Storybook in a Nx workspace, in a way that takes advantage of the all that Nx has to offer. -We have covered the different ways to set up Storybook, and publish it, too. We have also covered the different use cases that apply to each of the solutions. - -If you have any questions or suggestions, please feel free to reach out to us on [GitHub](https://github.com/nrwl/nx), and don't hesitate to ask your questions or share your stories in the [Official Nx Discord Server](https://go.nx.dev/community). - -### Nx & Storybook documentation - -You can find all Storybook-related Nx documentation in the [packages page](/nx-api/storybook). diff --git a/docs/generated/packages/storybook/documents/overview.md b/docs/generated/packages/storybook/documents/overview.md deleted file mode 100644 index e6ae6888497d7..0000000000000 --- a/docs/generated/packages/storybook/documents/overview.md +++ /dev/null @@ -1,266 +0,0 @@ ---- -title: Nx Storybook Plugin Overview -description: This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace. ---- - -[Storybook](https://storybook.js.org) is a development environment for UI components. It allows you to browse a component library, view the different states of each component, and interactively develop and test components. - -This guide will briefly walk you through using Storybook within an Nx workspace. - -## Setting Up Storybook - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/storybook` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/storybook` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/storybook -``` - -This will install the correct version of `@nx/storybook`. - -### How @nx/storybook Infers Tasks - -The `@nx/storybook` plugin will create a task for any project that has a Storybook configuration file present. Any of the following files will be recognized as a Storybook configuration file: - -- `.storybook/main.js` -- `.storybook/main.ts` -- `.storybook/main.cjs` -- `.storybook/main.cts` -- `.storybook/main.mjs` -- `.storybook/main.mts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/storybook Configuration - -The `@nx/storybook/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/storybook/plugin", - "options": { - "buildStorybookTargetName": "build-storybook", - "serveStorybookTargetName": "storybook", - "testStorybookTargetName": "test-storybook", - "staticStorybookTargetName": "static-storybook" - } - } - ] -} -``` - -The `builtStorybookTargetName`, `serveStorybookTargetName`, `testStorybookTargetName` and `staticStorybookTargetName` options control the names of the inferred Storybook tasks. The default names are `build-storybook`, `storybook`, `test-storybook` and `static-storybook`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/storybook` package with your package manager. - -```shell -npm add -D @nx/storybook -``` - -{% /tab %} -{% /tabs %} - -## Using Storybook - -### Generating Storybook Configuration - -You can generate Storybook configuration for an individual project with this command: - -```shell -nx g @nx/storybook:configuration project-name -``` - -or - -{% tabs %} -{% tab label="Angular" %} - -```shell -nx g @nx/angular:storybook-configuration my-angular-project -``` - -{% /tab %} -{% tab label="React" %} - -```shell -nx g @nx/react:storybook-configuration my-react-project -``` - -{% /tab %} -{% tab label="Vue" %} - -```shell -nx g @nx/vue:storybook-configuration my-vue-project -``` - -{% /tab %} -{% tab label="React Native" %} - -```shell -nx g @nx/react-native:storybook-configuration my-react-native-project -``` - -{% /tab %} -{% /tabs %} - -These framework-specific generators will also **generate stories** and interaction tests for you. - -If you are NOT using a framework-specific generator (for [Angular](/nx-api/angular/generators/storybook-configuration), [React](/nx-api/react/generators/storybook-configuration), [React Native](/nx-api/react-native/generators/storybook-configuration), [Vue](/nx-api/vue/generators/storybook-configuration)), in the field `uiFramework` you must choose one of the following Storybook frameworks: - -- `@storybook/angular` -- `@storybook/html-webpack5` -- `@storybook/nextjs` -- `@storybook/preact-webpack5` -- `@storybook/react-webpack5` -- `@storybook/react-vite` -- `@storybook/server-webpack5` -- `@storybook/svelte-webpack5` -- `@storybook/svelte-vite` -- `@storybook/sveltekit` -- `@storybook/vue-webpack5` -- `@storybook/vue-vite` -- `@storybook/vue3-webpack5` -- `@storybook/vue3-vite` -- `@storybook/web-components-webpack5` -- `@storybook/web-components-vite` - -Choosing one of these frameworks will have the following effects on your workspace: - -1. Nx will install all the required Storybook packages that go with it. - -2. Nx will generate a project-level `.storybook` folder (located under `libs/your-project/.storybook` or `apps/your-project/.storybook`) containing the essential configuration files for Storybook. - -3. Nx will create new `targets` in your project's `project.json`, called `storybook`, `test-storybook` and `build-storybook`, containing all the necessary configuration to serve, test and build Storybook. - -Make sure to **use the framework-specific generators** if your project is using Angular, React, Next.js, Vue, Nuxt, or React Native: [`@nx/angular:storybook-configuration`](/nx-api/angular/generators/storybook-configuration), [`@nx/react:storybook-configuration`](/nx-api/react/generators/storybook-configuration), [`@nx/react-native:storybook-configuration`](/nx-api/react-native/generators/storybook-configuration), [`@nx/vue:storybook-configuration`](/nx-api/vue/generators/storybook-configuration) as shown above. - -### Running Storybook - -Serve Storybook using this command: - -```shell -nx run project-name:storybook -``` - -or - -```shell -nx storybook project-name -``` - -### Building Storybook - -Build Storybook using this command: - -```shell -nx run project-name:build-storybook -``` - -or - -```shell -nx build-storybook project-name -``` - -### Testing Storybook - -With the Storybook server running, you can test Storybook (run all the interaction tests) using this command: - -```shell -nx run project-name:test-storybook -``` - -or - -```shell -nx test-storybook project-name -``` - -### Anatomy of the Storybook setup - -When running the Nx Storybook generator, it'll configure the Nx workspace to be able to run Storybook seamlessly. It'll create a project specific Storybook configuration. - -The project-specific Storybook configuration is pretty much similar to what you would have for a non-Nx setup of Storybook. There's a `.storybook` folder within the project root folder. - -```text -/ -├── .storybook/ -│ ├── main.ts -│ └── preview.ts -├── src/ -├── README.md -├── tsconfig.json -├── tsconfig.storybook.json -└── etc... -``` - -### Using Addons - -To register a [Storybook addon](https://storybook.js.org/addons/) for all Storybook instances in your workspace: - -1. In your project's `.storybook/main.ts` file, in the `addons` array of the `module.exports` object, add the new addon: - -```typescript {% fileName="/.storybook/main.ts" %} -import type { StorybookConfig } from '@storybook/react-vite'; - -const config: StorybookConfig = { - ... - addons: ['@storybook/addon-essentials', '@storybook/addon-interactions', ...], - ... -}; - -export default config; -``` - -2. If a decorator is required, in each project's `/.storybook/preview.ts`, you can export an array called `decorators`. - - ```typescript {% fileName="/.storybook/preview.ts" %} - import someDecorator from 'some-storybook-addon'; - export const decorators = [someDecorator]; - ``` - -### Setting up documentation - -To set up documentation, you can use [Storybook Autodocs](https://storybook.js.org/docs/react/writing-docs/autodocs). For Angular, [you can use `compodoc`](/recipes/storybook/angular-storybook-compodoc) to infer `argTypes`. You can read more about `argTypes` in the [official Storybook `argTypes` documentation](https://storybook.js.org/docs/angular/api/argtypes#automatic-argtype-inference). - -You can read more about how to best set up documentation using Storybook for your project in the [official Storybook documentation](https://storybook.js.org/docs/react/writing-docs/introduction). - -## More Documentation - -You can find dedicated information for React and Angular: - -- [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) -- [Set up Storybook for React Projects](/recipes/storybook/overview-react) -- [Set up Storybook for Vue Projects](/recipes/storybook/overview-vue) - -You can find all Storybook-related Nx documentation in the [Storybook recipes section](/recipes/storybook). - -For more on using Storybook, see the [official Storybook documentation](https://storybook.js.org/docs/basics/introduction/). - -### Migration Scenarios - -Here's more information on common migration scenarios for Storybook with Nx. For Storybook specific migrations that are not automatically handled by Nx please refer to the [official Storybook page](https://storybook.js.org/) - -- [Upgrading to Storybook 6](/deprecated/storybook/upgrade-storybook-v6-react) -- [Migrate to the Nx React Storybook Addon](/deprecated/storybook/migrate-webpack-final-react) -- [Storybook 7 migration generator](/nx-api/storybook/generators/migrate-7) -- [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup) - -## Older documentation - -You can find older documentation for the `@nx/storybook` package in our [deprecated section](/deprecated/storybook). diff --git a/docs/generated/packages/storybook/documents/storybook-7-setup.md b/docs/generated/packages/storybook/documents/storybook-7-setup.md deleted file mode 100644 index 773cf00fabfc6..0000000000000 --- a/docs/generated/packages/storybook/documents/storybook-7-setup.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Storybook 7 overview -description: This guide explains how you can set up Storybook version 7 in your Nx workspace. It also highlights the changes that you should expect to see when migrating from Storybook 6 to Storybook 7. ---- - -# Storybook 7 is here - and Nx is ready - -Storybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide). - -Nx provides new generators that allow you to generate Storybook 7 configuration for your projects, by installing the correct dependencies and creating the corresponding version 7 configuration files. Nx also provides a [Storybook 7 migration generator](/nx-api/storybook/generators/migrate-7) that you can use to migrate your existing Storybook configuration to version 7. - -So, let's see how you can use Storybook 7 on your Nx workspace. - -## Migrate your existing workspace to Storybook 7 - -If you already have Storybook configured in your Nx workspace, you can use the [Storybook 7 migrator generator](/nx-api/storybook/generators/migrate-7) to migrate your existing Storybook configuration to version 7. - -## Set up Storybook 7 in a _new_ Nx Workspace - -Please read the [`@nx/storybook` package overview](/nx-api/storybook) to see how you can configure Storybook in your Nx workspace. - -## Changes from the v6.5 Storybook configuration - -The Storybook configuration generated by Nx for Storybook 7 is very similar to the one generated for Storybook 6.5. Here are the new things that you should expect to see: - -### Changes in `.storybook/main.js|ts` file - -- No longer set the `core` field which contains the `builder` option. -- The `framework` field is now mandatory, and it "replaces" the `builder` configuration. You can read more [in the Storybook docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-framework-field). -- Nx no longer adds the `webpackFinal` field to the `.storybook/main.js|ts` files. This is just for the sake of simplicity. You can still edit your webpack configuration by using the `webpackFinal` field, just as you can edit your Vite configuration by using the `viteFinal` field. You can read more about how to customize your webpack configuration [in the Storybook webpack docs](https://storybook.js.org/docs/react/builders/webpack#extending-storybooks-webpack-config), and you can read more about how to customize your Vite configuration [in the Storybook Vite docs](https://storybook.js.org/docs/react/builders/vite#configuration). - -### Changes in the `storybook` and `build-storybook` targets - -- The `uiFramework` field is not needed any more, thus it is not set. Nx was using the `uiFramework` field to load any framework specific options for the Storybook builder. This is no longer needed, since the `framework` set in `.storybook/main.js|ts` takes care of that. -- More options from the Storybook CLI are now exposed in the executors. You can see these in the [`@nx/storybook:storybook`](/nx-api/storybook/executors/storybook) and [`@nx/storybook:build`](/nx-api/storybook/executors/build) executor schemas. You can read more about these options in the [Storybook 7 CLI docs](https://storybook.js.org/docs/7.0/react/api/cli-options). If there's an option you need to pass but it's not in the executor schema, you can always pass it, since the executors are just passing the options to the Storybook CLI. - -## Report any issues and bugs - -Please report any issues and bugs you find [on the Nx GitHub page](https://github.com/nrwl/nx/issues/new/choose) or on the [Storybook GitHub page](https://github.com/storybookjs/storybook/issues/new/choose). diff --git a/docs/generated/packages/storybook/executors/build.json b/docs/generated/packages/storybook/executors/build.json deleted file mode 100644 index 3749dcfeb0b69..0000000000000 --- a/docs/generated/packages/storybook/executors/build.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "name": "build", - "implementation": "/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Storybook Builder", - "cli": "nx", - "description": "Build storybook in production mode.", - "type": "object", - "presets": [ - { "name": "Default minimum setup", "keys": ["outputDir", "configDir"] } - ], - "properties": { - "outputDir": { - "type": "string", - "description": "Directory where to store built files.", - "x-completion-type": "directory" - }, - "styles": { - "type": "array", - "description": "Global styles to be included in the build.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { "type": "string", "description": "The file to include." } - ] - } - }, - "stylePreprocessorOptions": { - "type": "object", - "description": "Options to pass to style preprocessors.", - "properties": { - "includePaths": { - "type": "array", - "description": "The paths to include. Paths will be resolved to workspace root.", - "items": { "type": "string" } - } - } - }, - "docsMode": { - "type": "boolean", - "description": "Build a documentation-only site using addon-docs.", - "default": false - }, - "staticDir": { - "type": "array", - "description": "Directory where to load static files from, array of strings.", - "items": { "type": "string" }, - "x-deprecated": "In Storybook 6.4 the `--static-dir` CLI flag has been replaced with the the `staticDirs` field in `.storybook/main.js`. It will be removed completely in Storybook 7.0." - }, - "configDir": { - "type": "string", - "description": "Directory where to load Storybook configurations from.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "loglevel": { - "type": "string", - "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", - "pattern": "(silly|verbose|info|warn|silent)" - }, - "quiet": { - "type": "boolean", - "description": "Suppress verbose build output." - }, - "docs": { - "type": "boolean", - "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation." - }, - "webpackStatsJson": { - "type": ["boolean", "string"], - "description": "Write Webpack Stats JSON to disk.", - "default": false - }, - "debugWebpack": { - "type": "boolean", - "description": "Display final webpack configurations for debugging purposes." - }, - "disableTelemetry": { - "type": "boolean", - "description": "Disables Storybook's telemetry." - } - }, - "definitions": { - "extraEntryPoint": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file" - }, - "bundleName": { - "type": "string", - "pattern": "^[\\w\\-.]*$", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { "type": "string", "description": "The file to include." } - ] - } - }, - "additionalProperties": true, - "required": ["configDir"], - "examplesFile": "---\ntitle: Storybook builder executor examples\ndescription: This page contains examples for the @nx/storybook:build executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"ui\": {\n \"targets\": {\n //...\n \"build-storybook\": {\n \"executor\": \"@nx/storybook:build\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ui\",\n \"configDir\": \"libs/ui/.storybook\"\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n }\n}\n```\n\n```bash\nnx run ui:build-storybook\n```\n\n## Examples\n\n### For non-Angular projects\n\n{% tabs %}\n{% tab label=\"Working in docsMode\" %}\n\nYou can work in docs mode, building a documentation-only site, by setting the `docsMode` option to `true` and using the `@storybook/addon-docs` addon.\n\nRead more on the [Storybook documentation page for `addon-docs`](https://storybook.js.org/addons/@storybook/addon-docs).\n\n```json\n\"storybook\": {\n \"executor\": \"@nx/storybook:build\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"docsMode\": true\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n\n### For Angular projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Angular projects using Storybook. You can see that it uses the native `@storybook/angular:build-storybook` executor. You can read more about the configuration options at the relevant [Storybook documentation page](https://storybook.js.org/docs/angular/get-started/install).\n\n```json\n\"build-storybook\": {\n \"executor\": \"@storybook/angular:build-storybook\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ngapp\",\n \"configDir\": \"apps/ngapp/.storybook\",\n \"browserTarget\": \"ngapp:build\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Changing the browserTarget\" %}\n\nYou can set the `browserTarget` to use `build-storybook` as the builder. This is most useful in the cases where your project does not have a `build` target. Read more about the `browserTarget` in the [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) recipe.\n\n```json\n\"build-storybook\": {\n \"executor\": \"@storybook/angular:build-storybook\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ngapp\",\n \"configDir\": \"apps/ngapp/.storybook\",\n \"browserTarget\": \"ngapp:build-storybook\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Adding styles\" %}\n\nYou can add paths to stylesheets to be included in the Storybook build by using the `styles` array. You can also add `stylePreprocessorOptions`, much like you would do in the Angular builder. You can read more in our guide about [styles and preprocessor options for Storybook](/recipes/storybook/angular-configuring-styles).\n\n```json\n\"build-storybook\": {\n \"executor\": \"@storybook/angular:build-storybook\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ngapp\",\n \"configDir\": \"apps/ngapp/.storybook\",\n \"browserTarget\": \"ngapp:build-storybook\",\n \"compodoc\": false,\n \"styles\": [\"some-styles.css\"],\n \"stylePreprocessorOptions\": {\n \"includePaths\": [\"some-style-paths\"]\n }\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" - }, - "description": "Build Storybook.", - "aliases": [], - "hidden": false, - "path": "/packages/storybook/src/executors/build-storybook/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/storybook/executors/storybook.json b/docs/generated/packages/storybook/executors/storybook.json deleted file mode 100644 index dc136a96ea138..0000000000000 --- a/docs/generated/packages/storybook/executors/storybook.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "name": "storybook", - "implementation": "/packages/storybook/src/executors/storybook/storybook.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Storybook Dev Builder", - "cli": "nx", - "description": "Serve up Storybook in development mode.", - "type": "object", - "presets": [ - { "name": "Default minimum setup", "keys": ["port", "configDir"] } - ], - "properties": { - "port": { - "type": "number", - "description": "Port to listen on.", - "default": 9009 - }, - "previewUrl": { "type": "string", "description": "Preview URL." }, - "host": { "type": "string", "description": "Host to listen on." }, - "staticDir": { - "type": "array", - "description": "Directory where to load static files from, array of strings.", - "items": { "type": "string" }, - "x-deprecated": "In Storybook 6.4 the `--static-dir` CLI flag has been replaced with the the `staticDirs` field in `.storybook/main.js`. It will be removed completely in Storybook 7.0." - }, - "configDir": { - "type": "string", - "description": "Directory where to load Storybook configurations from.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "https": { - "type": "boolean", - "description": "Serve Storybook over HTTPS. Note: You must provide your own certificate information.", - "default": false - }, - "open": { - "type": "boolean", - "description": "Open browser window automatically." - }, - "ci": { - "type": "boolean", - "description": "CI mode (skip interactive prompts, don't open browser).", - "default": false - }, - "loglevel": { - "type": "string", - "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", - "pattern": "(silly|verbose|info|warn|silent)" - }, - "quiet": { - "type": "boolean", - "description": "Suppress verbose build output." - }, - "docs": { - "type": "boolean", - "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation." - }, - "docsMode": { - "type": "boolean", - "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation.", - "default": false - }, - "uiFramework": { - "type": "string", - "description": "Storybook framework npm package.", - "enum": [ - "@storybook/react", - "@storybook/html", - "@storybook/web-components", - "@storybook/vue", - "@storybook/vue3", - "@storybook/svelte" - ], - "x-deprecated": "Upgrade to Storybook 7." - }, - "webpackStatsJson": { - "type": ["boolean", "string"], - "description": "Write Webpack Stats JSON to disk.", - "default": false - }, - "sslCa": { - "type": "string", - "description": "Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)." - }, - "sslCert": { - "type": "string", - "description": "Provide an SSL certificate. (Required with --https)." - }, - "sslKey": { - "type": "string", - "description": "Provide an SSL key. (Required with --https)." - }, - "smokeTest": { - "type": "boolean", - "description": "Exit after successful start." - }, - "noOpen": { - "type": "boolean", - "description": "Do not open Storybook automatically in the browser." - }, - "debugWebpack": { - "type": "boolean", - "description": "Display final webpack configurations for debugging purposes." - }, - "disableTelemetry": { - "type": "boolean", - "description": "Disables Storybook's telemetry." - } - }, - "additionalProperties": true, - "definitions": {}, - "required": ["configDir"], - "examplesFile": "---\ntitle: Storybook dev server executor examples\ndescription: This page contains examples for the @nx/storybook:storybook executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"ui\": {\n \"targets\": {\n //...\n \"storybook\": {\n \"executor\": \"@nx/storybook:storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\"\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n },\n }\n}\n```\n\n```bash\nnx run ui:storybook\n```\n\n## Examples\n\n### For non-Angular projects\n\n{% tabs %}\n{% tab label=\"Working in docsMode\" %}\n\nYou can work in docs mode, building a documentation-only site, by setting the `docsMode` option to `true` and using the `@storybook/addon-docs` addon.\n\nRead more on the [Storybook documentation page for `addon-docs`](https://storybook.js.org/addons/@storybook/addon-docs).\n\n```json\n\"storybook\": {\n \"executor\": \"@nx/storybook:storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"docsMode\": true\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n\n### For Angular projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Angular projects using Storybook. You can see that it uses the native `@storybook/angular:start-storybook` executor. You can read more about the configuration options at the relevant [Storybook documentation page](https://storybook.js.org/docs/angular/get-started/install).\n\n```json\n\"storybook\": {\n \"executor\": \"@storybook/angular:start-storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"browserTarget\": \"ui:build\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n},\n```\n\n{% /tab %}\n{% tab label=\"Changing the browserTarget\" %}\n\nYou can set the `browserTarget` to use `build-storybook` as the builder. This is most useful in the cases where your project does not have a `build` target. Read more about the `browserTarget` in the [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) recipe.\n\n```json\n\"storybook\": {\n \"executor\": \"@storybook/angular:start-storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"browserTarget\": \"ui:build-storybook\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n},\n```\n\n{% /tab %}\n\n{% tab label=\"Adding styles\" %}\n\nYou can add paths to stylesheets to be included in the Storybook build by using the `styles` array. You can also add `stylePreprocessorOptions`, much like you would do in the Angular builder. You can read more in our guide about [styles and preprocessor options for Storybook](/recipes/storybook/angular-configuring-styles).\n\n```json\n\"storybook\": {\n \"executor\": \"@storybook/angular:start-storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"browserTarget\": \"ui:build\",\n \"compodoc\": false,\n \"styles\": [\"some-styles.css\"],\n \"stylePreprocessorOptions\": {\n \"includePaths\": [\"some-style-paths\"]\n }\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n},\n```\n\n{% /tab %}\n\n{% /tabs %}\n" - }, - "description": "Serve Storybook.", - "aliases": [], - "hidden": false, - "path": "/packages/storybook/src/executors/storybook/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/storybook/generators/configuration.json b/docs/generated/packages/storybook/generators/configuration.json deleted file mode 100644 index 7feb6d1797475..0000000000000 --- a/docs/generated/packages/storybook/generators/configuration.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "name": "configuration", - "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxStorybookConfigure", - "title": "Storybook Configuration", - "description": "Add Storybook configuration to a UI library or an application.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "alias": ["configureTestRunner"], - "default": true - }, - "configureCypress": { - "type": "boolean", - "description": "Run the cypress-configure generator.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "cypressDirectory": { - "type": "string", - "description": "A directory where the Cypress project will be placed. Added at root by default.", - "x-deprecated": "Use interactionTests instead. This option will be removed in v19." - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript story files rather than TypeScript story files.", - "default": false - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": true, - "x-priority": "important" - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "configureStaticServe": { - "type": "boolean", - "description": "Add a static-storybook to serve the static storybook built files.", - "default": false - }, - "uiFramework": { - "type": "string", - "description": "Storybook UI Framework to use.", - "enum": [ - "@storybook/angular", - "@storybook/html-webpack5", - "@storybook/nextjs", - "@storybook/preact-webpack5", - "@storybook/react-webpack5", - "@storybook/react-vite", - "@storybook/server-webpack5", - "@storybook/svelte-webpack5", - "@storybook/svelte-vite", - "@storybook/sveltekit", - "@storybook/vue-webpack5", - "@storybook/vue-vite", - "@storybook/vue3-webpack5", - "@storybook/vue3-vite", - "@storybook/web-components-webpack5", - "@storybook/web-components-vite" - ], - "aliases": ["storybook7UiFramework"], - "x-prompt": "Choose the Storybook framework that you need to use.", - "x-priority": "important", - "hidden": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project", "uiFramework"], - "examplesFile": "---\ntitle: Storybook configuration generator examples\ndescription: This page contains examples for the @nx/storybook:configuration generator.\n---\n\nThis is a framework-agnostic generator for setting up Storybook configuration for a project.\n\n```bash\nnx g @nx/storybook:configuration\n```\n\n{% callout type=\"info\" title=\"Nx uses Storybook 7\" %}\nNx does not support Storybook v6 any more. So, Nx will configure your project to use Storybook v7. If you are not on Storybook 7 yet, please migrate. Please follow our [Storybook 7 migration generator](/packages/storybook/generators/migrate-7) guide.\n{% /callout %}\n\nIf you are using Angular, React, Next.js, Vue or React Native in your project, it's best to use the framework specific Storybook configuration generator:\n\n- [React Storybook Configuration Generator](/nx-api/react/generators/storybook-configuration) (React and Next.js projects)\n\n- [Angular Storybook Configuration Generator](/nx-api/angular/generators/storybook-configuration)\n\n- [React Native Storybook Configuration Generator](/nx-api/react-native/generators/storybook-configuration)\n\n- [Vue Storybook Configuration Generator](/nx-api/vue/generators/storybook-configuration)\n\nIf you are not using one of the framework-specific generators mentioned above, when running this generator you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- The `uiFramework` you want to use. Supported values are:\n - `@storybook/angular`\n - `@storybook/html-webpack5`\n - `@storybook/nextjs`\n - `@storybook/preact-webpack5`\n - `@storybook/react-webpack5`\n - `@storybook/react-vite`\n - `@storybook/server-webpack5`\n - `@storybook/svelte-webpack5`\n - `@storybook/svelte-vite`\n - `@storybook/sveltekit`\n - `@storybook/vue-webpack5`\n - `@storybook/vue-vite`\n - `@storybook/vue3-webpack5`\n - `@storybook/vue3-vite`\n - `@storybook/web-components-webpack5`\n - `@storybook/web-components-vite`\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/angular/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests).\n\nYou must provide a `name` and a `uiFramework` for the generator to work.\n\nYou can read more about how this generator works, in the [Storybook package overview page](/packages/storybook#generating-storybook-configuration).\n\n## Examples\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/storybook:configuration ui --uiFramework=@storybook/web-components-vite --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", - "presets": [] - }, - "description": "Add Storybook configuration to a UI library or an application.", - "hidden": false, - "implementation": "/packages/storybook/src/generators/configuration/configuration#configurationGeneratorInternal.ts", - "aliases": [], - "path": "/packages/storybook/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/storybook/generators/cypress-project.json b/docs/generated/packages/storybook/generators/cypress-project.json deleted file mode 100644 index cf1579a86e212..0000000000000 --- a/docs/generated/packages/storybook/generators/cypress-project.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "cypress-project", - "factory": "./src/generators/cypress-project/cypress-project", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "cypress-configure", - "title": "Cypress Configuration", - "description": "Add cypress E2E app to test a ui library that is set up for Storybook.", - "type": "object", - "properties": { - "name": { - "type": "string", - "aliases": ["project", "projectName"], - "description": "Project for which to generate the cypress E2E app.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate the Cypress E2E app?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "directory": { - "type": "string", - "description": "A directory where the project is placed." - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "ciTargetName": { - "type": "string", - "description": "The name of the devServerTarget to use for the Cypress CI configuration. Used to control if using :static-storybook:ci or :storybook:ci", - "x-priority": "internal" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Add cypress e2e app to test a UI library that is set up for Storybook.", - "hidden": false, - "implementation": "/packages/storybook/src/generators/cypress-project/cypress-project.ts", - "aliases": [], - "path": "/packages/storybook/src/generators/cypress-project/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/storybook/generators/init.json b/docs/generated/packages/storybook/generators/init.json deleted file mode 100644 index 8f90f047a9b0f..0000000000000 --- a/docs/generated/packages/storybook/generators/init.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#initGeneratorInternal", - "schema": { - "cli": "nx", - "title": "Add Storybook Configuration to the workspace", - "description": "Add Storybook Configuration to the workspace.", - "$id": "init-storybook-plugin", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "presets": [] - }, - "description": "Add Storybook configuration to the workspace.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/storybook/src/generators/init/init#initGeneratorInternal.ts", - "path": "/packages/storybook/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/storybook/generators/migrate-7.json b/docs/generated/packages/storybook/generators/migrate-7.json deleted file mode 100644 index 441de62d77fa9..0000000000000 --- a/docs/generated/packages/storybook/generators/migrate-7.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "migrate-7", - "factory": "./src/generators/migrate-7/migrate-7", - "schema": { - "cli": "nx", - "title": "Migrate Storybook to version 7.", - "description": "Migrate Storybook to version 7.", - "$id": "migrate-7", - "type": "object", - "properties": { - "autoAcceptAllPrompts": { - "type": "boolean", - "description": "Say yes to all the prompts from the Storybook CLI migration scripts.", - "default": false - }, - "onlyShowListOfCommands": { - "type": "boolean", - "description": "Only show the steps that you need to follow in order to migrate. This does NOT make any changes to your code.", - "default": false - }, - "noUpgrade": { - "type": "boolean", - "description": "Skip upgrading Storybook packages. Only use this option if you are already on version 7, and you do not want the latest beta.", - "default": false - }, - "onlyPrepare": { - "type": "boolean", - "description": "Only run the Nx scripts that will prepare your Storybook configuration files for the Storybook CLI automigration.", - "default": false - }, - "afterMigration": { - "type": "boolean", - "description": "Only run the Nx post-migration scripts that make the final adjustments to your workspace.", - "default": false - } - }, - "examplesFile": "---\ntitle: Storybook 7 Migration Generator Examples\ndescription: This page contains examples for the @nx/storybook:migrate-7 generator.\n---\n\n{% callout type=\"info\" title=\"Setting up Storybook 7 in a new workspace\" %}\nFor setting up Storybook version 7 in a new Nx workspace, or a workspace that does NOT already have Storybook configured already, please refer to our [Storybook 7 setup guide](/packages/storybook/documents/storybook-7-setup).\n{% /callout %}\n\nStorybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide).\n\nYou can now migrate your existing Nx workspace with Storybook configuration to use Storybook version 7. To help you, Nx offers the `@nx/storybook:migrate-7` generator. This generator will help you migrate your existing Storybook setup to version 7.\n\n## How to use it\n\nJust call:\n\n```bash\nnpx nx g @nx/storybook:migrate-7\n```\n\n{% callout type=\"warning\" title=\"Commit your changes\" %}\nIt is advised that you start with a clean git history before running this generator, since it is going to be making lots of changes to your workspace.\n{% /callout %}\n\nYou can run this generator using the above command, without passing any options. This will start the migration process for all your projects that have Storybook configured. The logs will explain what is happening in every step, and the logs are mixed Nx and Storybook CLI logs. During the process you will be prompted by the Storybook CLI to accept the automigration scripts. You can read more about that in the next section.\n\nWhen the generator finishes, you will see a summary of the changes that were made to your workspace, and it will also create a new file, called `storybook-migration-summary.md` at the root of your project, which will contain a list of all the changes that were made to your workspace.\n\n### Accept the automigration prompts\n\nThe Storybook CLI (running through our generator) will prompt you to run some code generators and modifiers.\n\nYou can say `yes` to these prompts, which are usually the following (there may be more or less, depending on your setup,\nand depending on the latest versions of the Storybook CLI - this code is NOT managed by Nx, but by Storybook):\n\n- `mainjsFramework`: It will try to add the `framework` field in your project's `.storybook/main.js|ts` file.\n- `eslintPlugin`: installs the `eslint-plugin-storybook`\n- `newFrameworks`: removes unused dependencies (eg. `@storybook/builder-webpack5`, `@storybook/manager-webpack5`, `@storybook/builder-vite`)\n- `autodocsTrue`: adds `autodocs: true` to your project's `.storybook/main.js|ts` file\n\n### Check the result\n\nOnce the generator finishes, and the Storybook CLI automigration scripts have run, you should check the result. Examples of migrated `.storybook/main.js|ts` files would look like this:\n\n#### Full example for Angular projects\n\nHere is an example of a project-level `.storybook/main.js|ts` file for an Angular project that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-angular-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/angular',\n options: {},\n },\n};\n\nexport default config;\n```\n\n#### Full example for React projects with Vite\n\nHere is an example of a project-level `.storybook/main.js|ts` file for a React project using Vite that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-react-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/react-vite',\n options: {\n builder: {\n viteConfigPath: 'apps/rv1/vite.config.ts',\n },\n },\n },\n};\n\nexport default config;\n```\n\n### Make sure that all works by running Storybook\n\nYou can now use Storybook 7! 🎉\n\n```bash\nnpx nx build-storybook PROJECT_NAME\n```\n\nand\n\n```bash\nnpx nx storybook PROJECT_NAME\n```\n\n## Run the generator by automatically accepting the Storybook CLI prompts\n\nYou can run the generator with the `--autoAcceptAllPrompts` flag, which will automatically accept all the Storybook CLI prompts. This is useful if you want to run the generator in a CI environment, or if you want to run the generator in a script. Or if you are sure that you want to accept all the prompts!\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --autoAcceptAllPrompts\n```\n\nThe Storybook CLI may still ask you about some things, but mostly it should just run the whole migration suite uninterrupted.\n\n## Run the migration manually\n\nNx gives you the ability to run all the migration steps one by one, manually, but still with the help of our migrator. To help you out with the commands that you need to run, Nx will print out the instructions if you run the generator with the `--onlyShowListOfCommands` flag, like this:\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands\n```\n\nEssentially, the way to run the migration manually is the following:\n\n1. Call the Nx generator to show you the list of commands:\n `npx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands`\n2. Call the Storybook upgrade script:\n `npx storybook@latest upgrade`\n3. Call the Nx generator to prepare your files for migration. The steps are explained in [Step 02](#step-02) above.\n `nx g @nx/storybook:migrate-7 --onlyPrepare`\n4. Call the Storybook automigrate scripts for each one of the projects using Storybook (the `@nx/storybook:migrate-7` will give you the list of all the commands)\n5. Call the Nx generator to finish the migration. The steps are explained in [Step 04](#step-04) above.\n `nx g @nx/storybook:migrate-7 --afterMigration`\n\n## How the generator works under the hood\n\nNow let's see how the `@nx/storybook:migrate-7` generator works under the hood. It essentially does the following things:\n\n### Step 01\n\nIt calls the Storybook CLI upgrade script:\n\n```bash\nnpx storybook@latest upgrade\n```\n\nThis script will upgrade your Storybook dependencies to the latest version, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 02\n\nIt prepares all your project-level `.storybook/main.js|ts` files, so that\nthe Storybook automigration scripts can run successfully. This means that it makes the following adjustments to your files:\n\n- Remove the \"`as StorybookConfig`\" typecast from the `.storybook/main.ts` files, if you have any `.storybook/main.ts` files with typecast, since it is not needed any more\n- Remove the \"`path.resolve`\" calls from the Next.js Storybook configuration in project-level `.storybook/main.js|ts` files, if it exists, since it breaks the Storybook automigration scripts\n\n### Step 03\n\nIt calls the Storybook CLI automigrate script, for each one of your projects that have Storybook configured. It does that by passing the `--config-dir` flag and the `--renderer` flag, for each one of your projects that has Storybook configured. An example command would look like this:\n\n```bash\nnpx storybook@latest automigrate --config-dir apps/my-react-app/.storybook --renderer @storybook/react\n```\n\nThis script will make changes to your Storybook configuration files, and other changes to your repository, to make it work for Storybook 7, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 04\n\nAfter the Storybook CLI automigrate scripts have run, some additional adjustments are made to your workspace, to make sure that everything is working as expected. These adjustments are as follows:\n\n- Remove the \"`vite-tsconfig-paths`\" plugin from the Storybook configuration files for Vite projects, since it's no longer needed in v7\n- Add the \"`viteConfigPath`\" option to the Storybook builder options for Vite projects, since now Storybook needs the path to the Vite config file\n- Change the import package for the `StorybookConfig` type to be framework specific (e.g. from `@storybook/common` to `@storybook/react-vite` for React projects using Vite)\n- Add the \"`lit`\" package to your workspace, if you are using Web Components\n- Remove the \"`uiFramework`\" option from your project's Storybook targets\n\nOur generator is based on the guide to migration using the Storybook CLI, sp please refer to the [Storybook 7 migration guide](https://chromatic-ui.notion.site/Storybook-7-migration-guide-dbf41fa347304eb2a5e9c69b34503937) for more information.\n\n## I am not on Nx 15.9.0 yet but I still want to migrate to Storybook 7\n\nYou can migrate to Storybook 7 by just using the [Storybook `upgrade` and `automigrate` scripts](https://storybook.js.org/docs/7.0/react/configure/upgrading), but you will have to manually point the `automigrate` script to each one of your projects using Storybook, explained in [Step 03](#step-03) above.\n\nFirst, you would have to run the `npx storybook@latest upgrade` to get the latest versions of all the `@storybook/*` packages. Then, for each one of your projects that use Storybook, you would have to run `npx storybook@latest automigrate --config-dir /.storybook --renderer @storybook/`.\n\nThe `@nx/storybook:migrate-7` generator helps you by figuring out all the project paths and the renderers that need to be passed in the `automigrate` script, and also by performing a number of adjustments to your code to make sure the migration scripts run smoothly, so it is recommended to use the generator instead of running the scripts manually.\n\n## Report any issues and bugs\n\nPlease report any issues and bugs you find [on the Nx GitHub page](https://github.com/nrwl/nx/issues/new/choose) or on the [Storybook GitHub page](https://github.com/storybookjs/storybook/issues/new/choose).\n", - "presets": [] - }, - "description": "Migrate to Storybook version 7.", - "hidden": false, - "implementation": "/packages/storybook/src/generators/migrate-7/migrate-7.ts", - "aliases": [], - "path": "/packages/storybook/src/generators/migrate-7/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vite/documents/overview.md b/docs/generated/packages/vite/documents/overview.md deleted file mode 100644 index 213af2813321b..0000000000000 --- a/docs/generated/packages/vite/documents/overview.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Overview of the Nx Vite Plugin -description: The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace. ---- - -The Nx plugin for [Vite](https://vitejs.dev/) and [Vitest](https://vitest.dev/). - -[Vite.js](https://vitejs.dev/) is a build tool that aims to provide a faster and leaner development experience for modern web projects. - -Why should you use this plugin? - -- Instant dev server start -- Lightning fast Hot-Module Reloading -- _Fast_ builds using Vite. -- Vite-powered tests with smart and instant watch mode - -Read more about Vite and Vitest in the [Vite documentation](https://vitejs.dev/). - -## Setting up a new Nx workspace with @nx/vite - -Here's an example on how to create a new React app with Vite - -```shell -npx create-nx-workspace@latest --preset=react-standalone --bundler=vite -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/vite` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/vite` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/vite -``` - -This will install the correct version of `@nx/vite`. - -### How @nx/vite Infers Tasks - -The `@nx/vite` plugin will create a task for any project that has a Vite configuration file present. Any of the following files will be recognized as a Vite configuration file: - -- `vite.config.js` -- `vite.config.ts` -- `vite.config.mjs` -- `vite.config.mts` -- `vite.config.cjs` -- `vite.config.cts` -- `vitest.config.js` -- `vitest.config.ts` -- `vitest.config.mjs` -- `vitest.config.mts` -- `vitest.config.cjs` -- `vitest.config.cts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/vite Configuration - -The `@nx/vite/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/vite/plugin", - "options": { - "buildTargetName": "build", - "previewTargetName": "preview", - "testTargetName": "test", - "serveTargetName": "serve", - "serveStaticTargetName": "serve-static" - } - } - ] -} -``` - -The `buildTargetName`, `previewTargetName`, `testTargetName`, `serveTargetName` and `serveStaticTargetName` options control the names of the inferred Vite tasks. The default names are `build`, `preview`, `test`, `serve` and `serve-static`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/vite` package with your package manager. - -```shell -npm add -D @nx/vite -``` - -{% /tab %} -{% /tabs %} - -## Using @nx/vite - -### Generate a new project using Vite - -You can generate a [React](/nx-api/react) application or library or a [Web](/nx-api/web) application that uses Vite.js. The [`@nx/react:app`](/nx-api/react/generators/application), [`@nx/react:lib`](/nx-api/react/generators/library) and [`@nx/web:app`](/nx-api/web/generators/application) generators accept the `bundler` option, where you can pass `vite`. This will generate a new application configured to use Vite.js, and it will also install all the necessary dependencies, including the `@nx/vite` plugin. - -To generate a React application using Vite.js, run the following: - -```bash -nx g @nx/react:app my-app --bundler=vite -``` - -To generate a React library using Vite.js, run the following: - -```bash -nx g @nx/react:lib my-lib --bundler=vite -``` - -To generate a Web application using Vite.js, run the following: - -```bash -nx g @nx/web:app my-app --bundler=vite -``` - -### Modify an existing React or Web project to use Vite.js - -You can use the `@nx/vite:configuration` generator to change your React or Web project to use Vite.js. This generator will modify your project's configuration to use Vite.js, and it will also install all the necessary dependencies, including the `@nx/vite` plugin.. - -You can read more about this generator on the [`@nx/vite:configuration`](/nx-api/vite/generators/configuration) generator page. diff --git a/docs/generated/packages/vite/executors/build.json b/docs/generated/packages/vite/executors/build.json deleted file mode 100644 index 6351ec0e8eb9b..0000000000000 --- a/docs/generated/packages/vite/executors/build.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "build", - "implementation": "/packages/vite/src/executors/build/build.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Vite Prod Builder", - "cli": "nx", - "description": "Builds a Vite.js application for production.", - "type": "object", - "presets": [{ "name": "Default minimum setup", "keys": [] }], - "properties": { - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - }, - "skipTypeCheck": { - "type": "boolean", - "description": "Skip type-checking via TypeScript. Skipping type-checking speeds up the build but type errors are not caught.", - "default": false - }, - "tsConfig": { - "type": "string", - "description": "The path to custom tsconfig file for type-checking when skipTypeCheck is false. Required when tsconfig file is not at the projectRoot level.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json" - }, - "configFile": { - "type": "string", - "description": "The name of the Vite.js configuration file.", - "x-completion-type": "file", - "x-completion-glob": "vite.config.@(js|ts)" - }, - "watch": { - "description": "Enable re-building when files change.", - "oneOf": [{ "type": "boolean" }, { "type": "object" }], - "default": false - }, - "generatePackageJson": { - "description": "Generate a package.json for the build output.", - "type": "boolean" - }, - "includeDevDependenciesInPackageJson": { - "description": "Include devDependencies in the generated package.json.", - "type": "boolean" - } - }, - "definitions": {}, - "required": [], - "examplesFile": "---\ntitle: Examples for the Vite builder executor\ndescription: This page contains examples for the Vite @nx/vite:build executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/vite:build\",\n //...\n //...\n \"options\": {\n \"outputPath\": \"dist/apps/my-app\"\n },\n //...\n }\n },\n }\n}\n```\n\n```bash\nnx serve my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Set a custom path for vite.config.ts\" %}\n\nNx will automatically look in the root of your application for a `vite.config.ts` (or a `vite.config.js`) file. If you want to use a different path, you can set it in your `project.json` file, in the `build` target options:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/vite:build\",\n //...\n \"options\": {\n \"outputPath\": \"dist/apps/my-app\",\n \"configFile\": \"apps/my-app/vite.config.other-path.ts\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\nor even\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/vite:build\",\n //...\n \"options\": {\n \"outputPath\": \"dist/apps/my-app\",\n \"configFile\": \"vite.config.base.ts\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" - }, - "description": "Build with Vite.", - "aliases": [], - "hidden": false, - "path": "/packages/vite/src/executors/build/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/vite/executors/dev-server.json b/docs/generated/packages/vite/executors/dev-server.json deleted file mode 100644 index 7cba326d7d13b..0000000000000 --- a/docs/generated/packages/vite/executors/dev-server.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "dev-server", - "implementation": "/packages/vite/src/executors/dev-server/dev-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Vite Dev Server", - "cli": "nx", - "description": "Starts a dev server using Vite.", - "type": "object", - "presets": [ - { "name": "Default minimum setup", "keys": ["buildTarget"] }, - { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } - ], - "properties": { - "buildTarget": { - "type": "string", - "description": "Target which builds the application. Only used to retrieve the configuration as the dev-server does not build the code.", - "x-priority": "important" - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately.", - "default": true - }, - "proxyConfig": { - "type": "string", - "description": "Path to the proxy configuration file.", - "x-completion-type": "file" - } - }, - "definitions": {}, - "required": ["buildTarget"], - "examplesFile": "---\ntitle: Examples for the Vite dev server executor\ndescription: This page contains examples for the Vite @nx/vite:dev-server executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/vite:dev-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n```bash\nnx serve my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Set up a custom port\" %}\n\nYou can always set the port in your `vite.config.ts` file. However, you can also set it directly in your `project.json` file, in the `serve` target options:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/vite:dev-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"port\": 4200,\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Specify a proxyConfig\" %}\n\nYou can specify a proxy config by pointing to the path of your proxy configuration file:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/vite:dev-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"proxyConfig\": \"apps/my-app/proxy.conf.json\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" - }, - "description": "Vite dev server.", - "aliases": [], - "hidden": false, - "path": "/packages/vite/src/executors/dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/vite/executors/preview-server.json b/docs/generated/packages/vite/executors/preview-server.json deleted file mode 100644 index 155c06d5acc3d..0000000000000 --- a/docs/generated/packages/vite/executors/preview-server.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "preview-server", - "implementation": "/packages/vite/src/executors/preview-server/preview-server.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "cli": "nx", - "title": "Vite Preview Server", - "description": "Preview Server for Vite.", - "type": "object", - "presets": [ - { "name": "Default minimum setup", "keys": ["buildTarget"] }, - { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } - ], - "properties": { - "buildTarget": { - "type": "string", - "description": "Target which builds the application." - }, - "proxyConfig": { - "type": "string", - "description": "Path to the proxy configuration file.", - "x-completion-type": "file" - }, - "staticFilePath": { - "type": "string", - "description": "Path where the build artifacts are located. If not provided then it will be infered from the buildTarget executor options as outputPath", - "x-completion-type": "directory" - } - }, - "definitions": {}, - "required": ["buildTarget"], - "examplesFile": "---\ntitle: Examples for the Vite preview server executor\ndescription: This page contains examples for the Vite @nx/vite:preview-server executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"preview\": {\n \"executor\": \"@nx/vite:preview-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n```bash\nnx preview my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Set up a custom port\" %}\n\nYou can always set the port in your `vite.config.ts` file. However, you can also set it directly in your `project.json` file, in the `preview` target options:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"preview\": {\n \"executor\": \"@nx/vite:preview-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"port\": 4200,\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Specify a proxyConfig\" %}\n\nYou can specify a proxy config by pointing to the path of your proxy configuration file:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"preview\": {\n \"executor\": \"@nx/vite:preview-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"proxyConfig\": \"apps/my-app/proxy.conf.json\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" - }, - "description": "Vite preview server", - "aliases": [], - "hidden": false, - "path": "/packages/vite/src/executors/preview-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/vite/executors/test.json b/docs/generated/packages/vite/executors/test.json deleted file mode 100644 index fce5afcbd1f4f..0000000000000 --- a/docs/generated/packages/vite/executors/test.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "test", - "implementation": "/packages/vite/src/executors/test/vitest.impl.ts", - "schema": { - "$schema": "https://json-schema.org/schema", - "version": 2, - "cli": "nx", - "title": "Vitest executor", - "description": "Test using Vitest.", - "type": "object", - "properties": { - "configFile": { - "type": "string", - "description": "The path to the local vitest config", - "x-completion-type": "file", - "x-completion-glob": "@(vitest|vite).config@(.js|.ts)", - "aliases": ["config"] - }, - "reportsDirectory": { - "type": "string", - "description": "Directory to write coverage report to." - }, - "mode": { "type": "string", "description": "Mode for Vite." }, - "testFiles": { - "aliases": ["testFile"], - "type": "array", - "items": { "type": "string" } - }, - "watch": { - "description": "Watch files for changes and rerun tests related to changed files.", - "type": "boolean" - } - }, - "required": [], - "examplesFile": "---\ntitle: Examples for the Vitest executor\ndescription: This page contains examples for the Vitest @nx/vite:test executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"test\": {\n \"executor\": \"@nx/vite:test\",\n //...\n //...\n \"options\": {\n \"config\": \"apps/my-app/vite.config.ts\"\n }\n //...\n }\n }\n}\n```\n\n```bash\nnx test my-app\n```\n\n## Examples\n\n{% tabs %}\n\n{% tab label=\"Running in watch mode\" %}\nTo run testing in watch mode, you can create a new configuration within your test target, and have watch set to true. For example:\n\n```json\n\"my-app\": {\n \"targets\": {\n //...\n \"test\": {\n \"executor\": \"@nx/vite:test\",\n //...\n //...\n \"options\": {\n \"config\": \"apps/my-app/vite.config.ts\"\n },\n \"configurations\": {\n \"watch\": {\n \"watch\": true\n }\n }\n }\n }\n}\n```\n\nAnd then run `nx run my-app:test:watch`.\n\nAlternatively, you can just run the default test target with the `--watch` flag preset, like so:\n\n```bash\nnx run my-app:test --watch\n```\n\n{% /tab %}\n{% tab label=\"Updating snapshots\" %}\nWhenever a test fails because of an outdated snapshot, you can tell vitest to update them with the following:\n\n```bash\nnx run my-app:test -u\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Test with Vitest", - "aliases": [], - "hidden": false, - "path": "/packages/vite/src/executors/test/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/vite/generators/configuration.json b/docs/generated/packages/vite/generators/configuration.json deleted file mode 100644 index 52caa18226535..0000000000000 --- a/docs/generated/packages/vite/generators/configuration.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "configuration", - "factory": "./src/generators/configuration/configuration#viteConfigurationGeneratorInternal", - "schema": { - "cli": "nx", - "title": "Configure a project to use Vite.js.", - "description": "Configure a project to use Vite.js.", - "$id": "configure-vite-project", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "argv", "index": 0 }, - "aliases": ["name", "projectName"], - "x-dropdown": "project", - "x-prompt": "What is the name of the project to set up Vite for?" - }, - "includeLib": { - "type": "boolean", - "description": "Add a library build option and skip the server option.", - "hidden": true - }, - "includeVitest": { - "type": "boolean", - "description": "Use vitest for the test suite." - }, - "uiFramework": { - "type": "string", - "description": "UI Framework to use for Vite.", - "enum": ["react", "none"], - "default": "none", - "x-prompt": "What UI framework plugin should Vite use?" - }, - "compiler": { - "type": "string", - "description": "Compiler to use for Vite when UI Framework is React.", - "enum": ["babel", "swc"], - "default": "babel" - }, - "newProject": { - "type": "boolean", - "description": "Is this a new project?", - "default": false, - "hidden": true - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "testEnvironment": { - "description": "The vitest environment to use. See https://vitest.dev/config/#environment.", - "type": "string", - "enum": ["node", "jsdom", "happy-dom", "edge-runtime"], - "default": "jsdom" - } - }, - "examplesFile": "---\ntitle: Examples for the Vite configuration generator\ndescription: This page contains examples for the Vite @nx/vite:configuration generator, which helps you set up Vite on your Nx workspace, or convert an existing project to use Vite.\n---\n\nThis generator is used for converting an existing React or Web project to use [Vite.js](https://vitejs.dev/).\n\nIt will create a `vite.config.ts` file at the root of your project with the correct settings, or if there's already a `vite.config.ts` file, it will modify it to include the correct settings.\n\n{% callout type=\"caution\" title=\"Your code will be modified!\" %}\nThis generator will modify your code, so make sure to commit your changes before running it.\n{% /callout %}\n\n```bash\nnx g @nx/vite:configuration\n```\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `project`, as the name of the project you want to generate the configuration for.\n- The `uiFramework` you want to use. Supported values are: `react` and `none`.\n\nYou must provide a `project` and a `uiFramework` for the generator to work.\n\nYou may also pass the `includeVitest` flag. This will also configure your project for testing with [Vitest](https://vitest.dev/), by adding the `test` configuration in your `vite.config.ts` file.\n\n## How to use\n\nIf you have an existing project that does not use Vite, you may want to convert it to use Vite. This can be a `webpack` project, a buildable JS library that uses the `@nx/js:babel`, the `@nx/js:swc` or the `@nx/rollup:rollup` executor, or even a non-buildable library.\nBy default, the `@nx/vite:configuration` generator will search your project to find the relevant configuration (either a `webpack.config.ts` file for example, or the `@nx/js` executors). If it determines that your project can be converted, then Nx will generate the configuration for you. If it cannot determine that your project can be converted, it will ask you if you want to convert it anyway or throw an error if it determines that it cannot be converted.\n\nYou can then test on your own if the result works or not, and modify the configuration as needed. It's suggested that you commit your changes before running the generator, so you can revert the changes if needed.\n\n## Projects that can be converted to use the `@nx/vite` executors\n\nUsually, React and Web projects generated with the `@nx/react` and the `@nx/web` generators can be converted to use the `@nx/vite` executors without any issues.\n\nThe list of executors for building, testing and serving that can be converted to use the `@nx/vite` executors is:\n\n### Supported `build` executors\n\n- `@nxext/vite:build`\n- `@nx/js:babel`\n- `@nx/js:swc`\n- `@nx/rollup:rollup`\n- `@nx/webpack:webpack`\n- `@nx/web:rollup`\n\n### Unsupported executors\n\n- `@nx/angular:ng-packagr-lite`\n- `@nx/angular:package`\n- `@nx/angular:webpack-browser`\n- `@angular-devkit/build-angular:browser`\n- `@angular-devkit/build-angular:dev-server`\n- `@nx/esbuild:esbuild`\n- `@nx/react-native:start`\n- `@nx/next:build`\n- `@nx/next:server`\n- `@nx/js:tsc`\n- any executor _not_ listed in the lists of \"supported executors\"\n- any project that does _not_ have a target for building, serving or testing\n\nWe **cannot** guarantee that projects using unsupported executors - _or any executor that is NOT listed in the list of \"supported executors\"_ - for either building, testing or serving will work correctly when converted to use Vite.\n\nYou can read more in the [Vite package overview page](/packages/vite).\n\n## Examples\n\n### Convert a React app to use Vite\n\n```bash\nnx g @nx/vite:configuration --project=my-react-app --uiFramework=react --includeVitest\n```\n\nThis will configure the `my-react-app` project to use Vite.\n\n### Convert a Web app to use Vite\n\n```bash\nnx g @nx/vite:configuration --project=my-web-app --uiFramework=none --includeVitest\n```\n\nThis will configure the `my-web-app` project to use Vite.\n", - "presets": [] - }, - "description": "Add Vite configuration to an application.", - "aliases": ["config"], - "hidden": false, - "implementation": "/packages/vite/src/generators/configuration/configuration#viteConfigurationGeneratorInternal.ts", - "path": "/packages/vite/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vite/generators/init.json b/docs/generated/packages/vite/generators/init.json deleted file mode 100644 index b1948fddc6e4d..0000000000000 --- a/docs/generated/packages/vite/generators/init.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#initGeneratorInternal", - "schema": { - "cli": "nx", - "title": "Initialize Vite in the workspace.", - "description": "Initialize Vite in the workspace.", - "$id": "init-vite-plugin", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "presets": [] - }, - "description": "Initialize Vite in the workspace.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/vite/src/generators/init/init#initGeneratorInternal.ts", - "path": "/packages/vite/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vite/generators/vitest.json b/docs/generated/packages/vite/generators/vitest.json deleted file mode 100644 index 1ce2e8f96f47d..0000000000000 --- a/docs/generated/packages/vite/generators/vitest.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "vitest", - "factory": "./src/generators/vitest/vitest-generator#vitestGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "Vitest", - "title": "Vitest", - "type": "object", - "description": "Generate a Vitest setup for a project.", - "properties": { - "project": { - "type": "string", - "description": "The name of the project to test.", - "$default": { "$source": "projectName" } - }, - "uiFramework": { - "type": "string", - "enum": ["react", "none"], - "default": "none", - "description": "UI framework to use with vitest." - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "Do not generate separate spec files and set up in-source testing." - }, - "skipViteConfig": { - "type": "boolean", - "default": false, - "description": "Skip generating a vite config file." - }, - "coverageProvider": { - "type": "string", - "enum": ["v8", "istanbul", "custom"], - "default": "v8", - "description": "Coverage provider to use." - }, - "testTarget": { - "type": "string", - "description": "The test target of the project to be transformed to use the @nx/vite:test executor.", - "hidden": true - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "testEnvironment": { - "description": "The vitest environment to use. See https://vitest.dev/config/#environment.", - "type": "string", - "enum": ["node", "jsdom", "happy-dom", "edge-runtime"] - } - }, - "required": ["project"], - "presets": [] - }, - "description": "Generate a vitest configuration", - "implementation": "/packages/vite/src/generators/vitest/vitest-generator#vitestGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/vite/src/generators/vitest/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/documents/overview.md b/docs/generated/packages/vue/documents/overview.md deleted file mode 100644 index 2497250925b77..0000000000000 --- a/docs/generated/packages/vue/documents/overview.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Overview of the Nx Vue Plugin -description: The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace. ---- - -The Nx plugin for [Vue](https://vuejs.org/). - -## Setting Up @nx/vue - -### Generating a new Workspace - -To create a new workspace with Vue, run `npx create-nx-workspace@latest --preset=vue`. - -{% callout type="note" title="Vue Standalone Tutorial" %} -For a full tutorial experience, follow the [Vue Standalone Tutorial](/getting-started/tutorials/vue-standalone-tutorial) -{% /callout %} - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/vue` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/vue` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/vue -``` - -This will install the correct version of `@nx/vue`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/vue` package with your package manager. - -```shell {% skipRescope=true %} -npm add -D @nx/vue -``` - -{% /tab %} -{% /tabs %} - -## Using the @nx/vue Plugin - -### Generate a new project using Vue - -To generate a Vue application, run the following: - -```shell -nx g @nx/vue:app my-app -``` - -To generate a Vue library, run the following: - -```shell -nx g @nx/vue:lib my-lib -``` - -## More Documentation - -- [Vue Standalone Tutorial](/getting-started/tutorials/vue-standalone-tutorial) diff --git a/docs/generated/packages/vue/generators/application.json b/docs/generated/packages/vue/generators/application.json deleted file mode 100644 index 847a7685a4963..0000000000000 --- a/docs/generated/packages/vue/generators/application.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxVueApp", - "title": "Create a Vue Application", - "description": "Create a Vue application for Nx.", - "examples": [ - { - "command": "nx g app myapp --directory=myorg/myapp", - "description": "Generate `apps/myorg/myapp` and `apps/myorg/myapp-e2e`" - }, - { - "command": "nx g app myapp --routing", - "description": "Set up Vue Router" - } - ], - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "alias": "s", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - }, - { "value": "none", "label": "None" } - ] - } - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "routing": { - "type": "boolean", - "description": "Generate application with routes.", - "x-prompt": "Would you like to add Vue Router to this application?", - "default": false - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["vitest", "none"], - "description": "Test runner to use for unit tests.", - "x-prompt": "Which unit test runner would you like to use?", - "default": "vitest" - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "description": "Test runner to use for end to end (E2E) tests.", - "x-prompt": "Which E2E test runner would you like to use?", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting).", - "alias": "t" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "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 - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "rootProject": { - "description": "Create a application at the root of the workspace", - "type": "boolean", - "default": false, - "hidden": true - } - }, - "required": ["name"], - "examplesFile": "---\ntitle: Vue application generator examples\ndescription: This page contains examples for the @nx/vue:app generator.\n---\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```shell\nnx g @nx/vue:app my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Specify directory and style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g @nx/vue:app my-app --directory=apps/my-dir/my-app --style=scss\n```\n\n{% /tab %}\n\n{% tab label=\"Add tags\" %}\n\nAdd tags to the application (used for linting).\n\n```shell\nnx g @nx/vue:app my-app --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["app"], - "description": "Create a Vue application.", - "implementation": "/packages/vue/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/vue/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/generators/component.json b/docs/generated/packages/vue/generators/component.json deleted file mode 100644 index 1103adece43a1..0000000000000 --- a/docs/generated/packages/vue/generators/component.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "component", - "factory": "./src/generators/component/component#componentGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxVueComponent", - "title": "Create a Vue Component", - "description": "Create a Vue Component for Nx.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/vue:component --directory=my-app/src/app/one --name=one --nameAndDirectoryFormat=as-provided --unitTestRunner=vitest", - "description": "Generate a component in the `my-app` application" - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "alias": "p", - "$default": { "$source": "projectName" }, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." - }, - "name": { - "type": "string", - "description": "The name of the component.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the component?", - "x-priority": "important" - }, - "nameAndDirectoryFormat": { - "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "skipTests": { - "type": "boolean", - "description": "When true, does not create `spec.ts` test files for the new component.", - "default": false, - "x-priority": "internal" - }, - "directory": { - "type": "string", - "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", - "alias": "dir", - "x-priority": "important" - }, - "flat": { - "type": "boolean", - "description": "Create component at the source root rather than its own directory.", - "default": false, - "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "export": { - "type": "boolean", - "description": "When true, the component is exported from the project `index.ts` (if it exists).", - "alias": "e", - "default": false, - "x-prompt": "Should this component be exported in the project?" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false, - "x-deprecated": "Provide the desired `name` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "pascalCaseDirectory": { - "type": "boolean", - "description": "Use pascal case directory name (e.g. `App/App.tsx`).", - "alias": "R", - "default": false, - "x-deprecated": "Provide the desired `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." - }, - "routing": { - "type": "boolean", - "description": "Generate a library with routes." - }, - "fileName": { - "type": "string", - "description": "Create a component with this file name." - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["c"], - "x-type": "component", - "description": "Create a Vue component.", - "implementation": "/packages/vue/src/generators/component/component#componentGeneratorInternal.ts", - "hidden": false, - "path": "/packages/vue/src/generators/component/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/generators/init.json b/docs/generated/packages/vue/generators/init.json deleted file mode 100644 index 85678a1aa0b86..0000000000000 --- a/docs/generated/packages/vue/generators/init.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxVueInit", - "title": "Init Vue Plugin", - "description": "Initialize a Vue Plugin.", - "cli": "nx", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nx/vue` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/vue/src/generators/init/init.ts", - "path": "/packages/vue/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/generators/library.json b/docs/generated/packages/vue/generators/library.json deleted file mode 100644 index 4d3ada2060201..0000000000000 --- a/docs/generated/packages/vue/generators/library.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "name": "library", - "factory": "./src/generators/library/library#libraryGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxVueLibrary", - "title": "Create a Vue Library", - "description": "Create a Vue Library for an Nx workspace.", - "type": "object", - "examples": [ - { - "command": "nx g lib mylib --directory=libs/mylib", - "description": "Generate `libs/mylib`" - }, - { - "command": "nx g lib mylib --appProject=myapp", - "description": "Generate a library with routes and add them to `myapp`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Library name", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the library?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", - "x-priority": "important" - }, - "directory": { - "type": "string", - "description": "A directory where the lib is placed.", - "alias": "dir", - "x-priority": "important" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "unitTestRunner": { - "type": "string", - "enum": ["vitest", "none"], - "description": "Test runner to use for unit tests.", - "x-prompt": "What unit test runner should be used?" - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files." - }, - "tags": { - "type": "string", - "description": "Add tags to the library (used for linting).", - "alias": "t" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipTsConfig": { - "type": "boolean", - "default": false, - "description": "Do not update `tsconfig.json` for development experience.", - "x-priority": "internal" - }, - "pascalCaseFiles": { - "type": "boolean", - "description": "Use pascal case component file name (e.g. `App.tsx`).", - "alias": "P", - "default": false - }, - "routing": { - "type": "boolean", - "description": "Generate library with routes." - }, - "appProject": { - "type": "string", - "description": "The application project to add the library route to.", - "alias": "a" - }, - "publishable": { - "type": "boolean", - "description": "Create a publishable library." - }, - "importPath": { - "type": "string", - "description": "The library name used to import it, like `@myorg/my-awesome-lib`." - }, - "component": { - "type": "boolean", - "description": "Generate a default component.", - "default": false - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "strict": { - "type": "boolean", - "description": "Whether to enable tsconfig strict mode or not.", - "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 - }, - "bundler": { - "type": "string", - "description": "The bundler to use. Choosing 'none' means this library is not buildable.", - "enum": ["none", "vite"], - "default": "none", - "x-prompt": "Which bundler would you like to use to build the library? Choose 'none' to skip build setup.", - "x-priority": "important" - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "minimal": { - "description": "Create a Vue library with a minimal setup, no separate test files.", - "type": "boolean", - "default": false - } - }, - "required": ["name"], - "presets": [] - }, - "aliases": ["lib"], - "x-type": "library", - "description": "Create a Vue library.", - "implementation": "/packages/vue/src/generators/library/library#libraryGeneratorInternal.ts", - "hidden": false, - "path": "/packages/vue/src/generators/library/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/generators/setup-tailwind.json b/docs/generated/packages/vue/generators/setup-tailwind.json deleted file mode 100644 index 7e9ded504e91e..0000000000000 --- a/docs/generated/packages/vue/generators/setup-tailwind.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "setup-tailwind", - "factory": "./src/generators/setup-tailwind/setup-tailwind", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxVueTailwindSetupGenerator", - "title": "Configures Tailwind CSS for an application or a library.", - "description": "Adds the Tailwind CSS configuration files for a given Vue project and installs, if needed, the packages required for Tailwind CSS to work.", - "type": "object", - "examples": [ - { - "command": "nx g setup-tailwind --project=my-app", - "description": "Initialize Tailwind configuration for the `my-app` project." - } - ], - "properties": { - "project": { - "type": "string", - "description": "The name of the project to add the Tailwind CSS setup for.", - "alias": "p", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "projects", - "x-prompt": "What project would you like to add the Tailwind CSS setup?", - "x-priority": "important" - }, - "skipFormat": { - "type": "boolean", - "description": "Skips formatting the workspace after the generator completes.", - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "stylesheet": { - "type": "string", - "description": "Path to the styles entry point relative to the workspace root. This option is only needed if the stylesheet location cannot be found automatically." - } - }, - "additionalProperties": false, - "required": ["project"], - "presets": [] - }, - "description": "Set up Tailwind configuration for a project.", - "implementation": "/packages/vue/src/generators/setup-tailwind/setup-tailwind.ts", - "aliases": [], - "hidden": false, - "path": "/packages/vue/src/generators/setup-tailwind/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/generators/stories.json b/docs/generated/packages/vue/generators/stories.json deleted file mode 100644 index 203f783bf2cbe..0000000000000 --- a/docs/generated/packages/vue/generators/stories.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "stories", - "factory": "./src/generators/stories/stories", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxVueStorybookStories", - "title": "Generate Vue Storybook stories", - "description": "Generate stories/specs for all components declared in a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate stories.", - "$default": { "$source": "projectName", "index": 0 }, - "x-prompt": "For which project do you want to generate stories?", - "x-priority": "important" - }, - "generateCypressSpecs": { - "type": "boolean", - "description": "Automatically generate `*.spec.ts` files in the cypress e2e app generated by the cypress-configure generator." - }, - "cypressProject": { - "type": "string", - "description": "The Cypress project to generate the stories under. This is inferred from `project` by default." - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "default": true - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript files rather than TypeScript files.", - "default": false - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "required": ["project"], - "examplesFile": "---\ntitle: Stories generator examples\ndescription: This page contains examples for the @nx/vue:stories generator.\n---\n\nThis generator will generate stories for all your components in your project. The stories will be generated using [Component Story Format 3 (CSF3)](https://storybook.js.org/blog/storybook-csf3-is-here/).\n\nYou can also use this generator to generate stories for your **Nuxt** project:\n\n```bash\nnx g @nx/vue:stories project-name\n```\n\nor\n\n```bash\nnx g @nx/nuxt:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Vue overview page](/recipes/storybook/overview-vue#auto-generate-stories).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/vue:stories --name=ui --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*\n```\n\nThis will generate stories for all the components in the `ui` project, except for the ones in the `libs/ui/src/not-stories` directory, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/vue:stories --name=ui --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n", - "presets": [] - }, - "description": "Create stories for all components declared in an app or library.", - "hidden": false, - "implementation": "/packages/vue/src/generators/stories/stories.ts", - "aliases": [], - "path": "/packages/vue/src/generators/stories/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/vue/generators/storybook-configuration.json b/docs/generated/packages/vue/generators/storybook-configuration.json deleted file mode 100644 index 51a35e1d5fd95..0000000000000 --- a/docs/generated/packages/vue/generators/storybook-configuration.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "storybook-configuration", - "factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxVueStorybookConfigure", - "title": "Vue Storybook Configure", - "description": "Set up Storybook for a Vue project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "aliases": ["name", "projectName"], - "description": "Project for which to generate Storybook configuration.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "For which project do you want to generate Storybook configuration?", - "x-dropdown": "projects", - "x-priority": "important" - }, - "interactionTests": { - "type": "boolean", - "description": "Set up Storybook interaction tests.", - "x-prompt": "Do you want to set up Storybook interaction tests?", - "x-priority": "important", - "alias": ["configureTestRunner"], - "default": true - }, - "generateStories": { - "type": "boolean", - "description": "Automatically generate `*.stories.ts` files for components declared in this project?", - "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", - "default": true, - "x-priority": "important" - }, - "configureStaticServe": { - "type": "boolean", - "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", - "x-prompt": "Configure a static file server for the storybook instance?", - "default": true, - "x-priority": "important" - }, - "js": { - "type": "boolean", - "description": "Generate JavaScript story files rather than TypeScript story files.", - "default": false - }, - "tsConfiguration": { - "type": "boolean", - "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", - "default": true - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "ignorePaths": { - "type": "array", - "description": "Paths to ignore when looking for components.", - "items": { "type": "string", "description": "Path to ignore." }, - "default": [ - "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" - ], - "examples": [ - "apps/my-app/src/not-stories/**", - "**/**/src/**/not-stories/**", - "libs/my-lib/**/*.something.ts", - "**/**/src/**/*.other.*", - "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" - ] - } - }, - "required": ["project"], - "examplesFile": "---\ntitle: Storybook configuration generator examples\ndescription: This page contains examples for the @nx/vue:storybook-configuration generator.\n---\n\nThis generator will set up Storybook for your **Vue** project. You can also use this generator to generate Storybook configuration for your **Nuxt** project.\n\n```bash\nnx g @nx/vue:storybook-configuration project-name\n```\n\nor\n\n```bash\nnx g @nx/nuxt:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Vue overview page](/recipes/storybook/overview-vue#generate-storybook-configuration-for-a-vue-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/vue/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/vue:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/vue:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/vue:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/vue:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", - "presets": [] - }, - "description": "Set up storybook for a Vue app or library.", - "hidden": false, - "implementation": "/packages/vue/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts", - "aliases": [], - "path": "/packages/vue/src/generators/storybook-configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/web/documents/overview.md b/docs/generated/packages/web/documents/overview.md deleted file mode 100644 index e8cb9ed81a549..0000000000000 --- a/docs/generated/packages/web/documents/overview.md +++ /dev/null @@ -1,121 +0,0 @@ -The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides: - -- Integration with libraries such as Jest, Cypress, and Storybook. -- Scaffolding for creating buildable libraries that can be published to npm. -- Utilities for automatic workspace refactoring. - -## Setting Up @nx/web - -### Generating a new Workspace - -To create a new workspace with React, run `npx create-nx-workspace@latest --preset=web-components`. - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/web` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/web` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/web -``` - -This will install the correct version of `@nx/web`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/web` package with your package manager. - -```shell -npm add -D @nx/web -``` - -{% /tab %} -{% /tabs %} - -## Using the @nx/web Plugin - -### Creating Applications - -You can add a new application with the following: - -```shell -nx g @nx/web:app my-new-app -``` - -The application uses no framework and generates with web components. You can add any framework you want on top of the default setup. - -To start the application in development mode, run `nx serve my-new-app`. - -{% callout type="note" title="React" %} -If you are looking to add a React application, check out the [React plugin](/nx-api/react). -{% /callout %} - -### Creating Libraries - -To create a generic TypeScript library (i.e. non-framework specific), use the [`@nx/js`](/nx-api/js) plugin. - -```shell -nx g @nx/js:lib my-new-lib - -# If you want the library to be publishable to npm -nx g @nx/js:lib my-new-lib \ ---publishable \ ---importPath=@myorg/my-new-lib -``` - -## Using Web - -### Testing Projects - -You can run unit tests with: - -```shell -nx test my-new-app -nx test my-new-lib -``` - -Replace `my-new-app` with the name or your project. This command works for both applications and libraries. - -You can also run E2E tests for applications: - -```shell -nx e2e my-new-app-e2e -``` - -Replace `my-new-app-e2e` with the name or your project with `-e2e` appended. - -### Building Projects - -React applications can be build with: - -```shell -nx build my-new-app -``` - -And if you generated a library with `--buildable`, then you can build a library as well: - -```shell -nx build my-new-lib -``` - -The output is in the `dist` folder. You can customize the output folder by setting `outputPath` in the project's `project.json` file. - -The application in `dist` is deployable, and you can try it out locally with: - -```shell -npx http-server dist/apps/my-new-app -``` - -The library in `dist` is publishable to npm or a private registry. - -## More Documentation - -- [Using Cypress](/nx-api/cypress) -- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/web/executors/file-server.json b/docs/generated/packages/web/executors/file-server.json deleted file mode 100644 index 9644492d70079..0000000000000 --- a/docs/generated/packages/web/executors/file-server.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "name": "file-server", - "implementation": "/packages/web/src/executors/file-server/file-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "File Server", - "description": "Serve a web application from a folder.", - "type": "object", - "cli": "nx", - "properties": { - "buildTarget": { - "type": "string", - "description": "Target which builds the application." - }, - "parallel": { - "type": "boolean", - "description": "Build the target in parallel.", - "default": true - }, - "maxParallel": { - "type": "number", - "description": "Max number of parallel jobs." - }, - "port": { - "type": "number", - "description": "Port to listen on.", - "default": 4200 - }, - "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`." - }, - "proxyUrl": { - "type": "string", - "description": "URL to proxy unhandled requests to." - }, - "proxyOptions": { - "type": "object", - "description": "Options for the proxy used by `http-server`.", - "default": {}, - "properties": { "secure": { "type": "boolean", "default": false } }, - "additionalProperties": true - }, - "watch": { - "type": "boolean", - "description": "Watch for file changes.", - "default": true - }, - "spa": { - "type": "boolean", - "description": "Redirect 404 errors to index.html (useful for SPA's)", - "default": false, - "x-priority": "important" - }, - "staticFilePath": { - "type": "string", - "description": "Path where the build artifacts are located. If not provided then it will be infered from the buildTarget executor options as outputPath" - }, - "cors": { - "type": "boolean", - "description": "Enable CORS", - "default": true - }, - "gzip": { - "type": "boolean", - "description": "Enable gzip compression", - "default": false - }, - "brotli": { - "type": "boolean", - "description": "Enable brotli compression", - "default": false - }, - "cacheSeconds": { - "type": "number", - "description": "Set cache time (in seconds) for cache-control max-age header. To disable caching, use -1. Caching defaults to disabled.", - "default": -1 - } - }, - "additionalProperties": false, - "presets": [] - }, - "description": "Serve a web application from a folder.", - "aliases": [], - "hidden": false, - "path": "/packages/web/src/executors/file-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/web/generators/application.json b/docs/generated/packages/web/generators/application.json deleted file mode 100644 index 758b8e14e75e6..0000000000000 --- a/docs/generated/packages/web/generators/application.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "name": "application", - "factory": "./src/generators/application/application#applicationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "cli": "nx", - "$id": "NxWebApp", - "title": "Create a Web Application for Nx", - "description": "Create a web application using `swc` or `babel` as compiler.", - "type": "object", - "properties": { - "name": { - "description": "The name of the application.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the application?", - "pattern": "^[a-zA-Z][^:]*$" - }, - "directory": { - "description": "The directory of the new application.", - "type": "string" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - } - ] - } - }, - "compiler": { - "type": "string", - "description": "The compiler to use", - "enum": ["swc", "babel"], - "default": "swc", - "x-priority": "important" - }, - "bundler": { - "type": "string", - "description": "The bundler to use.", - "enum": ["webpack", "none", "vite"], - "default": "webpack", - "x-prompt": "Which bundler do you want to use?", - "x-priority": "important" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint", "none"], - "default": "eslint" - }, - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "unitTestRunner": { - "type": "string", - "enum": ["jest", "vitest", "none"], - "description": "Test runner to use for unit tests. Default value is 'jest' when using 'webpack' or 'none' as the bundler and 'vitest' when using 'vite' as the bundler" - }, - "inSourceTests": { - "type": "boolean", - "default": false, - "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files." - }, - "e2eTestRunner": { - "type": "string", - "enum": ["cypress", "playwright", "none"], - "x-prompt": "Which E2E test runner would you like to use?", - "description": "Test runner to use for end to end (e2e) tests", - "default": "cypress" - }, - "tags": { - "type": "string", - "description": "Add tags to the application (used for linting)" - }, - "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 - }, - "standaloneConfig": { - "description": "Split the project configuration into `/project.json` rather than including it inside workspace.json", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - } - }, - "required": ["name"], - "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/web:application my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Application using Vite as bundler\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/web:app my-app --bundler=vite\n```\n\nWhen choosing `vite` as the bundler, your unit tests will be set up with `vitest`, unless you choose `none` for `unitTestRunner`.\n\n{% /tab %}\n\n{% tab label=\"Specify directory\" %}\n\nCreate an application named `my-app` in the `my-dir` directory:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/web:app my-app --directory=apps/my-dir/my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Add tags\" %}\n\nAdd tags to the application (used for linting).\n\n```bash\nnx g @nx/web:app my-app --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", - "presets": [] - }, - "aliases": ["app"], - "x-type": "application", - "description": "Create an web application.", - "implementation": "/packages/web/src/generators/application/application#applicationGeneratorInternal.ts", - "hidden": false, - "path": "/packages/web/src/generators/application/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/web/generators/init.json b/docs/generated/packages/web/generators/init.json deleted file mode 100644 index 1d9572ca8b95d..0000000000000 --- a/docs/generated/packages/web/generators/init.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#webInitGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWebInit", - "cli": "nx", - "title": "Init Web Plugin", - "description": "Init Web Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Add `@nrwl/web` to a project.", - "hidden": true, - "implementation": "/packages/web/src/generators/init/init#webInitGenerator.ts", - "aliases": [], - "path": "/packages/web/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/web/generators/static-config.json b/docs/generated/packages/web/generators/static-config.json deleted file mode 100644 index a68ada04f1aec..0000000000000 --- a/docs/generated/packages/web/generators/static-config.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "static-config", - "factory": "./src/generators/static-serve/static-serve-configuration", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWebStaticServe", - "cli": "nx", - "title": "Static Serve Configuration", - "description": "Add a new serve target to serve a build apps static files. This allows for faster serving of the static build files by reusing the case. Helpful when reserving the app over and over again like in e2e tests.", - "type": "object", - "properties": { - "buildTarget": { - "type": "string", - "description": "Name of the build target to serve" - }, - "outputPath": { - "type": "string", - "description": "Path to the directory of the built files. This is only needed if buildTarget doesn't specify an outputPath executor option." - }, - "targetName": { - "type": "string", - "description": "Name of the serve target to add. Defaults to 'serve-static'.", - "default": "serve-static" - } - }, - "required": ["buildTarget"], - "presets": [] - }, - "description": "Add a new static-serve target to a project.", - "implementation": "/packages/web/src/generators/static-serve/static-serve-configuration.ts", - "aliases": [], - "hidden": false, - "path": "/packages/web/src/generators/static-serve/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/webpack/documents/overview.md b/docs/generated/packages/webpack/documents/overview.md deleted file mode 100644 index 01232924bef21..0000000000000 --- a/docs/generated/packages/webpack/documents/overview.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Overview of the Nx Webpack Plugin -description: The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack. ---- - -The Nx plugin for [webpack](https://webpack.js.org/). - -[Webpack](https://webpack.js.org/) is a static module bundler for modern JavaScript applications. The `@nx/webpack` plugin provides executors that allow you to build and serve your projects using webpack, plus an executor for SSR. - -Nx now allows you to [customize your webpack configuration](/recipes/webpack/webpack-config-setup) for your projects. And we also offer [a number of webpack plugins](/recipes/webpack/webpack-plugins) for supporting Nx and other frameworks. - -## Setting up a new Nx workspace with Webpack - -You can create a new workspace that uses Webpack with one of the following commands: - -- Generate a new standalone React app set up with Webpack - -```shell -npx create-nx-workspace@latest --preset=react-standalone --bundler=webpack -``` - -- Generate a new React monorepo set up with Webpack - -```shell -npx create-nx-workspace@latest --preset=react-monorepo --bundler=webpack -``` - -### Installation - -{% callout type="note" title="Keep Nx Package Versions In Sync" %} -Make sure to install the `@nx/webpack` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). -{% /callout %} - -In any Nx workspace, you can install `@nx/webpack` by running the following command: - -{% tabs %} -{% tab label="Nx 18+" %} - -```shell {% skipRescope=true %} -nx add @nx/webpack -``` - -This will install the correct version of `@nx/webpack`. - -### How @nx/webpack Infers Tasks - -The `@nx/webpack` plugin will create a task for any project that has a Webpack configuration file present. Any of the following files will be recognized as a Webpack configuration file: - -- `webpack.config.js` -- `webpack.config.ts` -- `webpack.config.mjs` -- `webpack.config.mts` -- `webpack.config.cjs` -- `webpack.config.cts` - -### View Inferred Tasks - -To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. - -### @nx/webpack Configuration - -The `@nx/webpack/plugin` is configured in the `plugins` array in `nx.json`. - -```json {% fileName="nx.json" %} -{ - "plugins": [ - { - "plugin": "@nx/webpack/plugin", - "options": { - "buildTargetName": "build", - "previewTargetName": "preview", - "serveTargetName": "serve", - "serveStaticTargetName": "serve-static" - } - } - ] -} -``` - -The `buildTargetName`, `previewTargetName`, `serveTargetName` and `serveStaticTargetName` options control the names of the inferred Webpack tasks. The default names are `build`, `preview`, `serve` and `serve-static`. - -{% /tab %} -{% tab label="Nx < 18" %} - -Install the `@nx/webpack` package with your package manager. - -```shell -npm add -D @nx/webpack -``` - -{% /tab %} -{% /tabs %} - -## Generate a new project using Webpack - -You can generate a [React](/nx-api/react) application or a [Web](/nx-api/web) application that uses Webpack in an existing Nx workspace. The [`@nx/react:app`](/nx-api/react/generators/application), [`@nx/node:app`](/nx-api/node/generators/application) and [`@nx/web:app`](/nx-api/web/generators/application) generators accept the `bundler` option, where you can pass `webpack`. This will generate a new application configured to use Webpack, and it will also install all the necessary dependencies, including the `@nx/webpack` plugin. - -To generate a React application using Webpack, run the following: - -```bash -nx g @nx/react:app my-app --bundler=webpack -``` - -To generate a Node application using Webpack, run the following: - -```bash -nx g @nx/node:app my-app --bundler=webpack -``` - -To generate a Web application using Webpack, run the following: - -```bash -nx g @nx/web:app my-app --bundler=webpack -``` diff --git a/docs/generated/packages/webpack/executors/dev-server.json b/docs/generated/packages/webpack/executors/dev-server.json deleted file mode 100644 index 0af520cc77016..0000000000000 --- a/docs/generated/packages/webpack/executors/dev-server.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "dev-server", - "implementation": "/packages/webpack/src/executors/dev-server/dev-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Webpack dev server", - "description": "Serve an application using webpack.", - "cli": "nx", - "type": "object", - "properties": { - "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`." - }, - "baseHref": { - "type": "string", - "description": "Base url for the application being built." - } - }, - "presets": [] - }, - "description": "Serve a web application.", - "aliases": [], - "hidden": false, - "path": "/packages/webpack/src/executors/dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/webpack/executors/ssr-dev-server.json b/docs/generated/packages/webpack/executors/ssr-dev-server.json deleted file mode 100644 index df39c24c4174a..0000000000000 --- a/docs/generated/packages/webpack/executors/ssr-dev-server.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "ssr-dev-server", - "implementation": "/packages/webpack/src/executors/ssr-dev-server/ssr-dev-server.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Webpack SSR Dev Server", - "description": "Serve a SSR application using webpack.", - "cli": "nx", - "type": "object", - "properties": { - "browserTarget": { - "type": "string", - "description": "Target which builds the browser application.", - "x-priority": "important" - }, - "serverTarget": { - "type": "string", - "description": "Target which builds the server application.", - "x-priority": "important" - }, - "port": { - "type": "number", - "description": "The port to be set on `process.env.PORT` for use in the server.", - "default": 4200, - "x-priority": "important" - }, - "browserTargetOptions": { - "type": "object", - "description": "Additional options to pass into the browser build target.", - "default": {} - }, - "serverTargetOptions": { - "type": "object", - "description": "Additional options to pass into the server build target.", - "default": {} - } - }, - "required": ["browserTarget", "serverTarget"], - "presets": [] - }, - "description": "Serve a SSR application.", - "aliases": [], - "hidden": false, - "path": "/packages/webpack/src/executors/ssr-dev-server/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/webpack/executors/webpack.json b/docs/generated/packages/webpack/executors/webpack.json deleted file mode 100644 index 5ca86abced7fb..0000000000000 --- a/docs/generated/packages/webpack/executors/webpack.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "name": "webpack", - "implementation": "/packages/webpack/src/executors/webpack/webpack.impl.ts", - "schema": { - "version": 2, - "outputCapture": "direct-nodejs", - "title": "Webpack builder", - "description": "Build a project using webpack.", - "cli": "nx", - "type": "object", - "properties": { - "crossOrigin": { - "type": "string", - "description": "The `crossorigin` attribute to use for generated javascript script tags. One of 'none' | 'anonymous' | 'use-credentials'." - }, - "main": { - "type": "string", - "description": "The name of the main entry-point file.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.js|.ts|.tsx)", - "x-priority": "important" - }, - "tsConfig": { - "type": "string", - "description": "The name of the Typescript configuration file.", - "x-completion-type": "file", - "x-completion-glob": "tsconfig.*.json", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "description": "The compiler to use.", - "enum": ["babel", "swc", "tsc"] - }, - "outputPath": { - "type": "string", - "description": "The output path of the generated files.", - "x-completion-type": "directory", - "x-priority": "important" - }, - "target": { - "type": "string", - "alias": "platform", - "description": "Target platform for the build, same as the Webpack target option.", - "enum": ["node", "web", "webworker"] - }, - "deleteOutputPath": { - "type": "boolean", - "description": "Delete the output path before building.", - "default": true - }, - "watch": { - "type": "boolean", - "description": "Enable re-building when files change." - }, - "baseHref": { - "type": "string", - "description": "Base url for the application being built." - }, - "deployUrl": { - "type": "string", - "description": "URL where the application will be deployed." - }, - "vendorChunk": { - "type": "boolean", - "description": "Use a separate bundle containing only vendor libraries." - }, - "commonChunk": { - "type": "boolean", - "description": "Use a separate bundle containing code used across multiple bundles." - }, - "runtimeChunk": { - "type": "boolean", - "description": "Use a separate bundle containing the runtime." - }, - "sourceMap": { - "description": "Output sourcemaps. Use 'hidden' for use with error reporting tools without generating sourcemap comment.", - "oneOf": [{ "type": "boolean" }, { "type": "string" }] - }, - "progress": { - "type": "boolean", - "description": "Log progress to the console while building." - }, - "assets": { - "type": "array", - "description": "List of static application assets.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - } - }, - "index": { - "type": "string", - "description": "HTML File which will be contain the application.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.html|.htm)" - }, - "scripts": { - "type": "array", - "description": "External Scripts which will be included before the main application entry.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" - }, - "bundleName": { - "type": "string", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" - } - ] - } - }, - "styles": { - "type": "array", - "description": "External Styles which will be included with the application", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" - }, - "bundleName": { - "type": "string", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" - } - ] - } - }, - "namedChunks": { - "type": "boolean", - "description": "Names the produced bundles according to their entry file." - }, - "outputHashing": { - "type": "string", - "description": "Define the output filename cache-busting hashing mode.", - "enum": ["none", "all", "media", "bundles"] - }, - "stylePreprocessorOptions": { - "description": "Options to pass to style preprocessors.", - "type": "object", - "properties": { - "includePaths": { - "description": "Paths to include. Paths will be resolved to project root.", - "type": "array", - "items": { "type": "string" } - } - }, - "additionalProperties": false - }, - "optimization": { - "description": "Enables optimization of the build output.", - "oneOf": [ - { - "type": "object", - "properties": { - "scripts": { - "type": "boolean", - "description": "Enables optimization of the scripts output.", - "default": true - }, - "styles": { - "type": "boolean", - "description": "Enables optimization of the styles output.", - "default": true - } - }, - "additionalProperties": false - }, - { "type": "boolean" } - ] - }, - "generatePackageJson": { - "type": "boolean", - "description": "Generates a `package.json` and pruned lock file with the project's `node_module` dependencies populated for installing in a container. If a `package.json` exists in the project's directory, it will be reused with dependencies populated." - }, - "transformers": { - "type": "array", - "description": "List of TypeScript Compiler Transfomers Plugins.", - "aliases": ["tsPlugins"], - "items": { - "oneOf": [ - { "type": "string" }, - { - "type": "object", - "properties": { - "name": { "type": "string" }, - "options": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - } - ] - } - }, - "additionalEntryPoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "entryName": { - "type": "string", - "description": "Name of the additional entry file." - }, - "entryPath": { - "type": "string", - "description": "Path to the additional entry file.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.js|.ts)" - } - } - } - }, - "outputFileName": { - "type": "string", - "description": "Name of the main output file.", - "default": "main.js" - }, - "externalDependencies": { - "oneOf": [ - { "type": "string", "enum": ["none", "all"] }, - { "type": "array", "items": { "type": "string" } } - ], - "description": "Dependencies to keep external to the bundle. (`all` (default), `none`, or an array of module names)" - }, - "extractCss": { - "type": "boolean", - "description": "Extract CSS into a `.css` file." - }, - "subresourceIntegrity": { - "type": "boolean", - "description": "Enables the use of subresource integrity validation." - }, - "polyfills": { - "type": "string", - "description": "Polyfills to load before application", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.js|.ts|.tsx)" - }, - "verbose": { "type": "boolean", "description": "Emits verbose output" }, - "statsJson": { - "type": "boolean", - "description": "Generates a 'stats.json' file which can be analyzed using tools such as: 'webpack-bundle-analyzer' or ``." - }, - "isolatedConfig": { - "type": "boolean", - "description": "Do not apply Nx webpack plugins automatically. Plugins need to be applied in the project's webpack.config.js file (e.g. withNx, withReact, etc.).", - "default": true, - "x-deprecated": "Automatic configuration of Webpack is deprecated in favor of an explicit 'webpack.config.js' file. This option will be removed in Nx 19. See https://nx.dev/recipes/webpack/webpack-config-setup." - }, - "standardWebpackConfigFunction": { - "type": "boolean", - "description": "Set to true if the webpack config exports a standard webpack function, not an Nx-specific one. See: https://webpack.js.org/configuration/configuration-types/#exporting-a-function", - "default": false - }, - "extractLicenses": { - "type": "boolean", - "description": "Extract all licenses in a separate file, in the case of production builds only." - }, - "memoryLimit": { - "type": "number", - "description": "Memory limit for type checking service process in `MB`." - }, - "fileReplacements": { - "description": "Replace files with other files in the build.", - "type": "array", - "items": { - "type": "object", - "properties": { - "replace": { - "type": "string", - "description": "The file to be replaced.", - "x-completion-type": "file" - }, - "with": { - "type": "string", - "description": "The file to replace with.", - "x-completion-type": "file" - } - }, - "additionalProperties": false, - "required": ["replace", "with"] - } - }, - "buildLibsFromSource": { - "type": "boolean", - "description": "Read buildable libraries from source instead of building them separately. If set to `false`, the `tsConfig` option must also be set to remap paths.", - "default": true - }, - "generateIndexHtml": { - "type": "boolean", - "description": "Generates `index.html` file to the output path. This can be turned off if using a webpack plugin to generate HTML such as `html-webpack-plugin`." - }, - "postcssConfig": { - "type": "string", - "description": "Set a path to PostCSS config that applies to the app and all libs. Defaults to `undefined`, which auto-detects postcss.config.js files in each `app`/`lib` directory." - }, - "webpackConfig": { - "type": "string", - "description": "Path to a function which takes a webpack config, some context and returns the resulting webpack config. See https://nx.dev/guides/customize-webpack", - "x-completion-type": "file", - "x-completion-glob": "webpack?(*)@(.js|.ts)", - "x-priority": "important" - }, - "babelUpwardRootMode": { - "type": "boolean", - "description": "Whether to set rootmode to upward. See https://babeljs.io/docs/en/options#rootmode" - }, - "babelConfig": { - "type": "string", - "description": "Path to the babel configuration file of your project. If not provided, Nx will default to the .babelrc file at the root of your project. See https://babeljs.io/docs/en/config-files", - "x-completion-type": "file" - } - }, - "required": [], - "definitions": { - "assetPattern": { - "oneOf": [ - { - "type": "object", - "properties": { - "glob": { - "type": "string", - "description": "The pattern to match." - }, - "input": { - "type": "string", - "description": "The input directory path in which to apply 'glob'. Defaults to the project root." - }, - "ignore": { - "description": "An array of globs to ignore.", - "type": "array", - "items": { "type": "string" } - }, - "output": { - "type": "string", - "description": "Absolute path within the output." - } - }, - "additionalProperties": false, - "required": ["glob", "input", "output"] - }, - { "type": "string" } - ] - }, - "extraEntryPoint": { - "oneOf": [ - { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" - }, - "bundleName": { - "type": "string", - "description": "The bundle name for this extra entry point." - }, - "inject": { - "type": "boolean", - "description": "If the bundle will be referenced in the HTML file.", - "default": true - } - }, - "additionalProperties": false, - "required": ["input"] - }, - { - "type": "string", - "description": "The file to include.", - "x-completion-type": "file", - "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" - } - ] - }, - "transformerPattern": { - "oneOf": [ - { "type": "string" }, - { - "type": "object", - "properties": { - "name": { "type": "string" }, - "options": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - } - ] - } - }, - "examplesFile": "---\ntitle: Examples for the @nx/webpack:webpack build executor\ndescription: Examples and a short guide on how to use the @nx/webpack:webpack build executor\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n //...\n //...\n \"options\": {\n ...\n },\n //...\n }\n },\n }\n}\n```\n\n```bash\nnx build my-app\n```\n\n## Examples\n\n{% tabs %}\n\n{% tab label=\"Using `babelUpwardRootMode`\" %}\n\nCopying from the [Babel documentation](https://babeljs.io/docs/config-files#root-babelconfigjson-file):\n\n> [...] if you are running your Babel compilation process from within a subpackage, you need to tell Babel where to look for the config. There are a few ways to do that, but the recommended way is the \"rootMode\" option with \"upward\", which will make Babel search from the working directory upward looking for your babel.config.json file, and will use its location as the \"root\" value.\n\nSetting `babelUpwardRootMode` to `true` in your `project.json` will set `rootMode` option to `upward` in the Babel config. You may want the `upward` mode in a monorepo when projects must apply their individual `.babelrc` file. We recommend that you don't set it at all, so it will use the default to `false` as the `upward` mode brings additional complexity to the build process.\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n \"options\": {\n \"babelUpwardRootMode\": true,\n //...\n },\n //...\n },\n //...\n },\n //...\n}\n```\n\nWhen `babelUpwardRootMode` is `true`, Babel will look for a root `babel.config.json` at the root of the workspace, which should look something like this to include all packages:\n\n```json\n{ \"babelrcRoots\": [\"*\"] }\n```\n\nThen for each package, you must have a `.babelrc` file that will be applied to that package. For example:\n\n```json\n{\n \"presets\": [\"@babel/preset-env\", \"@babel/preset-typescript\"]\n}\n```\n\nAll packages will use its own `.babelrc` file, thus you must ensure the right presets and plugins are set in each config file. This behavior can lead to build discrepancies between packages, so we recommend that you don't set `babelUpwardRootMode` at all.\n\n```treeview\n├── apps\n│ └── demo\n│ └── .babelrc\n├── libs\n│ ├── a\n│ │ └── .babelrc\n│ └── b\n│ └── .babelrc\n└── babel.config.json\n```\n\nIn workspace above, if `demo` imports `a` and `b`, it will apply the config `libs/a/.babelrc` and `libs/b/.babelrc` to the respective packages and not apply its own `apps/demo/.babelrc` to `a` and `b`. Anything in `babel.config.json` will apply to all packages.\n\n{% /tab %}\n\n{% tab label=\"Specify a custom Babel config file\" %}\n\nIf you have a custom Babel config file (i.e. not `.babelrc`), you can use the `configFile` option as follows:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n //...\n \"options\": {\n //...\n \"babelConfig\": \"apps/my-app/.babelrc.custom.json\",\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\nIf you do not set the path to the `.babelrc` file, Nx will look for a `.babelrc` file in the root of your application.\n\nNote that this option does not work if `babelUpwardRootMode` is set to `true`.\n\n{% /tab %}\n\n{% tab label=\"Run webpack with `isolatedConfig`\" %}\n\nSetting `isolatedConfig` to `true` in your `project.json` file means that Nx will not apply the Nx webpack plugins automatically. In that case, the Nx plugins need to be applied in the project's `webpack.config.js` file (e.g. `withNx`, `withReact`, etc.). So don't forget to also specify the path to your webpack config file (using the `webpackConfig` option).\n\nRead more on how to configure Webpack in our [Nx Webpack config guide](/recipes/webpack/webpack-config-setup) an in our [Webpack Plugins guide](/recipes/webpack/webpack-plugins).\n\nNote that this is the new default setup for webpack in the latest version of Nx.\n\nSet `isolatedConfig` to `true` in your `project.json` file in the `build` target options like this:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n //...\n \"options\": {\n //...\n \"webpackConfig\": \"apps/my-app/webpack.config.js\",\n \"isolatedConfig\": true\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", - "presets": [] - }, - "description": "Run webpack build.", - "aliases": [], - "hidden": false, - "path": "/packages/webpack/src/executors/webpack/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/webpack/generators/configuration.json b/docs/generated/packages/webpack/generators/configuration.json deleted file mode 100644 index 404f53b0f5e63..0000000000000 --- a/docs/generated/packages/webpack/generators/configuration.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "configuration", - "aliases": ["webpack-project"], - "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWebpackProject", - "cli": "nx", - "title": "Add Webpack Configuration to a project", - "description": "Add Webpack Configuration to a project.", - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project.", - "$default": { "$source": "argv", "index": 0 }, - "x-dropdown": "project", - "x-prompt": "What is the name of the project to set up a webpack for?", - "x-priority": "important" - }, - "compiler": { - "type": "string", - "enum": ["babel", "swc", "tsc"], - "description": "The compiler to use to build source.", - "default": "swc" - }, - "main": { - "type": "string", - "description": "Path relative to the workspace root for the main entry file. Defaults to '/src/main.ts'.", - "x-priority": "important" - }, - "tsConfig": { - "type": "string", - "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to '/tsconfig.app.json'.", - "x-priority": "important" - }, - "target": { - "type": "string", - "description": "Target platform for the build, same as the Webpack config option.", - "enum": ["node", "web", "webworker"], - "default": "web" - }, - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false, - "x-priority": "internal" - }, - "skipPackageJson": { - "type": "boolean", - "default": false, - "description": "Do not add dependencies to `package.json`.", - "x-priority": "internal" - }, - "skipValidation": { - "type": "boolean", - "default": false, - "description": "Do not perform any validation on existing project.", - "x-priority": "internal" - }, - "devServer": { - "type": "boolean", - "description": "Add a serve target to run a local webpack dev-server", - "default": false - }, - "webpackConfig": { - "type": "string", - "description": "Path relative to workspace root to a custom webpack file that takes a config object and returns an updated config.", - "x-priority": "internal" - }, - "babelConfig": { - "type": "string", - "description": "Optionally specify a path relative to workspace root to the babel configuration file of your project.", - "x-completion-type": "file" - } - }, - "required": [], - "presets": [] - }, - "description": "Add webpack configuration to a project.", - "hidden": true, - "implementation": "/packages/webpack/src/generators/configuration/configuration#configurationGeneratorInternal.ts", - "path": "/packages/webpack/src/generators/configuration/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/webpack/generators/init.json b/docs/generated/packages/webpack/generators/init.json deleted file mode 100644 index d0453038452b9..0000000000000 --- a/docs/generated/packages/webpack/generators/init.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "init", - "factory": "./src/generators/init/init#webpackInitGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWebpackInit", - "cli": "nx", - "title": "Init Webpack Plugin", - "description": "Initialize the Webpack Plugin.", - "type": "object", - "properties": { - "skipFormat": { - "description": "Skip formatting files.", - "type": "boolean", - "default": false - }, - "skipPackageJson": { - "description": "Do not add dependencies to `package.json`.", - "type": "boolean", - "default": false - }, - "keepExistingVersions": { - "type": "boolean", - "x-priority": "internal", - "description": "Keep existing dependencies versions", - "default": false - }, - "updatePackageScripts": { - "type": "boolean", - "x-priority": "internal", - "description": "Update `package.json` scripts with inferred targets", - "default": false - } - }, - "required": [], - "presets": [] - }, - "description": "Initialize the `@nrwl/webpack` plugin.", - "aliases": ["ng-add"], - "hidden": true, - "implementation": "/packages/webpack/src/generators/init/init#webpackInitGeneratorInternal.ts", - "path": "/packages/webpack/src/generators/init/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md b/docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md deleted file mode 100644 index e0b0910ddf051..0000000000000 --- a/docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md +++ /dev/null @@ -1,16 +0,0 @@ -# Nx, NodeJS and TypeScript Compatibility Matrix - -Below is a reference table that matches versions the latest major versions of Nx to the version TypeScript that it uses -and the version of NodeJS that we tested it against. - -> _Note: Other versions of NodeJS **may** still work without issue for these versions of Nx. This table outlines the -> version of NodeJS that we used when building and testing each particular version of Nx._ - -| Nx Version | Node Version | Typescript Version | -| --------------- | ---------------- | ------------------ | -| 18.x (latest) | 18.x, 20.x | ~5.1.0 | -| 17.x (previous) | 18.x, 20.x | ~5.1.0 | -| 16.x | 16.x, 18.x, 20.x | ~5.1.0 | -| 15.x | 14.x, 16.x, 18.x | ~5.0.0 | -| 14.x | 12.x, 14.x, 16.x | ~4.7.2 | -| 13.x | 10.x, 12.x, 14.x | ~4.6.2 | diff --git a/docs/generated/packages/workspace/documents/overview.md b/docs/generated/packages/workspace/documents/overview.md deleted file mode 100644 index 79289534fd807..0000000000000 --- a/docs/generated/packages/workspace/documents/overview.md +++ /dev/null @@ -1,48 +0,0 @@ -The workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it. - -## Creating Local Generators - -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](/extending-nx/recipes/local-generators) - -## Reorganizing Projects - -After some time of working within a workspace, projects might need to be moved or sometimes even removed. -The workspace plugin provides the [`@nx/workspace:move`](/nx-api/workspace/generators/move) and [`@nx/workspace:remove`](/nx-api/workspace/generators/remove) generators to help aid with this. - -### Moving Projects - -Running `nx g @nx/workspace:move --projectName my-lib --destination new/location/my-lib` will move the `my-lib` library to `libs/new/location/my-lib`. - -Moving the files manually can be done easily but a lot of steps are often missed when projects are moved. This generator will also handle the following: - -1. The project's files will be moved -2. The project will be renamed to `new-location-my-lib` -3. The path mapping in `tsconfig.base.json` will be changed to `@npmScope/new/location/my-lib` -4. Imports in other projects will be changed to `@npmScope/new/location/my-lib` -5. Paths in target options such as output path will be changed -6. Other configuration will be updated too, such as `extends` in `tsconfig.json`, the name of the project in `jest.config.js`, and the extends in `.eslintrc.json` - -> See more about [`@nx/workspace:move`](/nx-api/workspace/generators/move) - -### Removing Projects - -Running `nx g @nx/workspace:remove my-lib` will remove the `my-lib` from the workspace. It is important to note that sometimes, projects cannot be removed if they are still depended on by other projects. - -Like when moving projects, some steps are often missed when removing projects. This generator will also handle the following: - -1. Checks if other projects depend on the project being removed. This can be ignored via the `--forceRemove` flag. -2. The project's files will be deleted. -3. The project's configuration will be removed. -4. The path mapping in `tsconfig.base.json` will be removed. - -> See more about [`@nx/workspace:remove`](/nx-api/workspace/generators/remove) - -## Running custom commands - -Executors provide an optimized way of running targets but unfortunately, not every target has an executor written for it. The [`nx:run-commands`](/nx-api/nx/executors/run-commands) executor is an executor that runs any command or multiple commands in the shell. This can be useful when integrating with other tools which do not have an executor provided. There is also a generator to help configure this executor. - -Running `nx g @nx/workspace:run-commands printhello --project my-feature-lib --command 'echo hello'` will create a `my-feature-lib:printhello` target that executes `echo hello` in the shell. - -> See more about [`nx:run-commands`](/nx-api/nx/executors/run-commands) diff --git a/docs/generated/packages/workspace/executors/counter.json b/docs/generated/packages/workspace/executors/counter.json deleted file mode 100644 index 812d22d039160..0000000000000 --- a/docs/generated/packages/workspace/executors/counter.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "counter", - "implementation": "/packages/workspace/src/executors/counter/counter.impl.ts", - "batchImplementation": "./src/executors/counter/counter.impl#batchCounter", - "schema": { - "version": 2, - "title": "Counter", - "description": "A dummy executor useful for E2E tests.", - "type": "object", - "cli": "nx", - "outputCapture": "pipe", - "properties": { - "to": { "type": "number", "description": "Count to this number." }, - "result": { "type": "boolean", "description": "Final result." } - }, - "additionalProperties": true, - "required": ["to"], - "presets": [] - }, - "description": "A dummy executor useful for E2E tests.", - "hidden": true, - "aliases": [], - "path": "/packages/workspace/src/executors/counter/schema.json", - "type": "executor" -} diff --git a/docs/generated/packages/workspace/generators/ci-workflow.json b/docs/generated/packages/workspace/generators/ci-workflow.json deleted file mode 100644 index cfa29d41c919a..0000000000000 --- a/docs/generated/packages/workspace/generators/ci-workflow.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "ci-workflow", - "factory": "./src/generators/ci-workflow/ci-workflow#ciWorkflowGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceCIWorkflow", - "title": "Generate a CI workflow.", - "description": "Generate a CI workflow.", - "cli": "nx", - "type": "object", - "properties": { - "ci": { - "type": "string", - "description": "CI provider.", - "enum": [ - "github", - "circleci", - "azure", - "bitbucket-pipelines", - "gitlab" - ], - "x-prompt": { - "message": "What is your target CI provider?", - "type": "list", - "items": [ - { "value": "github", "label": "GitHub Actions" }, - { "value": "circleci", "label": "Circle CI" }, - { "value": "azure", "label": "Azure DevOps" }, - { "value": "bitbucket-pipelines", "label": "BitBucket Pipelines" }, - { "value": "gitlab", "label": "Gitlab" } - ] - } - }, - "name": { - "type": "string", - "description": "Workflow name.", - "$default": { "$source": "argv", "index": 0 }, - "default": "CI", - "x-prompt": "How should we name your workflow?", - "pattern": "^[a-zA-Z].*$" - } - }, - "required": ["ci", "name"], - "presets": [] - }, - "description": "Generate a CI workflow.", - "implementation": "/packages/workspace/src/generators/ci-workflow/ci-workflow#ciWorkflowGenerator.ts", - "aliases": [], - "hidden": false, - "path": "/packages/workspace/src/generators/ci-workflow/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/convert-to-monorepo.json b/docs/generated/packages/workspace/generators/convert-to-monorepo.json deleted file mode 100644 index d219f0690fcfc..0000000000000 --- a/docs/generated/packages/workspace/generators/convert-to-monorepo.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "convert-to-monorepo", - "factory": "./src/generators/convert-to-monorepo/convert-to-monorepo", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceConvertToMonorepo", - "cli": "nx", - "title": "Nx Convert to Monorepo", - "description": "Convert an Nx project to a monorepo.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/workspace:monorepo", - "description": "Convert an Nx standalone project to a monorepo." - } - ], - "properties": {}, - "required": [], - "presets": [] - }, - "description": "Convert a Nx project to a monorepo.", - "implementation": "/packages/workspace/src/generators/convert-to-monorepo/convert-to-monorepo.ts", - "aliases": [], - "hidden": false, - "path": "/packages/workspace/src/generators/convert-to-monorepo/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/fix-configuration.json b/docs/generated/packages/workspace/generators/fix-configuration.json deleted file mode 100644 index 0204c9dedf6a0..0000000000000 --- a/docs/generated/packages/workspace/generators/fix-configuration.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "fix-configuration", - "factory": "./src/generators/convert-to-nx-project/convert-to-nx-project#convertToNxProjectGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "SchematicsConvertToNxProject", - "title": "@nx/workspace:fix-configuration", - "description": "Migrates v1 config to v2 standalone configuration.", - "type": "object", - "cli": "nx", - "examples": [ - { - "command": "nx g @nx/workspace:convert-to-nx-project --project my-feature-lib", - "description": "Convert the `my-feature-lib` project to use `project.json` file instead of `workspace.json`" - }, - { - "command": "nx g @nx/workspace:convert-to-nx-project --all", - "description": "Convert all projects in `workspace.json` to separate `project.json` files" - } - ], - "properties": { - "project": { - "description": "Convert a single project", - "type": "string" - }, - "all": { "description": "Convert all projects", "type": "boolean" }, - "reformat": { - "description": "Just reformats the configuration", - "type": "boolean" - }, - "skipFormat": { - "description": "Skip formatting files", - "type": "boolean", - "default": false, - "x-priority": "internal" - } - }, - "presets": [] - }, - "aliases": ["convert-to-nx-project"], - "description": "Fixes projects configuration", - "implementation": "/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project#convertToNxProjectGenerator.ts", - "hidden": false, - "path": "/packages/workspace/src/generators/convert-to-nx-project/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/move.json b/docs/generated/packages/workspace/generators/move.json deleted file mode 100644 index 8fe8f7ed62ba5..0000000000000 --- a/docs/generated/packages/workspace/generators/move.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "move", - "factory": "./src/generators/move/move#moveGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceMove", - "cli": "nx", - "title": "Nx Move", - "description": "Move a project to another folder in the workspace.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/workspace:move --project my-feature-lib --destination shared/my-feature-lib", - "description": "Move `libs/my-feature-lib` to `libs/shared/my-feature-lib`" - } - ], - "properties": { - "projectName": { - "type": "string", - "alias": "project", - "description": "The name of the project to move.", - "x-dropdown": "projects" - }, - "newProjectName": { - "type": "string", - "alias": "project", - "description": "The new name of the project after the move.", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", - "x-priority": "important" - }, - "destination": { - "type": "string", - "description": "The folder to move the project into.", - "$default": { "$source": "argv", "index": 0 } - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the new project name and destination as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - }, - "importPath": { - "type": "string", - "description": "The new import path to use in the `tsconfig.base.json`." - }, - "updateImportPath": { - "type": "boolean", - "description": "Should the generator update the import path to reflect the new location?", - "default": true - }, - "skipFormat": { - "type": "boolean", - "aliases": ["skip-format"], - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - } - }, - "required": ["projectName", "destination"], - "presets": [] - }, - "aliases": ["mv"], - "description": "Move an application or library to another folder.", - "implementation": "/packages/workspace/src/generators/move/move#moveGeneratorInternal.ts", - "hidden": false, - "path": "/packages/workspace/src/generators/move/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/new.json b/docs/generated/packages/workspace/generators/new.json deleted file mode 100644 index c0e68a442b725..0000000000000 --- a/docs/generated/packages/workspace/generators/new.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "new", - "factory": "./src/generators/new/new#newGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceNew", - "title": "Create an empty workspace", - "description": "Create an empty workspace.", - "type": "object", - "cli": "nx", - "properties": { - "name": { - "description": "The name of the workspace.", - "type": "string", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use for the workspace?" - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css" - }, - "routing": { - "description": "Add routing to the generated application.", - "type": "boolean", - "default": true - }, - "standaloneApi": { - "description": "Use Standalone Components if generating an Angular application.", - "type": "boolean", - "default": false - }, - "defaultBase": { - "type": "string", - "description": "Default base branch for affected." - }, - "skipInstall": { - "description": "Skip installing dependency packages.", - "type": "boolean", - "default": false - }, - "preset": { - "description": "What to create in the new workspace.", - "type": "string" - }, - "appName": { "type": "string", "description": "Application name." }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "packageManager": { - "description": "The package manager used to install dependencies.", - "type": "string", - "enum": ["npm", "yarn", "pnpm"] - }, - "framework": { - "description": "The framework which the application is using", - "type": "string", - "enum": ["express", "koa", "fastify", "nest", "none"] - }, - "nextAppDir": { - "description": "Enable the App Router for this project.", - "type": "boolean", - "default": true - }, - "nextSrcDir": { - "description": "Generate a `src` directory for this project.", - "type": "boolean", - "default": true - }, - "e2eTestRunner": { - "description": "The tool to use for running e2e tests.", - "type": "string", - "enum": ["cypress", "playwright", "jest", "detox", "none"] - }, - "ssr": { - "description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.", - "type": "boolean", - "default": false - }, - "prefix": { - "description": "The prefix to use for Angular component and directive selectors.", - "type": "string" - } - }, - "additionalProperties": true, - "presets": [] - }, - "description": "Create a workspace.", - "hidden": true, - "implementation": "/packages/workspace/src/generators/new/new#newGenerator.ts", - "aliases": [], - "path": "/packages/workspace/src/generators/new/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/npm-package.json b/docs/generated/packages/workspace/generators/npm-package.json deleted file mode 100644 index c8fc39a190a7c..0000000000000 --- a/docs/generated/packages/workspace/generators/npm-package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "npm-package", - "factory": "./src/generators/npm-package/npm-package#npmPackageGeneratorInternal", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceNpmPackage", - "title": "Add a minimal npm package", - "description": "Add a minimal npm package.", - "cli": "nx", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Package name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name of your npm package?", - "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" - }, - "directory": { - "type": "string", - "description": "A directory where the package is placed.", - "alias": "dir" - }, - "projectNameAndRootFormat": { - "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", - "type": "string", - "enum": ["as-provided", "derived"] - } - }, - "required": ["name"], - "presets": [] - }, - "description": "Create a minimal NPM package.", - "x-type": "library", - "implementation": "/packages/workspace/src/generators/npm-package/npm-package#npmPackageGeneratorInternal.ts", - "aliases": [], - "hidden": false, - "path": "/packages/workspace/src/generators/npm-package/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/preset.json b/docs/generated/packages/workspace/generators/preset.json deleted file mode 100644 index 9b050e4602033..0000000000000 --- a/docs/generated/packages/workspace/generators/preset.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "name": "preset", - "factory": "./src/generators/preset/preset#presetGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspacePreset", - "cli": "nx", - "title": "Creates applications in a new workspace", - "description": "Creates applications in a new workspace.", - "type": "object", - "properties": { - "preset": { "description": "The name of the preset.", "type": "string" }, - "name": { - "description": "The name of the application.", - "type": "string" - }, - "linter": { - "description": "The tool to use for running lint checks.", - "type": "string", - "enum": ["eslint"], - "default": "eslint" - }, - "routing": { - "description": "Add routing to the generated application.", - "type": "boolean", - "default": true - }, - "style": { - "description": "The file extension to be used for style files.", - "type": "string", - "default": "css", - "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": "less", - "label": "LESS [ https://lesscss.org ]" - } - ] - } - }, - "standaloneApi": { - "description": "Use Standalone Components if generating an Angular application.", - "type": "boolean", - "default": false - }, - "standaloneConfig": { - "description": "Split the project configurations into `/project.json` rather than including it inside `workspace.json`.", - "type": "boolean", - "default": true, - "x-deprecated": "Nx only supports standaloneConfig" - }, - "packageManager": { - "description": "The package manager used to install dependencies.", - "type": "string", - "enum": ["npm", "yarn", "pnpm"] - }, - "framework": { - "description": "The framework which the application is using", - "type": "string", - "enum": ["express", "koa", "fastify", "nest", "none"] - }, - "bundler": { - "description": "The bundler to use for building the application.", - "type": "string", - "enum": ["webpack", "vite", "rspack", "esbuild"], - "default": "vite" - }, - "docker": { - "description": "Generate a Dockerfile", - "type": "boolean", - "default": false - }, - "nextAppDir": { - "description": "Enable the App Router for this project.", - "type": "boolean", - "default": true - }, - "nextSrcDir": { - "description": "Generate a `src` directory for this project.", - "type": "boolean", - "default": true - }, - "e2eTestRunner": { - "description": "The tool to use for running e2e tests.", - "type": "string", - "enum": ["cypress", "playwright", "jest", "detox", "none"] - }, - "ssr": { - "description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.", - "type": "boolean", - "default": false - }, - "prefix": { - "description": "The prefix to use for Angular component and directive selectors.", - "type": "string" - } - }, - "required": ["preset", "name"], - "presets": [] - }, - "description": "Create application in an empty workspace.", - "x-use-standalone-layout": true, - "hidden": true, - "implementation": "/packages/workspace/src/generators/preset/preset#presetGenerator.ts", - "aliases": [], - "path": "/packages/workspace/src/generators/preset/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/remove.json b/docs/generated/packages/workspace/generators/remove.json deleted file mode 100644 index 695a838b99e43..0000000000000 --- a/docs/generated/packages/workspace/generators/remove.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "remove", - "factory": "./src/generators/remove/remove#removeGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "NxWorkspaceRemove", - "cli": "nx", - "title": "Nx Remove", - "description": "Remove a project from the workspace.", - "type": "object", - "examples": [ - { - "command": "nx g @nx/workspace:remove my-feature-lib", - "description": "Remove `my-feature-lib` from the workspace" - }, - { - "command": "nx g @nx/workspace:remove my-feature-lib --forceRemove", - "description": "Force removal of `my-feature-lib` from the workspace" - } - ], - "properties": { - "projectName": { - "type": "string", - "alias": "project", - "description": "The name of the project to remove.", - "$default": { "$source": "argv", "index": 0 } - }, - "forceRemove": { - "type": "boolean", - "aliases": ["force-remove"], - "description": "When `true`, forces removal even if the project is still in use.", - "default": false - }, - "skipFormat": { - "type": "boolean", - "aliases": ["skip-format"], - "description": "Skip formatting files.", - "default": false, - "x-priority": "internal" - }, - "importPath": { - "type": "string", - "description": "The library name used at creation time" - } - }, - "required": ["projectName"], - "presets": [] - }, - "aliases": ["rm"], - "description": "Remove an application or library.", - "implementation": "/packages/workspace/src/generators/remove/remove#removeGenerator.ts", - "hidden": false, - "path": "/packages/workspace/src/generators/remove/schema.json", - "type": "generator" -} diff --git a/docs/generated/packages/workspace/generators/run-commands.json b/docs/generated/packages/workspace/generators/run-commands.json deleted file mode 100644 index 00bec0a791c6b..0000000000000 --- a/docs/generated/packages/workspace/generators/run-commands.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "run-commands", - "factory": "./src/generators/run-commands/run-commands#runCommandsGenerator", - "schema": { - "$schema": "https://json-schema.org/schema", - "$id": "SchematicsRunCommands", - "title": "Create a custom target to run any command", - "description": "Create a custom target to run any command.", - "type": "object", - "cli": "nx", - "examples": [ - { - "command": "nx g @nx/workspace:run-commands printhello --project my-feature-lib --command 'echo hello'", - "description": "Add the `printhello` target to `my-feature-lib`" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Target name.", - "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "What name would you like to use to invoke the command?" - }, - "project": { - "description": "Project name.", - "type": "string", - "x-prompt": "What project does the target belong to?", - "x-dropdown": "projects" - }, - "command": { - "description": "Command to run.", - "type": "string", - "x-prompt": "What command would you like to run?" - }, - "cwd": { - "description": "Current working directory of the command.", - "type": "string" - }, - "outputs": { - "description": "Allows you to specify where the build artifacts are stored. This allows Nx Cloud to pick them up correctly, in the case that the build artifacts are placed somewhere other than the top level dist folder.", - "type": "string" - }, - "envFile": { - "description": "Env files to be loaded before executing the commands.", - "type": "string" - } - }, - "required": ["name", "command", "project"], - "presets": [] - }, - "aliases": ["run-command", "target"], - "description": "Generates a target to run any command in the terminal.", - "implementation": "/packages/workspace/src/generators/run-commands/run-commands#runCommandsGenerator.ts", - "hidden": false, - "path": "/packages/workspace/src/generators/run-commands/schema.json", - "type": "generator" -} From b11d37997e4a375c99d3b89f796709db53a037cb Mon Sep 17 00:00:00 2001 From: System Administrator Date: Sat, 16 Mar 2024 07:58:20 -0700 Subject: [PATCH 06/34] fix(js): fixed documentation --- docs/generated/devkit/ChangeType.md | 20 + docs/generated/devkit/CreateDependencies.md | 27 + .../devkit/CreateDependenciesContext.md | 60 + docs/generated/devkit/CreateNodes.md | 11 + docs/generated/devkit/CreateNodesContext.md | 31 + docs/generated/devkit/CreateNodesFunction.md | 28 + docs/generated/devkit/CreateNodesResult.md | 24 + docs/generated/devkit/CustomHasher.md | 18 + .../devkit/DefaultTasksRunnerOptions.md | 76 + docs/generated/devkit/DependencyType.md | 35 + docs/generated/devkit/DynamicDependency.md | 16 + docs/generated/devkit/Executor.md | 26 + docs/generated/devkit/ExecutorContext.md | 126 + docs/generated/devkit/ExecutorsJson.md | 20 + docs/generated/devkit/FileChange.md | 44 + docs/generated/devkit/FileData.md | 35 + docs/generated/devkit/FileMap.md | 20 + docs/generated/devkit/Generator.md | 26 + docs/generated/devkit/GeneratorCallback.md | 13 + docs/generated/devkit/GeneratorsJson.md | 27 + docs/generated/devkit/Hash.md | 31 + docs/generated/devkit/Hasher.md | 3 + docs/generated/devkit/HasherContext.md | 41 + docs/generated/devkit/ImplicitDependency.md | 15 + .../devkit/ImplicitDependencyEntry.md | 13 + .../devkit/ImplicitJsonSubsetDependency.md | 11 + docs/generated/devkit/JsonParseOptions.md | 70 + docs/generated/devkit/JsonSerializeOptions.md | 21 + docs/generated/devkit/MigrationsJson.md | 56 + docs/generated/devkit/NX_VERSION.md | 7 + docs/generated/devkit/NxAffectedConfig.md | 19 + docs/generated/devkit/NxJsonConfiguration.md | 271 + docs/generated/devkit/NxPlugin.md | 5 + docs/generated/devkit/NxPluginV1.md | 16 + docs/generated/devkit/NxPluginV2.md | 19 + docs/generated/devkit/PackageManager.md | 3 + docs/generated/devkit/PluginConfiguration.md | 3 + docs/generated/devkit/ProjectConfiguration.md | 130 + docs/generated/devkit/ProjectFileMap.md | 7 + docs/generated/devkit/ProjectGraph.md | 36 + docs/generated/devkit/ProjectGraphBuilder.md | 288 + .../devkit/ProjectGraphDependency.md | 33 + .../devkit/ProjectGraphExternalNode.md | 44 + docs/generated/devkit/ProjectGraphNode.md | 7 + .../devkit/ProjectGraphProcessorContext.md | 57 + .../devkit/ProjectGraphProjectNode.md | 31 + .../devkit/ProjectTargetConfigurator.md | 21 + docs/generated/devkit/ProjectType.md | 5 + .../devkit/ProjectsConfigurations.md | 36 + docs/generated/devkit/README.md | 158 + .../devkit/RawProjectGraphDependency.md | 7 + docs/generated/devkit/RemoteCache.md | 50 + docs/generated/devkit/StaticDependency.md | 18 + docs/generated/devkit/StringChange.md | 5 + docs/generated/devkit/StringDeletion.md | 31 + docs/generated/devkit/StringInsertion.md | 31 + docs/generated/devkit/Target.md | 27 + docs/generated/devkit/TargetConfiguration.md | 102 + docs/generated/devkit/TargetDefaults.md | 3 + .../devkit/TargetDependencyConfig.md | 45 + docs/generated/devkit/Task.md | 115 + docs/generated/devkit/TaskGraph.md | 35 + docs/generated/devkit/TaskGraphExecutor.md | 28 + docs/generated/devkit/TaskHasher.md | 110 + docs/generated/devkit/ToJSOptions.md | 11 + docs/generated/devkit/Tree.md | 204 + docs/generated/devkit/Workspace.md | 383 + .../devkit/WorkspaceJsonConfiguration.md | 7 + docs/generated/devkit/Workspaces.md | 45 + .../devkit/addDependenciesToPackageJson.md | 29 + .../devkit/addProjectConfiguration.md | 18 + docs/generated/devkit/appRootPath.md | 9 + docs/generated/devkit/applyChangesToString.md | 44 + docs/generated/devkit/cacheDir.md | 5 + docs/generated/devkit/convertNxExecutor.md | 17 + docs/generated/devkit/convertNxGenerator.md | 47 + .../createProjectFileMapUsingProjectGraph.md | 13 + .../devkit/createProjectGraphAsync.md | 37 + docs/generated/devkit/defaultTasksRunner.md | 23 + docs/generated/devkit/detectPackageManager.md | 15 + docs/generated/devkit/ensurePackage.md | 62 + .../devkit/extractLayoutDirectory.md | 20 + docs/generated/devkit/formatFiles.md | 15 + docs/generated/devkit/generateFiles.md | 38 + .../getOutputsForTargetAndConfiguration.md | 34 + .../devkit/getPackageManagerCommand.md | 24 + .../devkit/getPackageManagerVersion.md | 18 + docs/generated/devkit/getProjects.md | 17 + docs/generated/devkit/getWorkspaceLayout.md | 28 + docs/generated/devkit/glob.md | 20 + docs/generated/devkit/hashArray.md | 13 + docs/generated/devkit/installPackagesTask.md | 19 + docs/generated/devkit/isWorkspacesEnabled.md | 16 + docs/generated/devkit/joinPathFragments.md | 16 + docs/generated/devkit/logger.md | 14 + .../devkit/moveFilesToNewDirectory.md | 17 + docs/generated/devkit/names.md | 30 + docs/generated/devkit/ngcli_adapter/.nojekyll | 1 + .../devkit/ngcli_adapter/NxScopedHost.md | 384 + docs/generated/devkit/ngcli_adapter/README.md | 12 + .../ngcli_adapter/mockSchematicsForTesting.md | 31 + .../wrapAngularDevkitSchematic.md | 27 + docs/generated/devkit/normalizePath.md | 16 + docs/generated/devkit/offsetFromRoot.md | 22 + docs/generated/devkit/output.md | 3 + docs/generated/devkit/parseJson.md | 25 + docs/generated/devkit/parseTargetString.md | 61 + .../devkit/readCachedProjectGraph.md | 13 + docs/generated/devkit/readJson.md | 23 + docs/generated/devkit/readJsonFile.md | 24 + docs/generated/devkit/readNxJson.md | 25 + .../devkit/readProjectConfiguration.md | 20 + ...adProjectsConfigurationFromProjectGraph.md | 15 + docs/generated/devkit/readTargetOptions.md | 24 + .../removeDependenciesFromPackageJson.md | 28 + .../devkit/removeProjectConfiguration.md | 16 + docs/generated/devkit/reverse.md | 18 + docs/generated/devkit/runExecutor.md | 49 + docs/generated/devkit/runTasksInSerial.md | 15 + docs/generated/devkit/serializeJson.md | 25 + docs/generated/devkit/stripIndents.md | 26 + docs/generated/devkit/stripJsonComments.md | 18 + docs/generated/devkit/targetToTargetString.md | 15 + docs/generated/devkit/toJS.md | 16 + docs/generated/devkit/updateJson.md | 25 + docs/generated/devkit/updateNxJson.md | 16 + .../devkit/updateProjectConfiguration.md | 17 + docs/generated/devkit/updateTsConfigsToJs.md | 15 + docs/generated/devkit/validateDependency.md | 20 + docs/generated/devkit/visitNotIgnoredFiles.md | 17 + docs/generated/devkit/workspaceLayout.md | 14 + docs/generated/devkit/workspaceRoot.md | 5 + docs/generated/devkit/writeJson.md | 24 + docs/generated/devkit/writeJsonFile.md | 23 + docs/generated/manifests/ci.json | 1908 +++ docs/generated/manifests/extending-nx.json | 346 + docs/generated/manifests/menus.json | 10384 ++++++++++++++++ docs/generated/manifests/nx-api.json | 3253 +++++ docs/generated/manifests/nx.json | 7381 +++++++++++ docs/generated/manifests/tags.json | 1160 ++ docs/generated/packages-metadata.json | 3222 +++++ .../documents/angular-nx-version-matrix.md | 36 + .../packages/angular/documents/overview.md | 125 + .../angular/executors/application.json | 743 ++ .../angular/executors/browser-esbuild.json | 657 + .../angular/executors/delegate-build.json | 44 + .../angular/executors/dev-server.json | 156 + .../angular/executors/extract-i18n.json | 55 + .../module-federation-dev-server.json | 157 + .../executors/module-federation-dev-ssr.json | 96 + .../angular/executors/ng-packagr-lite.json | 52 + .../packages/angular/executors/package.json | 61 + .../angular/executors/webpack-browser.json | 698 ++ .../angular/executors/webpack-server.json | 378 + .../angular/generators/add-linting.json | 62 + .../angular/generators/application.json | 198 + .../generators/component-cypress-spec.json | 74 + .../angular/generators/component-story.json | 64 + .../angular/generators/component-test.json | 63 + .../angular/generators/component.json | 144 + .../convert-to-application-executor.json | 34 + .../generators/convert-to-with-mf.json | 41 + .../cypress-component-configuration.json | 49 + .../angular/generators/directive.json | 97 + .../angular/generators/federate-module.json | 90 + .../packages/angular/generators/host.json | 191 + .../packages/angular/generators/init.json | 45 + .../library-secondary-entry-point.json | 51 + .../packages/angular/generators/library.json | 217 + .../packages/angular/generators/move.json | 70 + .../packages/angular/generators/ng-add.json | 76 + .../generators/ngrx-feature-store.json | 80 + .../angular/generators/ngrx-root-store.json | 79 + .../packages/angular/generators/ngrx.json | 111 + .../packages/angular/generators/pipe.json | 83 + .../packages/angular/generators/remote.json | 184 + .../angular/generators/scam-directive.json | 97 + .../angular/generators/scam-pipe.json | 83 + .../generators/scam-to-standalone.json | 40 + .../packages/angular/generators/scam.json | 143 + .../packages/angular/generators/setup-mf.json | 99 + .../angular/generators/setup-ssr.json | 76 + .../angular/generators/setup-tailwind.json | 50 + .../packages/angular/generators/stories.json | 69 + .../generators/storybook-configuration.json | 103 + .../angular/generators/web-worker.json | 54 + .../packages/cypress/documents/overview.md | 217 + .../packages/cypress/executors/cypress.json | 166 + .../generators/component-configuration.json | 52 + .../cypress/generators/configuration.json | 100 + .../cypress/generators/cypress-project.json | 84 + .../packages/cypress/generators/init.json | 45 + .../generators/migrate-to-cypress-11.json | 26 + .../packages/detox/documents/overview.md | 135 + .../packages/detox/executors/build.json | 33 + .../packages/detox/executors/test.json | 167 + .../detox/generators/application.json | 79 + .../packages/detox/generators/init.json | 44 + .../devkit/documents/ngcli_adapter.md | 12 + .../packages/devkit/documents/nx_devkit.md | 158 + .../packages/esbuild/documents/overview.md | 155 + .../packages/esbuild/executors/esbuild.json | 211 + .../esbuild/generators/configuration.json | 75 + .../packages/esbuild/generators/init.json | 38 + .../documents/dependency-checks.md | 85 + .../documents/enforce-module-boundaries.md | 61 + .../eslint-plugin/documents/overview.md | 72 + .../packages/eslint/documents/overview.md | 94 + .../packages/eslint/executors/lint.json | 152 + .../generators/convert-to-flat-config.json | 28 + .../packages/eslint/generators/init.json | 39 + .../eslint/generators/workspace-rule.json | 34 + .../generators/workspace-rules-project.json | 34 + .../packages/expo/documents/overview.md | 354 + .../packages/expo/executors/build-list.json | 86 + .../packages/expo/executors/build.json | 80 + .../expo/executors/ensure-symlink.json | 21 + .../packages/expo/executors/export.json | 56 + .../packages/expo/executors/install.json | 39 + .../packages/expo/executors/prebuild.json | 46 + .../packages/expo/executors/run.json | 75 + .../packages/expo/executors/serve.json | 45 + .../packages/expo/executors/start.json | 97 + .../packages/expo/executors/submit.json | 57 + .../packages/expo/executors/sync-deps.json | 39 + .../packages/expo/executors/update.json | 72 + .../packages/expo/generators/application.json | 103 + .../packages/expo/generators/component.json | 96 + .../packages/expo/generators/init.json | 44 + .../packages/expo/generators/library.json | 113 + .../packages/express/documents/overview.md | 47 + .../express/generators/application.json | 102 + .../packages/express/generators/init.json | 38 + .../packages/jest/documents/overview.md | 260 + .../packages/jest/executors/jest.json | 208 + .../jest/generators/configuration.json | 89 + .../packages/jest/generators/init.json | 46 + .../packages/js/documents/overview.md | 122 + .../generated/packages/js/executors/node.json | 91 + .../js/executors/release-publish.json | 36 + docs/generated/packages/js/executors/swc.json | 174 + docs/generated/packages/js/executors/tsc.json | 188 + .../packages/js/executors/verdaccio.json | 45 + .../js/generators/convert-to-swc.json | 42 + .../packages/js/generators/init.json | 48 + .../packages/js/generators/library.json | 160 + .../js/generators/release-version.json | 76 + .../packages/js/generators/setup-build.json | 51 + .../js/generators/setup-verdaccio.json | 28 + .../packages/nest/documents/overview.md | 169 + .../packages/nest/generators/application.json | 95 + .../packages/nest/generators/class.json | 69 + .../packages/nest/generators/controller.json | 78 + .../packages/nest/generators/decorator.json | 63 + .../packages/nest/generators/filter.json | 69 + .../packages/nest/generators/gateway.json | 69 + .../packages/nest/generators/guard.json | 69 + .../packages/nest/generators/init.json | 39 + .../packages/nest/generators/interceptor.json | 69 + .../packages/nest/generators/interface.json | 58 + .../packages/nest/generators/library.json | 156 + .../packages/nest/generators/middleware.json | 69 + .../packages/nest/generators/module.json | 73 + .../packages/nest/generators/pipe.json | 69 + .../packages/nest/generators/provider.json | 69 + .../packages/nest/generators/resolver.json | 64 + .../packages/nest/generators/resource.json | 104 + .../packages/nest/generators/service.json | 69 + .../packages/next/documents/overview.md | 307 + .../packages/next/executors/build.json | 86 + .../packages/next/executors/export.json | 41 + .../packages/next/executors/server.json | 73 + .../packages/next/generators/application.json | 152 + .../packages/next/generators/component.json | 125 + .../next/generators/custom-server.json | 38 + .../cypress-component-configuration.json | 53 + .../packages/next/generators/init.json | 45 + .../packages/next/generators/library.json | 162 + .../packages/next/generators/page.json | 111 + .../packages/node/documents/overview.md | 107 + .../packages/node/generators/application.json | 145 + .../packages/node/generators/init.json | 38 + .../packages/node/generators/library.json | 145 + .../node/generators/setup-docker.json | 38 + .../packages/nuxt/documents/overview.md | 104 + .../packages/nuxt/generators/application.json | 118 + .../packages/nuxt/generators/init.json | 44 + .../generators/storybook-configuration.json | 85 + docs/generated/packages/nx/documents/add.md | 68 + .../nx/documents/affected-dep-graph.md | 168 + .../packages/nx/documents/affected.md | 198 + .../nx/documents/connect-to-nx-cloud.md | 30 + .../nx/documents/create-nx-workspace.md | 198 + .../generated/packages/nx/documents/daemon.md | 42 + .../packages/nx/documents/dep-graph.md | 184 + docs/generated/packages/nx/documents/exec.md | 152 + .../packages/nx/documents/format-check.md | 84 + .../packages/nx/documents/format-write.md | 84 + .../packages/nx/documents/generate.md | 104 + docs/generated/packages/nx/documents/init.md | 52 + docs/generated/packages/nx/documents/list.md | 50 + .../packages/nx/documents/migrate.md | 156 + .../packages/nx/documents/print-affected.md | 126 + .../packages/nx/documents/release.md | 390 + .../generated/packages/nx/documents/repair.md | 53 + .../generated/packages/nx/documents/report.md | 16 + docs/generated/packages/nx/documents/reset.md | 16 + .../packages/nx/documents/run-many.md | 182 + docs/generated/packages/nx/documents/run.md | 44 + docs/generated/packages/nx/documents/show.md | 212 + .../packages/nx/documents/view-logs.md | 16 + docs/generated/packages/nx/documents/watch.md | 74 + .../generated/packages/nx/executors/noop.json | 20 + .../packages/nx/executors/run-commands.json | 135 + .../packages/nx/executors/run-script.json | 34 + .../nx/generators/connect-to-nx-cloud.json | 39 + .../packages/playwright/documents/overview.md | 256 + .../playwright/executors/playwright.json | 174 + .../playwright/generators/configuration.json | 82 + .../packages/playwright/generators/init.json | 45 + .../packages/plugin/documents/overview.md | 5 + .../packages/plugin/executors/e2e.json | 209 + .../plugin/generators/create-package.json | 83 + .../plugin/generators/e2e-project.json | 65 + .../packages/plugin/generators/executor.json | 82 + .../packages/plugin/generators/generator.json | 76 + .../packages/plugin/generators/migration.json | 74 + .../plugin/generators/plugin-lint-checks.json | 40 + .../packages/plugin/generators/plugin.json | 112 + .../packages/plugin/generators/preset.json | 42 + .../react-native/documents/overview.md | 186 + .../react-native/executors/build-android.json | 81 + .../react-native/executors/build-ios.json | 91 + .../react-native/executors/bundle.json | 89 + .../executors/ensure-symlink.json | 21 + .../react-native/executors/pod-install.json | 43 + .../react-native/executors/run-android.json | 106 + .../react-native/executors/run-ios.json | 96 + .../react-native/executors/start.json | 38 + .../react-native/executors/storybook.json | 37 + .../react-native/executors/sync-deps.json | 39 + .../react-native/executors/upgrade.json | 21 + .../react-native/generators/application.json | 112 + .../generators/component-story.json | 50 + .../react-native/generators/component.json | 91 + .../react-native/generators/init.json | 46 + .../react-native/generators/library.json | 116 + .../react-native/generators/stories.json | 63 + .../generators/storybook-configuration.json | 84 + .../generators/upgrade-native.json | 49 + .../generators/web-configuration.json | 50 + .../packages/react/documents/overview.md | 154 + .../module-federation-dev-server.json | 120 + .../module-federation-ssr-dev-server.json | 54 + .../react/generators/application.json | 204 + .../generators/component-cypress-spec.json | 52 + .../react/generators/component-story.json | 50 + .../react/generators/component-test.json | 42 + .../packages/react/generators/component.json | 150 + .../cypress-component-configuration.json | 65 + .../react/generators/federate-module.json | 91 + .../packages/react/generators/hook.json | 90 + .../packages/react/generators/host.json | 187 + .../packages/react/generators/init.json | 38 + .../packages/react/generators/library.json | 204 + .../packages/react/generators/redux.json | 57 + .../packages/react/generators/remote.json | 186 + .../packages/react/generators/setup-ssr.json | 54 + .../react/generators/setup-tailwind.json | 55 + .../packages/react/generators/stories.json | 72 + .../generators/storybook-configuration.json | 100 + .../packages/remix/documents/overview.md | 288 + .../packages/remix/executors/build.json | 48 + .../packages/remix/executors/serve.json | 51 + .../packages/remix/generators/action.json | 36 + .../remix/generators/application.json | 76 + .../cypress-component-configuration.json | 51 + .../remix/generators/error-boundary.json | 47 + .../packages/remix/generators/init.json | 43 + .../packages/remix/generators/library.json | 82 + .../packages/remix/generators/loader.json | 36 + .../packages/remix/generators/meta.json | 36 + .../packages/remix/generators/preset.json | 24 + .../remix/generators/resource-route.json | 58 + .../packages/remix/generators/route.json | 69 + .../remix/generators/setup-tailwind.json | 44 + .../packages/remix/generators/setup.json | 24 + .../generators/storybook-configuration.json | 93 + .../packages/remix/generators/style.json | 43 + .../packages/rollup/executors/rollup.json | 198 + .../rollup/generators/configuration.json | 89 + .../packages/rollup/generators/init.json | 44 + .../storybook/documents/best-practices.md | 151 + .../packages/storybook/documents/overview.md | 266 + .../storybook/documents/storybook-7-setup.md | 39 + .../packages/storybook/executors/build.json | 144 + .../storybook/executors/storybook.json | 123 + .../storybook/generators/configuration.json | 109 + .../storybook/generators/cypress-project.json | 62 + .../packages/storybook/generators/init.json | 42 + .../storybook/generators/migrate-7.json | 46 + .../packages/vite/documents/overview.md | 128 + .../packages/vite/executors/build.json | 64 + .../packages/vite/executors/dev-server.json | 41 + .../vite/executors/preview-server.json | 40 + .../packages/vite/executors/test.json | 43 + .../vite/generators/configuration.json | 69 + .../packages/vite/generators/init.json | 42 + .../packages/vite/generators/vitest.json | 65 + .../packages/vue/documents/overview.md | 65 + .../packages/vue/generators/application.json | 142 + .../packages/vue/generators/component.json | 111 + .../packages/vue/generators/init.json | 38 + .../packages/vue/generators/library.json | 148 + .../vue/generators/setup-tailwind.json | 53 + .../packages/vue/generators/stories.json | 72 + .../generators/storybook-configuration.json | 85 + .../packages/web/documents/overview.md | 121 + .../packages/web/executors/file-server.json | 103 + .../packages/web/generators/application.json | 119 + .../packages/web/generators/init.json | 39 + .../web/generators/static-config.json | 35 + .../packages/webpack/documents/overview.md | 114 + .../webpack/executors/dev-server.json | 86 + .../webpack/executors/ssr-dev-server.json | 47 + .../packages/webpack/executors/webpack.json | 466 + .../webpack/generators/configuration.json | 85 + .../packages/webpack/generators/init.json | 44 + .../nx-nodejs-typescript-version-matrix.md | 16 + .../packages/workspace/documents/overview.md | 48 + .../packages/workspace/executors/counter.json | 25 + .../workspace/generators/ci-workflow.json | 52 + .../generators/convert-to-monorepo.json | 27 + .../generators/fix-configuration.json | 46 + .../packages/workspace/generators/move.json | 67 + .../packages/workspace/generators/new.json | 97 + .../workspace/generators/npm-package.json | 40 + .../packages/workspace/generators/preset.json | 115 + .../packages/workspace/generators/remove.json | 55 + .../workspace/generators/run-commands.json | 57 + 440 files changed, 61597 insertions(+) create mode 100644 docs/generated/devkit/ChangeType.md create mode 100644 docs/generated/devkit/CreateDependencies.md create mode 100644 docs/generated/devkit/CreateDependenciesContext.md create mode 100644 docs/generated/devkit/CreateNodes.md create mode 100644 docs/generated/devkit/CreateNodesContext.md create mode 100644 docs/generated/devkit/CreateNodesFunction.md create mode 100644 docs/generated/devkit/CreateNodesResult.md create mode 100644 docs/generated/devkit/CustomHasher.md create mode 100644 docs/generated/devkit/DefaultTasksRunnerOptions.md create mode 100644 docs/generated/devkit/DependencyType.md create mode 100644 docs/generated/devkit/DynamicDependency.md create mode 100644 docs/generated/devkit/Executor.md create mode 100644 docs/generated/devkit/ExecutorContext.md create mode 100644 docs/generated/devkit/ExecutorsJson.md create mode 100644 docs/generated/devkit/FileChange.md create mode 100644 docs/generated/devkit/FileData.md create mode 100644 docs/generated/devkit/FileMap.md create mode 100644 docs/generated/devkit/Generator.md create mode 100644 docs/generated/devkit/GeneratorCallback.md create mode 100644 docs/generated/devkit/GeneratorsJson.md create mode 100644 docs/generated/devkit/Hash.md create mode 100644 docs/generated/devkit/Hasher.md create mode 100644 docs/generated/devkit/HasherContext.md create mode 100644 docs/generated/devkit/ImplicitDependency.md create mode 100644 docs/generated/devkit/ImplicitDependencyEntry.md create mode 100644 docs/generated/devkit/ImplicitJsonSubsetDependency.md create mode 100644 docs/generated/devkit/JsonParseOptions.md create mode 100644 docs/generated/devkit/JsonSerializeOptions.md create mode 100644 docs/generated/devkit/MigrationsJson.md create mode 100644 docs/generated/devkit/NX_VERSION.md create mode 100644 docs/generated/devkit/NxAffectedConfig.md create mode 100644 docs/generated/devkit/NxJsonConfiguration.md create mode 100644 docs/generated/devkit/NxPlugin.md create mode 100644 docs/generated/devkit/NxPluginV1.md create mode 100644 docs/generated/devkit/NxPluginV2.md create mode 100644 docs/generated/devkit/PackageManager.md create mode 100644 docs/generated/devkit/PluginConfiguration.md create mode 100644 docs/generated/devkit/ProjectConfiguration.md create mode 100644 docs/generated/devkit/ProjectFileMap.md create mode 100644 docs/generated/devkit/ProjectGraph.md create mode 100644 docs/generated/devkit/ProjectGraphBuilder.md create mode 100644 docs/generated/devkit/ProjectGraphDependency.md create mode 100644 docs/generated/devkit/ProjectGraphExternalNode.md create mode 100644 docs/generated/devkit/ProjectGraphNode.md create mode 100644 docs/generated/devkit/ProjectGraphProcessorContext.md create mode 100644 docs/generated/devkit/ProjectGraphProjectNode.md create mode 100644 docs/generated/devkit/ProjectTargetConfigurator.md create mode 100644 docs/generated/devkit/ProjectType.md create mode 100644 docs/generated/devkit/ProjectsConfigurations.md create mode 100644 docs/generated/devkit/README.md create mode 100644 docs/generated/devkit/RawProjectGraphDependency.md create mode 100644 docs/generated/devkit/RemoteCache.md create mode 100644 docs/generated/devkit/StaticDependency.md create mode 100644 docs/generated/devkit/StringChange.md create mode 100644 docs/generated/devkit/StringDeletion.md create mode 100644 docs/generated/devkit/StringInsertion.md create mode 100644 docs/generated/devkit/Target.md create mode 100644 docs/generated/devkit/TargetConfiguration.md create mode 100644 docs/generated/devkit/TargetDefaults.md create mode 100644 docs/generated/devkit/TargetDependencyConfig.md create mode 100644 docs/generated/devkit/Task.md create mode 100644 docs/generated/devkit/TaskGraph.md create mode 100644 docs/generated/devkit/TaskGraphExecutor.md create mode 100644 docs/generated/devkit/TaskHasher.md create mode 100644 docs/generated/devkit/ToJSOptions.md create mode 100644 docs/generated/devkit/Tree.md create mode 100644 docs/generated/devkit/Workspace.md create mode 100644 docs/generated/devkit/WorkspaceJsonConfiguration.md create mode 100644 docs/generated/devkit/Workspaces.md create mode 100644 docs/generated/devkit/addDependenciesToPackageJson.md create mode 100644 docs/generated/devkit/addProjectConfiguration.md create mode 100644 docs/generated/devkit/appRootPath.md create mode 100644 docs/generated/devkit/applyChangesToString.md create mode 100644 docs/generated/devkit/cacheDir.md create mode 100644 docs/generated/devkit/convertNxExecutor.md create mode 100644 docs/generated/devkit/convertNxGenerator.md create mode 100644 docs/generated/devkit/createProjectFileMapUsingProjectGraph.md create mode 100644 docs/generated/devkit/createProjectGraphAsync.md create mode 100644 docs/generated/devkit/defaultTasksRunner.md create mode 100644 docs/generated/devkit/detectPackageManager.md create mode 100644 docs/generated/devkit/ensurePackage.md create mode 100644 docs/generated/devkit/extractLayoutDirectory.md create mode 100644 docs/generated/devkit/formatFiles.md create mode 100644 docs/generated/devkit/generateFiles.md create mode 100644 docs/generated/devkit/getOutputsForTargetAndConfiguration.md create mode 100644 docs/generated/devkit/getPackageManagerCommand.md create mode 100644 docs/generated/devkit/getPackageManagerVersion.md create mode 100644 docs/generated/devkit/getProjects.md create mode 100644 docs/generated/devkit/getWorkspaceLayout.md create mode 100644 docs/generated/devkit/glob.md create mode 100644 docs/generated/devkit/hashArray.md create mode 100644 docs/generated/devkit/installPackagesTask.md create mode 100644 docs/generated/devkit/isWorkspacesEnabled.md create mode 100644 docs/generated/devkit/joinPathFragments.md create mode 100644 docs/generated/devkit/logger.md create mode 100644 docs/generated/devkit/moveFilesToNewDirectory.md create mode 100644 docs/generated/devkit/names.md create mode 100644 docs/generated/devkit/ngcli_adapter/.nojekyll create mode 100644 docs/generated/devkit/ngcli_adapter/NxScopedHost.md create mode 100644 docs/generated/devkit/ngcli_adapter/README.md create mode 100644 docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md create mode 100644 docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md create mode 100644 docs/generated/devkit/normalizePath.md create mode 100644 docs/generated/devkit/offsetFromRoot.md create mode 100644 docs/generated/devkit/output.md create mode 100644 docs/generated/devkit/parseJson.md create mode 100644 docs/generated/devkit/parseTargetString.md create mode 100644 docs/generated/devkit/readCachedProjectGraph.md create mode 100644 docs/generated/devkit/readJson.md create mode 100644 docs/generated/devkit/readJsonFile.md create mode 100644 docs/generated/devkit/readNxJson.md create mode 100644 docs/generated/devkit/readProjectConfiguration.md create mode 100644 docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md create mode 100644 docs/generated/devkit/readTargetOptions.md create mode 100644 docs/generated/devkit/removeDependenciesFromPackageJson.md create mode 100644 docs/generated/devkit/removeProjectConfiguration.md create mode 100644 docs/generated/devkit/reverse.md create mode 100644 docs/generated/devkit/runExecutor.md create mode 100644 docs/generated/devkit/runTasksInSerial.md create mode 100644 docs/generated/devkit/serializeJson.md create mode 100644 docs/generated/devkit/stripIndents.md create mode 100644 docs/generated/devkit/stripJsonComments.md create mode 100644 docs/generated/devkit/targetToTargetString.md create mode 100644 docs/generated/devkit/toJS.md create mode 100644 docs/generated/devkit/updateJson.md create mode 100644 docs/generated/devkit/updateNxJson.md create mode 100644 docs/generated/devkit/updateProjectConfiguration.md create mode 100644 docs/generated/devkit/updateTsConfigsToJs.md create mode 100644 docs/generated/devkit/validateDependency.md create mode 100644 docs/generated/devkit/visitNotIgnoredFiles.md create mode 100644 docs/generated/devkit/workspaceLayout.md create mode 100644 docs/generated/devkit/workspaceRoot.md create mode 100644 docs/generated/devkit/writeJson.md create mode 100644 docs/generated/devkit/writeJsonFile.md create mode 100644 docs/generated/manifests/ci.json create mode 100644 docs/generated/manifests/extending-nx.json create mode 100644 docs/generated/manifests/menus.json create mode 100644 docs/generated/manifests/nx-api.json create mode 100644 docs/generated/manifests/nx.json create mode 100644 docs/generated/manifests/tags.json create mode 100644 docs/generated/packages-metadata.json create mode 100644 docs/generated/packages/angular/documents/angular-nx-version-matrix.md create mode 100644 docs/generated/packages/angular/documents/overview.md create mode 100644 docs/generated/packages/angular/executors/application.json create mode 100644 docs/generated/packages/angular/executors/browser-esbuild.json create mode 100644 docs/generated/packages/angular/executors/delegate-build.json create mode 100644 docs/generated/packages/angular/executors/dev-server.json create mode 100644 docs/generated/packages/angular/executors/extract-i18n.json create mode 100644 docs/generated/packages/angular/executors/module-federation-dev-server.json create mode 100644 docs/generated/packages/angular/executors/module-federation-dev-ssr.json create mode 100644 docs/generated/packages/angular/executors/ng-packagr-lite.json create mode 100644 docs/generated/packages/angular/executors/package.json create mode 100644 docs/generated/packages/angular/executors/webpack-browser.json create mode 100644 docs/generated/packages/angular/executors/webpack-server.json create mode 100644 docs/generated/packages/angular/generators/add-linting.json create mode 100644 docs/generated/packages/angular/generators/application.json create mode 100644 docs/generated/packages/angular/generators/component-cypress-spec.json create mode 100644 docs/generated/packages/angular/generators/component-story.json create mode 100644 docs/generated/packages/angular/generators/component-test.json create mode 100644 docs/generated/packages/angular/generators/component.json create mode 100644 docs/generated/packages/angular/generators/convert-to-application-executor.json create mode 100644 docs/generated/packages/angular/generators/convert-to-with-mf.json create mode 100644 docs/generated/packages/angular/generators/cypress-component-configuration.json create mode 100644 docs/generated/packages/angular/generators/directive.json create mode 100644 docs/generated/packages/angular/generators/federate-module.json create mode 100644 docs/generated/packages/angular/generators/host.json create mode 100644 docs/generated/packages/angular/generators/init.json create mode 100644 docs/generated/packages/angular/generators/library-secondary-entry-point.json create mode 100644 docs/generated/packages/angular/generators/library.json create mode 100644 docs/generated/packages/angular/generators/move.json create mode 100644 docs/generated/packages/angular/generators/ng-add.json create mode 100644 docs/generated/packages/angular/generators/ngrx-feature-store.json create mode 100644 docs/generated/packages/angular/generators/ngrx-root-store.json create mode 100644 docs/generated/packages/angular/generators/ngrx.json create mode 100644 docs/generated/packages/angular/generators/pipe.json create mode 100644 docs/generated/packages/angular/generators/remote.json create mode 100644 docs/generated/packages/angular/generators/scam-directive.json create mode 100644 docs/generated/packages/angular/generators/scam-pipe.json create mode 100644 docs/generated/packages/angular/generators/scam-to-standalone.json create mode 100644 docs/generated/packages/angular/generators/scam.json create mode 100644 docs/generated/packages/angular/generators/setup-mf.json create mode 100644 docs/generated/packages/angular/generators/setup-ssr.json create mode 100644 docs/generated/packages/angular/generators/setup-tailwind.json create mode 100644 docs/generated/packages/angular/generators/stories.json create mode 100644 docs/generated/packages/angular/generators/storybook-configuration.json create mode 100644 docs/generated/packages/angular/generators/web-worker.json create mode 100644 docs/generated/packages/cypress/documents/overview.md create mode 100644 docs/generated/packages/cypress/executors/cypress.json create mode 100644 docs/generated/packages/cypress/generators/component-configuration.json create mode 100644 docs/generated/packages/cypress/generators/configuration.json create mode 100644 docs/generated/packages/cypress/generators/cypress-project.json create mode 100644 docs/generated/packages/cypress/generators/init.json create mode 100644 docs/generated/packages/cypress/generators/migrate-to-cypress-11.json create mode 100644 docs/generated/packages/detox/documents/overview.md create mode 100644 docs/generated/packages/detox/executors/build.json create mode 100644 docs/generated/packages/detox/executors/test.json create mode 100644 docs/generated/packages/detox/generators/application.json create mode 100644 docs/generated/packages/detox/generators/init.json create mode 100644 docs/generated/packages/devkit/documents/ngcli_adapter.md create mode 100644 docs/generated/packages/devkit/documents/nx_devkit.md create mode 100644 docs/generated/packages/esbuild/documents/overview.md create mode 100644 docs/generated/packages/esbuild/executors/esbuild.json create mode 100644 docs/generated/packages/esbuild/generators/configuration.json create mode 100644 docs/generated/packages/esbuild/generators/init.json create mode 100644 docs/generated/packages/eslint-plugin/documents/dependency-checks.md create mode 100644 docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md create mode 100644 docs/generated/packages/eslint-plugin/documents/overview.md create mode 100644 docs/generated/packages/eslint/documents/overview.md create mode 100644 docs/generated/packages/eslint/executors/lint.json create mode 100644 docs/generated/packages/eslint/generators/convert-to-flat-config.json create mode 100644 docs/generated/packages/eslint/generators/init.json create mode 100644 docs/generated/packages/eslint/generators/workspace-rule.json create mode 100644 docs/generated/packages/eslint/generators/workspace-rules-project.json create mode 100644 docs/generated/packages/expo/documents/overview.md create mode 100644 docs/generated/packages/expo/executors/build-list.json create mode 100644 docs/generated/packages/expo/executors/build.json create mode 100644 docs/generated/packages/expo/executors/ensure-symlink.json create mode 100644 docs/generated/packages/expo/executors/export.json create mode 100644 docs/generated/packages/expo/executors/install.json create mode 100644 docs/generated/packages/expo/executors/prebuild.json create mode 100644 docs/generated/packages/expo/executors/run.json create mode 100644 docs/generated/packages/expo/executors/serve.json create mode 100644 docs/generated/packages/expo/executors/start.json create mode 100644 docs/generated/packages/expo/executors/submit.json create mode 100644 docs/generated/packages/expo/executors/sync-deps.json create mode 100644 docs/generated/packages/expo/executors/update.json create mode 100644 docs/generated/packages/expo/generators/application.json create mode 100644 docs/generated/packages/expo/generators/component.json create mode 100644 docs/generated/packages/expo/generators/init.json create mode 100644 docs/generated/packages/expo/generators/library.json create mode 100644 docs/generated/packages/express/documents/overview.md create mode 100644 docs/generated/packages/express/generators/application.json create mode 100644 docs/generated/packages/express/generators/init.json create mode 100644 docs/generated/packages/jest/documents/overview.md create mode 100644 docs/generated/packages/jest/executors/jest.json create mode 100644 docs/generated/packages/jest/generators/configuration.json create mode 100644 docs/generated/packages/jest/generators/init.json create mode 100644 docs/generated/packages/js/documents/overview.md create mode 100644 docs/generated/packages/js/executors/node.json create mode 100644 docs/generated/packages/js/executors/release-publish.json create mode 100644 docs/generated/packages/js/executors/swc.json create mode 100644 docs/generated/packages/js/executors/tsc.json create mode 100644 docs/generated/packages/js/executors/verdaccio.json create mode 100644 docs/generated/packages/js/generators/convert-to-swc.json create mode 100644 docs/generated/packages/js/generators/init.json create mode 100644 docs/generated/packages/js/generators/library.json create mode 100644 docs/generated/packages/js/generators/release-version.json create mode 100644 docs/generated/packages/js/generators/setup-build.json create mode 100644 docs/generated/packages/js/generators/setup-verdaccio.json create mode 100644 docs/generated/packages/nest/documents/overview.md create mode 100644 docs/generated/packages/nest/generators/application.json create mode 100644 docs/generated/packages/nest/generators/class.json create mode 100644 docs/generated/packages/nest/generators/controller.json create mode 100644 docs/generated/packages/nest/generators/decorator.json create mode 100644 docs/generated/packages/nest/generators/filter.json create mode 100644 docs/generated/packages/nest/generators/gateway.json create mode 100644 docs/generated/packages/nest/generators/guard.json create mode 100644 docs/generated/packages/nest/generators/init.json create mode 100644 docs/generated/packages/nest/generators/interceptor.json create mode 100644 docs/generated/packages/nest/generators/interface.json create mode 100644 docs/generated/packages/nest/generators/library.json create mode 100644 docs/generated/packages/nest/generators/middleware.json create mode 100644 docs/generated/packages/nest/generators/module.json create mode 100644 docs/generated/packages/nest/generators/pipe.json create mode 100644 docs/generated/packages/nest/generators/provider.json create mode 100644 docs/generated/packages/nest/generators/resolver.json create mode 100644 docs/generated/packages/nest/generators/resource.json create mode 100644 docs/generated/packages/nest/generators/service.json create mode 100644 docs/generated/packages/next/documents/overview.md create mode 100644 docs/generated/packages/next/executors/build.json create mode 100644 docs/generated/packages/next/executors/export.json create mode 100644 docs/generated/packages/next/executors/server.json create mode 100644 docs/generated/packages/next/generators/application.json create mode 100644 docs/generated/packages/next/generators/component.json create mode 100644 docs/generated/packages/next/generators/custom-server.json create mode 100644 docs/generated/packages/next/generators/cypress-component-configuration.json create mode 100644 docs/generated/packages/next/generators/init.json create mode 100644 docs/generated/packages/next/generators/library.json create mode 100644 docs/generated/packages/next/generators/page.json create mode 100644 docs/generated/packages/node/documents/overview.md create mode 100644 docs/generated/packages/node/generators/application.json create mode 100644 docs/generated/packages/node/generators/init.json create mode 100644 docs/generated/packages/node/generators/library.json create mode 100644 docs/generated/packages/node/generators/setup-docker.json create mode 100644 docs/generated/packages/nuxt/documents/overview.md create mode 100644 docs/generated/packages/nuxt/generators/application.json create mode 100644 docs/generated/packages/nuxt/generators/init.json create mode 100644 docs/generated/packages/nuxt/generators/storybook-configuration.json create mode 100644 docs/generated/packages/nx/documents/add.md create mode 100644 docs/generated/packages/nx/documents/affected-dep-graph.md create mode 100644 docs/generated/packages/nx/documents/affected.md create mode 100644 docs/generated/packages/nx/documents/connect-to-nx-cloud.md create mode 100644 docs/generated/packages/nx/documents/create-nx-workspace.md create mode 100644 docs/generated/packages/nx/documents/daemon.md create mode 100644 docs/generated/packages/nx/documents/dep-graph.md create mode 100644 docs/generated/packages/nx/documents/exec.md create mode 100644 docs/generated/packages/nx/documents/format-check.md create mode 100644 docs/generated/packages/nx/documents/format-write.md create mode 100644 docs/generated/packages/nx/documents/generate.md create mode 100644 docs/generated/packages/nx/documents/init.md create mode 100644 docs/generated/packages/nx/documents/list.md create mode 100644 docs/generated/packages/nx/documents/migrate.md create mode 100644 docs/generated/packages/nx/documents/print-affected.md create mode 100644 docs/generated/packages/nx/documents/release.md create mode 100644 docs/generated/packages/nx/documents/repair.md create mode 100644 docs/generated/packages/nx/documents/report.md create mode 100644 docs/generated/packages/nx/documents/reset.md create mode 100644 docs/generated/packages/nx/documents/run-many.md create mode 100644 docs/generated/packages/nx/documents/run.md create mode 100644 docs/generated/packages/nx/documents/show.md create mode 100644 docs/generated/packages/nx/documents/view-logs.md create mode 100644 docs/generated/packages/nx/documents/watch.md create mode 100644 docs/generated/packages/nx/executors/noop.json create mode 100644 docs/generated/packages/nx/executors/run-commands.json create mode 100644 docs/generated/packages/nx/executors/run-script.json create mode 100644 docs/generated/packages/nx/generators/connect-to-nx-cloud.json create mode 100644 docs/generated/packages/playwright/documents/overview.md create mode 100644 docs/generated/packages/playwright/executors/playwright.json create mode 100644 docs/generated/packages/playwright/generators/configuration.json create mode 100644 docs/generated/packages/playwright/generators/init.json create mode 100644 docs/generated/packages/plugin/documents/overview.md create mode 100644 docs/generated/packages/plugin/executors/e2e.json create mode 100644 docs/generated/packages/plugin/generators/create-package.json create mode 100644 docs/generated/packages/plugin/generators/e2e-project.json create mode 100644 docs/generated/packages/plugin/generators/executor.json create mode 100644 docs/generated/packages/plugin/generators/generator.json create mode 100644 docs/generated/packages/plugin/generators/migration.json create mode 100644 docs/generated/packages/plugin/generators/plugin-lint-checks.json create mode 100644 docs/generated/packages/plugin/generators/plugin.json create mode 100644 docs/generated/packages/plugin/generators/preset.json create mode 100644 docs/generated/packages/react-native/documents/overview.md create mode 100644 docs/generated/packages/react-native/executors/build-android.json create mode 100644 docs/generated/packages/react-native/executors/build-ios.json create mode 100644 docs/generated/packages/react-native/executors/bundle.json create mode 100644 docs/generated/packages/react-native/executors/ensure-symlink.json create mode 100644 docs/generated/packages/react-native/executors/pod-install.json create mode 100644 docs/generated/packages/react-native/executors/run-android.json create mode 100644 docs/generated/packages/react-native/executors/run-ios.json create mode 100644 docs/generated/packages/react-native/executors/start.json create mode 100644 docs/generated/packages/react-native/executors/storybook.json create mode 100644 docs/generated/packages/react-native/executors/sync-deps.json create mode 100644 docs/generated/packages/react-native/executors/upgrade.json create mode 100644 docs/generated/packages/react-native/generators/application.json create mode 100644 docs/generated/packages/react-native/generators/component-story.json create mode 100644 docs/generated/packages/react-native/generators/component.json create mode 100644 docs/generated/packages/react-native/generators/init.json create mode 100644 docs/generated/packages/react-native/generators/library.json create mode 100644 docs/generated/packages/react-native/generators/stories.json create mode 100644 docs/generated/packages/react-native/generators/storybook-configuration.json create mode 100644 docs/generated/packages/react-native/generators/upgrade-native.json create mode 100644 docs/generated/packages/react-native/generators/web-configuration.json create mode 100644 docs/generated/packages/react/documents/overview.md create mode 100644 docs/generated/packages/react/executors/module-federation-dev-server.json create mode 100644 docs/generated/packages/react/executors/module-federation-ssr-dev-server.json create mode 100644 docs/generated/packages/react/generators/application.json create mode 100644 docs/generated/packages/react/generators/component-cypress-spec.json create mode 100644 docs/generated/packages/react/generators/component-story.json create mode 100644 docs/generated/packages/react/generators/component-test.json create mode 100644 docs/generated/packages/react/generators/component.json create mode 100644 docs/generated/packages/react/generators/cypress-component-configuration.json create mode 100644 docs/generated/packages/react/generators/federate-module.json create mode 100644 docs/generated/packages/react/generators/hook.json create mode 100644 docs/generated/packages/react/generators/host.json create mode 100644 docs/generated/packages/react/generators/init.json create mode 100644 docs/generated/packages/react/generators/library.json create mode 100644 docs/generated/packages/react/generators/redux.json create mode 100644 docs/generated/packages/react/generators/remote.json create mode 100644 docs/generated/packages/react/generators/setup-ssr.json create mode 100644 docs/generated/packages/react/generators/setup-tailwind.json create mode 100644 docs/generated/packages/react/generators/stories.json create mode 100644 docs/generated/packages/react/generators/storybook-configuration.json create mode 100644 docs/generated/packages/remix/documents/overview.md create mode 100644 docs/generated/packages/remix/executors/build.json create mode 100644 docs/generated/packages/remix/executors/serve.json create mode 100644 docs/generated/packages/remix/generators/action.json create mode 100644 docs/generated/packages/remix/generators/application.json create mode 100644 docs/generated/packages/remix/generators/cypress-component-configuration.json create mode 100644 docs/generated/packages/remix/generators/error-boundary.json create mode 100644 docs/generated/packages/remix/generators/init.json create mode 100644 docs/generated/packages/remix/generators/library.json create mode 100644 docs/generated/packages/remix/generators/loader.json create mode 100644 docs/generated/packages/remix/generators/meta.json create mode 100644 docs/generated/packages/remix/generators/preset.json create mode 100644 docs/generated/packages/remix/generators/resource-route.json create mode 100644 docs/generated/packages/remix/generators/route.json create mode 100644 docs/generated/packages/remix/generators/setup-tailwind.json create mode 100644 docs/generated/packages/remix/generators/setup.json create mode 100644 docs/generated/packages/remix/generators/storybook-configuration.json create mode 100644 docs/generated/packages/remix/generators/style.json create mode 100644 docs/generated/packages/rollup/executors/rollup.json create mode 100644 docs/generated/packages/rollup/generators/configuration.json create mode 100644 docs/generated/packages/rollup/generators/init.json create mode 100644 docs/generated/packages/storybook/documents/best-practices.md create mode 100644 docs/generated/packages/storybook/documents/overview.md create mode 100644 docs/generated/packages/storybook/documents/storybook-7-setup.md create mode 100644 docs/generated/packages/storybook/executors/build.json create mode 100644 docs/generated/packages/storybook/executors/storybook.json create mode 100644 docs/generated/packages/storybook/generators/configuration.json create mode 100644 docs/generated/packages/storybook/generators/cypress-project.json create mode 100644 docs/generated/packages/storybook/generators/init.json create mode 100644 docs/generated/packages/storybook/generators/migrate-7.json create mode 100644 docs/generated/packages/vite/documents/overview.md create mode 100644 docs/generated/packages/vite/executors/build.json create mode 100644 docs/generated/packages/vite/executors/dev-server.json create mode 100644 docs/generated/packages/vite/executors/preview-server.json create mode 100644 docs/generated/packages/vite/executors/test.json create mode 100644 docs/generated/packages/vite/generators/configuration.json create mode 100644 docs/generated/packages/vite/generators/init.json create mode 100644 docs/generated/packages/vite/generators/vitest.json create mode 100644 docs/generated/packages/vue/documents/overview.md create mode 100644 docs/generated/packages/vue/generators/application.json create mode 100644 docs/generated/packages/vue/generators/component.json create mode 100644 docs/generated/packages/vue/generators/init.json create mode 100644 docs/generated/packages/vue/generators/library.json create mode 100644 docs/generated/packages/vue/generators/setup-tailwind.json create mode 100644 docs/generated/packages/vue/generators/stories.json create mode 100644 docs/generated/packages/vue/generators/storybook-configuration.json create mode 100644 docs/generated/packages/web/documents/overview.md create mode 100644 docs/generated/packages/web/executors/file-server.json create mode 100644 docs/generated/packages/web/generators/application.json create mode 100644 docs/generated/packages/web/generators/init.json create mode 100644 docs/generated/packages/web/generators/static-config.json create mode 100644 docs/generated/packages/webpack/documents/overview.md create mode 100644 docs/generated/packages/webpack/executors/dev-server.json create mode 100644 docs/generated/packages/webpack/executors/ssr-dev-server.json create mode 100644 docs/generated/packages/webpack/executors/webpack.json create mode 100644 docs/generated/packages/webpack/generators/configuration.json create mode 100644 docs/generated/packages/webpack/generators/init.json create mode 100644 docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md create mode 100644 docs/generated/packages/workspace/documents/overview.md create mode 100644 docs/generated/packages/workspace/executors/counter.json create mode 100644 docs/generated/packages/workspace/generators/ci-workflow.json create mode 100644 docs/generated/packages/workspace/generators/convert-to-monorepo.json create mode 100644 docs/generated/packages/workspace/generators/fix-configuration.json create mode 100644 docs/generated/packages/workspace/generators/move.json create mode 100644 docs/generated/packages/workspace/generators/new.json create mode 100644 docs/generated/packages/workspace/generators/npm-package.json create mode 100644 docs/generated/packages/workspace/generators/preset.json create mode 100644 docs/generated/packages/workspace/generators/remove.json create mode 100644 docs/generated/packages/workspace/generators/run-commands.json diff --git a/docs/generated/devkit/ChangeType.md b/docs/generated/devkit/ChangeType.md new file mode 100644 index 0000000000000..012fdac00fbed --- /dev/null +++ b/docs/generated/devkit/ChangeType.md @@ -0,0 +1,20 @@ +# Enumeration: ChangeType + +## Table of contents + +### Enumeration Members + +- [Delete](../../devkit/documents/ChangeType#delete) +- [Insert](../../devkit/documents/ChangeType#insert) + +## Enumeration Members + +### Delete + +• **Delete** = `"Delete"` + +--- + +### Insert + +• **Insert** = `"Insert"` diff --git a/docs/generated/devkit/CreateDependencies.md b/docs/generated/devkit/CreateDependencies.md new file mode 100644 index 0000000000000..0800b0dbc2c3f --- /dev/null +++ b/docs/generated/devkit/CreateDependencies.md @@ -0,0 +1,27 @@ +# Type alias: CreateDependencies\ + +Ƭ **CreateDependencies**\<`T`\>: (`options`: `T` \| `undefined`, `context`: [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext)) => [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\> + +A function which parses files in the workspace to create dependencies in the [ProjectGraph](../../devkit/documents/ProjectGraph) +Use [validateDependency](../../devkit/documents/validateDependency) to validate dependencies + +#### Type parameters + +| Name | Type | +| :--- | :-------- | +| `T` | `unknown` | + +#### Type declaration + +▸ (`options`, `context`): [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\> + +##### Parameters + +| Name | Type | +| :-------- | :------------------------------------------------------------------------------ | +| `options` | `T` \| `undefined` | +| `context` | [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext) | + +##### Returns + +[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\> diff --git a/docs/generated/devkit/CreateDependenciesContext.md b/docs/generated/devkit/CreateDependenciesContext.md new file mode 100644 index 0000000000000..ee04503fbfc4a --- /dev/null +++ b/docs/generated/devkit/CreateDependenciesContext.md @@ -0,0 +1,60 @@ +# Interface: CreateDependenciesContext + +Context for [CreateDependencies](../../devkit/documents/CreateDependencies) + +## Table of contents + +### Properties + +- [externalNodes](../../devkit/documents/CreateDependenciesContext#externalnodes): Record +- [fileMap](../../devkit/documents/CreateDependenciesContext#filemap): FileMap +- [filesToProcess](../../devkit/documents/CreateDependenciesContext#filestoprocess): FileMap +- [nxJsonConfiguration](../../devkit/documents/CreateDependenciesContext#nxjsonconfiguration): NxJsonConfiguration +- [projects](../../devkit/documents/CreateDependenciesContext#projects): Record +- [workspaceRoot](../../devkit/documents/CreateDependenciesContext#workspaceroot): string + +## Properties + +### externalNodes + +• `Readonly` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\> + +The external nodes that have been added to the graph. + +--- + +### fileMap + +• `Readonly` **fileMap**: [`FileMap`](../../devkit/documents/FileMap) + +All files in the workspace + +--- + +### filesToProcess + +• `Readonly` **filesToProcess**: [`FileMap`](../../devkit/documents/FileMap) + +Files changes since last invocation + +--- + +### nxJsonConfiguration + +• `Readonly` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +The `nx.json` configuration from the workspace + +--- + +### projects + +• `Readonly` **projects**: `Record`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> + +The configuration of each project in the workspace. + +--- + +### workspaceRoot + +• `Readonly` **workspaceRoot**: `string` diff --git a/docs/generated/devkit/CreateNodes.md b/docs/generated/devkit/CreateNodes.md new file mode 100644 index 0000000000000..766261c911cab --- /dev/null +++ b/docs/generated/devkit/CreateNodes.md @@ -0,0 +1,11 @@ +# Type alias: CreateNodes\ + +Ƭ **CreateNodes**\<`T`\>: readonly [configFilePattern: string, createNodesFunction: CreateNodesFunction\] + +A pair of file patterns and [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) + +#### Type parameters + +| Name | Type | +| :--- | :-------- | +| `T` | `unknown` | diff --git a/docs/generated/devkit/CreateNodesContext.md b/docs/generated/devkit/CreateNodesContext.md new file mode 100644 index 0000000000000..25c357b8103e0 --- /dev/null +++ b/docs/generated/devkit/CreateNodesContext.md @@ -0,0 +1,31 @@ +# Interface: CreateNodesContext + +Context for [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) + +## Table of contents + +### Properties + +- [configFiles](../../devkit/documents/CreateNodesContext#configfiles): string[] +- [nxJsonConfiguration](../../devkit/documents/CreateNodesContext#nxjsonconfiguration): NxJsonConfiguration +- [workspaceRoot](../../devkit/documents/CreateNodesContext#workspaceroot): string + +## Properties + +### configFiles + +• `Readonly` **configFiles**: `string`[] + +The subset of configuration files which match the createNodes pattern + +--- + +### nxJsonConfiguration + +• `Readonly` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +--- + +### workspaceRoot + +• `Readonly` **workspaceRoot**: `string` diff --git a/docs/generated/devkit/CreateNodesFunction.md b/docs/generated/devkit/CreateNodesFunction.md new file mode 100644 index 0000000000000..5ebf292988068 --- /dev/null +++ b/docs/generated/devkit/CreateNodesFunction.md @@ -0,0 +1,28 @@ +# Type alias: CreateNodesFunction\ + +Ƭ **CreateNodesFunction**\<`T`\>: (`projectConfigurationFile`: `string`, `options`: `T` \| `undefined`, `context`: [`CreateNodesContext`](../../devkit/documents/CreateNodesContext)) => [`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\> + +A function which parses a configuration file into a set of nodes. +Used for creating nodes for the [ProjectGraph](../../devkit/documents/ProjectGraph) + +#### Type parameters + +| Name | Type | +| :--- | :-------- | +| `T` | `unknown` | + +#### Type declaration + +▸ (`projectConfigurationFile`, `options`, `context`): [`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\> + +##### Parameters + +| Name | Type | +| :------------------------- | :---------------------------------------------------------------- | +| `projectConfigurationFile` | `string` | +| `options` | `T` \| `undefined` | +| `context` | [`CreateNodesContext`](../../devkit/documents/CreateNodesContext) | + +##### Returns + +[`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\> diff --git a/docs/generated/devkit/CreateNodesResult.md b/docs/generated/devkit/CreateNodesResult.md new file mode 100644 index 0000000000000..143da7c925188 --- /dev/null +++ b/docs/generated/devkit/CreateNodesResult.md @@ -0,0 +1,24 @@ +# Interface: CreateNodesResult + +## Table of contents + +### Properties + +- [externalNodes](../../devkit/documents/CreateNodesResult#externalnodes): Record +- [projects](../../devkit/documents/CreateNodesResult#projects): Record> + +## Properties + +### externalNodes + +• `Optional` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\> + +A map of external node name -> external node. External nodes do not have a root, so the key is their name. + +--- + +### projects + +• `Optional` **projects**: `Record`\<`string`, `Optional`\<[`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration), `"root"`\>\> + +A map of project root -> project configuration diff --git a/docs/generated/devkit/CustomHasher.md b/docs/generated/devkit/CustomHasher.md new file mode 100644 index 0000000000000..52bbd5a6eb45c --- /dev/null +++ b/docs/generated/devkit/CustomHasher.md @@ -0,0 +1,18 @@ +# Type alias: CustomHasher + +Ƭ **CustomHasher**: (`task`: [`Task`](../../devkit/documents/Task), `context`: [`HasherContext`](../../devkit/documents/HasherContext)) => `Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +#### Type declaration + +▸ (`task`, `context`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +##### Parameters + +| Name | Type | +| :-------- | :------------------------------------------------------ | +| `task` | [`Task`](../../devkit/documents/Task) | +| `context` | [`HasherContext`](../../devkit/documents/HasherContext) | + +##### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)\> diff --git a/docs/generated/devkit/DefaultTasksRunnerOptions.md b/docs/generated/devkit/DefaultTasksRunnerOptions.md new file mode 100644 index 0000000000000..cb51ef9d8b9f1 --- /dev/null +++ b/docs/generated/devkit/DefaultTasksRunnerOptions.md @@ -0,0 +1,76 @@ +# Interface: DefaultTasksRunnerOptions + +## Table of contents + +### Properties + +- [batch](../../devkit/documents/DefaultTasksRunnerOptions#batch): boolean +- [cacheDirectory](../../devkit/documents/DefaultTasksRunnerOptions#cachedirectory): string +- [cacheableOperations](../../devkit/documents/DefaultTasksRunnerOptions#cacheableoperations): string[] +- [cacheableTargets](../../devkit/documents/DefaultTasksRunnerOptions#cacheabletargets): string[] +- [captureStderr](../../devkit/documents/DefaultTasksRunnerOptions#capturestderr): boolean +- [lifeCycle](../../devkit/documents/DefaultTasksRunnerOptions#lifecycle): LifeCycle +- [parallel](../../devkit/documents/DefaultTasksRunnerOptions#parallel): number +- [remoteCache](../../devkit/documents/DefaultTasksRunnerOptions#remotecache): RemoteCache +- [runtimeCacheInputs](../../devkit/documents/DefaultTasksRunnerOptions#runtimecacheinputs): string[] +- [skipNxCache](../../devkit/documents/DefaultTasksRunnerOptions#skipnxcache): boolean + +## Properties + +### batch + +• `Optional` **batch**: `boolean` + +--- + +### cacheDirectory + +• `Optional` **cacheDirectory**: `string` + +--- + +### cacheableOperations + +• `Optional` **cacheableOperations**: `string`[] + +--- + +### cacheableTargets + +• `Optional` **cacheableTargets**: `string`[] + +--- + +### captureStderr + +• `Optional` **captureStderr**: `boolean` + +--- + +### lifeCycle + +• **lifeCycle**: `LifeCycle` + +--- + +### parallel + +• `Optional` **parallel**: `number` + +--- + +### remoteCache + +• `Optional` **remoteCache**: [`RemoteCache`](../../devkit/documents/RemoteCache) + +--- + +### runtimeCacheInputs + +• `Optional` **runtimeCacheInputs**: `string`[] + +--- + +### skipNxCache + +• `Optional` **skipNxCache**: `boolean` diff --git a/docs/generated/devkit/DependencyType.md b/docs/generated/devkit/DependencyType.md new file mode 100644 index 0000000000000..fda9b29d08abb --- /dev/null +++ b/docs/generated/devkit/DependencyType.md @@ -0,0 +1,35 @@ +# Enumeration: DependencyType + +Type of dependency between projects + +## Table of contents + +### Enumeration Members + +- [dynamic](../../devkit/documents/DependencyType#dynamic) +- [implicit](../../devkit/documents/DependencyType#implicit) +- [static](../../devkit/documents/DependencyType#static) + +## Enumeration Members + +### dynamic + +• **dynamic** = `"dynamic"` + +Dynamic dependencies are brought in by the module at run time + +--- + +### implicit + +• **implicit** = `"implicit"` + +Implicit dependencies are inferred + +--- + +### static + +• **static** = `"static"` + +Static dependencies are tied to the loading of the module diff --git a/docs/generated/devkit/DynamicDependency.md b/docs/generated/devkit/DynamicDependency.md new file mode 100644 index 0000000000000..988c3017ed481 --- /dev/null +++ b/docs/generated/devkit/DynamicDependency.md @@ -0,0 +1,16 @@ +# Type alias: DynamicDependency + +Ƭ **DynamicDependency**: `Object` + +A dynamic [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects + +This type of dependency indicates the source project MAY OR MAY NOT load the target project. + +#### Type declaration + +| Name | Type | Description | +| :----------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | +| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) depending on the target project | +| `sourceFile` | `string` | The path of a file (relative from the workspace root) where the dependency is made | +| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) that the source project depends on | +| `type` | typeof [`dynamic`](../../devkit/documents/DependencyType#dynamic) | - | diff --git a/docs/generated/devkit/Executor.md b/docs/generated/devkit/Executor.md new file mode 100644 index 0000000000000..3e44f1f533bdb --- /dev/null +++ b/docs/generated/devkit/Executor.md @@ -0,0 +1,26 @@ +# Type alias: Executor\ + +Ƭ **Executor**\<`T`\>: (`options`: `T`, `context`: [`ExecutorContext`](../../devkit/documents/ExecutorContext)) => `Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\> + +Implementation of a target of a project + +#### Type parameters + +| Name | Type | +| :--- | :---- | +| `T` | `any` | + +#### Type declaration + +▸ (`options`, `context`): `Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\> + +##### Parameters + +| Name | Type | +| :-------- | :---------------------------------------------------------- | +| `options` | `T` | +| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | + +##### Returns + +`Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\> diff --git a/docs/generated/devkit/ExecutorContext.md b/docs/generated/devkit/ExecutorContext.md new file mode 100644 index 0000000000000..004c4f9fc391d --- /dev/null +++ b/docs/generated/devkit/ExecutorContext.md @@ -0,0 +1,126 @@ +# Interface: ExecutorContext + +Context that is passed into an executor + +## Table of contents + +### Properties + +- [configurationName](../../devkit/documents/ExecutorContext#configurationname): string +- [cwd](../../devkit/documents/ExecutorContext#cwd): string +- [isVerbose](../../devkit/documents/ExecutorContext#isverbose): boolean +- [nxJsonConfiguration](../../devkit/documents/ExecutorContext#nxjsonconfiguration): NxJsonConfiguration +- [projectGraph](../../devkit/documents/ExecutorContext#projectgraph): ProjectGraph +- [projectName](../../devkit/documents/ExecutorContext#projectname): string +- [projectsConfigurations](../../devkit/documents/ExecutorContext#projectsconfigurations): ProjectsConfigurations +- [root](../../devkit/documents/ExecutorContext#root): string +- [target](../../devkit/documents/ExecutorContext#target): TargetConfiguration +- [targetName](../../devkit/documents/ExecutorContext#targetname): string +- [taskGraph](../../devkit/documents/ExecutorContext#taskgraph): TaskGraph +- [workspace](../../devkit/documents/ExecutorContext#workspace): ProjectsConfigurations & NxJsonConfiguration + +## Properties + +### configurationName + +• `Optional` **configurationName**: `string` + +The name of the configuration being executed + +--- + +### cwd + +• **cwd**: `string` + +The current working directory + +--- + +### isVerbose + +• **isVerbose**: `boolean` + +Enable verbose logging + +--- + +### nxJsonConfiguration + +• `Optional` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +The contents of nx.json. + +@todo(vsavkin): mark this as required for v17 + +--- + +### projectGraph + +• `Optional` **projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph) + +A snapshot of the project graph as +it existed when the Nx command was kicked off + +@todo(vsavkin) mark this required for v17 + +--- + +### projectName + +• `Optional` **projectName**: `string` + +The name of the project being executed on + +--- + +### projectsConfigurations + +• `Optional` **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) + +Projects config + +@todo(vsavkin): mark this as required for v17 + +--- + +### root + +• **root**: `string` + +The root of the workspace + +--- + +### target + +• `Optional` **target**: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\<`any`\> + +The configuration of the target being executed + +--- + +### targetName + +• `Optional` **targetName**: `string` + +The name of the target being executed + +--- + +### taskGraph + +• `Optional` **taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph) + +A snapshot of the task graph as +it existed when the Nx command was kicked off + +--- + +### workspace + +• `Optional` **workspace**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +Deprecated. Use projectsConfigurations or nxJsonConfiguration +The full workspace configuration +@todo(vsavkin): remove after v17 diff --git a/docs/generated/devkit/ExecutorsJson.md b/docs/generated/devkit/ExecutorsJson.md new file mode 100644 index 0000000000000..3f96a422414f1 --- /dev/null +++ b/docs/generated/devkit/ExecutorsJson.md @@ -0,0 +1,20 @@ +# Interface: ExecutorsJson + +## Table of contents + +### Properties + +- [builders](../../devkit/documents/ExecutorsJson#builders): Record +- [executors](../../devkit/documents/ExecutorsJson#executors): Record + +## Properties + +### builders + +• `Optional` **builders**: `Record`\<`string`, `ExecutorsJsonEntry`\> + +--- + +### executors + +• `Optional` **executors**: `Record`\<`string`, `ExecutorsJsonEntry`\> diff --git a/docs/generated/devkit/FileChange.md b/docs/generated/devkit/FileChange.md new file mode 100644 index 0000000000000..3f53e9ba7f891 --- /dev/null +++ b/docs/generated/devkit/FileChange.md @@ -0,0 +1,44 @@ +# Interface: FileChange + +Description of a file change in the Nx virtual file system/ + +## Table of contents + +### Properties + +- [content](../../devkit/documents/FileChange#content): Buffer +- [options](../../devkit/documents/FileChange#options): TreeWriteOptions +- [path](../../devkit/documents/FileChange#path): string +- [type](../../devkit/documents/FileChange#type): "CREATE" | "DELETE" | "UPDATE" + +## Properties + +### content + +• **content**: `Buffer` + +The content of the file or null in case of delete. + +--- + +### options + +• `Optional` **options**: `TreeWriteOptions` + +Options to set on the file being created or updated. + +--- + +### path + +• **path**: `string` + +Path relative to the workspace root + +--- + +### type + +• **type**: `"CREATE"` \| `"DELETE"` \| `"UPDATE"` + +Type of change: 'CREATE' | 'DELETE' | 'UPDATE' diff --git a/docs/generated/devkit/FileData.md b/docs/generated/devkit/FileData.md new file mode 100644 index 0000000000000..bdb6b8f2c5b68 --- /dev/null +++ b/docs/generated/devkit/FileData.md @@ -0,0 +1,35 @@ +# Interface: FileData + +Some metadata about a file + +## Table of contents + +### Properties + +- [deps](../../devkit/documents/FileData#deps): FileDataDependency[] +- [file](../../devkit/documents/FileData#file): string +- [hash](../../devkit/documents/FileData#hash): string + +## Properties + +### deps + +• `Optional` **deps**: `FileDataDependency`[] + +An array of dependencies. If an element is just a string, +the dependency is assumed to be a static dependency targetting +that string. If the element is a tuple with two elements, the first element +inside of it is the target project, with the second element being the type of dependency. +If the tuple has 3 elements, the first is preceded by a source. + +--- + +### file + +• **file**: `string` + +--- + +### hash + +• **hash**: `string` diff --git a/docs/generated/devkit/FileMap.md b/docs/generated/devkit/FileMap.md new file mode 100644 index 0000000000000..9d20bdf931077 --- /dev/null +++ b/docs/generated/devkit/FileMap.md @@ -0,0 +1,20 @@ +# Interface: FileMap + +## Table of contents + +### Properties + +- [nonProjectFiles](../../devkit/documents/FileMap#nonprojectfiles): FileData[] +- [projectFileMap](../../devkit/documents/FileMap#projectfilemap): ProjectFileMap + +## Properties + +### nonProjectFiles + +• **nonProjectFiles**: [`FileData`](../../devkit/documents/FileData)[] + +--- + +### projectFileMap + +• **projectFileMap**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) diff --git a/docs/generated/devkit/Generator.md b/docs/generated/devkit/Generator.md new file mode 100644 index 0000000000000..32d0ac57b4991 --- /dev/null +++ b/docs/generated/devkit/Generator.md @@ -0,0 +1,26 @@ +# Type alias: Generator\ + +Ƭ **Generator**\<`T`\>: (`tree`: `any`, `schema`: `T`) => `void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\> + +A function that schedules updates to the filesystem to be done atomically + +#### Type parameters + +| Name | Type | +| :--- | :-------- | +| `T` | `unknown` | + +#### Type declaration + +▸ (`tree`, `schema`): `void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\> + +##### Parameters + +| Name | Type | +| :------- | :---- | +| `tree` | `any` | +| `schema` | `T` | + +##### Returns + +`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\> diff --git a/docs/generated/devkit/GeneratorCallback.md b/docs/generated/devkit/GeneratorCallback.md new file mode 100644 index 0000000000000..da7b25c41d3e3 --- /dev/null +++ b/docs/generated/devkit/GeneratorCallback.md @@ -0,0 +1,13 @@ +# Type alias: GeneratorCallback + +Ƭ **GeneratorCallback**: () => `void` \| `Promise`\<`void`\> + +A callback function that is executed after changes are made to the file system + +#### Type declaration + +▸ (): `void` \| `Promise`\<`void`\> + +##### Returns + +`void` \| `Promise`\<`void`\> diff --git a/docs/generated/devkit/GeneratorsJson.md b/docs/generated/devkit/GeneratorsJson.md new file mode 100644 index 0000000000000..ed9db23d7ae6d --- /dev/null +++ b/docs/generated/devkit/GeneratorsJson.md @@ -0,0 +1,27 @@ +# Interface: GeneratorsJson + +## Table of contents + +### Properties + +- [extends](../../devkit/documents/GeneratorsJson#extends): string +- [generators](../../devkit/documents/GeneratorsJson#generators): Record +- [schematics](../../devkit/documents/GeneratorsJson#schematics): Record + +## Properties + +### extends + +• `Optional` **extends**: `string` + +--- + +### generators + +• `Optional` **generators**: `Record`\<`string`, `GeneratorsJsonEntry`\> + +--- + +### schematics + +• `Optional` **schematics**: `Record`\<`string`, `GeneratorsJsonEntry`\> diff --git a/docs/generated/devkit/Hash.md b/docs/generated/devkit/Hash.md new file mode 100644 index 0000000000000..63cbd81f1a139 --- /dev/null +++ b/docs/generated/devkit/Hash.md @@ -0,0 +1,31 @@ +# Interface: Hash + +A data structure returned by the default hasher. + +## Table of contents + +### Properties + +- [details](../../devkit/documents/Hash#details): Object +- [value](../../devkit/documents/Hash#value): string + +## Properties + +### details + +• **details**: `Object` + +#### Type declaration + +| Name | Type | +| :-------------- | :----------------------------------- | +| `command` | `string` | +| `implicitDeps?` | \{ `[fileName: string]`: `string`; } | +| `nodes` | \{ `[name: string]`: `string`; } | +| `runtime?` | \{ `[input: string]`: `string`; } | + +--- + +### value + +• **value**: `string` diff --git a/docs/generated/devkit/Hasher.md b/docs/generated/devkit/Hasher.md new file mode 100644 index 0000000000000..b0db1d3a13207 --- /dev/null +++ b/docs/generated/devkit/Hasher.md @@ -0,0 +1,3 @@ +# Type alias: Hasher + +Ƭ **Hasher**: [`TaskHasher`](../../devkit/documents/TaskHasher) diff --git a/docs/generated/devkit/HasherContext.md b/docs/generated/devkit/HasherContext.md new file mode 100644 index 0000000000000..f7609b63542b2 --- /dev/null +++ b/docs/generated/devkit/HasherContext.md @@ -0,0 +1,41 @@ +# Interface: HasherContext + +## Table of contents + +### Properties + +- [hasher](../../devkit/documents/HasherContext#hasher): TaskHasher +- [nxJsonConfiguration](../../devkit/documents/HasherContext#nxjsonconfiguration): NxJsonConfiguration +- [projectGraph](../../devkit/documents/HasherContext#projectgraph): ProjectGraph +- [projectsConfigurations](../../devkit/documents/HasherContext#projectsconfigurations): ProjectsConfigurations +- [taskGraph](../../devkit/documents/HasherContext#taskgraph): TaskGraph + +## Properties + +### hasher + +• **hasher**: [`TaskHasher`](../../devkit/documents/TaskHasher) + +--- + +### nxJsonConfiguration + +• **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +--- + +### projectGraph + +• **projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph) + +--- + +### projectsConfigurations + +• **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) + +--- + +### taskGraph + +• **taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph) diff --git a/docs/generated/devkit/ImplicitDependency.md b/docs/generated/devkit/ImplicitDependency.md new file mode 100644 index 0000000000000..55b903358f5f7 --- /dev/null +++ b/docs/generated/devkit/ImplicitDependency.md @@ -0,0 +1,15 @@ +# Type alias: ImplicitDependency + +Ƭ **ImplicitDependency**: `Object` + +An implicit [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects + +This type of dependency indicates a connection without an explicit reference in code + +#### Type declaration + +| Name | Type | Description | +| :------- | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------- | +| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) depending on the target project | +| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) that the source project depends on | +| `type` | typeof [`implicit`](../../devkit/documents/DependencyType#implicit) | - | diff --git a/docs/generated/devkit/ImplicitDependencyEntry.md b/docs/generated/devkit/ImplicitDependencyEntry.md new file mode 100644 index 0000000000000..08279593bef3c --- /dev/null +++ b/docs/generated/devkit/ImplicitDependencyEntry.md @@ -0,0 +1,13 @@ +# Type alias: ImplicitDependencyEntry\ + +Ƭ **ImplicitDependencyEntry**\<`T`\>: `Object` + +#### Type parameters + +| Name | Type | +| :--- | :------------------ | +| `T` | `"*"` \| `string`[] | + +#### Index signature + +▪ [key: `string`]: `T` \| [`ImplicitJsonSubsetDependency`](../../devkit/documents/ImplicitJsonSubsetDependency)\<`T`\> diff --git a/docs/generated/devkit/ImplicitJsonSubsetDependency.md b/docs/generated/devkit/ImplicitJsonSubsetDependency.md new file mode 100644 index 0000000000000..a9bd559fc9660 --- /dev/null +++ b/docs/generated/devkit/ImplicitJsonSubsetDependency.md @@ -0,0 +1,11 @@ +# Interface: ImplicitJsonSubsetDependency\ + +## Type parameters + +| Name | Type | +| :--- | :------------------ | +| `T` | `"*"` \| `string`[] | + +## Indexable + +▪ [key: `string`]: `T` \| [`ImplicitJsonSubsetDependency`](../../devkit/documents/ImplicitJsonSubsetDependency)\<`T`\> diff --git a/docs/generated/devkit/JsonParseOptions.md b/docs/generated/devkit/JsonParseOptions.md new file mode 100644 index 0000000000000..ebf7f48ed1e65 --- /dev/null +++ b/docs/generated/devkit/JsonParseOptions.md @@ -0,0 +1,70 @@ +# Interface: JsonParseOptions + +## Hierarchy + +- `ParseOptions` + + ↳ **`JsonParseOptions`** + +## Table of contents + +### Properties + +- [allowEmptyContent](../../devkit/documents/JsonParseOptions#allowemptycontent): boolean +- [allowTrailingComma](../../devkit/documents/JsonParseOptions#allowtrailingcomma): boolean +- [disallowComments](../../devkit/documents/JsonParseOptions#disallowcomments): boolean +- [expectComments](../../devkit/documents/JsonParseOptions#expectcomments): boolean + +## Properties + +### allowEmptyContent + +• `Optional` **allowEmptyContent**: `boolean` + +#### Inherited from + +ParseOptions.allowEmptyContent + +--- + +### allowTrailingComma + +• `Optional` **allowTrailingComma**: `boolean` + +Allow trailing commas in the JSON content + +#### Overrides + +ParseOptions.allowTrailingComma + +--- + +### disallowComments + +• `Optional` **disallowComments**: `boolean` + +Disallow javascript-style + +**`Default`** + +```ts +false; +``` + +#### Overrides + +ParseOptions.disallowComments + +--- + +### expectComments + +• `Optional` **expectComments**: `boolean` + +Expect JSON with javascript-style + +**`Default`** + +```ts +false; +``` diff --git a/docs/generated/devkit/JsonSerializeOptions.md b/docs/generated/devkit/JsonSerializeOptions.md new file mode 100644 index 0000000000000..8a2c34f2d88eb --- /dev/null +++ b/docs/generated/devkit/JsonSerializeOptions.md @@ -0,0 +1,21 @@ +# Interface: JsonSerializeOptions + +## Table of contents + +### Properties + +- [spaces](../../devkit/documents/JsonSerializeOptions#spaces): number + +## Properties + +### spaces + +• `Optional` **spaces**: `number` + +the whitespaces to add as indentation to make the output more readable. + +**`Default`** + +```ts +2; +``` diff --git a/docs/generated/devkit/MigrationsJson.md b/docs/generated/devkit/MigrationsJson.md new file mode 100644 index 0000000000000..9f3bcfbc782e9 --- /dev/null +++ b/docs/generated/devkit/MigrationsJson.md @@ -0,0 +1,56 @@ +# Interface: MigrationsJson + +## Table of contents + +### Properties + +- [collection](../../devkit/documents/MigrationsJson#collection): string +- [generators](../../devkit/documents/MigrationsJson#generators): Object +- [name](../../devkit/documents/MigrationsJson#name): string +- [packageJsonUpdates](../../devkit/documents/MigrationsJson#packagejsonupdates): PackageJsonUpdates +- [schematics](../../devkit/documents/MigrationsJson#schematics): Object +- [version](../../devkit/documents/MigrationsJson#version): string + +## Properties + +### collection + +• `Optional` **collection**: `string` + +--- + +### generators + +• `Optional` **generators**: `Object` + +#### Index signature + +▪ [name: `string`]: `MigrationsJsonEntry` + +--- + +### name + +• `Optional` **name**: `string` + +--- + +### packageJsonUpdates + +• `Optional` **packageJsonUpdates**: `PackageJsonUpdates` + +--- + +### schematics + +• `Optional` **schematics**: `Object` + +#### Index signature + +▪ [name: `string`]: `MigrationsJsonEntry` + +--- + +### version + +• `Optional` **version**: `string` diff --git a/docs/generated/devkit/NX_VERSION.md b/docs/generated/devkit/NX_VERSION.md new file mode 100644 index 0000000000000..832ba480a387a --- /dev/null +++ b/docs/generated/devkit/NX_VERSION.md @@ -0,0 +1,7 @@ +# Variable: NX_VERSION + +• `Const` **NX_VERSION**: `string` + +**`Description`** + +The version of Nx used by the workspace. Returns null if no version is found. diff --git a/docs/generated/devkit/NxAffectedConfig.md b/docs/generated/devkit/NxAffectedConfig.md new file mode 100644 index 0000000000000..159cb43fa8457 --- /dev/null +++ b/docs/generated/devkit/NxAffectedConfig.md @@ -0,0 +1,19 @@ +# Interface: NxAffectedConfig + +**`Deprecated`** + +Use [NxJsonConfiguration#defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead + +## Table of contents + +### Properties + +- [defaultBase](../../devkit/documents/NxAffectedConfig#defaultbase): string + +## Properties + +### defaultBase + +• `Optional` **defaultBase**: `string` + +Default based branch used by affected commands. diff --git a/docs/generated/devkit/NxJsonConfiguration.md b/docs/generated/devkit/NxJsonConfiguration.md new file mode 100644 index 0000000000000..9db108e67346a --- /dev/null +++ b/docs/generated/devkit/NxJsonConfiguration.md @@ -0,0 +1,271 @@ +# Interface: NxJsonConfiguration\ + +Nx.json configuration + +## Type parameters + +| Name | Type | +| :--- | :------------------ | +| `T` | `"*"` \| `string`[] | + +## Hierarchy + +- **`NxJsonConfiguration`** + + ↳ [`Workspace`](../../devkit/documents/Workspace) + +## Table of contents + +### Properties + +- [affected](../../devkit/documents/NxJsonConfiguration#affected): NxAffectedConfig +- [cacheDirectory](../../devkit/documents/NxJsonConfiguration#cachedirectory): string +- [cli](../../devkit/documents/NxJsonConfiguration#cli): Object +- [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase): string +- [defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject): string +- [extends](../../devkit/documents/NxJsonConfiguration#extends): string +- [generators](../../devkit/documents/NxJsonConfiguration#generators): Object +- [implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies): ImplicitDependencyEntry +- [installation](../../devkit/documents/NxJsonConfiguration#installation): NxInstallationConfiguration +- [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs): Object +- [nxCloudAccessToken](../../devkit/documents/NxJsonConfiguration#nxcloudaccesstoken): string +- [nxCloudEncryptionKey](../../devkit/documents/NxJsonConfiguration#nxcloudencryptionkey): string +- [nxCloudUrl](../../devkit/documents/NxJsonConfiguration#nxcloudurl): string +- [parallel](../../devkit/documents/NxJsonConfiguration#parallel): number +- [plugins](../../devkit/documents/NxJsonConfiguration#plugins): PluginConfiguration[] +- [pluginsConfig](../../devkit/documents/NxJsonConfiguration#pluginsconfig): Record> +- [release](../../devkit/documents/NxJsonConfiguration#release): NxReleaseConfiguration +- [targetDefaults](../../devkit/documents/NxJsonConfiguration#targetdefaults): TargetDefaults +- [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions): Object +- [useDaemonProcess](../../devkit/documents/NxJsonConfiguration#usedaemonprocess): boolean +- [useInferencePlugins](../../devkit/documents/NxJsonConfiguration#useinferenceplugins): boolean +- [workspaceLayout](../../devkit/documents/NxJsonConfiguration#workspacelayout): Object + +## Properties + +### affected + +• `Optional` **affected**: [`NxAffectedConfig`](../../devkit/documents/NxAffectedConfig) + +Default options for `nx affected` + +**`Deprecated`** + +use [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead. For more information see https://nx.dev/deprecated/affected-config#affected-config + +--- + +### cacheDirectory + +• `Optional` **cacheDirectory**: `string` + +Changes the directory used by Nx to store its cache. + +--- + +### cli + +• `Optional` **cli**: `Object` + +Default generator collection. It is used when no collection is provided. + +#### Type declaration + +| Name | Type | +| :-------------------- | :-------------------------------------------------------- | +| `defaultProjectName?` | `string` | +| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) | + +--- + +### defaultBase + +• `Optional` **defaultBase**: `string` + +Default value for --base used by `nx affected` and `nx format`. + +--- + +### defaultProject + +• `Optional` **defaultProject**: `string` + +Default project. When project isn't provided, the default project +will be used. Convenient for small workspaces with one main application. + +--- + +### extends + +• `Optional` **extends**: `string` + +Optional (additional) Nx.json configuration file which becomes a base for this one + +--- + +### generators + +• `Optional` **generators**: `Object` + +List of default values used by generators. + +These defaults are global. They are used when no other defaults are configured. + +Example: + +``` +{ + "@nx/react": { + "library": { + "style": "scss" + } + } +} +``` + +#### Index signature + +▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; } + +--- + +### implicitDependencies + +• `Optional` **implicitDependencies**: [`ImplicitDependencyEntry`](../../devkit/documents/ImplicitDependencyEntry)\<`T`\> + +Map of files to projects that implicitly depend on them + +**`Deprecated`** + +use [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) instead. For more information see https://nx.dev/deprecated/global-implicit-dependencies#global-implicit-dependencies + +--- + +### installation + +• `Optional` **installation**: `NxInstallationConfiguration` + +Configures the Nx installation for a repo. Useful for maintaining a separate +set of dependencies for Nx + Plugins compared to the base package.json, but also +useful for workspaces that don't have a root package.json + node_modules. + +--- + +### namedInputs + +• `Optional` **namedInputs**: `Object` + +Named inputs targets can refer to reduce duplication + +#### Index signature + +▪ [inputName: `string`]: (`string` \| `InputDefinition`)[] + +--- + +### nxCloudAccessToken + +• `Optional` **nxCloudAccessToken**: `string` + +If specified Nx will use nx-cloud by default with the given token. +To use a different runner that accepts an access token, define it in [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions) + +--- + +### nxCloudEncryptionKey + +• `Optional` **nxCloudEncryptionKey**: `string` + +Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud. + +--- + +### nxCloudUrl + +• `Optional` **nxCloudUrl**: `string` + +Specifies the url pointing to an instance of nx cloud. Used for remote +caching and displaying run links. + +--- + +### parallel + +• `Optional` **parallel**: `number` + +Specifies how many tasks can be run in parallel. + +--- + +### plugins + +• `Optional` **plugins**: [`PluginConfiguration`](../../devkit/documents/PluginConfiguration)[] + +Plugins for extending the project graph + +--- + +### pluginsConfig + +• `Optional` **pluginsConfig**: `Record`\<`string`, `Record`\<`string`, `unknown`\>\> + +Configuration for Nx Plugins + +--- + +### release + +• `Optional` **release**: `NxReleaseConfiguration` + +Configuration for `nx release` (versioning and publishing of applications and libraries) + +--- + +### targetDefaults + +• `Optional` **targetDefaults**: [`TargetDefaults`](../../devkit/documents/TargetDefaults) + +Dependencies between different target names across all projects + +--- + +### tasksRunnerOptions + +• `Optional` **tasksRunnerOptions**: `Object` + +Available Task Runners + +#### Index signature + +▪ [tasksRunnerName: `string`]: \{ `options?`: `any` ; `runner?`: `string` } + +--- + +### useDaemonProcess + +• `Optional` **useDaemonProcess**: `boolean` + +Set this to false to disable the daemon. + +--- + +### useInferencePlugins + +• `Optional` **useInferencePlugins**: `boolean` + +Set this to false to disable adding inference plugins when generating new projects + +--- + +### workspaceLayout + +• `Optional` **workspaceLayout**: `Object` + +Where new apps + libs should be placed + +#### Type declaration + +| Name | Type | +| :--------- | :------- | +| `appsDir?` | `string` | +| `libsDir?` | `string` | diff --git a/docs/generated/devkit/NxPlugin.md b/docs/generated/devkit/NxPlugin.md new file mode 100644 index 0000000000000..c2a649fcf36dc --- /dev/null +++ b/docs/generated/devkit/NxPlugin.md @@ -0,0 +1,5 @@ +# Type alias: NxPlugin + +Ƭ **NxPlugin**: [`NxPluginV1`](../../devkit/documents/NxPluginV1) \| [`NxPluginV2`](../../devkit/documents/NxPluginV2) + +A plugin for Nx diff --git a/docs/generated/devkit/NxPluginV1.md b/docs/generated/devkit/NxPluginV1.md new file mode 100644 index 0000000000000..f760023c45bc7 --- /dev/null +++ b/docs/generated/devkit/NxPluginV1.md @@ -0,0 +1,16 @@ +# Type alias: NxPluginV1 + +Ƭ **NxPluginV1**: `Object` + +**`Deprecated`** + +Use [NxPluginV2](../../devkit/documents/NxPluginV2) instead. This will be removed in Nx 19 + +#### Type declaration + +| Name | Type | Description | +| :------------------------ | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | `string` | - | +| `processProjectGraph?` | `ProjectGraphProcessor` | **`Deprecated`** Use [CreateNodes](../../devkit/documents/CreateNodes) and [CreateDependencies](../../devkit/documents/CreateDependencies) instead. This will be removed in Nx 19 | +| `projectFilePatterns?` | `string`[] | A glob pattern to search for non-standard project files. @example: ["*.csproj", "pom.xml"] **`Deprecated`** Use [CreateNodes](../../devkit/documents/CreateNodes) instead. This will be removed in Nx 19 | +| `registerProjectTargets?` | [`ProjectTargetConfigurator`](../../devkit/documents/ProjectTargetConfigurator) | **`Deprecated`** Add targets to the projects inside of [CreateNodes](../../devkit/documents/CreateNodes) instead. This will be removed in Nx 19 | diff --git a/docs/generated/devkit/NxPluginV2.md b/docs/generated/devkit/NxPluginV2.md new file mode 100644 index 0000000000000..52eb73cf5ffa8 --- /dev/null +++ b/docs/generated/devkit/NxPluginV2.md @@ -0,0 +1,19 @@ +# Type alias: NxPluginV2\ + +Ƭ **NxPluginV2**\<`TOptions`\>: `Object` + +A plugin for Nx which creates nodes and dependencies for the [ProjectGraph](../../devkit/documents/ProjectGraph) + +#### Type parameters + +| Name | Type | +| :--------- | :-------- | +| `TOptions` | `unknown` | + +#### Type declaration + +| Name | Type | Description | +| :-------------------- | :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | +| `createDependencies?` | [`CreateDependencies`](../../devkit/documents/CreateDependencies)\<`TOptions`\> | Provides a function to analyze files to create dependencies for the [ProjectGraph](../../devkit/documents/ProjectGraph) | +| `createNodes?` | [`CreateNodes`](../../devkit/documents/CreateNodes) | Provides a file pattern and function that retrieves configuration info from those files. e.g. { '\*_/_.csproj': buildProjectsFromCsProjFile } | +| `name` | `string` | - | diff --git a/docs/generated/devkit/PackageManager.md b/docs/generated/devkit/PackageManager.md new file mode 100644 index 0000000000000..0bcc0a1292158 --- /dev/null +++ b/docs/generated/devkit/PackageManager.md @@ -0,0 +1,3 @@ +# Type alias: PackageManager + +Ƭ **PackageManager**: `"yarn"` \| `"pnpm"` \| `"npm"` \| `"bun"` diff --git a/docs/generated/devkit/PluginConfiguration.md b/docs/generated/devkit/PluginConfiguration.md new file mode 100644 index 0000000000000..72289e36c72d3 --- /dev/null +++ b/docs/generated/devkit/PluginConfiguration.md @@ -0,0 +1,3 @@ +# Type alias: PluginConfiguration + +Ƭ **PluginConfiguration**: `string` \| \{ `options?`: `unknown` ; `plugin`: `string` } diff --git a/docs/generated/devkit/ProjectConfiguration.md b/docs/generated/devkit/ProjectConfiguration.md new file mode 100644 index 0000000000000..a5946690f8904 --- /dev/null +++ b/docs/generated/devkit/ProjectConfiguration.md @@ -0,0 +1,130 @@ +# Interface: ProjectConfiguration + +Project configuration + +## Table of contents + +### Properties + +- [generators](../../devkit/documents/ProjectConfiguration#generators): Object +- [implicitDependencies](../../devkit/documents/ProjectConfiguration#implicitdependencies): string[] +- [name](../../devkit/documents/ProjectConfiguration#name): string +- [namedInputs](../../devkit/documents/ProjectConfiguration#namedinputs): Object +- [projectType](../../devkit/documents/ProjectConfiguration#projecttype): ProjectType +- [release](../../devkit/documents/ProjectConfiguration#release): Object +- [root](../../devkit/documents/ProjectConfiguration#root): string +- [sourceRoot](../../devkit/documents/ProjectConfiguration#sourceroot): string +- [tags](../../devkit/documents/ProjectConfiguration#tags): string[] +- [targets](../../devkit/documents/ProjectConfiguration#targets): Object + +## Properties + +### generators + +• `Optional` **generators**: `Object` + +List of default values used by generators. + +These defaults are project specific. + +Example: + +``` +{ + "@nx/react": { + "library": { + "style": "scss" + } + } +} +``` + +#### Index signature + +▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; } + +--- + +### implicitDependencies + +• `Optional` **implicitDependencies**: `string`[] + +List of projects which are added as a dependency + +--- + +### name + +• `Optional` **name**: `string` + +Project's name. Optional if specified in workspace.json + +--- + +### namedInputs + +• `Optional` **namedInputs**: `Object` + +Named inputs targets can refer to reduce duplication + +#### Index signature + +▪ [inputName: `string`]: (`string` \| `InputDefinition`)[] + +--- + +### projectType + +• `Optional` **projectType**: [`ProjectType`](../../devkit/documents/ProjectType) + +Project type + +--- + +### release + +• `Optional` **release**: `Object` + +Project specific configuration for `nx release` + +#### Type declaration + +| Name | Type | +| :--------- | :------------------------------------------------------------------------------- | +| `version?` | `Pick`\<`NxReleaseVersionConfiguration`, `"generator"` \| `"generatorOptions"`\> | + +--- + +### root + +• **root**: `string` + +Project's location relative to the root of the workspace + +--- + +### sourceRoot + +• `Optional` **sourceRoot**: `string` + +The location of project's sources relative to the root of the workspace + +--- + +### tags + +• `Optional` **tags**: `string`[] + +List of tags used by enforce-module-boundaries / project graph + +--- + +### targets + +• `Optional` **targets**: `Object` + +Project's targets + +#### Index signature + +▪ [targetName: `string`]: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration) diff --git a/docs/generated/devkit/ProjectFileMap.md b/docs/generated/devkit/ProjectFileMap.md new file mode 100644 index 0000000000000..86efa81a5fdb3 --- /dev/null +++ b/docs/generated/devkit/ProjectFileMap.md @@ -0,0 +1,7 @@ +# Interface: ProjectFileMap + +A list of files separated by the project they belong to + +## Indexable + +▪ [projectName: `string`]: [`FileData`](../../devkit/documents/FileData)[] diff --git a/docs/generated/devkit/ProjectGraph.md b/docs/generated/devkit/ProjectGraph.md new file mode 100644 index 0000000000000..dd3eb89567942 --- /dev/null +++ b/docs/generated/devkit/ProjectGraph.md @@ -0,0 +1,36 @@ +# Interface: ProjectGraph + +A Graph of projects in the workspace and dependencies between them + +## Table of contents + +### Properties + +- [dependencies](../../devkit/documents/ProjectGraph#dependencies): Record +- [externalNodes](../../devkit/documents/ProjectGraph#externalnodes): Record +- [nodes](../../devkit/documents/ProjectGraph#nodes): Record +- [version](../../devkit/documents/ProjectGraph#version): string + +## Properties + +### dependencies + +• **dependencies**: `Record`\<`string`, [`ProjectGraphDependency`](../../devkit/documents/ProjectGraphDependency)[]\> + +--- + +### externalNodes + +• `Optional` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\> + +--- + +### nodes + +• **nodes**: `Record`\<`string`, [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode)\> + +--- + +### version + +• `Optional` **version**: `string` diff --git a/docs/generated/devkit/ProjectGraphBuilder.md b/docs/generated/devkit/ProjectGraphBuilder.md new file mode 100644 index 0000000000000..617952c4fbe81 --- /dev/null +++ b/docs/generated/devkit/ProjectGraphBuilder.md @@ -0,0 +1,288 @@ +# Class: ProjectGraphBuilder + +A class which builds up a project graph + +**`Deprecated`** + +The ProjectGraphProcessor has been deprecated. Use a [CreateNodes](../../devkit/documents/CreateNodes) and/or a [CreateDependencies](../../devkit/documents/CreateDependencies) instead. This will be removed in Nx 19. + +## Table of contents + +### Constructors + +- [constructor](../../devkit/documents/ProjectGraphBuilder#constructor) + +### Properties + +- [graph](../../devkit/documents/ProjectGraphBuilder#graph): ProjectGraph +- [removedEdges](../../devkit/documents/ProjectGraphBuilder#removededges): Object + +### Methods + +- [addDependency](../../devkit/documents/ProjectGraphBuilder#adddependency) +- [addDynamicDependency](../../devkit/documents/ProjectGraphBuilder#adddynamicdependency) +- [addExplicitDependency](../../devkit/documents/ProjectGraphBuilder#addexplicitdependency) +- [addExternalNode](../../devkit/documents/ProjectGraphBuilder#addexternalnode) +- [addImplicitDependency](../../devkit/documents/ProjectGraphBuilder#addimplicitdependency) +- [addNode](../../devkit/documents/ProjectGraphBuilder#addnode) +- [addStaticDependency](../../devkit/documents/ProjectGraphBuilder#addstaticdependency) +- [getUpdatedProjectGraph](../../devkit/documents/ProjectGraphBuilder#getupdatedprojectgraph) +- [mergeProjectGraph](../../devkit/documents/ProjectGraphBuilder#mergeprojectgraph) +- [removeDependency](../../devkit/documents/ProjectGraphBuilder#removedependency) +- [removeNode](../../devkit/documents/ProjectGraphBuilder#removenode) +- [setVersion](../../devkit/documents/ProjectGraphBuilder#setversion) + +## Constructors + +### constructor + +• **new ProjectGraphBuilder**(`graph?`, `projectFileMap?`, `nonProjectFiles?`): [`ProjectGraphBuilder`](../../devkit/documents/ProjectGraphBuilder) + +#### Parameters + +| Name | Type | +| :----------------- | :-------------------------------------------------------- | +| `graph?` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | +| `projectFileMap?` | [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) | +| `nonProjectFiles?` | [`FileData`](../../devkit/documents/FileData)[] | + +#### Returns + +[`ProjectGraphBuilder`](../../devkit/documents/ProjectGraphBuilder) + +## Properties + +### graph + +• `Readonly` **graph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph) + +--- + +### removedEdges + +• `Readonly` **removedEdges**: `Object` = `{}` + +#### Index signature + +▪ [source: `string`]: `Set`\<`string`\> + +## Methods + +### addDependency + +▸ **addDependency**(`source`, `target`, `type`, `sourceFile?`): `void` + +#### Parameters + +| Name | Type | +| :------------ | :-------------------------------------------------------- | +| `source` | `string` | +| `target` | `string` | +| `type` | [`DependencyType`](../../devkit/documents/DependencyType) | +| `sourceFile?` | `string` | + +#### Returns + +`void` + +--- + +### addDynamicDependency + +▸ **addDynamicDependency**(`sourceProjectName`, `targetProjectName`, `sourceProjectFile`): `void` + +Adds dynamic dependency from source project to target project + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `sourceProjectName` | `string` | +| `targetProjectName` | `string` | +| `sourceProjectFile` | `string` | + +#### Returns + +`void` + +--- + +### addExplicitDependency + +▸ **addExplicitDependency**(`sourceProjectName`, `sourceProjectFile`, `targetProjectName`): `void` + +Add an explicit dependency from a file in source project to target project + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `sourceProjectName` | `string` | +| `sourceProjectFile` | `string` | +| `targetProjectName` | `string` | + +#### Returns + +`void` + +**`Deprecated`** + +this method will be removed in v17. Use [addStaticDependency](../../devkit/documents/ProjectGraphBuilder#addstaticdependency) or [addDynamicDependency](../../devkit/documents/ProjectGraphBuilder#adddynamicdependency) instead + +--- + +### addExternalNode + +▸ **addExternalNode**(`node`): `void` + +Adds a external node to the project graph + +#### Parameters + +| Name | Type | +| :----- | :---------------------------------------------------------------------------- | +| `node` | [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode) | + +#### Returns + +`void` + +--- + +### addImplicitDependency + +▸ **addImplicitDependency**(`sourceProjectName`, `targetProjectName`): `void` + +Adds implicit dependency from source project to target project + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `sourceProjectName` | `string` | +| `targetProjectName` | `string` | + +#### Returns + +`void` + +--- + +### addNode + +▸ **addNode**(`node`): `void` + +Adds a project node to the project graph + +#### Parameters + +| Name | Type | +| :----- | :-------------------------------------------------------------------------- | +| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) | + +#### Returns + +`void` + +--- + +### addStaticDependency + +▸ **addStaticDependency**(`sourceProjectName`, `targetProjectName`, `sourceProjectFile?`): `void` + +Adds static dependency from source project to target project + +#### Parameters + +| Name | Type | +| :------------------- | :------- | +| `sourceProjectName` | `string` | +| `targetProjectName` | `string` | +| `sourceProjectFile?` | `string` | + +#### Returns + +`void` + +--- + +### getUpdatedProjectGraph + +▸ **getUpdatedProjectGraph**(): [`ProjectGraph`](../../devkit/documents/ProjectGraph) + +#### Returns + +[`ProjectGraph`](../../devkit/documents/ProjectGraph) + +--- + +### mergeProjectGraph + +▸ **mergeProjectGraph**(`p`): `void` + +Merges the nodes and dependencies of p into the built project graph. + +#### Parameters + +| Name | Type | +| :--- | :---------------------------------------------------- | +| `p` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | + +#### Returns + +`void` + +--- + +### removeDependency + +▸ **removeDependency**(`sourceProjectName`, `targetProjectName`): `void` + +Removes a dependency from source project to target project + +#### Parameters + +| Name | Type | +| :------------------ | :------- | +| `sourceProjectName` | `string` | +| `targetProjectName` | `string` | + +#### Returns + +`void` + +--- + +### removeNode + +▸ **removeNode**(`name`): `void` + +Removes a node and all of its dependency edges from the graph + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `name` | `string` | + +#### Returns + +`void` + +--- + +### setVersion + +▸ **setVersion**(`version`): `void` + +Set version of the project graph + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `version` | `string` | + +#### Returns + +`void` diff --git a/docs/generated/devkit/ProjectGraphDependency.md b/docs/generated/devkit/ProjectGraphDependency.md new file mode 100644 index 0000000000000..417853fa5870b --- /dev/null +++ b/docs/generated/devkit/ProjectGraphDependency.md @@ -0,0 +1,33 @@ +# Interface: ProjectGraphDependency + +A dependency between two projects + +## Table of contents + +### Properties + +- [source](../../devkit/documents/ProjectGraphDependency#source): string +- [target](../../devkit/documents/ProjectGraphDependency#target): string +- [type](../../devkit/documents/ProjectGraphDependency#type): string + +## Properties + +### source + +• **source**: `string` + +The project importing the other + +--- + +### target + +• **target**: `string` + +The project being imported by the other + +--- + +### type + +• **type**: `string` diff --git a/docs/generated/devkit/ProjectGraphExternalNode.md b/docs/generated/devkit/ProjectGraphExternalNode.md new file mode 100644 index 0000000000000..df774d2ba0dc2 --- /dev/null +++ b/docs/generated/devkit/ProjectGraphExternalNode.md @@ -0,0 +1,44 @@ +# Interface: ProjectGraphExternalNode + +A node describing an external dependency +`name` has as form of: + +- `npm:packageName` for root dependencies or +- `npm:packageName@version` for nested transitive dependencies + +This is vital for our node discovery to always point to root dependencies, +while allowing tracking of the full tree of different nested versions + +## Table of contents + +### Properties + +- [data](../../devkit/documents/ProjectGraphExternalNode#data): Object +- [name](../../devkit/documents/ProjectGraphExternalNode#name): `npm:${string}` +- [type](../../devkit/documents/ProjectGraphExternalNode#type): "npm" + +## Properties + +### data + +• **data**: `Object` + +#### Type declaration + +| Name | Type | +| :------------ | :------- | +| `hash?` | `string` | +| `packageName` | `string` | +| `version` | `string` | + +--- + +### name + +• **name**: \`npm:$\{string}\` + +--- + +### type + +• **type**: `"npm"` diff --git a/docs/generated/devkit/ProjectGraphNode.md b/docs/generated/devkit/ProjectGraphNode.md new file mode 100644 index 0000000000000..bd335d0127a2c --- /dev/null +++ b/docs/generated/devkit/ProjectGraphNode.md @@ -0,0 +1,7 @@ +# Type alias: ProjectGraphNode + +Ƭ **ProjectGraphNode**: [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) \| [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode) + +**`Deprecated`** + +this type will be removed in v16. Use [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) instead diff --git a/docs/generated/devkit/ProjectGraphProcessorContext.md b/docs/generated/devkit/ProjectGraphProcessorContext.md new file mode 100644 index 0000000000000..243963c48ad67 --- /dev/null +++ b/docs/generated/devkit/ProjectGraphProcessorContext.md @@ -0,0 +1,57 @@ +# Interface: ProjectGraphProcessorContext + +Additional information to be used to process a project graph + +**`Deprecated`** + +The ProjectGraphProcessor is deprecated. This will be removed in Nx 19. + +## Table of contents + +### Properties + +- [fileMap](../../devkit/documents/ProjectGraphProcessorContext#filemap): ProjectFileMap +- [filesToProcess](../../devkit/documents/ProjectGraphProcessorContext#filestoprocess): ProjectFileMap +- [nxJsonConfiguration](../../devkit/documents/ProjectGraphProcessorContext#nxjsonconfiguration): NxJsonConfiguration +- [projectsConfigurations](../../devkit/documents/ProjectGraphProcessorContext#projectsconfigurations): ProjectsConfigurations +- [workspace](../../devkit/documents/ProjectGraphProcessorContext#workspace): Workspace + +## Properties + +### fileMap + +• **fileMap**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) + +All files in the workspace + +--- + +### filesToProcess + +• **filesToProcess**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) + +Files changes since last invocation + +--- + +### nxJsonConfiguration + +• **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +--- + +### projectsConfigurations + +• **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) + +--- + +### workspace + +• **workspace**: [`Workspace`](../../devkit/documents/Workspace) + +Workspace information such as projects and configuration + +**`Deprecated`** + +use [projectsConfigurations](../../devkit/documents/ProjectGraphProcessorContext#projectsconfigurations) or [nxJsonConfiguration](../../devkit/documents/ProjectGraphProcessorContext#nxjsonconfiguration) instead diff --git a/docs/generated/devkit/ProjectGraphProjectNode.md b/docs/generated/devkit/ProjectGraphProjectNode.md new file mode 100644 index 0000000000000..12a785f2aa5be --- /dev/null +++ b/docs/generated/devkit/ProjectGraphProjectNode.md @@ -0,0 +1,31 @@ +# Interface: ProjectGraphProjectNode + +A node describing a project in a workspace + +## Table of contents + +### Properties + +- [data](../../devkit/documents/ProjectGraphProjectNode#data): ProjectConfiguration & Object +- [name](../../devkit/documents/ProjectGraphProjectNode#name): string +- [type](../../devkit/documents/ProjectGraphProjectNode#type): "app" | "e2e" | "lib" + +## Properties + +### data + +• **data**: [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) & \{ `description?`: `string` } + +Additional metadata about a project + +--- + +### name + +• **name**: `string` + +--- + +### type + +• **type**: `"app"` \| `"e2e"` \| `"lib"` diff --git a/docs/generated/devkit/ProjectTargetConfigurator.md b/docs/generated/devkit/ProjectTargetConfigurator.md new file mode 100644 index 0000000000000..b4bf537e7af29 --- /dev/null +++ b/docs/generated/devkit/ProjectTargetConfigurator.md @@ -0,0 +1,21 @@ +# Type alias: ProjectTargetConfigurator + +Ƭ **ProjectTargetConfigurator**: (`file`: `string`) => `Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\> + +**`Deprecated`** + +Add targets to the projects in a [CreateNodes](../../devkit/documents/CreateNodes) function instead. This will be removed in Nx 19 + +#### Type declaration + +▸ (`file`): `Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\> + +##### Parameters + +| Name | Type | +| :----- | :------- | +| `file` | `string` | + +##### Returns + +`Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\> diff --git a/docs/generated/devkit/ProjectType.md b/docs/generated/devkit/ProjectType.md new file mode 100644 index 0000000000000..237864da5e21c --- /dev/null +++ b/docs/generated/devkit/ProjectType.md @@ -0,0 +1,5 @@ +# Type alias: ProjectType + +Ƭ **ProjectType**: `"library"` \| `"application"` + +Type of project supported diff --git a/docs/generated/devkit/ProjectsConfigurations.md b/docs/generated/devkit/ProjectsConfigurations.md new file mode 100644 index 0000000000000..60c94c341ddfc --- /dev/null +++ b/docs/generated/devkit/ProjectsConfigurations.md @@ -0,0 +1,36 @@ +# Interface: ProjectsConfigurations + +Projects Configurations + +## Hierarchy + +- **`ProjectsConfigurations`** + + ↳ [`Workspace`](../../devkit/documents/Workspace) + +## Table of contents + +### Properties + +- [projects](../../devkit/documents/ProjectsConfigurations#projects): Object +- [version](../../devkit/documents/ProjectsConfigurations#version): number + +## Properties + +### projects + +• **projects**: `Object` + +Projects' projects + +#### Index signature + +▪ [projectName: `string`]: [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) + +--- + +### version + +• **version**: `number` + +Version of the configuration format diff --git a/docs/generated/devkit/README.md b/docs/generated/devkit/README.md new file mode 100644 index 0000000000000..25f19c02c7193 --- /dev/null +++ b/docs/generated/devkit/README.md @@ -0,0 +1,158 @@ +# @nx/devkit + +The Nx Devkit is the underlying technology used to customize Nx to support +different technologies and custom use-cases. It contains many utility +functions for reading and writing files, updating configuration, +working with Abstract Syntax Trees(ASTs), and more. + +As with most things in Nx, the core of Nx Devkit is very simple. +It only uses language primitives and immutable objects +(the tree being the only exception). + +## Table of contents + +### Enumerations + +- [ChangeType](../../devkit/documents/ChangeType) +- [DependencyType](../../devkit/documents/DependencyType) + +### Classes + +- [ProjectGraphBuilder](../../devkit/documents/ProjectGraphBuilder) +- [Workspaces](../../devkit/documents/Workspaces) + +### Interfaces + +- [CreateDependenciesContext](../../devkit/documents/CreateDependenciesContext) +- [CreateNodesContext](../../devkit/documents/CreateNodesContext) +- [CreateNodesResult](../../devkit/documents/CreateNodesResult) +- [DefaultTasksRunnerOptions](../../devkit/documents/DefaultTasksRunnerOptions) +- [ExecutorContext](../../devkit/documents/ExecutorContext) +- [ExecutorsJson](../../devkit/documents/ExecutorsJson) +- [FileChange](../../devkit/documents/FileChange) +- [FileData](../../devkit/documents/FileData) +- [FileMap](../../devkit/documents/FileMap) +- [GeneratorsJson](../../devkit/documents/GeneratorsJson) +- [Hash](../../devkit/documents/Hash) +- [HasherContext](../../devkit/documents/HasherContext) +- [ImplicitJsonSubsetDependency](../../devkit/documents/ImplicitJsonSubsetDependency) +- [JsonParseOptions](../../devkit/documents/JsonParseOptions) +- [JsonSerializeOptions](../../devkit/documents/JsonSerializeOptions) +- [MigrationsJson](../../devkit/documents/MigrationsJson) +- [NxAffectedConfig](../../devkit/documents/NxAffectedConfig) +- [NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration) +- [ProjectConfiguration](../../devkit/documents/ProjectConfiguration) +- [ProjectFileMap](../../devkit/documents/ProjectFileMap) +- [ProjectGraph](../../devkit/documents/ProjectGraph) +- [ProjectGraphDependency](../../devkit/documents/ProjectGraphDependency) +- [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) +- [ProjectGraphProcessorContext](../../devkit/documents/ProjectGraphProcessorContext) +- [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) +- [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations) +- [RemoteCache](../../devkit/documents/RemoteCache) +- [StringDeletion](../../devkit/documents/StringDeletion) +- [StringInsertion](../../devkit/documents/StringInsertion) +- [Target](../../devkit/documents/Target) +- [TargetConfiguration](../../devkit/documents/TargetConfiguration) +- [TargetDependencyConfig](../../devkit/documents/TargetDependencyConfig) +- [Task](../../devkit/documents/Task) +- [TaskGraph](../../devkit/documents/TaskGraph) +- [TaskHasher](../../devkit/documents/TaskHasher) +- [Tree](../../devkit/documents/Tree) +- [Workspace](../../devkit/documents/Workspace) + +### Type Aliases + +- [CreateDependencies](../../devkit/documents/CreateDependencies) +- [CreateNodes](../../devkit/documents/CreateNodes) +- [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) +- [CustomHasher](../../devkit/documents/CustomHasher) +- [DynamicDependency](../../devkit/documents/DynamicDependency) +- [Executor](../../devkit/documents/Executor) +- [Generator](../../devkit/documents/Generator) +- [GeneratorCallback](../../devkit/documents/GeneratorCallback) +- [Hasher](../../devkit/documents/Hasher) +- [ImplicitDependency](../../devkit/documents/ImplicitDependency) +- [ImplicitDependencyEntry](../../devkit/documents/ImplicitDependencyEntry) +- [NxPlugin](../../devkit/documents/NxPlugin) +- [NxPluginV1](../../devkit/documents/NxPluginV1) +- [NxPluginV2](../../devkit/documents/NxPluginV2) +- [PackageManager](../../devkit/documents/PackageManager) +- [PluginConfiguration](../../devkit/documents/PluginConfiguration) +- [ProjectGraphNode](../../devkit/documents/ProjectGraphNode) +- [ProjectTargetConfigurator](../../devkit/documents/ProjectTargetConfigurator) +- [ProjectType](../../devkit/documents/ProjectType) +- [RawProjectGraphDependency](../../devkit/documents/RawProjectGraphDependency) +- [StaticDependency](../../devkit/documents/StaticDependency) +- [StringChange](../../devkit/documents/StringChange) +- [TargetDefaults](../../devkit/documents/TargetDefaults) +- [TaskGraphExecutor](../../devkit/documents/TaskGraphExecutor) +- [ToJSOptions](../../devkit/documents/ToJSOptions) +- [WorkspaceJsonConfiguration](../../devkit/documents/WorkspaceJsonConfiguration) + +### Variables + +- [NX_VERSION](../../devkit/documents/NX_VERSION): string +- [appRootPath](../../devkit/documents/appRootPath): string +- [cacheDir](../../devkit/documents/cacheDir): string +- [logger](../../devkit/documents/logger): Object +- [output](../../devkit/documents/output): CLIOutput +- [workspaceRoot](../../devkit/documents/workspaceRoot): string + +### Functions + +- [addDependenciesToPackageJson](../../devkit/documents/addDependenciesToPackageJson) +- [addProjectConfiguration](../../devkit/documents/addProjectConfiguration) +- [applyChangesToString](../../devkit/documents/applyChangesToString) +- [convertNxExecutor](../../devkit/documents/convertNxExecutor) +- [convertNxGenerator](../../devkit/documents/convertNxGenerator) +- [createProjectFileMapUsingProjectGraph](../../devkit/documents/createProjectFileMapUsingProjectGraph) +- [createProjectGraphAsync](../../devkit/documents/createProjectGraphAsync) +- [defaultTasksRunner](../../devkit/documents/defaultTasksRunner) +- [detectPackageManager](../../devkit/documents/detectPackageManager) +- [ensurePackage](../../devkit/documents/ensurePackage) +- [extractLayoutDirectory](../../devkit/documents/extractLayoutDirectory) +- [formatFiles](../../devkit/documents/formatFiles) +- [generateFiles](../../devkit/documents/generateFiles) +- [getOutputsForTargetAndConfiguration](../../devkit/documents/getOutputsForTargetAndConfiguration) +- [getPackageManagerCommand](../../devkit/documents/getPackageManagerCommand) +- [getPackageManagerVersion](../../devkit/documents/getPackageManagerVersion) +- [getProjects](../../devkit/documents/getProjects) +- [getWorkspaceLayout](../../devkit/documents/getWorkspaceLayout) +- [glob](../../devkit/documents/glob) +- [hashArray](../../devkit/documents/hashArray) +- [installPackagesTask](../../devkit/documents/installPackagesTask) +- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled) +- [joinPathFragments](../../devkit/documents/joinPathFragments) +- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory) +- [names](../../devkit/documents/names) +- [normalizePath](../../devkit/documents/normalizePath) +- [offsetFromRoot](../../devkit/documents/offsetFromRoot) +- [parseJson](../../devkit/documents/parseJson) +- [parseTargetString](../../devkit/documents/parseTargetString) +- [readCachedProjectGraph](../../devkit/documents/readCachedProjectGraph) +- [readJson](../../devkit/documents/readJson) +- [readJsonFile](../../devkit/documents/readJsonFile) +- [readNxJson](../../devkit/documents/readNxJson) +- [readProjectConfiguration](../../devkit/documents/readProjectConfiguration) +- [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) +- [readTargetOptions](../../devkit/documents/readTargetOptions) +- [removeDependenciesFromPackageJson](../../devkit/documents/removeDependenciesFromPackageJson) +- [removeProjectConfiguration](../../devkit/documents/removeProjectConfiguration) +- [reverse](../../devkit/documents/reverse) +- [runExecutor](../../devkit/documents/runExecutor) +- [runTasksInSerial](../../devkit/documents/runTasksInSerial) +- [serializeJson](../../devkit/documents/serializeJson) +- [stripIndents](../../devkit/documents/stripIndents) +- [stripJsonComments](../../devkit/documents/stripJsonComments) +- [targetToTargetString](../../devkit/documents/targetToTargetString) +- [toJS](../../devkit/documents/toJS) +- [updateJson](../../devkit/documents/updateJson) +- [updateNxJson](../../devkit/documents/updateNxJson) +- [updateProjectConfiguration](../../devkit/documents/updateProjectConfiguration) +- [updateTsConfigsToJs](../../devkit/documents/updateTsConfigsToJs) +- [validateDependency](../../devkit/documents/validateDependency) +- [visitNotIgnoredFiles](../../devkit/documents/visitNotIgnoredFiles) +- [workspaceLayout](../../devkit/documents/workspaceLayout) +- [writeJson](../../devkit/documents/writeJson) +- [writeJsonFile](../../devkit/documents/writeJsonFile) diff --git a/docs/generated/devkit/RawProjectGraphDependency.md b/docs/generated/devkit/RawProjectGraphDependency.md new file mode 100644 index 0000000000000..8718ec4bf943d --- /dev/null +++ b/docs/generated/devkit/RawProjectGraphDependency.md @@ -0,0 +1,7 @@ +# Type alias: RawProjectGraphDependency + +Ƭ **RawProjectGraphDependency**: [`ImplicitDependency`](../../devkit/documents/ImplicitDependency) \| [`StaticDependency`](../../devkit/documents/StaticDependency) \| [`DynamicDependency`](../../devkit/documents/DynamicDependency) + +A [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects + +See [DynamicDependency](../../devkit/documents/DynamicDependency), [ImplicitDependency](../../devkit/documents/ImplicitDependency), or [StaticDependency](../../devkit/documents/StaticDependency) diff --git a/docs/generated/devkit/RemoteCache.md b/docs/generated/devkit/RemoteCache.md new file mode 100644 index 0000000000000..3ee0b31d11a63 --- /dev/null +++ b/docs/generated/devkit/RemoteCache.md @@ -0,0 +1,50 @@ +# Interface: RemoteCache + +## Table of contents + +### Properties + +- [retrieve](../../devkit/documents/RemoteCache#retrieve): Function +- [store](../../devkit/documents/RemoteCache#store): Function + +## Properties + +### retrieve + +• **retrieve**: (`hash`: `string`, `cacheDirectory`: `string`) => `Promise`\<`boolean`\> + +#### Type declaration + +▸ (`hash`, `cacheDirectory`): `Promise`\<`boolean`\> + +##### Parameters + +| Name | Type | +| :--------------- | :------- | +| `hash` | `string` | +| `cacheDirectory` | `string` | + +##### Returns + +`Promise`\<`boolean`\> + +--- + +### store + +• **store**: (`hash`: `string`, `cacheDirectory`: `string`) => `Promise`\<`boolean`\> + +#### Type declaration + +▸ (`hash`, `cacheDirectory`): `Promise`\<`boolean`\> + +##### Parameters + +| Name | Type | +| :--------------- | :------- | +| `hash` | `string` | +| `cacheDirectory` | `string` | + +##### Returns + +`Promise`\<`boolean`\> diff --git a/docs/generated/devkit/StaticDependency.md b/docs/generated/devkit/StaticDependency.md new file mode 100644 index 0000000000000..e3216d0c6637c --- /dev/null +++ b/docs/generated/devkit/StaticDependency.md @@ -0,0 +1,18 @@ +# Type alias: StaticDependency + +Ƭ **StaticDependency**: `Object` + +A static [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects + +This type of dependency indicates the source project ALWAYS load the target project. + +NOTE: StaticDependency#sourceFile MUST be present unless the source is the name of a [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) + +#### Type declaration + +| Name | Type | Description | +| :------------ | :-------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) depending on the target project | +| `sourceFile?` | `string` | The path of a file (relative from the workspace root) where the dependency is made | +| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) that the source project depends on | +| `type` | typeof [`static`](../../devkit/documents/DependencyType#static) | - | diff --git a/docs/generated/devkit/StringChange.md b/docs/generated/devkit/StringChange.md new file mode 100644 index 0000000000000..06f9944a02673 --- /dev/null +++ b/docs/generated/devkit/StringChange.md @@ -0,0 +1,5 @@ +# Type alias: StringChange + +Ƭ **StringChange**: [`StringInsertion`](../../devkit/documents/StringInsertion) \| [`StringDeletion`](../../devkit/documents/StringDeletion) + +A change to be made to a string diff --git a/docs/generated/devkit/StringDeletion.md b/docs/generated/devkit/StringDeletion.md new file mode 100644 index 0000000000000..47d40f54464cc --- /dev/null +++ b/docs/generated/devkit/StringDeletion.md @@ -0,0 +1,31 @@ +# Interface: StringDeletion + +## Table of contents + +### Properties + +- [length](../../devkit/documents/StringDeletion#length): number +- [start](../../devkit/documents/StringDeletion#start): number +- [type](../../devkit/documents/StringDeletion#type): Delete + +## Properties + +### length + +• **length**: `number` + +Number of characters to delete + +--- + +### start + +• **start**: `number` + +Place in the original text to start deleting characters + +--- + +### type + +• **type**: [`Delete`](../../devkit/documents/ChangeType#delete) diff --git a/docs/generated/devkit/StringInsertion.md b/docs/generated/devkit/StringInsertion.md new file mode 100644 index 0000000000000..aa07d64e7ebb5 --- /dev/null +++ b/docs/generated/devkit/StringInsertion.md @@ -0,0 +1,31 @@ +# Interface: StringInsertion + +## Table of contents + +### Properties + +- [index](../../devkit/documents/StringInsertion#index): number +- [text](../../devkit/documents/StringInsertion#text): string +- [type](../../devkit/documents/StringInsertion#type): Insert + +## Properties + +### index + +• **index**: `number` + +Place in the original text to insert new text + +--- + +### text + +• **text**: `string` + +Text to insert into the original text + +--- + +### type + +• **type**: [`Insert`](../../devkit/documents/ChangeType#insert) diff --git a/docs/generated/devkit/Target.md b/docs/generated/devkit/Target.md new file mode 100644 index 0000000000000..44f89f59369bc --- /dev/null +++ b/docs/generated/devkit/Target.md @@ -0,0 +1,27 @@ +# Interface: Target + +## Table of contents + +### Properties + +- [configuration](../../devkit/documents/Target#configuration): string +- [project](../../devkit/documents/Target#project): string +- [target](../../devkit/documents/Target#target): string + +## Properties + +### configuration + +• `Optional` **configuration**: `string` + +--- + +### project + +• **project**: `string` + +--- + +### target + +• **target**: `string` diff --git a/docs/generated/devkit/TargetConfiguration.md b/docs/generated/devkit/TargetConfiguration.md new file mode 100644 index 0000000000000..a20cc4a053e07 --- /dev/null +++ b/docs/generated/devkit/TargetConfiguration.md @@ -0,0 +1,102 @@ +# Interface: TargetConfiguration\ + +Target's configuration + +## Type parameters + +| Name | Type | +| :--- | :---- | +| `T` | `any` | + +## Table of contents + +### Properties + +- [cache](../../devkit/documents/TargetConfiguration#cache): boolean +- [command](../../devkit/documents/TargetConfiguration#command): string +- [configurations](../../devkit/documents/TargetConfiguration#configurations): Object +- [defaultConfiguration](../../devkit/documents/TargetConfiguration#defaultconfiguration): string +- [dependsOn](../../devkit/documents/TargetConfiguration#dependson): (string | TargetDependencyConfig)[] +- [executor](../../devkit/documents/TargetConfiguration#executor): string +- [inputs](../../devkit/documents/TargetConfiguration#inputs): (string | InputDefinition)[] +- [options](../../devkit/documents/TargetConfiguration#options): T +- [outputs](../../devkit/documents/TargetConfiguration#outputs): string[] + +## Properties + +### cache + +• `Optional` **cache**: `boolean` + +Determines if Nx is able to cache a given target. + +--- + +### command + +• `Optional` **command**: `string` + +Used as a shorthand for nx:run-commands, a command to run. + +--- + +### configurations + +• `Optional` **configurations**: `Object` + +Sets of options + +#### Index signature + +▪ [config: `string`]: `any` + +--- + +### defaultConfiguration + +• `Optional` **defaultConfiguration**: `string` + +A default named configuration to use when a target configuration is not provided. + +--- + +### dependsOn + +• `Optional` **dependsOn**: (`string` \| [`TargetDependencyConfig`](../../devkit/documents/TargetDependencyConfig))[] + +This describes other targets that a target depends on. + +--- + +### executor + +• `Optional` **executor**: `string` + +The executor/builder used to implement the target. + +Example: '@nx/rollup:rollup' + +--- + +### inputs + +• `Optional` **inputs**: (`string` \| `InputDefinition`)[] + +This describes filesets, runtime dependencies and other inputs that a target depends on. + +--- + +### options + +• `Optional` **options**: `T` + +Target's options. They are passed in to the executor. + +--- + +### outputs + +• `Optional` **outputs**: `string`[] + +List of the target's outputs. The outputs will be cached by the Nx computation +caching engine. diff --git a/docs/generated/devkit/TargetDefaults.md b/docs/generated/devkit/TargetDefaults.md new file mode 100644 index 0000000000000..240b0e712cbf6 --- /dev/null +++ b/docs/generated/devkit/TargetDefaults.md @@ -0,0 +1,3 @@ +# Type alias: TargetDefaults + +Ƭ **TargetDefaults**: `Record`\<`string`, `Partial`\<[`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\>\> diff --git a/docs/generated/devkit/TargetDependencyConfig.md b/docs/generated/devkit/TargetDependencyConfig.md new file mode 100644 index 0000000000000..c8793560f356b --- /dev/null +++ b/docs/generated/devkit/TargetDependencyConfig.md @@ -0,0 +1,45 @@ +# Interface: TargetDependencyConfig + +## Table of contents + +### Properties + +- [dependencies](../../devkit/documents/TargetDependencyConfig#dependencies): boolean +- [params](../../devkit/documents/TargetDependencyConfig#params): "ignore" | "forward" +- [projects](../../devkit/documents/TargetDependencyConfig#projects): string | string[] +- [target](../../devkit/documents/TargetDependencyConfig#target): string + +## Properties + +### dependencies + +• `Optional` **dependencies**: `boolean` + +If true, the target will be executed for each project that this project depends on. +Should not be specified together with `projects`. + +--- + +### params + +• `Optional` **params**: `"ignore"` \| `"forward"` + +Configuration for params handling. + +--- + +### projects + +• `Optional` **projects**: `string` \| `string`[] + +A list of projects that have `target`. +Should not be specified together with `dependencies`. + +--- + +### target + +• **target**: `string` + +The name of the target to run. If `projects` and `dependencies` are not specified, +the target will be executed for the same project the the current target is running on`. diff --git a/docs/generated/devkit/Task.md b/docs/generated/devkit/Task.md new file mode 100644 index 0000000000000..686bac2a5e6f2 --- /dev/null +++ b/docs/generated/devkit/Task.md @@ -0,0 +1,115 @@ +# Interface: Task + +A representation of the invocation of an Executor + +## Table of contents + +### Properties + +- [cache](../../devkit/documents/Task#cache): boolean +- [endTime](../../devkit/documents/Task#endtime): number +- [hash](../../devkit/documents/Task#hash): string +- [hashDetails](../../devkit/documents/Task#hashdetails): Object +- [id](../../devkit/documents/Task#id): string +- [outputs](../../devkit/documents/Task#outputs): string[] +- [overrides](../../devkit/documents/Task#overrides): any +- [projectRoot](../../devkit/documents/Task#projectroot): string +- [startTime](../../devkit/documents/Task#starttime): number +- [target](../../devkit/documents/Task#target): Object + +## Properties + +### cache + +• `Optional` **cache**: `boolean` + +Determines if a given task should be cacheable. + +--- + +### endTime + +• `Optional` **endTime**: `number` + +Unix timestamp of when a Batch Task ends + +--- + +### hash + +• `Optional` **hash**: `string` + +Hash of the task which is used for caching. + +--- + +### hashDetails + +• `Optional` **hashDetails**: `Object` + +Details about the composition of the hash + +#### Type declaration + +| Name | Type | Description | +| :-------------- | :----------------------------------- | :------------------------------------------------------------- | +| `command` | `string` | Command of the task | +| `implicitDeps?` | \{ `[fileName: string]`: `string`; } | Hashes of implicit dependencies which are included in the hash | +| `nodes` | \{ `[name: string]`: `string`; } | Hashes of inputs used in the hash | +| `runtime?` | \{ `[input: string]`: `string`; } | Hash of the runtime environment which the task was executed | + +--- + +### id + +• **id**: `string` + +Unique ID + +--- + +### outputs + +• **outputs**: `string`[] + +The outputs the task may produce + +--- + +### overrides + +• **overrides**: `any` + +Overrides for the configured options of the target + +--- + +### projectRoot + +• `Optional` **projectRoot**: `string` + +Root of the project the task belongs to + +--- + +### startTime + +• `Optional` **startTime**: `number` + +Unix timestamp of when a Batch Task starts + +--- + +### target + +• **target**: `Object` + +Details about which project, target, and configuration to run. + +#### Type declaration + +| Name | Type | Description | +| :--------------- | :------- | :----------------------------------------------------- | +| `configuration?` | `string` | The configuration of the target which the task invokes | +| `project` | `string` | The project for which the task belongs to | +| `target` | `string` | The target name which the task should invoke | diff --git a/docs/generated/devkit/TaskGraph.md b/docs/generated/devkit/TaskGraph.md new file mode 100644 index 0000000000000..35def5738bb1c --- /dev/null +++ b/docs/generated/devkit/TaskGraph.md @@ -0,0 +1,35 @@ +# Interface: TaskGraph + +Graph of Tasks to be executed + +## Table of contents + +### Properties + +- [dependencies](../../devkit/documents/TaskGraph#dependencies): Record +- [roots](../../devkit/documents/TaskGraph#roots): string[] +- [tasks](../../devkit/documents/TaskGraph#tasks): Record + +## Properties + +### dependencies + +• **dependencies**: `Record`\<`string`, `string`[]\> + +Map of Task IDs to IDs of tasks which the task depends on + +--- + +### roots + +• **roots**: `string`[] + +IDs of Tasks which do not have any dependencies and are thus ready to execute immediately + +--- + +### tasks + +• **tasks**: `Record`\<`string`, [`Task`](../../devkit/documents/Task)\> + +Map of Task IDs to Tasks diff --git a/docs/generated/devkit/TaskGraphExecutor.md b/docs/generated/devkit/TaskGraphExecutor.md new file mode 100644 index 0000000000000..30ddccaef84d4 --- /dev/null +++ b/docs/generated/devkit/TaskGraphExecutor.md @@ -0,0 +1,28 @@ +# Type alias: TaskGraphExecutor\ + +Ƭ **TaskGraphExecutor**\<`T`\>: (`taskGraph`: [`TaskGraph`](../../devkit/documents/TaskGraph), `options`: `Record`\<`string`, `T`\>, `overrides`: `T`, `context`: [`ExecutorContext`](../../devkit/documents/ExecutorContext)) => `Promise`\<`BatchExecutorResult` \| `AsyncIterableIterator`\<`BatchExecutorTaskResult`\>\> + +Implementation of a target of a project that handles multiple projects to be batched + +#### Type parameters + +| Name | Type | +| :--- | :---- | +| `T` | `any` | + +#### Type declaration + +▸ (`taskGraph`, `options`, `overrides`, `context`): `Promise`\<`BatchExecutorResult` \| `AsyncIterableIterator`\<`BatchExecutorTaskResult`\>\> + +##### Parameters + +| Name | Type | +| :---------- | :---------------------------------------------------------- | +| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | +| `options` | `Record`\<`string`, `T`\> | +| `overrides` | `T` | +| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | + +##### Returns + +`Promise`\<`BatchExecutorResult` \| `AsyncIterableIterator`\<`BatchExecutorTaskResult`\>\> diff --git a/docs/generated/devkit/TaskHasher.md b/docs/generated/devkit/TaskHasher.md new file mode 100644 index 0000000000000..3d928bc1b29a8 --- /dev/null +++ b/docs/generated/devkit/TaskHasher.md @@ -0,0 +1,110 @@ +# Interface: TaskHasher + +## Table of contents + +### Methods + +- [hashTask](../../devkit/documents/TaskHasher#hashtask) +- [hashTasks](../../devkit/documents/TaskHasher#hashtasks) + +## Methods + +### hashTask + +▸ **hashTask**(`task`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +#### Parameters + +| Name | Type | +| :----- | :------------------------------------ | +| `task` | [`Task`](../../devkit/documents/Task) | + +#### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +**`Deprecated`** + +use hashTask(task:Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 + +▸ **hashTask**(`task`, `taskGraph`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +#### Parameters + +| Name | Type | +| :---------- | :---------------------------------------------- | +| `task` | [`Task`](../../devkit/documents/Task) | +| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | + +#### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +**`Deprecated`** + +use hashTask(task:Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 + +▸ **hashTask**(`task`, `taskGraph`, `env`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +#### Parameters + +| Name | Type | +| :---------- | :---------------------------------------------- | +| `task` | [`Task`](../../devkit/documents/Task) | +| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | +| `env` | `ProcessEnv` | + +#### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)\> + +--- + +### hashTasks + +▸ **hashTasks**(`tasks`): `Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> + +#### Parameters + +| Name | Type | +| :------ | :-------------------------------------- | +| `tasks` | [`Task`](../../devkit/documents/Task)[] | + +#### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> + +**`Deprecated`** + +use hashTasks(tasks:Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 + +▸ **hashTasks**(`tasks`, `taskGraph`): `Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> + +#### Parameters + +| Name | Type | +| :---------- | :---------------------------------------------- | +| `tasks` | [`Task`](../../devkit/documents/Task)[] | +| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | + +#### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> + +**`Deprecated`** + +use hashTasks(tasks:Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v19 + +▸ **hashTasks**(`tasks`, `taskGraph`, `env`): `Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> + +#### Parameters + +| Name | Type | +| :---------- | :---------------------------------------------- | +| `tasks` | [`Task`](../../devkit/documents/Task)[] | +| `taskGraph` | [`TaskGraph`](../../devkit/documents/TaskGraph) | +| `env` | `ProcessEnv` | + +#### Returns + +`Promise`\<[`Hash`](../../devkit/documents/Hash)[]\> diff --git a/docs/generated/devkit/ToJSOptions.md b/docs/generated/devkit/ToJSOptions.md new file mode 100644 index 0000000000000..73060f872daca --- /dev/null +++ b/docs/generated/devkit/ToJSOptions.md @@ -0,0 +1,11 @@ +# Type alias: ToJSOptions + +Ƭ **ToJSOptions**: `Object` + +#### Type declaration + +| Name | Type | +| :---------- | :------------------------------ | +| `extension` | `".js"` \| `".mjs"` \| `".cjs"` | +| `module?` | `ModuleKind` | +| `target?` | `ScriptTarget` | diff --git a/docs/generated/devkit/Tree.md b/docs/generated/devkit/Tree.md new file mode 100644 index 0000000000000..e56097e84835f --- /dev/null +++ b/docs/generated/devkit/Tree.md @@ -0,0 +1,204 @@ +# Interface: Tree + +Virtual file system tree. + +## Table of contents + +### Properties + +- [root](../../devkit/documents/Tree#root): string + +### Methods + +- [changePermissions](../../devkit/documents/Tree#changepermissions) +- [children](../../devkit/documents/Tree#children) +- [delete](../../devkit/documents/Tree#delete) +- [exists](../../devkit/documents/Tree#exists) +- [isFile](../../devkit/documents/Tree#isfile) +- [listChanges](../../devkit/documents/Tree#listchanges) +- [read](../../devkit/documents/Tree#read) +- [rename](../../devkit/documents/Tree#rename) +- [write](../../devkit/documents/Tree#write) + +## Properties + +### root + +• **root**: `string` + +Root of the workspace. All paths are relative to this. + +## Methods + +### changePermissions + +▸ **changePermissions**(`filePath`, `mode`): `void` + +Changes permissions of a file. + +#### Parameters + +| Name | Type | Description | +| :--------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `filePath` | `string` | A path to a file. | +| `mode` | `Mode` | The permission to be granted on the file, given as a string (e.g `755`) or octal integer (e.g `0o755`). See https://nodejs.org/api/fs.html#fs_file_modes. | + +#### Returns + +`void` + +--- + +### children + +▸ **children**(`dirPath`): `string`[] + +Returns the list of children of a folder. + +#### Parameters + +| Name | Type | +| :-------- | :------- | +| `dirPath` | `string` | + +#### Returns + +`string`[] + +--- + +### delete + +▸ **delete**(`filePath`): `void` + +Delete the file. + +#### Parameters + +| Name | Type | +| :--------- | :------- | +| `filePath` | `string` | + +#### Returns + +`void` + +--- + +### exists + +▸ **exists**(`filePath`): `boolean` + +Check if a file exists. + +#### Parameters + +| Name | Type | +| :--------- | :------- | +| `filePath` | `string` | + +#### Returns + +`boolean` + +--- + +### isFile + +▸ **isFile**(`filePath`): `boolean` + +Check if this is a file or not. + +#### Parameters + +| Name | Type | +| :--------- | :------- | +| `filePath` | `string` | + +#### Returns + +`boolean` + +--- + +### listChanges + +▸ **listChanges**(): [`FileChange`](../../devkit/documents/FileChange)[] + +Returns the list of currently recorded changes. + +#### Returns + +[`FileChange`](../../devkit/documents/FileChange)[] + +--- + +### read + +▸ **read**(`filePath`): `Buffer` + +Read the contents of a file. + +#### Parameters + +| Name | Type | Description | +| :--------- | :------- | :---------------- | +| `filePath` | `string` | A path to a file. | + +#### Returns + +`Buffer` + +▸ **read**(`filePath`, `encoding`): `string` + +Read the contents of a file as string. + +#### Parameters + +| Name | Type | Description | +| :--------- | :--------------- | :-------------------------- | +| `filePath` | `string` | A path to a file. | +| `encoding` | `BufferEncoding` | the encoding for the result | + +#### Returns + +`string` + +--- + +### rename + +▸ **rename**(`from`, `to`): `void` + +Rename the file or the folder. + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `from` | `string` | +| `to` | `string` | + +#### Returns + +`void` + +--- + +### write + +▸ **write**(`filePath`, `content`, `options?`): `void` + +Update the contents of a file or create a new file. + +#### Parameters + +| Name | Type | +| :--------- | :------------------- | +| `filePath` | `string` | +| `content` | `string` \| `Buffer` | +| `options?` | `TreeWriteOptions` | + +#### Returns + +`void` diff --git a/docs/generated/devkit/Workspace.md b/docs/generated/devkit/Workspace.md new file mode 100644 index 0000000000000..05c15bc3a935e --- /dev/null +++ b/docs/generated/devkit/Workspace.md @@ -0,0 +1,383 @@ +# Interface: Workspace + +**`Deprecated`** + +use ProjectsConfigurations or NxJsonConfiguration + +## Hierarchy + +- [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) + +- [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) + + ↳ **`Workspace`** + +## Table of contents + +### Properties + +- [affected](../../devkit/documents/Workspace#affected): NxAffectedConfig +- [cacheDirectory](../../devkit/documents/Workspace#cachedirectory): string +- [cli](../../devkit/documents/Workspace#cli): Object +- [defaultBase](../../devkit/documents/Workspace#defaultbase): string +- [defaultProject](../../devkit/documents/Workspace#defaultproject): string +- [extends](../../devkit/documents/Workspace#extends): string +- [generators](../../devkit/documents/Workspace#generators): Object +- [implicitDependencies](../../devkit/documents/Workspace#implicitdependencies): ImplicitDependencyEntry +- [installation](../../devkit/documents/Workspace#installation): NxInstallationConfiguration +- [namedInputs](../../devkit/documents/Workspace#namedinputs): Object +- [nxCloudAccessToken](../../devkit/documents/Workspace#nxcloudaccesstoken): string +- [nxCloudEncryptionKey](../../devkit/documents/Workspace#nxcloudencryptionkey): string +- [nxCloudUrl](../../devkit/documents/Workspace#nxcloudurl): string +- [parallel](../../devkit/documents/Workspace#parallel): number +- [plugins](../../devkit/documents/Workspace#plugins): PluginConfiguration[] +- [pluginsConfig](../../devkit/documents/Workspace#pluginsconfig): Record> +- [projects](../../devkit/documents/Workspace#projects): Record +- [release](../../devkit/documents/Workspace#release): NxReleaseConfiguration +- [targetDefaults](../../devkit/documents/Workspace#targetdefaults): TargetDefaults +- [tasksRunnerOptions](../../devkit/documents/Workspace#tasksrunneroptions): Object +- [useDaemonProcess](../../devkit/documents/Workspace#usedaemonprocess): boolean +- [useInferencePlugins](../../devkit/documents/Workspace#useinferenceplugins): boolean +- [version](../../devkit/documents/Workspace#version): number +- [workspaceLayout](../../devkit/documents/Workspace#workspacelayout): Object + +## Properties + +### affected + +• `Optional` **affected**: [`NxAffectedConfig`](../../devkit/documents/NxAffectedConfig) + +Default options for `nx affected` + +**`Deprecated`** + +use [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead. For more information see https://nx.dev/deprecated/affected-config#affected-config + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[affected](../../devkit/documents/NxJsonConfiguration#affected) + +--- + +### cacheDirectory + +• `Optional` **cacheDirectory**: `string` + +Changes the directory used by Nx to store its cache. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[cacheDirectory](../../devkit/documents/NxJsonConfiguration#cachedirectory) + +--- + +### cli + +• `Optional` **cli**: `Object` + +Default generator collection. It is used when no collection is provided. + +#### Type declaration + +| Name | Type | +| :-------------------- | :-------------------------------------------------------- | +| `defaultProjectName?` | `string` | +| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) | + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[cli](../../devkit/documents/NxJsonConfiguration#cli) + +--- + +### defaultBase + +• `Optional` **defaultBase**: `string` + +Default value for --base used by `nx affected` and `nx format`. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) + +--- + +### defaultProject + +• `Optional` **defaultProject**: `string` + +Default project. When project isn't provided, the default project +will be used. Convenient for small workspaces with one main application. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject) + +--- + +### extends + +• `Optional` **extends**: `string` + +Optional (additional) Nx.json configuration file which becomes a base for this one + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[extends](../../devkit/documents/NxJsonConfiguration#extends) + +--- + +### generators + +• `Optional` **generators**: `Object` + +List of default values used by generators. + +These defaults are global. They are used when no other defaults are configured. + +Example: + +``` +{ + "@nx/react": { + "library": { + "style": "scss" + } + } +} +``` + +#### Index signature + +▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; } + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[generators](../../devkit/documents/NxJsonConfiguration#generators) + +--- + +### implicitDependencies + +• `Optional` **implicitDependencies**: [`ImplicitDependencyEntry`](../../devkit/documents/ImplicitDependencyEntry)\<`string`[] \| `"*"`\> + +Map of files to projects that implicitly depend on them + +**`Deprecated`** + +use [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) instead. For more information see https://nx.dev/deprecated/global-implicit-dependencies#global-implicit-dependencies + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies) + +--- + +### installation + +• `Optional` **installation**: `NxInstallationConfiguration` + +Configures the Nx installation for a repo. Useful for maintaining a separate +set of dependencies for Nx + Plugins compared to the base package.json, but also +useful for workspaces that don't have a root package.json + node_modules. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[installation](../../devkit/documents/NxJsonConfiguration#installation) + +--- + +### namedInputs + +• `Optional` **namedInputs**: `Object` + +Named inputs targets can refer to reduce duplication + +#### Index signature + +▪ [inputName: `string`]: (`string` \| `InputDefinition`)[] + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) + +--- + +### nxCloudAccessToken + +• `Optional` **nxCloudAccessToken**: `string` + +If specified Nx will use nx-cloud by default with the given token. +To use a different runner that accepts an access token, define it in [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions) + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[nxCloudAccessToken](../../devkit/documents/NxJsonConfiguration#nxcloudaccesstoken) + +--- + +### nxCloudEncryptionKey + +• `Optional` **nxCloudEncryptionKey**: `string` + +Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[nxCloudEncryptionKey](../../devkit/documents/NxJsonConfiguration#nxcloudencryptionkey) + +--- + +### nxCloudUrl + +• `Optional` **nxCloudUrl**: `string` + +Specifies the url pointing to an instance of nx cloud. Used for remote +caching and displaying run links. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[nxCloudUrl](../../devkit/documents/NxJsonConfiguration#nxcloudurl) + +--- + +### parallel + +• `Optional` **parallel**: `number` + +Specifies how many tasks can be run in parallel. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[parallel](../../devkit/documents/NxJsonConfiguration#parallel) + +--- + +### plugins + +• `Optional` **plugins**: [`PluginConfiguration`](../../devkit/documents/PluginConfiguration)[] + +Plugins for extending the project graph + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[plugins](../../devkit/documents/NxJsonConfiguration#plugins) + +--- + +### pluginsConfig + +• `Optional` **pluginsConfig**: `Record`\<`string`, `Record`\<`string`, `unknown`\>\> + +Configuration for Nx Plugins + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[pluginsConfig](../../devkit/documents/NxJsonConfiguration#pluginsconfig) + +--- + +### projects + +• **projects**: `Record`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> + +Projects' projects + +#### Overrides + +[ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations).[projects](../../devkit/documents/ProjectsConfigurations#projects) + +--- + +### release + +• `Optional` **release**: `NxReleaseConfiguration` + +Configuration for `nx release` (versioning and publishing of applications and libraries) + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[release](../../devkit/documents/NxJsonConfiguration#release) + +--- + +### targetDefaults + +• `Optional` **targetDefaults**: [`TargetDefaults`](../../devkit/documents/TargetDefaults) + +Dependencies between different target names across all projects + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[targetDefaults](../../devkit/documents/NxJsonConfiguration#targetdefaults) + +--- + +### tasksRunnerOptions + +• `Optional` **tasksRunnerOptions**: `Object` + +Available Task Runners + +#### Index signature + +▪ [tasksRunnerName: `string`]: \{ `options?`: `any` ; `runner?`: `string` } + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions) + +--- + +### useDaemonProcess + +• `Optional` **useDaemonProcess**: `boolean` + +Set this to false to disable the daemon. + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[useDaemonProcess](../../devkit/documents/NxJsonConfiguration#usedaemonprocess) + +--- + +### useInferencePlugins + +• `Optional` **useInferencePlugins**: `boolean` + +Set this to false to disable adding inference plugins when generating new projects + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[useInferencePlugins](../../devkit/documents/NxJsonConfiguration#useinferenceplugins) + +--- + +### version + +• **version**: `number` + +Version of the configuration format + +#### Inherited from + +[ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations).[version](../../devkit/documents/ProjectsConfigurations#version) + +--- + +### workspaceLayout + +• `Optional` **workspaceLayout**: `Object` + +Where new apps + libs should be placed + +#### Type declaration + +| Name | Type | +| :--------- | :------- | +| `appsDir?` | `string` | +| `libsDir?` | `string` | + +#### Inherited from + +[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[workspaceLayout](../../devkit/documents/NxJsonConfiguration#workspacelayout) diff --git a/docs/generated/devkit/WorkspaceJsonConfiguration.md b/docs/generated/devkit/WorkspaceJsonConfiguration.md new file mode 100644 index 0000000000000..5bcec62b5c3d5 --- /dev/null +++ b/docs/generated/devkit/WorkspaceJsonConfiguration.md @@ -0,0 +1,7 @@ +# Type alias: WorkspaceJsonConfiguration + +Ƭ **WorkspaceJsonConfiguration**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) + +**`Deprecated`** + +use ProjectsConfigurations diff --git a/docs/generated/devkit/Workspaces.md b/docs/generated/devkit/Workspaces.md new file mode 100644 index 0000000000000..949d923514db9 --- /dev/null +++ b/docs/generated/devkit/Workspaces.md @@ -0,0 +1,45 @@ +# Class: Workspaces + +**`Deprecated`** + +This will be removed in v19. Use [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) instead. + +## Table of contents + +### Constructors + +- [constructor](../../devkit/documents/Workspaces#constructor) + +### Methods + +- [readWorkspaceConfiguration](../../devkit/documents/Workspaces#readworkspaceconfiguration) + +## Constructors + +### constructor + +• **new Workspaces**(`root`): [`Workspaces`](../../devkit/documents/Workspaces) + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `root` | `string` | + +#### Returns + +[`Workspaces`](../../devkit/documents/Workspaces) + +## Methods + +### readWorkspaceConfiguration + +▸ **readWorkspaceConfiguration**(): [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +#### Returns + +[`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> + +**`Deprecated`** + +Use [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) instead. diff --git a/docs/generated/devkit/addDependenciesToPackageJson.md b/docs/generated/devkit/addDependenciesToPackageJson.md new file mode 100644 index 0000000000000..d881ee458edf5 --- /dev/null +++ b/docs/generated/devkit/addDependenciesToPackageJson.md @@ -0,0 +1,29 @@ +# Function: addDependenciesToPackageJson + +▸ **addDependenciesToPackageJson**(`tree`, `dependencies`, `devDependencies`, `packageJsonPath?`, `keepExistingVersions?`): [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) + +Add Dependencies and Dev Dependencies to package.json + +For example: + +```typescript +addDependenciesToPackageJson(tree, { react: 'latest' }, { jest: 'latest' }); +``` + +This will **add** `react` and `jest` to the dependencies and devDependencies sections of package.json respectively. + +#### Parameters + +| Name | Type | Description | +| :---------------------- | :------------------------------------ | :-------------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | Tree representing file system to modify | +| `dependencies` | `Record`\<`string`, `string`\> | Dependencies to be added to the dependencies section of package.json | +| `devDependencies` | `Record`\<`string`, `string`\> | Dependencies to be added to the devDependencies section of package.json | +| `packageJsonPath?` | `string` | Path to package.json | +| `keepExistingVersions?` | `boolean` | If true, prevents existing dependencies from being bumped to newer versions | + +#### Returns + +[`GeneratorCallback`](../../devkit/documents/GeneratorCallback) + +Callback to install dependencies only if necessary, no-op otherwise diff --git a/docs/generated/devkit/addProjectConfiguration.md b/docs/generated/devkit/addProjectConfiguration.md new file mode 100644 index 0000000000000..697d244cf5892 --- /dev/null +++ b/docs/generated/devkit/addProjectConfiguration.md @@ -0,0 +1,18 @@ +# Function: addProjectConfiguration + +▸ **addProjectConfiguration**(`tree`, `projectName`, `projectConfiguration`, `standalone?`): `void` + +Adds project configuration to the Nx workspace. + +#### Parameters + +| Name | Type | Default value | Description | +| :--------------------- | :-------------------------------------------------------------------- | :------------ | :---------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | `undefined` | the file system tree | +| `projectName` | `string` | `undefined` | unique name. Often directories are part of the name (e.g., mydir-mylib) | +| `projectConfiguration` | [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) | `undefined` | project configuration | +| `standalone` | `boolean` | `true` | whether the project is configured in workspace.json or not | + +#### Returns + +`void` diff --git a/docs/generated/devkit/appRootPath.md b/docs/generated/devkit/appRootPath.md new file mode 100644 index 0000000000000..2e3e481af37d3 --- /dev/null +++ b/docs/generated/devkit/appRootPath.md @@ -0,0 +1,9 @@ +# Variable: appRootPath + +• `Const` **appRootPath**: `string` = `workspaceRoot` + +The root of the workspace. + +**`Deprecated`** + +use workspaceRoot instead diff --git a/docs/generated/devkit/applyChangesToString.md b/docs/generated/devkit/applyChangesToString.md new file mode 100644 index 0000000000000..23683760564d1 --- /dev/null +++ b/docs/generated/devkit/applyChangesToString.md @@ -0,0 +1,44 @@ +# Function: applyChangesToString + +▸ **applyChangesToString**(`text`, `changes`): `string` + +Applies a list of changes to a string's original value. + +This is useful when working with ASTs. + +For Example, to rename a property in a method's options: + +```typescript +const code = `bootstrap({ + target: document.querySelector('#app') +})`; + +const indexOfPropertyName = 13; // Usually determined by analyzing an AST. +const updatedCode = applyChangesToString(code, [ + { + type: ChangeType.Insert, + index: indexOfPropertyName, + text: 'element', + }, + { + type: ChangeType.Delete, + start: indexOfPropertyName, + length: 6, + }, +]); + +bootstrap({ + element: document.querySelector('#app'), +}); +``` + +#### Parameters + +| Name | Type | +| :-------- | :------------------------------------------------------ | +| `text` | `string` | +| `changes` | [`StringChange`](../../devkit/documents/StringChange)[] | + +#### Returns + +`string` diff --git a/docs/generated/devkit/cacheDir.md b/docs/generated/devkit/cacheDir.md new file mode 100644 index 0000000000000..36f053bd10e6e --- /dev/null +++ b/docs/generated/devkit/cacheDir.md @@ -0,0 +1,5 @@ +# Variable: cacheDir + +• `Const` **cacheDir**: `string` + +Path to the directory where Nx stores its cache and daemon-related files. diff --git a/docs/generated/devkit/convertNxExecutor.md b/docs/generated/devkit/convertNxExecutor.md new file mode 100644 index 0000000000000..9d3eb7b2429a9 --- /dev/null +++ b/docs/generated/devkit/convertNxExecutor.md @@ -0,0 +1,17 @@ +# Function: convertNxExecutor + +▸ **convertNxExecutor**(`executor`): `any` + +Convert an Nx Executor into an Angular Devkit Builder + +Use this to expose a compatible Angular Builder + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------------------------- | +| `executor` | [`Executor`](../../devkit/documents/Executor) | + +#### Returns + +`any` diff --git a/docs/generated/devkit/convertNxGenerator.md b/docs/generated/devkit/convertNxGenerator.md new file mode 100644 index 0000000000000..4ba155319ac04 --- /dev/null +++ b/docs/generated/devkit/convertNxGenerator.md @@ -0,0 +1,47 @@ +# Function: convertNxGenerator + +▸ **convertNxGenerator**\<`T`\>(`generator`, `skipWritingConfigInOldFormat?`): (`generatorOptions`: `T`) => (`tree`: `any`, `context`: `any`) => `Promise`\<`any`\> + +Convert an Nx Generator into an Angular Devkit Schematic. + +#### Type parameters + +| Name | Type | +| :--- | :---- | +| `T` | `any` | + +#### Parameters + +| Name | Type | Description | +| :------------------------------ | :----------------------------------------------------- | :---------------------------------------------------------- | +| `generator` | [`Generator`](../../devkit/documents/Generator)\<`T`\> | The Nx generator to convert to an Angular Devkit Schematic. | +| `skipWritingConfigInOldFormat?` | `boolean` | - | + +#### Returns + +`fn` + +▸ (`generatorOptions`): (`tree`: `any`, `context`: `any`) => `Promise`\<`any`\> + +##### Parameters + +| Name | Type | +| :----------------- | :--- | +| `generatorOptions` | `T` | + +##### Returns + +`fn` + +▸ (`tree`, `context`): `Promise`\<`any`\> + +##### Parameters + +| Name | Type | +| :-------- | :---- | +| `tree` | `any` | +| `context` | `any` | + +##### Returns + +`Promise`\<`any`\> diff --git a/docs/generated/devkit/createProjectFileMapUsingProjectGraph.md b/docs/generated/devkit/createProjectFileMapUsingProjectGraph.md new file mode 100644 index 0000000000000..eb5b6d8c25490 --- /dev/null +++ b/docs/generated/devkit/createProjectFileMapUsingProjectGraph.md @@ -0,0 +1,13 @@ +# Function: createProjectFileMapUsingProjectGraph + +▸ **createProjectFileMapUsingProjectGraph**(`graph`): `Promise`\<[`ProjectFileMap`](../../devkit/documents/ProjectFileMap)\> + +#### Parameters + +| Name | Type | +| :------ | :---------------------------------------------------- | +| `graph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | + +#### Returns + +`Promise`\<[`ProjectFileMap`](../../devkit/documents/ProjectFileMap)\> diff --git a/docs/generated/devkit/createProjectGraphAsync.md b/docs/generated/devkit/createProjectGraphAsync.md new file mode 100644 index 0000000000000..5f1cc67e75ab1 --- /dev/null +++ b/docs/generated/devkit/createProjectGraphAsync.md @@ -0,0 +1,37 @@ +# Function: createProjectGraphAsync + +▸ **createProjectGraphAsync**(`opts?`): `Promise`\<[`ProjectGraph`](../../devkit/documents/ProjectGraph)\> + +Computes and returns a ProjectGraph. + +Nx will compute the graph either in a daemon process or in the current process. + +Nx will compute it in the current process if: + +- The process is running in CI (CI env variable is to true or other common variables used by CI providers are set). +- It is running in the docker container. +- The daemon process is disabled because of the previous error when starting the daemon. +- `NX_DAEMON` is set to `false`. +- `useDaemonProcess` is set to false in the options of the tasks runner inside `nx.json` + +`NX_DAEMON` env variable takes precedence: + +- If it is set to true, the daemon will always be used. +- If it is set to false, the graph will always be computed in the current process. + +Tip: If you want to debug project graph creation, run your command with NX_DAEMON=false. + +Nx uses two layers of caching: the information about explicit dependencies stored on the disk and the information +stored in the daemon process. To reset both run: `nx reset`. + +#### Parameters + +| Name | Type | +| :------------------------ | :-------- | +| `opts` | `Object` | +| `opts.exitOnError` | `boolean` | +| `opts.resetDaemonClient?` | `boolean` | + +#### Returns + +`Promise`\<[`ProjectGraph`](../../devkit/documents/ProjectGraph)\> diff --git a/docs/generated/devkit/defaultTasksRunner.md b/docs/generated/devkit/defaultTasksRunner.md new file mode 100644 index 0000000000000..c28df12f4be1b --- /dev/null +++ b/docs/generated/devkit/defaultTasksRunner.md @@ -0,0 +1,23 @@ +# Function: defaultTasksRunner + +▸ **defaultTasksRunner**(`tasks`, `options`, `context?`): `any` + +#### Parameters + +| Name | Type | +| :--------------------------- | :----------------------------------------------------------------------------------------- | +| `tasks` | [`Task`](../../devkit/documents/Task)[] | +| `options` | [`DefaultTasksRunnerOptions`](../../devkit/documents/DefaultTasksRunnerOptions) | +| `context?` | `Object` | +| `context.daemon?` | `DaemonClient` | +| `context.hasher?` | [`TaskHasher`](../../devkit/documents/TaskHasher) | +| `context.initiatingProject?` | `string` | +| `context.nxArgs` | `NxArgs` | +| `context.nxJson` | [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> | +| `context.projectGraph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | +| `context.target?` | `string` | +| `context.taskGraph?` | [`TaskGraph`](../../devkit/documents/TaskGraph) | + +#### Returns + +`any` diff --git a/docs/generated/devkit/detectPackageManager.md b/docs/generated/devkit/detectPackageManager.md new file mode 100644 index 0000000000000..8d58dc6ddb9fa --- /dev/null +++ b/docs/generated/devkit/detectPackageManager.md @@ -0,0 +1,15 @@ +# Function: detectPackageManager + +▸ **detectPackageManager**(`dir?`): [`PackageManager`](../../devkit/documents/PackageManager) + +Detects which package manager is used in the workspace based on the lock file. + +#### Parameters + +| Name | Type | Default value | +| :---- | :------- | :------------ | +| `dir` | `string` | `''` | + +#### Returns + +[`PackageManager`](../../devkit/documents/PackageManager) diff --git a/docs/generated/devkit/ensurePackage.md b/docs/generated/devkit/ensurePackage.md new file mode 100644 index 0000000000000..9a73af5bd9d2f --- /dev/null +++ b/docs/generated/devkit/ensurePackage.md @@ -0,0 +1,62 @@ +# Function: ensurePackage + +▸ **ensurePackage**(`tree`, `pkg`, `requiredVersion`, `options?`): `void` + +#### Parameters + +| Name | Type | Description | +| :------------------------ | :------------------------------------ | :----------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | +| `pkg` | `string` | the package to check (e.g. @nx/jest) | +| `requiredVersion` | `string` | the version or semver range to check (e.g. ~1.0.0, >=1.0.0 <2.0.0) | +| `options?` | `Object` | - | +| `options.dev?` | `boolean` | - | +| `options.throwOnMissing?` | `boolean` | - | + +#### Returns + +`void` + +**`Deprecated`** + +Use the other function signature without a Tree + +Use a package that has not been installed as a dependency. + +For example: + +```typescript +ensurePackage(tree, '@nx/jest', nxVersion); +``` + +This install the @nx/jest@ and return the module +When running with --dryRun, the function will throw when dependencies are missing. +Returns null for ESM dependencies. Import them with a dynamic import instead. + +▸ **ensurePackage**\<`T`\>(`pkg`, `version`): `T` + +Ensure that dependencies and devDependencies from package.json are installed at the required versions. +Returns null for ESM dependencies. Import them with a dynamic import instead. + +For example: + +```typescript +ensurePackage('@nx/jest', nxVersion); +``` + +#### Type parameters + +| Name | Type | +| :--- | :------------------------ | +| `T` | extends `unknown` = `any` | + +#### Parameters + +| Name | Type | Description | +| :-------- | :------- | :---------------------------------------------------------- | +| `pkg` | `string` | the package to install and require | +| `version` | `string` | the version to install if the package doesn't exist already | + +#### Returns + +`T` diff --git a/docs/generated/devkit/extractLayoutDirectory.md b/docs/generated/devkit/extractLayoutDirectory.md new file mode 100644 index 0000000000000..7b460e9934dc6 --- /dev/null +++ b/docs/generated/devkit/extractLayoutDirectory.md @@ -0,0 +1,20 @@ +# Function: extractLayoutDirectory + +▸ **extractLayoutDirectory**(`directory?`): `Object` + +Experimental + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `directory?` | `string` | + +#### Returns + +`Object` + +| Name | Type | +| :------------------ | :----------------- | +| `layoutDirectory` | `string` \| `null` | +| `projectDirectory?` | `string` | diff --git a/docs/generated/devkit/formatFiles.md b/docs/generated/devkit/formatFiles.md new file mode 100644 index 0000000000000..5f1b2c8db1ac3 --- /dev/null +++ b/docs/generated/devkit/formatFiles.md @@ -0,0 +1,15 @@ +# Function: formatFiles + +▸ **formatFiles**(`tree`): `Promise`\<`void`\> + +Formats all the created or updated files using Prettier + +#### Parameters + +| Name | Type | Description | +| :----- | :------------------------------------ | :------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/generated/devkit/generateFiles.md b/docs/generated/devkit/generateFiles.md new file mode 100644 index 0000000000000..9f6c31ec721bc --- /dev/null +++ b/docs/generated/devkit/generateFiles.md @@ -0,0 +1,38 @@ +# Function: generateFiles + +▸ **generateFiles**(`tree`, `srcFolder`, `target`, `substitutions`): `void` + +Generates a folder of files based on provided templates. + +While doing so it performs two substitutions: + +- Substitutes segments of file names surrounded by \_\_ +- Uses ejs to substitute values in templates + +Examples: + +```typescript +generateFiles(tree, path.join(__dirname, 'files'), './tools/scripts', { + tmpl: '', + name: 'myscript', +}); +``` + +This command will take all the files from the `files` directory next to the place where the command is invoked from. +It will replace all `__tmpl__` with '' and all `__name__` with 'myscript' in the file names, and will replace all +`<%= name %>` with `myscript` in the files themselves. +`tmpl: ''` is a common pattern. With it you can name files like this: `index.ts__tmpl__`, so your editor +doesn't get confused about incorrect TypeScript files. + +#### Parameters + +| Name | Type | Description | +| :-------------- | :------------------------------------ | :-------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | +| `srcFolder` | `string` | the source folder of files (absolute path) | +| `target` | `string` | the target folder (relative to the tree root) | +| `substitutions` | `Object` | an object of key-value pairs | + +#### Returns + +`void` diff --git a/docs/generated/devkit/getOutputsForTargetAndConfiguration.md b/docs/generated/devkit/getOutputsForTargetAndConfiguration.md new file mode 100644 index 0000000000000..61ff511c26fee --- /dev/null +++ b/docs/generated/devkit/getOutputsForTargetAndConfiguration.md @@ -0,0 +1,34 @@ +# Function: getOutputsForTargetAndConfiguration + +▸ **getOutputsForTargetAndConfiguration**(`task`, `node`): `string`[] + +#### Parameters + +| Name | Type | +| :----- | :-------------------------------------------------------------------------- | +| `task` | [`Task`](../../devkit/documents/Task) | +| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) | + +#### Returns + +`string`[] + +**`Deprecated`** + +Pass the target and overrides instead. This will be removed in v19. + +▸ **getOutputsForTargetAndConfiguration**(`target`, `overrides`, `node`): `string`[] + +Returns the list of outputs that will be cached. + +#### Parameters + +| Name | Type | +| :---------- | :------------------------------------------------------------------------------------------------------------------ | +| `target` | [`Task`](../../devkit/documents/Task) \| \{ `configuration?`: `string` ; `project`: `string` ; `target`: `string` } | +| `overrides` | `any` | +| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) | + +#### Returns + +`string`[] diff --git a/docs/generated/devkit/getPackageManagerCommand.md b/docs/generated/devkit/getPackageManagerCommand.md new file mode 100644 index 0000000000000..8db29b0c8002d --- /dev/null +++ b/docs/generated/devkit/getPackageManagerCommand.md @@ -0,0 +1,24 @@ +# Function: getPackageManagerCommand + +▸ **getPackageManagerCommand**(`packageManager?`, `root?`): `PackageManagerCommands` + +Returns commands for the package manager used in the workspace. +By default, the package manager is derived based on the lock file, +but it can also be passed in explicitly. + +Example: + +```javascript +execSync(`${getPackageManagerCommand().addDev} my-dev-package`); +``` + +#### Parameters + +| Name | Type | Default value | Description | +| :--------------- | :-------------------------------------------------------- | :-------------- | :------------------------------------------------------------------------------------------ | +| `packageManager` | [`PackageManager`](../../devkit/documents/PackageManager) | `undefined` | The package manager to use. If not provided, it will be detected based on the lock file. | +| `root` | `string` | `workspaceRoot` | The directory the commands will be ran inside of. Defaults to the current workspace's root. | + +#### Returns + +`PackageManagerCommands` diff --git a/docs/generated/devkit/getPackageManagerVersion.md b/docs/generated/devkit/getPackageManagerVersion.md new file mode 100644 index 0000000000000..94bb7d7dff108 --- /dev/null +++ b/docs/generated/devkit/getPackageManagerVersion.md @@ -0,0 +1,18 @@ +# Function: getPackageManagerVersion + +▸ **getPackageManagerVersion**(`packageManager?`, `cwd?`): `string` + +Returns the version of the package manager used in the workspace. +By default, the package manager is derived based on the lock file, +but it can also be passed in explicitly. + +#### Parameters + +| Name | Type | +| :--------------- | :-------------------------------------------------------- | +| `packageManager` | [`PackageManager`](../../devkit/documents/PackageManager) | +| `cwd` | `string` | + +#### Returns + +`string` diff --git a/docs/generated/devkit/getProjects.md b/docs/generated/devkit/getProjects.md new file mode 100644 index 0000000000000..8ffc682c9bfaa --- /dev/null +++ b/docs/generated/devkit/getProjects.md @@ -0,0 +1,17 @@ +# Function: getProjects + +▸ **getProjects**(`tree`): `Map`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> + +Get a map of all projects in a workspace. + +Use [readProjectConfiguration](../../devkit/documents/readProjectConfiguration) if only one project is needed. + +#### Parameters + +| Name | Type | +| :----- | :------------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | + +#### Returns + +`Map`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\> diff --git a/docs/generated/devkit/getWorkspaceLayout.md b/docs/generated/devkit/getWorkspaceLayout.md new file mode 100644 index 0000000000000..fbcfc611d92ac --- /dev/null +++ b/docs/generated/devkit/getWorkspaceLayout.md @@ -0,0 +1,28 @@ +# Function: getWorkspaceLayout + +▸ **getWorkspaceLayout**(`tree`): `Object` + +Returns workspace defaults. It includes defaults folders for apps and libs, +and the default scope. + +Example: + +```typescript +{ appsDir: 'apps', libsDir: 'libs' } +``` + +#### Parameters + +| Name | Type | Description | +| :----- | :------------------------------------ | :--------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | file system tree | + +#### Returns + +`Object` + +| Name | Type | +| :-------------------- | :-------- | +| `appsDir` | `string` | +| `libsDir` | `string` | +| `standaloneAsDefault` | `boolean` | diff --git a/docs/generated/devkit/glob.md b/docs/generated/devkit/glob.md new file mode 100644 index 0000000000000..08a29fcafbec7 --- /dev/null +++ b/docs/generated/devkit/glob.md @@ -0,0 +1,20 @@ +# Function: glob + +▸ **glob**(`tree`, `patterns`): `string`[] + +Performs a tree-aware glob search on the files in a workspace. Able to find newly +created files and hides deleted files before the updates are committed to disk. +Paths should be unix-style with forward slashes. + +#### Parameters + +| Name | Type | Description | +| :--------- | :------------------------------------ | :---------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | The file system tree | +| `patterns` | `string`[] | A list of glob patterns | + +#### Returns + +`string`[] + +Normalized paths in the workspace that match the provided glob patterns. diff --git a/docs/generated/devkit/hashArray.md b/docs/generated/devkit/hashArray.md new file mode 100644 index 0000000000000..c462cff3995c3 --- /dev/null +++ b/docs/generated/devkit/hashArray.md @@ -0,0 +1,13 @@ +# Function: hashArray + +▸ **hashArray**(`content`): `string` + +#### Parameters + +| Name | Type | +| :-------- | :--------- | +| `content` | `string`[] | + +#### Returns + +`string` diff --git a/docs/generated/devkit/installPackagesTask.md b/docs/generated/devkit/installPackagesTask.md new file mode 100644 index 0000000000000..ed9ebe9df70a3 --- /dev/null +++ b/docs/generated/devkit/installPackagesTask.md @@ -0,0 +1,19 @@ +# Function: installPackagesTask + +▸ **installPackagesTask**(`tree`, `alwaysRun?`, `cwd?`, `packageManager?`): `void` + +Runs `npm install` or `yarn install`. It will skip running the install if +`package.json` hasn't changed at all or it hasn't changed since the last invocation. + +#### Parameters + +| Name | Type | Description | +| :---------------- | :-------------------------------------------------------- | :------------------------------------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | +| `alwaysRun?` | `boolean` | always run the command even if `package.json` hasn't changed. | +| `cwd?` | `string` | - | +| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) | - | + +#### Returns + +`void` diff --git a/docs/generated/devkit/isWorkspacesEnabled.md b/docs/generated/devkit/isWorkspacesEnabled.md new file mode 100644 index 0000000000000..3223208dd1b0a --- /dev/null +++ b/docs/generated/devkit/isWorkspacesEnabled.md @@ -0,0 +1,16 @@ +# Function: isWorkspacesEnabled + +▸ **isWorkspacesEnabled**(`packageManager?`, `root?`): `boolean` + +Returns true if the workspace is using npm workspaces, yarn workspaces, or pnpm workspaces. + +#### Parameters + +| Name | Type | Default value | Description | +| :--------------- | :-------------------------------------------------------- | :-------------- | :------------------------------------------------------------------------------------------ | +| `packageManager` | [`PackageManager`](../../devkit/documents/PackageManager) | `undefined` | The package manager to use. If not provided, it will be detected based on the lock file. | +| `root` | `string` | `workspaceRoot` | The directory the commands will be ran inside of. Defaults to the current workspace's root. | + +#### Returns + +`boolean` diff --git a/docs/generated/devkit/joinPathFragments.md b/docs/generated/devkit/joinPathFragments.md new file mode 100644 index 0000000000000..2539946f8a0ec --- /dev/null +++ b/docs/generated/devkit/joinPathFragments.md @@ -0,0 +1,16 @@ +# Function: joinPathFragments + +▸ **joinPathFragments**(`...fragments`): `string` + +Normalized path fragments and joins them. Use this when writing paths to config files. +This should not be used to read files on disk because of the removal of Windows drive letters. + +#### Parameters + +| Name | Type | +| :------------- | :--------- | +| `...fragments` | `string`[] | + +#### Returns + +`string` diff --git a/docs/generated/devkit/logger.md b/docs/generated/devkit/logger.md new file mode 100644 index 0000000000000..6ef004c9e6645 --- /dev/null +++ b/docs/generated/devkit/logger.md @@ -0,0 +1,14 @@ +# Variable: logger + +• `Const` **logger**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :-------------------------- | +| `debug` | (...`s`: `any`[]) => `void` | +| `error` | (`s`: `any`) => `void` | +| `fatal` | (...`s`: `any`[]) => `void` | +| `info` | (`s`: `any`) => `void` | +| `log` | (...`s`: `any`[]) => `void` | +| `warn` | (`s`: `any`) => `void` | diff --git a/docs/generated/devkit/moveFilesToNewDirectory.md b/docs/generated/devkit/moveFilesToNewDirectory.md new file mode 100644 index 0000000000000..902ba382e13df --- /dev/null +++ b/docs/generated/devkit/moveFilesToNewDirectory.md @@ -0,0 +1,17 @@ +# Function: moveFilesToNewDirectory + +▸ **moveFilesToNewDirectory**(`tree`, `oldDir`, `newDir`): `void` + +Analogous to cp -r oldDir newDir + +#### Parameters + +| Name | Type | +| :------- | :------------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | +| `oldDir` | `string` | +| `newDir` | `string` | + +#### Returns + +`void` diff --git a/docs/generated/devkit/names.md b/docs/generated/devkit/names.md new file mode 100644 index 0000000000000..39785c3f91ba3 --- /dev/null +++ b/docs/generated/devkit/names.md @@ -0,0 +1,30 @@ +# Function: names + +▸ **names**(`name`): `Object` + +Util function to generate different strings based off the provided name. + +Examples: + +```typescript +names('my-name'); // {name: 'my-name', className: 'MyName', propertyName: 'myName', constantName: 'MY_NAME', fileName: 'my-name'} +names('myName'); // {name: 'myName', className: 'MyName', propertyName: 'myName', constantName: 'MY_NAME', fileName: 'my-name'} +``` + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `name` | `string` | + +#### Returns + +`Object` + +| Name | Type | +| :------------- | :------- | +| `className` | `string` | +| `constantName` | `string` | +| `fileName` | `string` | +| `name` | `string` | +| `propertyName` | `string` | diff --git a/docs/generated/devkit/ngcli_adapter/.nojekyll b/docs/generated/devkit/ngcli_adapter/.nojekyll new file mode 100644 index 0000000000000..e2ac6616addc2 --- /dev/null +++ b/docs/generated/devkit/ngcli_adapter/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/generated/devkit/ngcli_adapter/NxScopedHost.md b/docs/generated/devkit/ngcli_adapter/NxScopedHost.md new file mode 100644 index 0000000000000..bc27b32c25a09 --- /dev/null +++ b/docs/generated/devkit/ngcli_adapter/NxScopedHost.md @@ -0,0 +1,384 @@ +# Class: NxScopedHost + +## Hierarchy + +- `ScopedHost`\<`any`\> + + ↳ **`NxScopedHost`** + +## Table of contents + +### Constructors + +- [constructor](../../devkit/documents/ngcli_adapter/NxScopedHost#constructor) + +### Properties + +- [\_delegate](../../devkit/documents/ngcli_adapter/NxScopedHost#_delegate): Host +- [\_root](../../devkit/documents/ngcli_adapter/NxScopedHost#_root): Path +- [root](../../devkit/documents/ngcli_adapter/NxScopedHost#root): string + +### Accessors + +- [capabilities](../../devkit/documents/ngcli_adapter/NxScopedHost#capabilities) + +### Methods + +- [\_resolve](../../devkit/documents/ngcli_adapter/NxScopedHost#_resolve) +- [delete](../../devkit/documents/ngcli_adapter/NxScopedHost#delete) +- [exists](../../devkit/documents/ngcli_adapter/NxScopedHost#exists) +- [isDirectory](../../devkit/documents/ngcli_adapter/NxScopedHost#isdirectory) +- [isFile](../../devkit/documents/ngcli_adapter/NxScopedHost#isfile) +- [list](../../devkit/documents/ngcli_adapter/NxScopedHost#list) +- [mergeProjectConfiguration](../../devkit/documents/ngcli_adapter/NxScopedHost#mergeprojectconfiguration) +- [read](../../devkit/documents/ngcli_adapter/NxScopedHost#read) +- [readExistingAngularJson](../../devkit/documents/ngcli_adapter/NxScopedHost#readexistingangularjson) +- [readJson](../../devkit/documents/ngcli_adapter/NxScopedHost#readjson) +- [readMergedWorkspaceConfiguration](../../devkit/documents/ngcli_adapter/NxScopedHost#readmergedworkspaceconfiguration) +- [rename](../../devkit/documents/ngcli_adapter/NxScopedHost#rename) +- [stat](../../devkit/documents/ngcli_adapter/NxScopedHost#stat) +- [watch](../../devkit/documents/ngcli_adapter/NxScopedHost#watch) +- [write](../../devkit/documents/ngcli_adapter/NxScopedHost#write) + +## Constructors + +### constructor + +• **new NxScopedHost**(`root`): [`NxScopedHost`](../../devkit/documents/ngcli_adapter/NxScopedHost) + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `root` | `string` | + +#### Returns + +[`NxScopedHost`](../../devkit/documents/ngcli_adapter/NxScopedHost) + +#### Overrides + +virtualFs.ScopedHost\<any\>.constructor + +## Properties + +### \_delegate + +• `Protected` **\_delegate**: `Host`\<`any`\> + +#### Inherited from + +virtualFs.ScopedHost.\_delegate + +--- + +### \_root + +• `Protected` **\_root**: `Path` + +#### Inherited from + +virtualFs.ScopedHost.\_root + +--- + +### root + +• `Private` **root**: `string` + +## Accessors + +### capabilities + +• `get` **capabilities**(): `HostCapabilities` + +#### Returns + +`HostCapabilities` + +#### Inherited from + +virtualFs.ScopedHost.capabilities + +## Methods + +### \_resolve + +▸ **\_resolve**(`path`): `Path` + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Path` + +#### Inherited from + +virtualFs.ScopedHost.\_resolve + +--- + +### delete + +▸ **delete**(`path`): `Observable`\<`void`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`void`\> + +#### Inherited from + +virtualFs.ScopedHost.delete + +--- + +### exists + +▸ **exists**(`path`): `Observable`\<`boolean`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`boolean`\> + +#### Overrides + +virtualFs.ScopedHost.exists + +--- + +### isDirectory + +▸ **isDirectory**(`path`): `Observable`\<`boolean`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`boolean`\> + +#### Inherited from + +virtualFs.ScopedHost.isDirectory + +--- + +### isFile + +▸ **isFile**(`path`): `Observable`\<`boolean`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`boolean`\> + +#### Overrides + +virtualFs.ScopedHost.isFile + +--- + +### list + +▸ **list**(`path`): `Observable`\<`PathFragment`[]\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`PathFragment`[]\> + +#### Inherited from + +virtualFs.ScopedHost.list + +--- + +### mergeProjectConfiguration + +▸ **mergeProjectConfiguration**(`existing`, `updated`, `projectName`): `AngularProjectConfiguration` + +#### Parameters + +| Name | Type | +| :------------ | :---------------------------- | +| `existing` | `AngularProjectConfiguration` | +| `updated` | `AngularProjectConfiguration` | +| `projectName` | `string` | + +#### Returns + +`AngularProjectConfiguration` + +--- + +### read + +▸ **read**(`path`): `Observable`\<`ArrayBuffer`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`ArrayBuffer`\> + +#### Overrides + +virtualFs.ScopedHost.read + +--- + +### readExistingAngularJson + +▸ **readExistingAngularJson**(): `Observable`\<`any`\> + +#### Returns + +`Observable`\<`any`\> + +--- + +### readJson + +▸ **readJson**\<`T`\>(`path`): `Observable`\<`T`\> + +#### Type parameters + +| Name | Type | +| :--- | :---- | +| `T` | `any` | + +#### Parameters + +| Name | Type | +| :----- | :------- | +| `path` | `string` | + +#### Returns + +`Observable`\<`T`\> + +--- + +### readMergedWorkspaceConfiguration + +▸ **readMergedWorkspaceConfiguration**(): `Observable`\<`any`\> + +#### Returns + +`Observable`\<`any`\> + +--- + +### rename + +▸ **rename**(`from`, `to`): `Observable`\<`void`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `from` | `Path` | +| `to` | `Path` | + +#### Returns + +`Observable`\<`void`\> + +#### Inherited from + +virtualFs.ScopedHost.rename + +--- + +### stat + +▸ **stat**(`path`): `Observable`\<`any`\> + +#### Parameters + +| Name | Type | +| :----- | :----- | +| `path` | `Path` | + +#### Returns + +`Observable`\<`any`\> + +#### Inherited from + +virtualFs.ScopedHost.stat + +--- + +### watch + +▸ **watch**(`path`, `options?`): `Observable`\<`HostWatchEvent`\> + +#### Parameters + +| Name | Type | +| :--------- | :----------------- | +| `path` | `Path` | +| `options?` | `HostWatchOptions` | + +#### Returns + +`Observable`\<`HostWatchEvent`\> + +#### Inherited from + +virtualFs.ScopedHost.watch + +--- + +### write + +▸ **write**(`path`, `content`): `Observable`\<`void`\> + +#### Parameters + +| Name | Type | +| :-------- | :------------ | +| `path` | `Path` | +| `content` | `ArrayBuffer` | + +#### Returns + +`Observable`\<`void`\> + +#### Overrides + +virtualFs.ScopedHost.write diff --git a/docs/generated/devkit/ngcli_adapter/README.md b/docs/generated/devkit/ngcli_adapter/README.md new file mode 100644 index 0000000000000..9bfb21f93f376 --- /dev/null +++ b/docs/generated/devkit/ngcli_adapter/README.md @@ -0,0 +1,12 @@ +# @nx/devkit + +## Table of contents + +### Classes + +- [NxScopedHost](../../devkit/documents/ngcli_adapter/NxScopedHost) + +### Functions + +- [mockSchematicsForTesting](../../devkit/documents/ngcli_adapter/mockSchematicsForTesting) +- [wrapAngularDevkitSchematic](../../devkit/documents/ngcli_adapter/wrapAngularDevkitSchematic) diff --git a/docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md b/docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md new file mode 100644 index 0000000000000..c2450bf7320ca --- /dev/null +++ b/docs/generated/devkit/ngcli_adapter/mockSchematicsForTesting.md @@ -0,0 +1,31 @@ +# Function: mockSchematicsForTesting + +▸ **mockSchematicsForTesting**(`schematics`): `void` + +If you have an Nx Devkit generator invoking the wrapped Angular Devkit schematic, +and you don't want the Angular Devkit schematic to run, you can mock it up using this function. + +Unfortunately, there are some edge cases in the Nx-Angular devkit integration that +can be seen in the unit tests context. This function is useful for handling that as well. + +In this case, you can mock it up. + +Example: + +```typescript +mockSchematicsForTesting({ + 'mycollection:myschematic': (tree, params) => { + tree.write('README'); + }, +}); +``` + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `schematics` | `Object` | + +#### Returns + +`void` diff --git a/docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md b/docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md new file mode 100644 index 0000000000000..3b217e7b134fa --- /dev/null +++ b/docs/generated/devkit/ngcli_adapter/wrapAngularDevkitSchematic.md @@ -0,0 +1,27 @@ +# Function: wrapAngularDevkitSchematic + +▸ **wrapAngularDevkitSchematic**(`collectionName`, `generatorName`): (`host`: `Tree`, `generatorOptions`: \{ `[k: string]`: `any`; }) => `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :--------------- | :------- | +| `collectionName` | `string` | +| `generatorName` | `string` | + +#### Returns + +`fn` + +▸ (`host`, `generatorOptions`): `Promise`\<`any`\> + +##### Parameters + +| Name | Type | +| :----------------- | :------- | +| `host` | `Tree` | +| `generatorOptions` | `Object` | + +##### Returns + +`Promise`\<`any`\> diff --git a/docs/generated/devkit/normalizePath.md b/docs/generated/devkit/normalizePath.md new file mode 100644 index 0000000000000..ef08d17d4dc0a --- /dev/null +++ b/docs/generated/devkit/normalizePath.md @@ -0,0 +1,16 @@ +# Function: normalizePath + +▸ **normalizePath**(`osSpecificPath`): `string` + +Coverts an os specific path to a unix style path. Use this when writing paths to config files. +This should not be used to read files on disk because of the removal of Windows drive letters. + +#### Parameters + +| Name | Type | +| :--------------- | :------- | +| `osSpecificPath` | `string` | + +#### Returns + +`string` diff --git a/docs/generated/devkit/offsetFromRoot.md b/docs/generated/devkit/offsetFromRoot.md new file mode 100644 index 0000000000000..5acd660495058 --- /dev/null +++ b/docs/generated/devkit/offsetFromRoot.md @@ -0,0 +1,22 @@ +# Function: offsetFromRoot + +▸ **offsetFromRoot**(`fullPathToDir`): `string` + +Calculates an offset from the root of the workspace, which is useful for +constructing relative URLs. + +Examples: + +```typescript +offsetFromRoot('apps/mydir/myapp/'); // returns "../../../" +``` + +#### Parameters + +| Name | Type | Description | +| :-------------- | :------- | :------------- | +| `fullPathToDir` | `string` | directory path | + +#### Returns + +`string` diff --git a/docs/generated/devkit/output.md b/docs/generated/devkit/output.md new file mode 100644 index 0000000000000..b92a2e23f5e11 --- /dev/null +++ b/docs/generated/devkit/output.md @@ -0,0 +1,3 @@ +# Variable: output + +• `Const` **output**: `CLIOutput` diff --git a/docs/generated/devkit/parseJson.md b/docs/generated/devkit/parseJson.md new file mode 100644 index 0000000000000..21d18eda3f13a --- /dev/null +++ b/docs/generated/devkit/parseJson.md @@ -0,0 +1,25 @@ +# Function: parseJson + +▸ **parseJson**\<`T`\>(`input`, `options?`): `T` + +Parses the given JSON string and returns the object the JSON content represents. +By default javascript-style comments and trailing commas are allowed. + +#### Type parameters + +| Name | Type | +| :--- | :----------------------- | +| `T` | extends `object` = `any` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :------------------------------------------------------------ | :--------------------- | +| `input` | `string` | JSON content as string | +| `options?` | [`JsonParseOptions`](../../devkit/documents/JsonParseOptions) | JSON parse options | + +#### Returns + +`T` + +Object the JSON content represents diff --git a/docs/generated/devkit/parseTargetString.md b/docs/generated/devkit/parseTargetString.md new file mode 100644 index 0000000000000..aaf04f01fab72 --- /dev/null +++ b/docs/generated/devkit/parseTargetString.md @@ -0,0 +1,61 @@ +# Function: parseTargetString + +▸ **parseTargetString**(`targetString`): [`Target`](../../devkit/documents/Target) + +@deprecated(v17) A project graph should be passed to parseTargetString for best accuracy. + +#### Parameters + +| Name | Type | +| :------------- | :------- | +| `targetString` | `string` | + +#### Returns + +[`Target`](../../devkit/documents/Target) + +▸ **parseTargetString**(`targetString`, `projectGraph`): [`Target`](../../devkit/documents/Target) + +Parses a target string into {project, target, configuration} + +Examples: + +```typescript +parseTargetString('proj:test', graph); // returns { project: "proj", target: "test" } +parseTargetString('proj:test:production', graph); // returns { project: "proj", target: "test", configuration: "production" } +``` + +#### Parameters + +| Name | Type | Description | +| :------------- | :---------------------------------------------------- | :--------------- | +| `targetString` | `string` | target reference | +| `projectGraph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | - | + +#### Returns + +[`Target`](../../devkit/documents/Target) + +▸ **parseTargetString**(`targetString`, `ctx`): [`Target`](../../devkit/documents/Target) + +Parses a target string into {project, target, configuration}. Passing a full +[ExecutorContext](../../devkit/documents/ExecutorContext) enables the targetString to reference the current project. + +Examples: + +```typescript +parseTargetString('test', executorContext); // returns { project: "proj", target: "test" } +parseTargetString('proj:test', executorContext); // returns { project: "proj", target: "test" } +parseTargetString('proj:test:production', executorContext); // returns { project: "proj", target: "test", configuration: "production" } +``` + +#### Parameters + +| Name | Type | +| :------------- | :---------------------------------------------------------- | +| `targetString` | `string` | +| `ctx` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | + +#### Returns + +[`Target`](../../devkit/documents/Target) diff --git a/docs/generated/devkit/readCachedProjectGraph.md b/docs/generated/devkit/readCachedProjectGraph.md new file mode 100644 index 0000000000000..be49a12990d77 --- /dev/null +++ b/docs/generated/devkit/readCachedProjectGraph.md @@ -0,0 +1,13 @@ +# Function: readCachedProjectGraph + +▸ **readCachedProjectGraph**(): [`ProjectGraph`](../../devkit/documents/ProjectGraph) + +Synchronously reads the latest cached copy of the workspace's ProjectGraph. + +#### Returns + +[`ProjectGraph`](../../devkit/documents/ProjectGraph) + +**`Throws`** + +if there is no cached ProjectGraph to read from diff --git a/docs/generated/devkit/readJson.md b/docs/generated/devkit/readJson.md new file mode 100644 index 0000000000000..4931812e9c917 --- /dev/null +++ b/docs/generated/devkit/readJson.md @@ -0,0 +1,23 @@ +# Function: readJson + +▸ **readJson**\<`T`\>(`tree`, `path`, `options?`): `T` + +Reads a json file, removes all comments and parses JSON. + +#### Type parameters + +| Name | Type | +| :--- | :----------------------- | +| `T` | extends `object` = `any` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :------------------------------------------------------------ | :-------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | file system tree | +| `path` | `string` | file path | +| `options?` | [`JsonParseOptions`](../../devkit/documents/JsonParseOptions) | Optional JSON Parse Options | + +#### Returns + +`T` diff --git a/docs/generated/devkit/readJsonFile.md b/docs/generated/devkit/readJsonFile.md new file mode 100644 index 0000000000000..ba6fdd20ce12b --- /dev/null +++ b/docs/generated/devkit/readJsonFile.md @@ -0,0 +1,24 @@ +# Function: readJsonFile + +▸ **readJsonFile**\<`T`\>(`path`, `options?`): `T` + +Reads a JSON file and returns the object the JSON content represents. + +#### Type parameters + +| Name | Type | +| :--- | :----------------------- | +| `T` | extends `object` = `any` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :---------------- | :----------------- | +| `path` | `string` | A path to a file. | +| `options?` | `JsonReadOptions` | JSON parse options | + +#### Returns + +`T` + +Object the JSON content of the file represents diff --git a/docs/generated/devkit/readNxJson.md b/docs/generated/devkit/readNxJson.md new file mode 100644 index 0000000000000..1426bc6e536da --- /dev/null +++ b/docs/generated/devkit/readNxJson.md @@ -0,0 +1,25 @@ +# Function: readNxJson + +▸ **readNxJson**(): [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` + +#### Returns + +[`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` + +**`Deprecated`** + +You must pass a [Tree](../../devkit/documents/Tree) + +▸ **readNxJson**(`tree`): [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` + +Reads nx.json + +#### Parameters + +| Name | Type | +| :----- | :------------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | + +#### Returns + +[`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration) \| `null` diff --git a/docs/generated/devkit/readProjectConfiguration.md b/docs/generated/devkit/readProjectConfiguration.md new file mode 100644 index 0000000000000..0190e370f29d7 --- /dev/null +++ b/docs/generated/devkit/readProjectConfiguration.md @@ -0,0 +1,20 @@ +# Function: readProjectConfiguration + +▸ **readProjectConfiguration**(`tree`, `projectName`): [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) + +Reads a project configuration. + +#### Parameters + +| Name | Type | Description | +| :------------ | :------------------------------------ | :---------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | +| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) | + +#### Returns + +[`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) + +**`Throws`** + +If supplied projectName cannot be found diff --git a/docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md b/docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md new file mode 100644 index 0000000000000..d30aa67146b69 --- /dev/null +++ b/docs/generated/devkit/readProjectsConfigurationFromProjectGraph.md @@ -0,0 +1,15 @@ +# Function: readProjectsConfigurationFromProjectGraph + +▸ **readProjectsConfigurationFromProjectGraph**(`projectGraph`): [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) + +Get the [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations) from the [ProjectGraph](../../devkit/documents/ProjectGraph) + +#### Parameters + +| Name | Type | +| :------------- | :---------------------------------------------------- | +| `projectGraph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | + +#### Returns + +[`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) diff --git a/docs/generated/devkit/readTargetOptions.md b/docs/generated/devkit/readTargetOptions.md new file mode 100644 index 0000000000000..b79af8fa49c37 --- /dev/null +++ b/docs/generated/devkit/readTargetOptions.md @@ -0,0 +1,24 @@ +# Function: readTargetOptions + +▸ **readTargetOptions**\<`T`\>(`«destructured»`, `context`): `T` + +Reads and combines options for a given target. + +Works as if you invoked the target yourself without passing any command lint overrides. + +#### Type parameters + +| Name | Type | +| :--- | :---- | +| `T` | `any` | + +#### Parameters + +| Name | Type | +| :--------------- | :---------------------------------------------------------- | +| `«destructured»` | [`Target`](../../devkit/documents/Target) | +| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | + +#### Returns + +`T` diff --git a/docs/generated/devkit/removeDependenciesFromPackageJson.md b/docs/generated/devkit/removeDependenciesFromPackageJson.md new file mode 100644 index 0000000000000..6fe6b0a308498 --- /dev/null +++ b/docs/generated/devkit/removeDependenciesFromPackageJson.md @@ -0,0 +1,28 @@ +# Function: removeDependenciesFromPackageJson + +▸ **removeDependenciesFromPackageJson**(`tree`, `dependencies`, `devDependencies`, `packageJsonPath?`): [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) + +Remove Dependencies and Dev Dependencies from package.json + +For example: + +```typescript +removeDependenciesFromPackageJson(tree, ['react'], ['jest']); +``` + +This will **remove** `react` and `jest` from the dependencies and devDependencies sections of package.json respectively. + +#### Parameters + +| Name | Type | Description | +| :----------------- | :------------------------------------ | :-------------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | - | +| `dependencies` | `string`[] | Dependencies to be removed from the dependencies section of package.json | +| `devDependencies` | `string`[] | Dependencies to be removed from the devDependencies section of package.json | +| `packageJsonPath?` | `string` | - | + +#### Returns + +[`GeneratorCallback`](../../devkit/documents/GeneratorCallback) + +Callback to uninstall dependencies only if necessary. undefined is returned if changes are not necessary. diff --git a/docs/generated/devkit/removeProjectConfiguration.md b/docs/generated/devkit/removeProjectConfiguration.md new file mode 100644 index 0000000000000..2536dcef2ec88 --- /dev/null +++ b/docs/generated/devkit/removeProjectConfiguration.md @@ -0,0 +1,16 @@ +# Function: removeProjectConfiguration + +▸ **removeProjectConfiguration**(`tree`, `projectName`): `void` + +Removes the configuration of an existing project. + +#### Parameters + +| Name | Type | Description | +| :------------ | :------------------------------------ | :---------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | +| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) | + +#### Returns + +`void` diff --git a/docs/generated/devkit/reverse.md b/docs/generated/devkit/reverse.md new file mode 100644 index 0000000000000..5f79f2d94e09b --- /dev/null +++ b/docs/generated/devkit/reverse.md @@ -0,0 +1,18 @@ +# Function: reverse + +▸ **reverse**(`graph`): [`ProjectGraph`](../../devkit/documents/ProjectGraph) + +Returns a new project graph where all the edges are reversed. + +For instance, if project A depends on B, in the reversed graph +B will depend on A. + +#### Parameters + +| Name | Type | +| :------ | :---------------------------------------------------- | +| `graph` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) | + +#### Returns + +[`ProjectGraph`](../../devkit/documents/ProjectGraph) diff --git a/docs/generated/devkit/runExecutor.md b/docs/generated/devkit/runExecutor.md new file mode 100644 index 0000000000000..83e3dcd2e9860 --- /dev/null +++ b/docs/generated/devkit/runExecutor.md @@ -0,0 +1,49 @@ +# Function: runExecutor + +▸ **runExecutor**\<`T`\>(`targetDescription`, `overrides`, `context`): `Promise`\<`AsyncIterableIterator`\<`T`\>\> + +Loads and invokes executor. + +This is analogous to invoking executor from the terminal, with the exception +that the params aren't parsed from the string, but instead provided parsed already. + +Apart from that, it works the same way: + +- it will load the workspace configuration +- it will resolve the target +- it will load the executor and the schema +- it will load the options for the appropriate configuration +- it will run the validations and will set the default +- and, of course, it will invoke the executor + +Example: + +```typescript +for await (const s of await runExecutor( + { project: 'myproj', target: 'serve' }, + { watch: true }, + context +)) { + // s.success +} +``` + +Note that the return value is a promise of an iterator, so you need to await before iterating over it. + +#### Type parameters + +| Name | Type | +| :--- | :--------------- | +| `T` | extends `Object` | + +#### Parameters + +| Name | Type | +| :------------------ | :---------------------------------------------------------- | +| `targetDescription` | [`Target`](../../devkit/documents/Target) | +| `overrides` | `Object` | +| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) | + +#### Returns + +`Promise`\<`AsyncIterableIterator`\<`T`\>\> diff --git a/docs/generated/devkit/runTasksInSerial.md b/docs/generated/devkit/runTasksInSerial.md new file mode 100644 index 0000000000000..f0864f014c5d0 --- /dev/null +++ b/docs/generated/devkit/runTasksInSerial.md @@ -0,0 +1,15 @@ +# Function: runTasksInSerial + +▸ **runTasksInSerial**(`...tasks`): [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) + +Run tasks in serial + +#### Parameters + +| Name | Type | Description | +| :--------- | :---------------------------------------------------------------- | :-------------------------- | +| `...tasks` | [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)[] | The tasks to run in serial. | + +#### Returns + +[`GeneratorCallback`](../../devkit/documents/GeneratorCallback) diff --git a/docs/generated/devkit/serializeJson.md b/docs/generated/devkit/serializeJson.md new file mode 100644 index 0000000000000..a88b5b21f66aa --- /dev/null +++ b/docs/generated/devkit/serializeJson.md @@ -0,0 +1,25 @@ +# Function: serializeJson + +▸ **serializeJson**\<`T`\>(`input`, `options?`): `string` + +Serializes the given data to a JSON string. +By default the JSON string is formatted with a 2 space indentation to be easy readable. + +#### Type parameters + +| Name | Type | +| :--- | :-------------------------- | +| `T` | extends `object` = `object` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :-------------------------------------------------------------------- | :---------------------------------------- | +| `input` | `T` | Object which should be serialized to JSON | +| `options?` | [`JsonSerializeOptions`](../../devkit/documents/JsonSerializeOptions) | JSON serialize options | + +#### Returns + +`string` + +the formatted JSON representation of the object diff --git a/docs/generated/devkit/stripIndents.md b/docs/generated/devkit/stripIndents.md new file mode 100644 index 0000000000000..8fc719dffc11d --- /dev/null +++ b/docs/generated/devkit/stripIndents.md @@ -0,0 +1,26 @@ +# Function: stripIndents + +▸ **stripIndents**(`strings`, `...values`): `string` + +Removes indents, which is useful for printing warning and messages. + +Example: + +```typescript +stripIndents` + Options: + - option1 + - option2 +`; +``` + +#### Parameters + +| Name | Type | +| :---------- | :--------------------- | +| `strings` | `TemplateStringsArray` | +| `...values` | `any`[] | + +#### Returns + +`string` diff --git a/docs/generated/devkit/stripJsonComments.md b/docs/generated/devkit/stripJsonComments.md new file mode 100644 index 0000000000000..584b3f6eb6e32 --- /dev/null +++ b/docs/generated/devkit/stripJsonComments.md @@ -0,0 +1,18 @@ +# Function: stripJsonComments + +▸ **stripJsonComments**(`text`, `replaceCh?`): `string` + +Takes JSON with JavaScript-style comments and remove +them. Optionally replaces every none-newline character +of comments with a replaceCharacter + +#### Parameters + +| Name | Type | +| :----------- | :------- | +| `text` | `string` | +| `replaceCh?` | `string` | + +#### Returns + +`string` diff --git a/docs/generated/devkit/targetToTargetString.md b/docs/generated/devkit/targetToTargetString.md new file mode 100644 index 0000000000000..917f84e3ef86e --- /dev/null +++ b/docs/generated/devkit/targetToTargetString.md @@ -0,0 +1,15 @@ +# Function: targetToTargetString + +▸ **targetToTargetString**(`target`): `string` + +Returns a string in the format "project:target[:configuration]" for the target + +#### Parameters + +| Name | Type | Description | +| :------- | :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `target` | [`Target`](../../devkit/documents/Target) | target object Examples: `typescript targetToTargetString({ project: "proj", target: "test" }) // returns "proj:test" targetToTargetString({ project: "proj", target: "test", configuration: "production" }) // returns "proj:test:production" ` | + +#### Returns + +`string` diff --git a/docs/generated/devkit/toJS.md b/docs/generated/devkit/toJS.md new file mode 100644 index 0000000000000..46fae2143a326 --- /dev/null +++ b/docs/generated/devkit/toJS.md @@ -0,0 +1,16 @@ +# Function: toJS + +▸ **toJS**(`tree`, `options?`): `void` + +Rename and transpile any new typescript files created to javascript files + +#### Parameters + +| Name | Type | +| :--------- | :-------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | +| `options?` | [`ToJSOptions`](../../devkit/documents/ToJSOptions) | + +#### Returns + +`void` diff --git a/docs/generated/devkit/updateJson.md b/docs/generated/devkit/updateJson.md new file mode 100644 index 0000000000000..45017333fd946 --- /dev/null +++ b/docs/generated/devkit/updateJson.md @@ -0,0 +1,25 @@ +# Function: updateJson + +▸ **updateJson**\<`T`, `U`\>(`tree`, `path`, `updater`, `options?`): `void` + +Updates a JSON value to the file system tree + +#### Type parameters + +| Name | Type | +| :--- | :----------------------- | +| `T` | extends `object` = `any` | +| `U` | extends `object` = `T` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | File system tree | +| `path` | `string` | Path of JSON file in the Tree | +| `updater` | (`value`: `T`) => `U` | Function that maps the current value of a JSON document to a new value to be written to the document | +| `options?` | [`JsonParseOptions`](../../devkit/documents/JsonParseOptions) & [`JsonSerializeOptions`](../../devkit/documents/JsonSerializeOptions) | Optional JSON Parse and Serialize Options | + +#### Returns + +`void` diff --git a/docs/generated/devkit/updateNxJson.md b/docs/generated/devkit/updateNxJson.md new file mode 100644 index 0000000000000..5170e4d32cbfd --- /dev/null +++ b/docs/generated/devkit/updateNxJson.md @@ -0,0 +1,16 @@ +# Function: updateNxJson + +▸ **updateNxJson**(`tree`, `nxJson`): `void` + +Update nx.json + +#### Parameters + +| Name | Type | +| :------- | :----------------------------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | +| `nxJson` | [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\> | + +#### Returns + +`void` diff --git a/docs/generated/devkit/updateProjectConfiguration.md b/docs/generated/devkit/updateProjectConfiguration.md new file mode 100644 index 0000000000000..7c799ded8e756 --- /dev/null +++ b/docs/generated/devkit/updateProjectConfiguration.md @@ -0,0 +1,17 @@ +# Function: updateProjectConfiguration + +▸ **updateProjectConfiguration**(`tree`, `projectName`, `projectConfiguration`): `void` + +Updates the configuration of an existing project. + +#### Parameters + +| Name | Type | Description | +| :--------------------- | :-------------------------------------------------------------------- | :---------------------------------------------------------------------- | +| `tree` | [`Tree`](../../devkit/documents/Tree) | the file system tree | +| `projectName` | `string` | unique name. Often directories are part of the name (e.g., mydir-mylib) | +| `projectConfiguration` | [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) | project configuration | + +#### Returns + +`void` diff --git a/docs/generated/devkit/updateTsConfigsToJs.md b/docs/generated/devkit/updateTsConfigsToJs.md new file mode 100644 index 0000000000000..1d3a2d6f6d440 --- /dev/null +++ b/docs/generated/devkit/updateTsConfigsToJs.md @@ -0,0 +1,15 @@ +# Function: updateTsConfigsToJs + +▸ **updateTsConfigsToJs**(`tree`, `options`): `void` + +#### Parameters + +| Name | Type | +| :-------------------- | :------------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | +| `options` | `Object` | +| `options.projectRoot` | `string` | + +#### Returns + +`void` diff --git a/docs/generated/devkit/validateDependency.md b/docs/generated/devkit/validateDependency.md new file mode 100644 index 0000000000000..70719603fc8f6 --- /dev/null +++ b/docs/generated/devkit/validateDependency.md @@ -0,0 +1,20 @@ +# Function: validateDependency + +▸ **validateDependency**(`dependency`, `ctx`): `void` + +A function to validate dependencies in a [CreateDependencies](../../devkit/documents/CreateDependencies) function + +#### Parameters + +| Name | Type | +| :----------- | :------------------------------------------------------------------------------ | +| `dependency` | [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency) | +| `ctx` | [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext) | + +#### Returns + +`void` + +**`Throws`** + +If the dependency is invalid. diff --git a/docs/generated/devkit/visitNotIgnoredFiles.md b/docs/generated/devkit/visitNotIgnoredFiles.md new file mode 100644 index 0000000000000..59daf7b5577de --- /dev/null +++ b/docs/generated/devkit/visitNotIgnoredFiles.md @@ -0,0 +1,17 @@ +# Function: visitNotIgnoredFiles + +▸ **visitNotIgnoredFiles**(`tree`, `dirPath`, `visitor`): `void` + +Utility to act on all files in a tree that are not ignored by git. + +#### Parameters + +| Name | Type | +| :-------- | :------------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | +| `dirPath` | `string` | +| `visitor` | (`path`: `string`) => `void` | + +#### Returns + +`void` diff --git a/docs/generated/devkit/workspaceLayout.md b/docs/generated/devkit/workspaceLayout.md new file mode 100644 index 0000000000000..6ebebabb415db --- /dev/null +++ b/docs/generated/devkit/workspaceLayout.md @@ -0,0 +1,14 @@ +# Function: workspaceLayout + +▸ **workspaceLayout**(): `Object` + +Returns information about where apps and libs will be created. + +#### Returns + +`Object` + +| Name | Type | +| :-------- | :------- | +| `appsDir` | `string` | +| `libsDir` | `string` | diff --git a/docs/generated/devkit/workspaceRoot.md b/docs/generated/devkit/workspaceRoot.md new file mode 100644 index 0000000000000..803f702737682 --- /dev/null +++ b/docs/generated/devkit/workspaceRoot.md @@ -0,0 +1,5 @@ +# Variable: workspaceRoot + +• **workspaceRoot**: `string` + +The root of the workspace diff --git a/docs/generated/devkit/writeJson.md b/docs/generated/devkit/writeJson.md new file mode 100644 index 0000000000000..be993ba2f3efc --- /dev/null +++ b/docs/generated/devkit/writeJson.md @@ -0,0 +1,24 @@ +# Function: writeJson + +▸ **writeJson**\<`T`\>(`tree`, `path`, `value`, `options?`): `void` + +Writes a JSON value to the file system tree + +#### Type parameters + +| Name | Type | +| :--- | :-------------------------- | +| `T` | extends `object` = `object` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :-------------------------------------------------------------------- | :------------------------------ | +| `tree` | [`Tree`](../../devkit/documents/Tree) | File system tree | +| `path` | `string` | Path of JSON file in the Tree | +| `value` | `T` | Serializable value to write | +| `options?` | [`JsonSerializeOptions`](../../devkit/documents/JsonSerializeOptions) | Optional JSON Serialize Options | + +#### Returns + +`void` diff --git a/docs/generated/devkit/writeJsonFile.md b/docs/generated/devkit/writeJsonFile.md new file mode 100644 index 0000000000000..9354e3fe14279 --- /dev/null +++ b/docs/generated/devkit/writeJsonFile.md @@ -0,0 +1,23 @@ +# Function: writeJsonFile + +▸ **writeJsonFile**\<`T`\>(`path`, `data`, `options?`): `void` + +Serializes the given data to JSON and writes it to a file. + +#### Type parameters + +| Name | Type | +| :--- | :-------------------------- | +| `T` | extends `object` = `object` | + +#### Parameters + +| Name | Type | Description | +| :--------- | :----------------- | :-------------------------------------------------------------- | +| `path` | `string` | A path to a file. | +| `data` | `T` | data which should be serialized to JSON and written to the file | +| `options?` | `JsonWriteOptions` | JSON serialize options | + +#### Returns + +`void` diff --git a/docs/generated/manifests/ci.json b/docs/generated/manifests/ci.json new file mode 100644 index 0000000000000..d515786c10a96 --- /dev/null +++ b/docs/generated/manifests/ci.json @@ -0,0 +1,1908 @@ +{ + "/ci/intro": { + "id": "intro", + "name": "Intro", + "description": "Learn about basic Nx Cloud knowledge.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "ci-with-nx", + "name": "CI with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/intro/ci-with-nx", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/ci-with-nx", + "tags": [] + }, + { + "id": "tutorials", + "name": "Tutorials", + "description": "Tutorials setting up CI with Nx", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "circle", + "name": "Circle CI with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/tutorial/circle", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/tutorials/circle", + "tags": [] + }, + { + "id": "github-actions", + "name": "GitHub Actions with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/tutorial/github-actions", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/tutorials/github-actions", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/intro/tutorials", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/intro", + "tags": [] + }, + "/ci/intro/ci-with-nx": { + "id": "ci-with-nx", + "name": "CI with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/intro/ci-with-nx", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/ci-with-nx", + "tags": [] + }, + "/ci/intro/tutorials": { + "id": "tutorials", + "name": "Tutorials", + "description": "Tutorials setting up CI with Nx", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "circle", + "name": "Circle CI with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/tutorial/circle", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/tutorials/circle", + "tags": [] + }, + { + "id": "github-actions", + "name": "GitHub Actions with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/tutorial/github-actions", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/tutorials/github-actions", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/intro/tutorials", + "tags": [] + }, + "/ci/intro/tutorials/circle": { + "id": "circle", + "name": "Circle CI with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/tutorial/circle", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/tutorials/circle", + "tags": [] + }, + "/ci/intro/tutorials/github-actions": { + "id": "github-actions", + "name": "GitHub Actions with Nx", + "description": "", + "mediaImage": "", + "file": "nx-cloud/tutorial/github-actions", + "itemList": [], + "isExternal": false, + "path": "/ci/intro/tutorials/github-actions", + "tags": [] + }, + "/ci/features": { + "id": "features", + "name": "Features", + "description": "Features of Nx and Nx Cloud that improve CI", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "mediaImage": "", + "file": "shared/using-nx/affected", + "itemList": [], + "isExternal": false, + "path": "/ci/features/affected", + "tags": ["run-tasks"] + }, + { + "id": "remote-cache", + "name": "Use Remote Caching (Nx Replay)", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "mediaImage": "", + "file": "shared/features/remote-cache", + "itemList": [], + "isExternal": false, + "path": "/ci/features/remote-cache", + "tags": ["remote-cache"] + }, + { + "id": "distribute-task-execution", + "name": "Distribute Task Execution (Nx Agents)", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", + "mediaImage": "", + "file": "shared/features/distribute-task-execution", + "itemList": [], + "isExternal": false, + "path": "/ci/features/distribute-task-execution", + "tags": [] + }, + { + "id": "dynamic-agents", + "name": "Dynamically Allocate Agents", + "description": "", + "mediaImage": "", + "file": "nx-cloud/features/dynamic-agents", + "itemList": [], + "isExternal": false, + "path": "/ci/features/dynamic-agents", + "tags": [] + }, + { + "id": "split-e2e-tasks", + "name": "Automatically Split E2E Tasks (TestAtomizer)", + "description": "", + "mediaImage": "", + "file": "nx-cloud/features/split-e2e-tasks", + "itemList": [], + "isExternal": false, + "path": "/ci/features/split-e2e-tasks", + "tags": [] + }, + { + "id": "flaky-tasks", + "name": "Identify and Re-run Flaky Tasks", + "description": "", + "mediaImage": "", + "file": "nx-cloud/features/flaky-tasks", + "itemList": [], + "isExternal": false, + "path": "/ci/features/flaky-tasks", + "tags": [] + }, + { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "mediaImage": "", + "file": "nx-cloud/features/nx-enterprise-on-prem", + "itemList": [], + "isExternal": false, + "path": "/ci/features/on-premise", + "tags": ["on-premise"] + } + ], + "isExternal": false, + "path": "/ci/features", + "tags": [] + }, + "/ci/features/affected": { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "mediaImage": "", + "file": "shared/using-nx/affected", + "itemList": [], + "isExternal": false, + "path": "/ci/features/affected", + "tags": ["run-tasks"] + }, + "/ci/features/remote-cache": { + "id": "remote-cache", + "name": "Use Remote Caching (Nx Replay)", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "mediaImage": "", + "file": "shared/features/remote-cache", + "itemList": [], + "isExternal": false, + "path": "/ci/features/remote-cache", + "tags": ["remote-cache"] + }, + "/ci/features/distribute-task-execution": { + "id": "distribute-task-execution", + "name": "Distribute Task Execution (Nx Agents)", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", + "mediaImage": "", + "file": "shared/features/distribute-task-execution", + "itemList": [], + "isExternal": false, + "path": "/ci/features/distribute-task-execution", + "tags": [] + }, + "/ci/features/dynamic-agents": { + "id": "dynamic-agents", + "name": "Dynamically Allocate Agents", + "description": "", + "mediaImage": "", + "file": "nx-cloud/features/dynamic-agents", + "itemList": [], + "isExternal": false, + "path": "/ci/features/dynamic-agents", + "tags": [] + }, + "/ci/features/split-e2e-tasks": { + "id": "split-e2e-tasks", + "name": "Automatically Split E2E Tasks (TestAtomizer)", + "description": "", + "mediaImage": "", + "file": "nx-cloud/features/split-e2e-tasks", + "itemList": [], + "isExternal": false, + "path": "/ci/features/split-e2e-tasks", + "tags": [] + }, + "/ci/features/flaky-tasks": { + "id": "flaky-tasks", + "name": "Identify and Re-run Flaky Tasks", + "description": "", + "mediaImage": "", + "file": "nx-cloud/features/flaky-tasks", + "itemList": [], + "isExternal": false, + "path": "/ci/features/flaky-tasks", + "tags": [] + }, + "/ci/features/on-premise": { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "mediaImage": "", + "file": "nx-cloud/features/nx-enterprise-on-prem", + "itemList": [], + "isExternal": false, + "path": "/ci/features/on-premise", + "tags": ["on-premise"] + }, + "/ci/concepts": { + "id": "concepts", + "name": "Concepts", + "description": "Learn how to manage Nx Cloud subscriptions and other options.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "building-blocks-fast-ci", + "name": "The Building Blocks of Fast CI", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/building-blocks-fast-ci", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/building-blocks-fast-ci", + "tags": [] + }, + { + "id": "reduce-waste", + "name": "Reduce Wasted Time in CI", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/reduce-waste", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/reduce-waste", + "tags": [] + }, + { + "id": "parallelization-distribution", + "name": "Parallelization and Distribution", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/parallelization-distribution", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/parallelization-distribution", + "tags": ["distribute-task-execution"] + }, + { + "id": "cache-security", + "name": "Cache Security", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/cache-security", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/cache-security", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/concepts", + "tags": [] + }, + "/ci/concepts/building-blocks-fast-ci": { + "id": "building-blocks-fast-ci", + "name": "The Building Blocks of Fast CI", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/building-blocks-fast-ci", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/building-blocks-fast-ci", + "tags": [] + }, + "/ci/concepts/reduce-waste": { + "id": "reduce-waste", + "name": "Reduce Wasted Time in CI", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/reduce-waste", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/reduce-waste", + "tags": [] + }, + "/ci/concepts/parallelization-distribution": { + "id": "parallelization-distribution", + "name": "Parallelization and Distribution", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/parallelization-distribution", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/parallelization-distribution", + "tags": ["distribute-task-execution"] + }, + "/ci/concepts/cache-security": { + "id": "cache-security", + "name": "Cache Security", + "description": "", + "mediaImage": "", + "file": "nx-cloud/concepts/cache-security", + "itemList": [], + "isExternal": false, + "path": "/ci/concepts/cache-security", + "tags": [] + }, + "/ci/recipes": { + "id": "recipes", + "name": "Recipes", + "description": "Learn how to set up Nx Cloud for your workspace.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "set-up", + "name": "Set Up CI", + "description": "Learn how to set up Nx Cloud for your workspace.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "connect-to-cloud", + "name": "Connect Nx Cloud", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/connect-to-cloud", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/connect-to-cloud", + "tags": [] + }, + { + "id": "monorepo-ci-azure", + "name": "Setting up Azure Pipelines", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-azure", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-azure", + "tags": [] + }, + { + "id": "monorepo-ci-circle-ci", + "name": "Setting up CircleCI", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-circle-ci", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", + "tags": [] + }, + { + "id": "monorepo-ci-github-actions", + "name": "Setting up GitHub Actions", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-github-actions", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-github-actions", + "tags": [] + }, + { + "id": "monorepo-ci-jenkins", + "name": "Setting up Jenkins", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-jenkins", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-jenkins", + "tags": [] + }, + { + "id": "monorepo-ci-gitlab", + "name": "Setting up GitLab", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-gitlab", + "tags": [] + }, + { + "id": "monorepo-ci-bitbucket-pipelines", + "name": "Setting up Bitbucket", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-bitbucket-pipelines", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/set-up", + "tags": ["distribute-task-execution"] + }, + { + "id": "security", + "name": "Security", + "description": "Manage access to Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "google-auth", + "name": "Authenticate with Google Identity", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/google-auth", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/google-auth", + "tags": [] + }, + { + "id": "access-tokens", + "name": "Access Tokens", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/access-tokens", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/access-tokens", + "tags": [] + }, + { + "id": "encryption", + "name": "Enable End to End Encryption", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/encryption", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/encryption", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/security", + "tags": [] + }, + { + "id": "source-control-integration", + "name": "Source Control Integration", + "description": "Show Nx Cloud results directly in your pull request", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "github", + "name": "Enable GitHub PR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/github", + "tags": [] + }, + { + "id": "bitbucket-cloud", + "name": "Enable Bitbucket Cloud PR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/bitbucket-cloud", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/bitbucket-cloud", + "tags": [] + }, + { + "id": "gitlab", + "name": "Enable GitLab MR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/gitlab", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/source-control-integration", + "tags": [] + }, + { + "id": "enterprise", + "name": "Enterprise", + "description": "Recipes for enterprise accounts", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "on-premise", + "name": "On-Premise", + "description": "Manage an on-premise installation of Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "tags": [] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "tags": [] + }, + { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "tags": [] + }, + { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "tags": [] + }, + { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise", + "tags": [] + }, + { + "id": "dte", + "name": "Custom Distributed Task Execution", + "description": "Custom DTE on your own CI provider", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "github-dte", + "name": "GitHub Actions Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/github-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/github-dte", + "tags": [] + }, + { + "id": "circle-ci-dte", + "name": "Circle CI Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/circle-ci-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "tags": [] + }, + { + "id": "azure-dte", + "name": "Azure Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/azure-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/azure-dte", + "tags": [] + }, + { + "id": "bitbucket-dte", + "name": "Bitbucket Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/bitbucket-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "tags": [] + }, + { + "id": "gitlab-dte", + "name": "GitLab Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/gitlab-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "tags": [] + }, + { + "id": "jenkins-dte", + "name": "Jenkins Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/jenkins-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise", + "tags": [] + }, + { + "id": "troubleshooting", + "name": "Troubleshooting", + "description": "Learn how to solve common issues in Nx Cloud.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "ci-execution-failed", + "name": "CI Execution Failed", + "description": "", + "mediaImage": "", + "file": "nx-cloud/troubleshooting/ci-execution-failed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/troubleshooting/ci-execution-failed", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/troubleshooting", + "tags": [] + }, + { + "id": "other", + "name": "Other", + "description": "Learn how to set up Nx Cloud for your workspace.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "record-commands", + "name": "Record Non-Nx Commands", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/record-commands", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/other/record-commands", + "tags": [] + }, + { + "id": "ci-deployment", + "name": "Prepare applications for deployment via CI", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ci-deployment", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/other/ci-deployment", + "tags": ["docker", "deploy"] + } + ], + "isExternal": false, + "path": "/ci/recipes/other", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes", + "tags": [] + }, + "/ci/recipes/set-up": { + "id": "set-up", + "name": "Set Up CI", + "description": "Learn how to set up Nx Cloud for your workspace.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "connect-to-cloud", + "name": "Connect Nx Cloud", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/connect-to-cloud", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/connect-to-cloud", + "tags": [] + }, + { + "id": "monorepo-ci-azure", + "name": "Setting up Azure Pipelines", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-azure", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-azure", + "tags": [] + }, + { + "id": "monorepo-ci-circle-ci", + "name": "Setting up CircleCI", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-circle-ci", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", + "tags": [] + }, + { + "id": "monorepo-ci-github-actions", + "name": "Setting up GitHub Actions", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-github-actions", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-github-actions", + "tags": [] + }, + { + "id": "monorepo-ci-jenkins", + "name": "Setting up Jenkins", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-jenkins", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-jenkins", + "tags": [] + }, + { + "id": "monorepo-ci-gitlab", + "name": "Setting up GitLab", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-gitlab", + "tags": [] + }, + { + "id": "monorepo-ci-bitbucket-pipelines", + "name": "Setting up Bitbucket", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-bitbucket-pipelines", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/set-up", + "tags": ["distribute-task-execution"] + }, + "/ci/recipes/set-up/connect-to-cloud": { + "id": "connect-to-cloud", + "name": "Connect Nx Cloud", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/connect-to-cloud", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/connect-to-cloud", + "tags": [] + }, + "/ci/recipes/set-up/monorepo-ci-azure": { + "id": "monorepo-ci-azure", + "name": "Setting up Azure Pipelines", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-azure", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-azure", + "tags": [] + }, + "/ci/recipes/set-up/monorepo-ci-circle-ci": { + "id": "monorepo-ci-circle-ci", + "name": "Setting up CircleCI", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-circle-ci", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", + "tags": [] + }, + "/ci/recipes/set-up/monorepo-ci-github-actions": { + "id": "monorepo-ci-github-actions", + "name": "Setting up GitHub Actions", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-github-actions", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-github-actions", + "tags": [] + }, + "/ci/recipes/set-up/monorepo-ci-jenkins": { + "id": "monorepo-ci-jenkins", + "name": "Setting up Jenkins", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-jenkins", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-jenkins", + "tags": [] + }, + "/ci/recipes/set-up/monorepo-ci-gitlab": { + "id": "monorepo-ci-gitlab", + "name": "Setting up GitLab", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-gitlab", + "tags": [] + }, + "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines": { + "id": "monorepo-ci-bitbucket-pipelines", + "name": "Setting up Bitbucket", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-ci-bitbucket-pipelines", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", + "tags": [] + }, + "/ci/recipes/security": { + "id": "security", + "name": "Security", + "description": "Manage access to Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "google-auth", + "name": "Authenticate with Google Identity", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/google-auth", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/google-auth", + "tags": [] + }, + { + "id": "access-tokens", + "name": "Access Tokens", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/access-tokens", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/access-tokens", + "tags": [] + }, + { + "id": "encryption", + "name": "Enable End to End Encryption", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/encryption", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/encryption", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/security", + "tags": [] + }, + "/ci/recipes/security/google-auth": { + "id": "google-auth", + "name": "Authenticate with Google Identity", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/google-auth", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/google-auth", + "tags": [] + }, + "/ci/recipes/security/access-tokens": { + "id": "access-tokens", + "name": "Access Tokens", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/access-tokens", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/access-tokens", + "tags": [] + }, + "/ci/recipes/security/encryption": { + "id": "encryption", + "name": "Enable End to End Encryption", + "description": "", + "mediaImage": "", + "file": "nx-cloud/recipes/encryption", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/security/encryption", + "tags": [] + }, + "/ci/recipes/source-control-integration": { + "id": "source-control-integration", + "name": "Source Control Integration", + "description": "Show Nx Cloud results directly in your pull request", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "github", + "name": "Enable GitHub PR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/github", + "tags": [] + }, + { + "id": "bitbucket-cloud", + "name": "Enable Bitbucket Cloud PR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/bitbucket-cloud", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/bitbucket-cloud", + "tags": [] + }, + { + "id": "gitlab", + "name": "Enable GitLab MR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/gitlab", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/source-control-integration", + "tags": [] + }, + "/ci/recipes/source-control-integration/github": { + "id": "github", + "name": "Enable GitHub PR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/github", + "tags": [] + }, + "/ci/recipes/source-control-integration/bitbucket-cloud": { + "id": "bitbucket-cloud", + "name": "Enable Bitbucket Cloud PR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/bitbucket-cloud", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/bitbucket-cloud", + "tags": [] + }, + "/ci/recipes/source-control-integration/gitlab": { + "id": "gitlab", + "name": "Enable GitLab MR Integration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/source-control-integration/gitlab", + "tags": [] + }, + "/ci/recipes/enterprise": { + "id": "enterprise", + "name": "Enterprise", + "description": "Recipes for enterprise accounts", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "on-premise", + "name": "On-Premise", + "description": "Manage an on-premise installation of Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "tags": [] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "tags": [] + }, + { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "tags": [] + }, + { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "tags": [] + }, + { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise", + "tags": [] + }, + { + "id": "dte", + "name": "Custom Distributed Task Execution", + "description": "Custom DTE on your own CI provider", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "github-dte", + "name": "GitHub Actions Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/github-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/github-dte", + "tags": [] + }, + { + "id": "circle-ci-dte", + "name": "Circle CI Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/circle-ci-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "tags": [] + }, + { + "id": "azure-dte", + "name": "Azure Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/azure-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/azure-dte", + "tags": [] + }, + { + "id": "bitbucket-dte", + "name": "Bitbucket Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/bitbucket-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "tags": [] + }, + { + "id": "gitlab-dte", + "name": "GitLab Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/gitlab-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "tags": [] + }, + { + "id": "jenkins-dte", + "name": "Jenkins Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/jenkins-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise": { + "id": "on-premise", + "name": "On-Premise", + "description": "Manage an on-premise installation of Nx Cloud", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "tags": [] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "tags": [] + }, + { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "tags": [] + }, + { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "tags": [] + }, + { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/auth-single-admin": { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/auth-github": { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-github", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/ami-setup": { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/auth-gitlab": { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/auth-bitbucket": { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/auth-saml": { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/auth-saml-managed": { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "tags": [] + }, + "/ci/recipes/enterprise/on-premise/advanced-config": { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/on-premise/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "tags": [] + }, + "/ci/recipes/enterprise/dte": { + "id": "dte", + "name": "Custom Distributed Task Execution", + "description": "Custom DTE on your own CI provider", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "github-dte", + "name": "GitHub Actions Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/github-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/github-dte", + "tags": [] + }, + { + "id": "circle-ci-dte", + "name": "Circle CI Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/circle-ci-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "tags": [] + }, + { + "id": "azure-dte", + "name": "Azure Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/azure-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/azure-dte", + "tags": [] + }, + { + "id": "bitbucket-dte", + "name": "Bitbucket Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/bitbucket-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "tags": [] + }, + { + "id": "gitlab-dte", + "name": "GitLab Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/gitlab-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "tags": [] + }, + { + "id": "jenkins-dte", + "name": "Jenkins Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/jenkins-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte", + "tags": [] + }, + "/ci/recipes/enterprise/dte/github-dte": { + "id": "github-dte", + "name": "GitHub Actions Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/github-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/github-dte", + "tags": [] + }, + "/ci/recipes/enterprise/dte/circle-ci-dte": { + "id": "circle-ci-dte", + "name": "Circle CI Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/circle-ci-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "tags": [] + }, + "/ci/recipes/enterprise/dte/azure-dte": { + "id": "azure-dte", + "name": "Azure Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/azure-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/azure-dte", + "tags": [] + }, + "/ci/recipes/enterprise/dte/bitbucket-dte": { + "id": "bitbucket-dte", + "name": "Bitbucket Pipelines Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/bitbucket-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "tags": [] + }, + "/ci/recipes/enterprise/dte/gitlab-dte": { + "id": "gitlab-dte", + "name": "GitLab Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/gitlab-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "tags": [] + }, + "/ci/recipes/enterprise/dte/jenkins-dte": { + "id": "jenkins-dte", + "name": "Jenkins Custom DTE", + "description": "", + "mediaImage": "", + "file": "nx-cloud/enterprise/dte/jenkins-dte", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "tags": [] + }, + "/ci/recipes/troubleshooting": { + "id": "troubleshooting", + "name": "Troubleshooting", + "description": "Learn how to solve common issues in Nx Cloud.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "ci-execution-failed", + "name": "CI Execution Failed", + "description": "", + "mediaImage": "", + "file": "nx-cloud/troubleshooting/ci-execution-failed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/troubleshooting/ci-execution-failed", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/recipes/troubleshooting", + "tags": [] + }, + "/ci/recipes/troubleshooting/ci-execution-failed": { + "id": "ci-execution-failed", + "name": "CI Execution Failed", + "description": "", + "mediaImage": "", + "file": "nx-cloud/troubleshooting/ci-execution-failed", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/troubleshooting/ci-execution-failed", + "tags": [] + }, + "/ci/recipes/other": { + "id": "other", + "name": "Other", + "description": "Learn how to set up Nx Cloud for your workspace.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "record-commands", + "name": "Record Non-Nx Commands", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/record-commands", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/other/record-commands", + "tags": [] + }, + { + "id": "ci-deployment", + "name": "Prepare applications for deployment via CI", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ci-deployment", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/other/ci-deployment", + "tags": ["docker", "deploy"] + } + ], + "isExternal": false, + "path": "/ci/recipes/other", + "tags": [] + }, + "/ci/recipes/other/record-commands": { + "id": "record-commands", + "name": "Record Non-Nx Commands", + "description": "", + "mediaImage": "", + "file": "nx-cloud/set-up/record-commands", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/other/record-commands", + "tags": [] + }, + "/ci/recipes/other/ci-deployment": { + "id": "ci-deployment", + "name": "Prepare applications for deployment via CI", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ci-deployment", + "itemList": [], + "isExternal": false, + "path": "/ci/recipes/other/ci-deployment", + "tags": ["docker", "deploy"] + }, + "/ci/reference": { + "id": "reference", + "name": "Reference", + "description": "Understand how to use Nx Cloud, what arguments and options are available for each component.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "config", + "name": "Configuration Options", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/config", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/config", + "tags": [] + }, + { + "id": "nx-cloud-cli", + "name": "nx-cloud CLI", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/nx-cloud-cli", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/nx-cloud-cli", + "tags": [] + }, + { + "id": "launch-templates", + "name": "Launch Templates", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/launch-templates", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/launch-templates", + "tags": [] + }, + { + "id": "env-vars", + "name": "Environment Variables", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/env-vars", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/env-vars", + "tags": [] + }, + { + "id": "server-api", + "name": "Server API Reference", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/server-api", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/server-api", + "tags": [] + }, + { + "id": "release-notes", + "name": "Release Notes", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/release-notes", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/release-notes", + "tags": [] + } + ], + "isExternal": false, + "path": "/ci/reference", + "tags": [] + }, + "/ci/reference/config": { + "id": "config", + "name": "Configuration Options", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/config", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/config", + "tags": [] + }, + "/ci/reference/nx-cloud-cli": { + "id": "nx-cloud-cli", + "name": "nx-cloud CLI", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/nx-cloud-cli", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/nx-cloud-cli", + "tags": [] + }, + "/ci/reference/launch-templates": { + "id": "launch-templates", + "name": "Launch Templates", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/launch-templates", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/launch-templates", + "tags": [] + }, + "/ci/reference/env-vars": { + "id": "env-vars", + "name": "Environment Variables", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/env-vars", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/env-vars", + "tags": [] + }, + "/ci/reference/server-api": { + "id": "server-api", + "name": "Server API Reference", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/server-api", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/server-api", + "tags": [] + }, + "/ci/reference/release-notes": { + "id": "release-notes", + "name": "Release Notes", + "description": "", + "mediaImage": "", + "file": "nx-cloud/reference/release-notes", + "itemList": [], + "isExternal": false, + "path": "/ci/reference/release-notes", + "tags": [] + } +} diff --git a/docs/generated/manifests/extending-nx.json b/docs/generated/manifests/extending-nx.json new file mode 100644 index 0000000000000..675a2b0c1e28f --- /dev/null +++ b/docs/generated/manifests/extending-nx.json @@ -0,0 +1,346 @@ +{ + "/extending-nx/intro": { + "id": "intro", + "name": "Intro", + "description": "Learn about plugins.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "getting-started", + "name": "Getting Started with Plugins", + "description": "Learn how to extend Nx by creating and releasing your own Nx plugin.", + "mediaImage": "", + "file": "shared/plugins/intro", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/intro/getting-started", + "tags": [] + } + ], + "isExternal": false, + "path": "/extending-nx/intro", + "tags": [] + }, + "/extending-nx/intro/getting-started": { + "id": "getting-started", + "name": "Getting Started with Plugins", + "description": "Learn how to extend Nx by creating and releasing your own Nx plugin.", + "mediaImage": "", + "file": "shared/plugins/intro", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/intro/getting-started", + "tags": [] + }, + "/extending-nx/tutorials": { + "id": "tutorials", + "name": "5 Min Tutorials", + "description": "Get started with plugins", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "create-plugin", + "name": "Create a Local Plugin", + "description": "", + "mediaImage": "", + "file": "shared/plugins/create-plugin", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/tutorials/create-plugin", + "tags": [] + }, + { + "id": "publish-plugin", + "name": "Maintain a Published Plugin", + "description": "", + "mediaImage": "", + "file": "shared/plugins/maintain-published-plugin", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/tutorials/publish-plugin", + "tags": [] + } + ], + "isExternal": false, + "path": "/extending-nx/tutorials", + "tags": [] + }, + "/extending-nx/tutorials/create-plugin": { + "id": "create-plugin", + "name": "Create a Local Plugin", + "description": "", + "mediaImage": "", + "file": "shared/plugins/create-plugin", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/tutorials/create-plugin", + "tags": [] + }, + "/extending-nx/tutorials/publish-plugin": { + "id": "publish-plugin", + "name": "Maintain a Published Plugin", + "description": "", + "mediaImage": "", + "file": "shared/plugins/maintain-published-plugin", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/tutorials/publish-plugin", + "tags": [] + }, + "/extending-nx/recipes": { + "id": "recipes", + "name": "Recipes", + "description": "Focused instructions to complete a specific task", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "local-executors", + "name": "Write a Simple Executor", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/local-executors", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/local-executors", + "tags": [] + }, + { + "id": "compose-executors", + "name": "Compose Executors", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/compose-executors", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/compose-executors", + "tags": [] + }, + { + "id": "local-generators", + "name": "Write a Simple Generator", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/local-generators", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/local-generators", + "tags": ["generate-code"] + }, + { + "id": "composing-generators", + "name": "Compose Generators", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/composing-generators", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/composing-generators", + "tags": ["generate-code"] + }, + { + "id": "generator-options", + "name": "Provide Options for Generators", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/generator-options", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/generator-options", + "tags": ["generate-code"] + }, + { + "id": "creating-files", + "name": "Create Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/creating-files", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/creating-files", + "tags": ["generate-code"] + }, + { + "id": "modifying-files", + "name": "Modify Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/modifying-files", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/modifying-files", + "tags": ["generate-code"] + }, + { + "id": "migration-generators", + "name": "Write a Migration", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/migration-generators", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/migration-generators", + "tags": ["create-your-own-plugin"] + }, + { + "id": "create-preset", + "name": "Create a Preset", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/create-preset", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/create-preset", + "tags": ["create-your-own-plugin"] + }, + { + "id": "create-install-package", + "name": "Create an Install Package", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/create-install-package", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/create-install-package", + "tags": ["create-your-own-plugin"] + }, + { + "id": "project-graph-plugins", + "name": "Modify the Project Graph", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/project-graph-plugins", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/project-graph-plugins", + "tags": ["create-your-own-plugin", "explore-graph"] + } + ], + "isExternal": false, + "path": "/extending-nx/recipes", + "tags": [] + }, + "/extending-nx/recipes/local-executors": { + "id": "local-executors", + "name": "Write a Simple Executor", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/local-executors", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/local-executors", + "tags": [] + }, + "/extending-nx/recipes/compose-executors": { + "id": "compose-executors", + "name": "Compose Executors", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/compose-executors", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/compose-executors", + "tags": [] + }, + "/extending-nx/recipes/local-generators": { + "id": "local-generators", + "name": "Write a Simple Generator", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/local-generators", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/local-generators", + "tags": ["generate-code"] + }, + "/extending-nx/recipes/composing-generators": { + "id": "composing-generators", + "name": "Compose Generators", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/composing-generators", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/composing-generators", + "tags": ["generate-code"] + }, + "/extending-nx/recipes/generator-options": { + "id": "generator-options", + "name": "Provide Options for Generators", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/generator-options", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/generator-options", + "tags": ["generate-code"] + }, + "/extending-nx/recipes/creating-files": { + "id": "creating-files", + "name": "Create Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/creating-files", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/creating-files", + "tags": ["generate-code"] + }, + "/extending-nx/recipes/modifying-files": { + "id": "modifying-files", + "name": "Modify Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/generators/modifying-files", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/modifying-files", + "tags": ["generate-code"] + }, + "/extending-nx/recipes/migration-generators": { + "id": "migration-generators", + "name": "Write a Migration", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/migration-generators", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/migration-generators", + "tags": ["create-your-own-plugin"] + }, + "/extending-nx/recipes/create-preset": { + "id": "create-preset", + "name": "Create a Preset", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/create-preset", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/create-preset", + "tags": ["create-your-own-plugin"] + }, + "/extending-nx/recipes/create-install-package": { + "id": "create-install-package", + "name": "Create an Install Package", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/create-install-package", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/create-install-package", + "tags": ["create-your-own-plugin"] + }, + "/extending-nx/recipes/project-graph-plugins": { + "id": "project-graph-plugins", + "name": "Modify the Project Graph", + "description": "", + "mediaImage": "", + "file": "shared/recipes/plugins/project-graph-plugins", + "itemList": [], + "isExternal": false, + "path": "/extending-nx/recipes/project-graph-plugins", + "tags": ["create-your-own-plugin", "explore-graph"] + } +} diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json new file mode 100644 index 0000000000000..d432a9bf44a63 --- /dev/null +++ b/docs/generated/manifests/menus.json @@ -0,0 +1,10384 @@ +[ + { + "id": "nx", + "menu": [ + { + "name": "Getting Started", + "path": "/getting-started", + "id": "getting-started", + "isExternal": false, + "children": [ + { + "name": "Intro to Nx", + "path": "/getting-started/intro", + "id": "intro", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Installation", + "path": "/getting-started/installation", + "id": "installation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Why Nx?", + "path": "/getting-started/why-nx", + "id": "why-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tutorials", + "path": "/getting-started/tutorials", + "id": "tutorials", + "isExternal": false, + "children": [ + { + "name": "NPM Workspaces Monorepo", + "path": "/getting-started/tutorials/npm-workspaces-tutorial", + "id": "npm-workspaces-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrated Monorepo", + "path": "/getting-started/tutorials/integrated-repo-tutorial", + "id": "integrated-repo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Standalone", + "path": "/getting-started/tutorials/react-standalone-tutorial", + "id": "react-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Monorepo", + "path": "/getting-started/tutorials/react-monorepo-tutorial", + "id": "react-monorepo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Standalone", + "path": "/getting-started/tutorials/angular-standalone-tutorial", + "id": "angular-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Monorepo", + "path": "/getting-started/tutorials/angular-monorepo-tutorial", + "id": "angular-monorepo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Vue Standalone", + "path": "/getting-started/tutorials/vue-standalone-tutorial", + "id": "vue-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Intro to Nx", + "path": "/getting-started/intro", + "id": "intro", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Installation", + "path": "/getting-started/installation", + "id": "installation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Why Nx?", + "path": "/getting-started/why-nx", + "id": "why-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tutorials", + "path": "/getting-started/tutorials", + "id": "tutorials", + "isExternal": false, + "children": [ + { + "name": "NPM Workspaces Monorepo", + "path": "/getting-started/tutorials/npm-workspaces-tutorial", + "id": "npm-workspaces-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrated Monorepo", + "path": "/getting-started/tutorials/integrated-repo-tutorial", + "id": "integrated-repo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Standalone", + "path": "/getting-started/tutorials/react-standalone-tutorial", + "id": "react-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Monorepo", + "path": "/getting-started/tutorials/react-monorepo-tutorial", + "id": "react-monorepo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Standalone", + "path": "/getting-started/tutorials/angular-standalone-tutorial", + "id": "angular-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Monorepo", + "path": "/getting-started/tutorials/angular-monorepo-tutorial", + "id": "angular-monorepo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Vue Standalone", + "path": "/getting-started/tutorials/vue-standalone-tutorial", + "id": "vue-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "NPM Workspaces Monorepo", + "path": "/getting-started/tutorials/npm-workspaces-tutorial", + "id": "npm-workspaces-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrated Monorepo", + "path": "/getting-started/tutorials/integrated-repo-tutorial", + "id": "integrated-repo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Standalone", + "path": "/getting-started/tutorials/react-standalone-tutorial", + "id": "react-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Monorepo", + "path": "/getting-started/tutorials/react-monorepo-tutorial", + "id": "react-monorepo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Standalone", + "path": "/getting-started/tutorials/angular-standalone-tutorial", + "id": "angular-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Monorepo", + "path": "/getting-started/tutorials/angular-monorepo-tutorial", + "id": "angular-monorepo-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Vue Standalone", + "path": "/getting-started/tutorials/vue-standalone-tutorial", + "id": "vue-standalone-tutorial", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Core Tutorial", + "path": "/core-tutorial", + "id": "core-tutorial", + "isExternal": false, + "children": [ + { + "name": "1 - Create Blog", + "path": "/core-tutorial/01-create-blog", + "id": "01-create-blog", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "2 - Create CLI", + "path": "/core-tutorial/02-create-cli", + "id": "02-create-cli", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "3 - Share Assets", + "path": "/core-tutorial/03-share-assets", + "id": "03-share-assets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "4 - Build Affected Projects", + "path": "/core-tutorial/04-build-affected-projects", + "id": "04-build-affected-projects", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "5 - Automatically Detect Dependencies", + "path": "/core-tutorial/05-auto-detect-dependencies", + "id": "05-auto-detect-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "6 - Summary", + "path": "/core-tutorial/06-summary", + "id": "06-summary", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "1 - Create Blog", + "path": "/core-tutorial/01-create-blog", + "id": "01-create-blog", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "2 - Create CLI", + "path": "/core-tutorial/02-create-cli", + "id": "02-create-cli", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "3 - Share Assets", + "path": "/core-tutorial/03-share-assets", + "id": "03-share-assets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "4 - Build Affected Projects", + "path": "/core-tutorial/04-build-affected-projects", + "id": "04-build-affected-projects", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "5 - Automatically Detect Dependencies", + "path": "/core-tutorial/05-auto-detect-dependencies", + "id": "05-auto-detect-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "6 - Summary", + "path": "/core-tutorial/06-summary", + "id": "06-summary", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Features", + "path": "/features", + "id": "features", + "isExternal": false, + "children": [ + { + "name": "Run Tasks", + "path": "/features/run-tasks", + "id": "run-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cache Task Results", + "path": "/features/cache-task-results", + "id": "cache-task-results", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Explore your Workspace", + "path": "/features/explore-graph", + "id": "explore-graph", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Generate Code", + "path": "/features/generate-code", + "id": "generate-code", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automate Updating Dependencies", + "path": "/features/automate-updating-dependencies", + "id": "automate-updating-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enforce Module Boundaries", + "path": "/features/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrate with Editors", + "path": "/features/integrate-with-editors", + "id": "integrate-with-editors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manage Releases", + "path": "/features/manage-releases", + "id": "manage-releases", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "CI Features", + "path": "/features/ci-features", + "id": "ci-features", + "isExternal": false, + "children": [ + { + "name": "Run Only Tasks Affected by a PR", + "path": "/ci/features/affected", + "id": "affected", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Remote Caching (Nx Replay)", + "path": "/ci/features/remote-cache", + "id": "remote-cache", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution (Nx Agents)", + "path": "/ci/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dynamically Allocate Agents", + "path": "/ci/features/dynamic-agents", + "id": "dynamic-agents", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Split E2E Tasks", + "path": "/ci/features/split-e2e-tasks", + "id": "split-e2e-tasks", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify and Re-run Flaky Tasks", + "path": "/ci/features/flaky-tasks", + "id": "flaky-tasks", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/ci/features/on-premise", + "id": "on-premise", + "isExternal": true, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Run Tasks", + "path": "/features/run-tasks", + "id": "run-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cache Task Results", + "path": "/features/cache-task-results", + "id": "cache-task-results", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Explore your Workspace", + "path": "/features/explore-graph", + "id": "explore-graph", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Generate Code", + "path": "/features/generate-code", + "id": "generate-code", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automate Updating Dependencies", + "path": "/features/automate-updating-dependencies", + "id": "automate-updating-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enforce Module Boundaries", + "path": "/features/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrate with Editors", + "path": "/features/integrate-with-editors", + "id": "integrate-with-editors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manage Releases", + "path": "/features/manage-releases", + "id": "manage-releases", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "CI Features", + "path": "/features/ci-features", + "id": "ci-features", + "isExternal": false, + "children": [ + { + "name": "Run Only Tasks Affected by a PR", + "path": "/ci/features/affected", + "id": "affected", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Remote Caching (Nx Replay)", + "path": "/ci/features/remote-cache", + "id": "remote-cache", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution (Nx Agents)", + "path": "/ci/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dynamically Allocate Agents", + "path": "/ci/features/dynamic-agents", + "id": "dynamic-agents", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Split E2E Tasks", + "path": "/ci/features/split-e2e-tasks", + "id": "split-e2e-tasks", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify and Re-run Flaky Tasks", + "path": "/ci/features/flaky-tasks", + "id": "flaky-tasks", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/ci/features/on-premise", + "id": "on-premise", + "isExternal": true, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Run Only Tasks Affected by a PR", + "path": "/ci/features/affected", + "id": "affected", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Remote Caching (Nx Replay)", + "path": "/ci/features/remote-cache", + "id": "remote-cache", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution (Nx Agents)", + "path": "/ci/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dynamically Allocate Agents", + "path": "/ci/features/dynamic-agents", + "id": "dynamic-agents", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Split E2E Tasks", + "path": "/ci/features/split-e2e-tasks", + "id": "split-e2e-tasks", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify and Re-run Flaky Tasks", + "path": "/ci/features/flaky-tasks", + "id": "flaky-tasks", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/ci/features/on-premise", + "id": "on-premise", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Concepts", + "path": "/concepts", + "id": "concepts", + "isExternal": false, + "children": [ + { + "name": "Mental Model", + "path": "/concepts/mental-model", + "id": "mental-model", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How Caching Works", + "path": "/concepts/how-caching-works", + "id": "how-caching-works", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "What is a Task Pipeline", + "path": "/concepts/task-pipeline-configuration", + "id": "task-pipeline-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "What Are Nx Plugins", + "path": "/concepts/nx-plugins", + "id": "nx-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Inferred Tasks", + "path": "/concepts/inferred-tasks", + "id": "inferred-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Types of Configuration", + "path": "/concepts/types-of-configuration", + "id": "types-of-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Executors and Configurations", + "path": "/concepts/executors-and-configurations", + "id": "executors-and-configurations", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "path": "/concepts/integrated-vs-package-based", + "id": "integrated-vs-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Module Federation", + "path": "/concepts/module-federation", + "id": "module-federation", + "isExternal": false, + "children": [ + { + "name": "Module Federation and Nx", + "path": "/concepts/module-federation/module-federation-and-nx", + "id": "module-federation-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Faster Builds with Module Federation", + "path": "/concepts/module-federation/faster-builds-with-module-federation", + "id": "faster-builds-with-module-federation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Micro Frontend Architecture", + "path": "/concepts/module-federation/micro-frontend-architecture", + "id": "micro-frontend-architecture", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manage Library Versions with Module Federation", + "path": "/concepts/module-federation/manage-library-versions-with-module-federation", + "id": "manage-library-versions-with-module-federation", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "More Concepts", + "path": "/concepts/more-concepts", + "id": "more-concepts", + "isExternal": false, + "children": [ + { + "name": "Incremental Builds", + "path": "/concepts/more-concepts/incremental-builds", + "id": "incremental-builds", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and Turborepo", + "path": "/concepts/more-concepts/turbo-and-nx", + "id": "turbo-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Monorepos", + "path": "/concepts/more-concepts/why-monorepos", + "id": "why-monorepos", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dependency Management", + "path": "/concepts/more-concepts/dependency-management", + "id": "dependency-management", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Code Sharing", + "path": "/concepts/more-concepts/code-sharing", + "id": "code-sharing", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Nx at Enterprises", + "path": "/concepts/more-concepts/monorepo-nx-enterprise", + "id": "monorepo-nx-enterprise", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Daemon", + "path": "/concepts/more-concepts/nx-daemon", + "id": "nx-daemon", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and the Angular CLI", + "path": "/concepts/more-concepts/nx-and-angular", + "id": "nx-and-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Folder Structure", + "path": "/concepts/more-concepts/folder-structure", + "id": "folder-structure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Devkit and Angular Devkit", + "path": "/concepts/more-concepts/nx-devkit-angular-devkit", + "id": "nx-devkit-angular-devkit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Applications and Libraries", + "path": "/concepts/more-concepts/applications-and-libraries", + "id": "applications-and-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Creating Libraries", + "path": "/concepts/more-concepts/creating-libraries", + "id": "creating-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Library Types", + "path": "/concepts/more-concepts/library-types", + "id": "library-types", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Grouping Libraries", + "path": "/concepts/more-concepts/grouping-libraries", + "id": "grouping-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Buildable and Publishable Libraries", + "path": "/concepts/more-concepts/buildable-and-publishable-libraries", + "id": "buildable-and-publishable-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How the Project Graph is Built", + "path": "/concepts/more-concepts/how-project-graph-is-built", + "id": "how-project-graph-is-built", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Mental Model", + "path": "/concepts/mental-model", + "id": "mental-model", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How Caching Works", + "path": "/concepts/how-caching-works", + "id": "how-caching-works", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "What is a Task Pipeline", + "path": "/concepts/task-pipeline-configuration", + "id": "task-pipeline-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "What Are Nx Plugins", + "path": "/concepts/nx-plugins", + "id": "nx-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Inferred Tasks", + "path": "/concepts/inferred-tasks", + "id": "inferred-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Types of Configuration", + "path": "/concepts/types-of-configuration", + "id": "types-of-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Executors and Configurations", + "path": "/concepts/executors-and-configurations", + "id": "executors-and-configurations", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "path": "/concepts/integrated-vs-package-based", + "id": "integrated-vs-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Module Federation", + "path": "/concepts/module-federation", + "id": "module-federation", + "isExternal": false, + "children": [ + { + "name": "Module Federation and Nx", + "path": "/concepts/module-federation/module-federation-and-nx", + "id": "module-federation-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Faster Builds with Module Federation", + "path": "/concepts/module-federation/faster-builds-with-module-federation", + "id": "faster-builds-with-module-federation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Micro Frontend Architecture", + "path": "/concepts/module-federation/micro-frontend-architecture", + "id": "micro-frontend-architecture", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manage Library Versions with Module Federation", + "path": "/concepts/module-federation/manage-library-versions-with-module-federation", + "id": "manage-library-versions-with-module-federation", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Module Federation and Nx", + "path": "/concepts/module-federation/module-federation-and-nx", + "id": "module-federation-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Faster Builds with Module Federation", + "path": "/concepts/module-federation/faster-builds-with-module-federation", + "id": "faster-builds-with-module-federation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Micro Frontend Architecture", + "path": "/concepts/module-federation/micro-frontend-architecture", + "id": "micro-frontend-architecture", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manage Library Versions with Module Federation", + "path": "/concepts/module-federation/manage-library-versions-with-module-federation", + "id": "manage-library-versions-with-module-federation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "More Concepts", + "path": "/concepts/more-concepts", + "id": "more-concepts", + "isExternal": false, + "children": [ + { + "name": "Incremental Builds", + "path": "/concepts/more-concepts/incremental-builds", + "id": "incremental-builds", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and Turborepo", + "path": "/concepts/more-concepts/turbo-and-nx", + "id": "turbo-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Monorepos", + "path": "/concepts/more-concepts/why-monorepos", + "id": "why-monorepos", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dependency Management", + "path": "/concepts/more-concepts/dependency-management", + "id": "dependency-management", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Code Sharing", + "path": "/concepts/more-concepts/code-sharing", + "id": "code-sharing", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Nx at Enterprises", + "path": "/concepts/more-concepts/monorepo-nx-enterprise", + "id": "monorepo-nx-enterprise", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Daemon", + "path": "/concepts/more-concepts/nx-daemon", + "id": "nx-daemon", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and the Angular CLI", + "path": "/concepts/more-concepts/nx-and-angular", + "id": "nx-and-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Folder Structure", + "path": "/concepts/more-concepts/folder-structure", + "id": "folder-structure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Devkit and Angular Devkit", + "path": "/concepts/more-concepts/nx-devkit-angular-devkit", + "id": "nx-devkit-angular-devkit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Applications and Libraries", + "path": "/concepts/more-concepts/applications-and-libraries", + "id": "applications-and-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Creating Libraries", + "path": "/concepts/more-concepts/creating-libraries", + "id": "creating-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Library Types", + "path": "/concepts/more-concepts/library-types", + "id": "library-types", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Grouping Libraries", + "path": "/concepts/more-concepts/grouping-libraries", + "id": "grouping-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Buildable and Publishable Libraries", + "path": "/concepts/more-concepts/buildable-and-publishable-libraries", + "id": "buildable-and-publishable-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How the Project Graph is Built", + "path": "/concepts/more-concepts/how-project-graph-is-built", + "id": "how-project-graph-is-built", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Incremental Builds", + "path": "/concepts/more-concepts/incremental-builds", + "id": "incremental-builds", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and Turborepo", + "path": "/concepts/more-concepts/turbo-and-nx", + "id": "turbo-and-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Monorepos", + "path": "/concepts/more-concepts/why-monorepos", + "id": "why-monorepos", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dependency Management", + "path": "/concepts/more-concepts/dependency-management", + "id": "dependency-management", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Code Sharing", + "path": "/concepts/more-concepts/code-sharing", + "id": "code-sharing", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Nx at Enterprises", + "path": "/concepts/more-concepts/monorepo-nx-enterprise", + "id": "monorepo-nx-enterprise", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Daemon", + "path": "/concepts/more-concepts/nx-daemon", + "id": "nx-daemon", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx and the Angular CLI", + "path": "/concepts/more-concepts/nx-and-angular", + "id": "nx-and-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Folder Structure", + "path": "/concepts/more-concepts/folder-structure", + "id": "folder-structure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Devkit and Angular Devkit", + "path": "/concepts/more-concepts/nx-devkit-angular-devkit", + "id": "nx-devkit-angular-devkit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Applications and Libraries", + "path": "/concepts/more-concepts/applications-and-libraries", + "id": "applications-and-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Creating Libraries", + "path": "/concepts/more-concepts/creating-libraries", + "id": "creating-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Library Types", + "path": "/concepts/more-concepts/library-types", + "id": "library-types", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Grouping Libraries", + "path": "/concepts/more-concepts/grouping-libraries", + "id": "grouping-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Buildable and Publishable Libraries", + "path": "/concepts/more-concepts/buildable-and-publishable-libraries", + "id": "buildable-and-publishable-libraries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How the Project Graph is Built", + "path": "/concepts/more-concepts/how-project-graph-is-built", + "id": "how-project-graph-is-built", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Recipes", + "path": "/recipes", + "id": "recipes", + "isExternal": false, + "children": [ + { + "name": "Tasks & Caching", + "path": "/recipes/running-tasks", + "id": "running-tasks", + "isExternal": false, + "children": [ + { + "name": "Configure Inputs for Task Caching", + "path": "/recipes/running-tasks/configure-inputs", + "id": "configure-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configure Outputs for Task Caching", + "path": "/recipes/running-tasks/configure-outputs", + "id": "configure-outputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define a Task Pipeline", + "path": "/recipes/running-tasks/defining-task-pipeline", + "id": "defining-task-pipeline", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Change Cache Location", + "path": "/recipes/running-tasks/change-cache-location", + "id": "change-cache-location", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Custom Commands", + "path": "/recipes/running-tasks/run-commands-executor", + "id": "run-commands-executor", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Tasks in Parallel", + "path": "/recipes/running-tasks/run-tasks-in-parallel", + "id": "run-tasks-in-parallel", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Root-Level NPM Scripts with Nx", + "path": "/recipes/running-tasks/root-level-scripts", + "id": "root-level-scripts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Watching", + "path": "/recipes/running-tasks/workspace-watching", + "id": "workspace-watching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reduce Repetitive Configuration", + "path": "/recipes/running-tasks/reduce-repetitive-configuration", + "id": "reduce-repetitive-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Adopting Nx", + "path": "/recipes/adopting-nx", + "id": "adopting-nx", + "isExternal": false, + "children": [ + { + "name": "NPM/Yarn/PNPM workspaces", + "path": "/recipes/adopting-nx/adding-to-monorepo", + "id": "adding-to-monorepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrate From Turborepo", + "path": "/recipes/adopting-nx/from-turborepo", + "id": "from-turborepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add to any Project", + "path": "/recipes/adopting-nx/adding-to-existing-project", + "id": "adding-to-existing-project", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Preserving Git Histories", + "path": "/recipes/adopting-nx/preserving-git-histories", + "id": "preserving-git-histories", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manual migration", + "path": "/recipes/adopting-nx/manual", + "id": "manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "React", + "path": "/recipes/react", + "id": "react", + "isExternal": false, + "children": [ + { + "name": "Migrating from CRA", + "path": "/recipes/react/migration-cra", + "id": "migration-cra", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React 18 Migration", + "path": "/recipes/react/react-18", + "id": "react-18", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Native with Nx", + "path": "/recipes/react/react-native", + "id": "react-native", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Remix with Nx", + "path": "/recipes/react/remix", + "id": "remix", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in React", + "path": "/recipes/react/use-environment-variables-in-react", + "id": "use-environment-variables-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS in React", + "path": "/recipes/react/using-tailwind-css-in-react", + "id": "using-tailwind-css-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Adding Images, Fonts, and Files", + "path": "/recipes/react/adding-assets-react", + "id": "adding-assets-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for React", + "path": "/recipes/react/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying Next.js applications to Vercel", + "path": "/recipes/react/deploy-nextjs-to-vercel", + "id": "deploy-nextjs-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Angular", + "path": "/recipes/angular", + "id": "angular", + "isExternal": false, + "children": [ + { + "name": "Migration", + "path": "/recipes/angular/migration", + "id": "migration", + "isExternal": false, + "children": [ + { + "name": "Migrating from Angular CLI", + "path": "/recipes/angular/migration/angular", + "id": "angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating From Multiple Angular CLI Repos", + "path": "/recipes/angular/migration/angular-multiple", + "id": "angular-multiple", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating Angular Application manually", + "path": "/recipes/angular/migration/angular-manual", + "id": "angular-manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in Angular", + "path": "/recipes/angular/use-environment-variables-in-angular", + "id": "use-environment-variables-in-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS with Angular projects", + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "id": "using-tailwind-css-with-angular-projects", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for Angular", + "path": "/recipes/angular/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "id": "dynamic-module-federation-with-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup incremental builds for Angular applications", + "path": "/recipes/angular/setup-incremental-builds-angular", + "id": "setup-incremental-builds-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Node", + "path": "/recipes/node", + "id": "node", + "isExternal": false, + "children": [ + { + "name": "Deploying a Node App to Fly.io", + "path": "/recipes/node/node-server-fly-io", + "id": "node-server-fly-io", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add and Deploy Netlify Edge Functions with Node", + "path": "/recipes/node/node-serverless-functions-netlify", + "id": "node-serverless-functions-netlify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying AWS lambda in Node.js", + "path": "/recipes/node/node-aws-lambda", + "id": "node-aws-lambda", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set Up Application Proxies", + "path": "/recipes/node/application-proxies", + "id": "application-proxies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Wait for Tasks to Finish", + "path": "/recipes/node/wait-for-tasks", + "id": "wait-for-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Storybook", + "path": "/recipes/storybook", + "id": "storybook", + "isExternal": false, + "children": [ + { + "name": "Set up Storybook for React Projects", + "path": "/recipes/storybook/overview-react", + "id": "overview-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for Angular Projects", + "path": "/recipes/storybook/overview-angular", + "id": "overview-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for Vue Projects", + "path": "/recipes/storybook/overview-vue", + "id": "overview-vue", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Storybook on Nx", + "path": "/recipes/storybook/configuring-storybook", + "id": "configuring-storybook", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One main Storybook instance for all projects", + "path": "/recipes/storybook/one-storybook-for-all", + "id": "one-storybook-for-all", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One Storybook instance per scope", + "path": "/recipes/storybook/one-storybook-per-scope", + "id": "one-storybook-per-scope", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One main Storybook instance using Storybook Composition", + "path": "/recipes/storybook/one-storybook-with-composition", + "id": "one-storybook-with-composition", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to configure Webpack and Vite for Storybook", + "path": "/recipes/storybook/custom-builder-configs", + "id": "custom-builder-configs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Storybook Interaction Tests with Nx", + "path": "/recipes/storybook/storybook-interaction-tests", + "id": "storybook-interaction-tests", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Upgrading Storybook using the Storybook CLI", + "path": "/recipes/storybook/upgrading-storybook", + "id": "upgrading-storybook", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Storybook Composition with Nx", + "path": "/recipes/storybook/storybook-composition-setup", + "id": "storybook-composition-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Set up Compodoc for Storybook on Nx", + "path": "/recipes/storybook/angular-storybook-compodoc", + "id": "angular-storybook-compodoc", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Configuring styles and preprocessor options", + "path": "/recipes/storybook/angular-configuring-styles", + "id": "angular-configuring-styles", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Cypress", + "path": "/recipes/cypress", + "id": "cypress", + "isExternal": false, + "children": [ + { + "name": "Component Testing", + "path": "/recipes/cypress/cypress-component-testing", + "id": "cypress-component-testing", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using setupNodeEvents with Cypress preset", + "path": "/recipes/cypress/cypress-setup-node-events", + "id": "cypress-setup-node-events", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cypress v11 Migration Guide", + "path": "/recipes/cypress/cypress-v11-migration", + "id": "cypress-v11-migration", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Next", + "path": "/recipes/next", + "id": "next", + "isExternal": false, + "children": [ + { + "name": "How to configure Next.js plugins", + "path": "/recipes/next/next-config-setup", + "id": "next-config-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Nuxt", + "path": "/recipes/nuxt", + "id": "nuxt", + "isExternal": false, + "children": [ + { + "name": "Deploying Nuxt applications to Vercel", + "path": "/recipes/nuxt/deploy-nuxt-to-vercel", + "id": "deploy-nuxt-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Vite", + "path": "/recipes/vite", + "id": "vite", + "isExternal": false, + "children": [ + { + "name": "Configure Vite on your Nx workspace", + "path": "/recipes/vite/configure-vite", + "id": "configure-vite", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Webpack", + "path": "/recipes/webpack", + "id": "webpack", + "isExternal": false, + "children": [ + { + "name": "How to configure Webpack in your Nx workspace", + "path": "/recipes/webpack/webpack-config-setup", + "id": "webpack-config-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Webpack plugins", + "path": "/recipes/webpack/webpack-plugins", + "id": "webpack-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Module Federation", + "path": "/recipes/module-federation", + "id": "module-federation", + "isExternal": false, + "children": [ + { + "name": "How to create a Module Federation Host Application", + "path": "/recipes/module-federation/create-a-host", + "id": "create-a-host", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to create a Module Federation Remote Application", + "path": "/recipes/module-federation/create-a-remote", + "id": "create-a-remote", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to Federate a Module", + "path": "/recipes/module-federation/federate-a-module", + "id": "federate-a-module", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Enforce Module Boundaries", + "path": "/recipes/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [ + { + "name": "Ban Dependencies with Certain Tags", + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "id": "ban-dependencies-with-tags", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tag in Multiple Dimensions", + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "id": "tag-multiple-dimensions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Ban External Imports", + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "id": "ban-external-imports", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tags Allow List", + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "id": "tags-allow-list", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Installation", + "path": "/recipes/installation", + "id": "installation", + "isExternal": false, + "children": [ + { + "name": "Install Nx in a Non-Javascript Repo", + "path": "/recipes/installation/install-non-javascript", + "id": "install-non-javascript", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Update Your Global Nx Installation", + "path": "/recipes/installation/update-global-installation", + "id": "update-global-installation", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Tips and tricks", + "path": "/recipes/tips-n-tricks", + "id": "tips-n-tricks", + "isExternal": false, + "children": [ + { + "name": "Add a Package-based Project in an Integrated Repo", + "path": "/recipes/tips-n-tricks/package-based-in-integrated", + "id": "package-based-in-integrated", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add an Integrated Project in a Package-based Repo", + "path": "/recipes/tips-n-tricks/integrated-in-package-based", + "id": "integrated-in-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Convert from a Standalone Repository to an Integrated Repository", + "path": "/recipes/tips-n-tricks/standalone-to-integrated", + "id": "standalone-to-integrated", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring ESLint with Typescript", + "path": "/recipes/tips-n-tricks/eslint", + "id": "eslint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable Typescript Batch Mode", + "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", + "id": "enable-tsc-batch-mode", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Secondary Entrypoints for Typescript Packages", + "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", + "id": "define-secondary-entrypoints", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compile Typescript Packages to Multiple Formats", + "path": "/recipes/tips-n-tricks/compile-multiple-formats", + "id": "compile-multiple-formats", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keep Nx Versions in Sync", + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "id": "keep-nx-versions-in-sync", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Environment Variables", + "path": "/recipes/tips-n-tricks/define-environment-variables", + "id": "define-environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Browser Support", + "path": "/recipes/tips-n-tricks/browser-support", + "id": "browser-support", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include Assets in Build", + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "id": "include-assets-in-build", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include All package.json Files as Projects", + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "id": "include-all-packagejson", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify Dependencies Between Folders", + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "id": "identify-dependencies-between-folders", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Disable Graph Links Created from Analyzing Source Files", + "path": "/recipes/tips-n-tricks/analyze-source-files", + "id": "analyze-source-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use JavaScript instead TypeScript", + "path": "/recipes/tips-n-tricks/js-and-ts", + "id": "js-and-ts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Altering Migration Process", + "path": "/recipes/tips-n-tricks/advanced-update", + "id": "advanced-update", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Yarn PnP", + "path": "/recipes/tips-n-tricks/yarn-pnp", + "id": "yarn-pnp", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Switching to ESLint's flat config format", + "path": "/recipes/tips-n-tricks/flat-config", + "id": "flat-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/recipes/troubleshooting", + "id": "troubleshooting", + "isExternal": false, + "children": [ + { + "name": "Resolve Circular Dependencies", + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "id": "resolve-circular-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting Nx Install Issues", + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "id": "troubleshoot-nx-install-issues", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshoot Cache Misses", + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "id": "troubleshoot-cache-misses", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Unknown Local Cache Error", + "path": "/recipes/troubleshooting/unknown-local-cache", + "id": "unknown-local-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Profiling Build Performance", + "path": "/recipes/troubleshooting/performance-profiling", + "id": "performance-profiling", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Nx Console", + "path": "/recipes/nx-console", + "id": "nx-console", + "isExternal": false, + "children": [ + { + "name": "Telemetry", + "path": "/recipes/nx-console/console-telemetry", + "id": "console-telemetry", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Details View", + "path": "/recipes/nx-console/console-project-details", + "id": "console-project-details", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Generate Command", + "path": "/recipes/nx-console/console-generate-command", + "id": "console-generate-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Command", + "path": "/recipes/nx-console/console-run-command", + "id": "console-run-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add Dependency Command", + "path": "/recipes/nx-console/console-add-dependency-command", + "id": "console-add-dependency-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Pane", + "path": "/recipes/nx-console/console-project-pane", + "id": "console-project-pane", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keyboard Shortcuts", + "path": "/recipes/nx-console/console-shortcuts", + "id": "console-shortcuts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/recipes/nx-console/console-troubleshooting", + "id": "console-troubleshooting", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Nx Release", + "path": "/recipes/nx-release", + "id": "nx-release", + "isExternal": false, + "children": [ + { + "name": "Get Started with Nx Release", + "path": "/recipes/nx-release/get-started-with-nx-release", + "id": "get-started-with-nx-release", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Release Projects Independently", + "path": "/recipes/nx-release/release-projects-independently", + "id": "release-projects-independently", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Version with Conventional Commits", + "path": "/recipes/nx-release/automatically-version-with-conventional-commits", + "id": "automatically-version-with-conventional-commits", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Publish in CI/CD", + "path": "/recipes/nx-release/publish-in-ci-cd", + "id": "publish-in-ci-cd", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automate GitHub Releases", + "path": "/recipes/nx-release/automate-github-releases", + "id": "automate-github-releases", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Publish Rust Crates", + "path": "/recipes/nx-release/publish-rust-crates", + "id": "publish-rust-crates", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Update Your Local Registry Setup to use Nx Release", + "path": "/recipes/nx-release/update-local-registry-setup", + "id": "update-local-registry-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Customize Conventional Commit Types", + "path": "/recipes/nx-release/customize-conventional-commit-types", + "id": "customize-conventional-commit-types", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Other", + "path": "/recipes/other", + "id": "other", + "isExternal": false, + "children": [ + { + "name": "Rescope Packages from @nrwl to @nx", + "path": "/recipes/other/rescope", + "id": "rescope", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Tasks & Caching", + "path": "/recipes/running-tasks", + "id": "running-tasks", + "isExternal": false, + "children": [ + { + "name": "Configure Inputs for Task Caching", + "path": "/recipes/running-tasks/configure-inputs", + "id": "configure-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configure Outputs for Task Caching", + "path": "/recipes/running-tasks/configure-outputs", + "id": "configure-outputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define a Task Pipeline", + "path": "/recipes/running-tasks/defining-task-pipeline", + "id": "defining-task-pipeline", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Change Cache Location", + "path": "/recipes/running-tasks/change-cache-location", + "id": "change-cache-location", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Custom Commands", + "path": "/recipes/running-tasks/run-commands-executor", + "id": "run-commands-executor", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Tasks in Parallel", + "path": "/recipes/running-tasks/run-tasks-in-parallel", + "id": "run-tasks-in-parallel", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Root-Level NPM Scripts with Nx", + "path": "/recipes/running-tasks/root-level-scripts", + "id": "root-level-scripts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Watching", + "path": "/recipes/running-tasks/workspace-watching", + "id": "workspace-watching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reduce Repetitive Configuration", + "path": "/recipes/running-tasks/reduce-repetitive-configuration", + "id": "reduce-repetitive-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Configure Inputs for Task Caching", + "path": "/recipes/running-tasks/configure-inputs", + "id": "configure-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configure Outputs for Task Caching", + "path": "/recipes/running-tasks/configure-outputs", + "id": "configure-outputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define a Task Pipeline", + "path": "/recipes/running-tasks/defining-task-pipeline", + "id": "defining-task-pipeline", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Change Cache Location", + "path": "/recipes/running-tasks/change-cache-location", + "id": "change-cache-location", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Custom Commands", + "path": "/recipes/running-tasks/run-commands-executor", + "id": "run-commands-executor", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Tasks in Parallel", + "path": "/recipes/running-tasks/run-tasks-in-parallel", + "id": "run-tasks-in-parallel", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Root-Level NPM Scripts with Nx", + "path": "/recipes/running-tasks/root-level-scripts", + "id": "root-level-scripts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Watching", + "path": "/recipes/running-tasks/workspace-watching", + "id": "workspace-watching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reduce Repetitive Configuration", + "path": "/recipes/running-tasks/reduce-repetitive-configuration", + "id": "reduce-repetitive-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Adopting Nx", + "path": "/recipes/adopting-nx", + "id": "adopting-nx", + "isExternal": false, + "children": [ + { + "name": "NPM/Yarn/PNPM workspaces", + "path": "/recipes/adopting-nx/adding-to-monorepo", + "id": "adding-to-monorepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrate From Turborepo", + "path": "/recipes/adopting-nx/from-turborepo", + "id": "from-turborepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add to any Project", + "path": "/recipes/adopting-nx/adding-to-existing-project", + "id": "adding-to-existing-project", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Preserving Git Histories", + "path": "/recipes/adopting-nx/preserving-git-histories", + "id": "preserving-git-histories", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manual migration", + "path": "/recipes/adopting-nx/manual", + "id": "manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "NPM/Yarn/PNPM workspaces", + "path": "/recipes/adopting-nx/adding-to-monorepo", + "id": "adding-to-monorepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrate From Turborepo", + "path": "/recipes/adopting-nx/from-turborepo", + "id": "from-turborepo", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add to any Project", + "path": "/recipes/adopting-nx/adding-to-existing-project", + "id": "adding-to-existing-project", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Preserving Git Histories", + "path": "/recipes/adopting-nx/preserving-git-histories", + "id": "preserving-git-histories", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Manual migration", + "path": "/recipes/adopting-nx/manual", + "id": "manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React", + "path": "/recipes/react", + "id": "react", + "isExternal": false, + "children": [ + { + "name": "Migrating from CRA", + "path": "/recipes/react/migration-cra", + "id": "migration-cra", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React 18 Migration", + "path": "/recipes/react/react-18", + "id": "react-18", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Native with Nx", + "path": "/recipes/react/react-native", + "id": "react-native", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Remix with Nx", + "path": "/recipes/react/remix", + "id": "remix", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in React", + "path": "/recipes/react/use-environment-variables-in-react", + "id": "use-environment-variables-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS in React", + "path": "/recipes/react/using-tailwind-css-in-react", + "id": "using-tailwind-css-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Adding Images, Fonts, and Files", + "path": "/recipes/react/adding-assets-react", + "id": "adding-assets-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for React", + "path": "/recipes/react/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying Next.js applications to Vercel", + "path": "/recipes/react/deploy-nextjs-to-vercel", + "id": "deploy-nextjs-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Migrating from CRA", + "path": "/recipes/react/migration-cra", + "id": "migration-cra", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React 18 Migration", + "path": "/recipes/react/react-18", + "id": "react-18", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React Native with Nx", + "path": "/recipes/react/react-native", + "id": "react-native", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Remix with Nx", + "path": "/recipes/react/remix", + "id": "remix", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in React", + "path": "/recipes/react/use-environment-variables-in-react", + "id": "use-environment-variables-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS in React", + "path": "/recipes/react/using-tailwind-css-in-react", + "id": "using-tailwind-css-in-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Adding Images, Fonts, and Files", + "path": "/recipes/react/adding-assets-react", + "id": "adding-assets-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for React", + "path": "/recipes/react/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying Next.js applications to Vercel", + "path": "/recipes/react/deploy-nextjs-to-vercel", + "id": "deploy-nextjs-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular", + "path": "/recipes/angular", + "id": "angular", + "isExternal": false, + "children": [ + { + "name": "Migration", + "path": "/recipes/angular/migration", + "id": "migration", + "isExternal": false, + "children": [ + { + "name": "Migrating from Angular CLI", + "path": "/recipes/angular/migration/angular", + "id": "angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating From Multiple Angular CLI Repos", + "path": "/recipes/angular/migration/angular-multiple", + "id": "angular-multiple", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating Angular Application manually", + "path": "/recipes/angular/migration/angular-manual", + "id": "angular-manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in Angular", + "path": "/recipes/angular/use-environment-variables-in-angular", + "id": "use-environment-variables-in-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS with Angular projects", + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "id": "using-tailwind-css-with-angular-projects", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for Angular", + "path": "/recipes/angular/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "id": "dynamic-module-federation-with-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup incremental builds for Angular applications", + "path": "/recipes/angular/setup-incremental-builds-angular", + "id": "setup-incremental-builds-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Migration", + "path": "/recipes/angular/migration", + "id": "migration", + "isExternal": false, + "children": [ + { + "name": "Migrating from Angular CLI", + "path": "/recipes/angular/migration/angular", + "id": "angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating From Multiple Angular CLI Repos", + "path": "/recipes/angular/migration/angular-multiple", + "id": "angular-multiple", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating Angular Application manually", + "path": "/recipes/angular/migration/angular-manual", + "id": "angular-manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Migrating from Angular CLI", + "path": "/recipes/angular/migration/angular", + "id": "angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating From Multiple Angular CLI Repos", + "path": "/recipes/angular/migration/angular-multiple", + "id": "angular-multiple", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Migrating Angular Application manually", + "path": "/recipes/angular/migration/angular-manual", + "id": "angular-manual", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Environment Variables in Angular", + "path": "/recipes/angular/use-environment-variables-in-angular", + "id": "use-environment-variables-in-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Tailwind CSS with Angular projects", + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "id": "using-tailwind-css-with-angular-projects", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup Module Federation with SSR for Angular", + "path": "/recipes/angular/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "id": "dynamic-module-federation-with-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setup incremental builds for Angular applications", + "path": "/recipes/angular/setup-incremental-builds-angular", + "id": "setup-incremental-builds-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Node", + "path": "/recipes/node", + "id": "node", + "isExternal": false, + "children": [ + { + "name": "Deploying a Node App to Fly.io", + "path": "/recipes/node/node-server-fly-io", + "id": "node-server-fly-io", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add and Deploy Netlify Edge Functions with Node", + "path": "/recipes/node/node-serverless-functions-netlify", + "id": "node-serverless-functions-netlify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying AWS lambda in Node.js", + "path": "/recipes/node/node-aws-lambda", + "id": "node-aws-lambda", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set Up Application Proxies", + "path": "/recipes/node/application-proxies", + "id": "application-proxies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Wait for Tasks to Finish", + "path": "/recipes/node/wait-for-tasks", + "id": "wait-for-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Deploying a Node App to Fly.io", + "path": "/recipes/node/node-server-fly-io", + "id": "node-server-fly-io", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add and Deploy Netlify Edge Functions with Node", + "path": "/recipes/node/node-serverless-functions-netlify", + "id": "node-serverless-functions-netlify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deploying AWS lambda in Node.js", + "path": "/recipes/node/node-aws-lambda", + "id": "node-aws-lambda", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set Up Application Proxies", + "path": "/recipes/node/application-proxies", + "id": "application-proxies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Wait for Tasks to Finish", + "path": "/recipes/node/wait-for-tasks", + "id": "wait-for-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook", + "path": "/recipes/storybook", + "id": "storybook", + "isExternal": false, + "children": [ + { + "name": "Set up Storybook for React Projects", + "path": "/recipes/storybook/overview-react", + "id": "overview-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for Angular Projects", + "path": "/recipes/storybook/overview-angular", + "id": "overview-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for Vue Projects", + "path": "/recipes/storybook/overview-vue", + "id": "overview-vue", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Storybook on Nx", + "path": "/recipes/storybook/configuring-storybook", + "id": "configuring-storybook", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One main Storybook instance for all projects", + "path": "/recipes/storybook/one-storybook-for-all", + "id": "one-storybook-for-all", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One Storybook instance per scope", + "path": "/recipes/storybook/one-storybook-per-scope", + "id": "one-storybook-per-scope", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One main Storybook instance using Storybook Composition", + "path": "/recipes/storybook/one-storybook-with-composition", + "id": "one-storybook-with-composition", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to configure Webpack and Vite for Storybook", + "path": "/recipes/storybook/custom-builder-configs", + "id": "custom-builder-configs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Storybook Interaction Tests with Nx", + "path": "/recipes/storybook/storybook-interaction-tests", + "id": "storybook-interaction-tests", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Upgrading Storybook using the Storybook CLI", + "path": "/recipes/storybook/upgrading-storybook", + "id": "upgrading-storybook", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Storybook Composition with Nx", + "path": "/recipes/storybook/storybook-composition-setup", + "id": "storybook-composition-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Set up Compodoc for Storybook on Nx", + "path": "/recipes/storybook/angular-storybook-compodoc", + "id": "angular-storybook-compodoc", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Configuring styles and preprocessor options", + "path": "/recipes/storybook/angular-configuring-styles", + "id": "angular-configuring-styles", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for React Projects", + "path": "/recipes/storybook/overview-react", + "id": "overview-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for Angular Projects", + "path": "/recipes/storybook/overview-angular", + "id": "overview-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Storybook for Vue Projects", + "path": "/recipes/storybook/overview-vue", + "id": "overview-vue", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Storybook on Nx", + "path": "/recipes/storybook/configuring-storybook", + "id": "configuring-storybook", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One main Storybook instance for all projects", + "path": "/recipes/storybook/one-storybook-for-all", + "id": "one-storybook-for-all", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One Storybook instance per scope", + "path": "/recipes/storybook/one-storybook-per-scope", + "id": "one-storybook-per-scope", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "One main Storybook instance using Storybook Composition", + "path": "/recipes/storybook/one-storybook-with-composition", + "id": "one-storybook-with-composition", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to configure Webpack and Vite for Storybook", + "path": "/recipes/storybook/custom-builder-configs", + "id": "custom-builder-configs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Storybook Interaction Tests with Nx", + "path": "/recipes/storybook/storybook-interaction-tests", + "id": "storybook-interaction-tests", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Upgrading Storybook using the Storybook CLI", + "path": "/recipes/storybook/upgrading-storybook", + "id": "upgrading-storybook", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Storybook Composition with Nx", + "path": "/recipes/storybook/storybook-composition-setup", + "id": "storybook-composition-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Set up Compodoc for Storybook on Nx", + "path": "/recipes/storybook/angular-storybook-compodoc", + "id": "angular-storybook-compodoc", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Configuring styles and preprocessor options", + "path": "/recipes/storybook/angular-configuring-styles", + "id": "angular-configuring-styles", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cypress", + "path": "/recipes/cypress", + "id": "cypress", + "isExternal": false, + "children": [ + { + "name": "Component Testing", + "path": "/recipes/cypress/cypress-component-testing", + "id": "cypress-component-testing", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using setupNodeEvents with Cypress preset", + "path": "/recipes/cypress/cypress-setup-node-events", + "id": "cypress-setup-node-events", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cypress v11 Migration Guide", + "path": "/recipes/cypress/cypress-v11-migration", + "id": "cypress-v11-migration", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Component Testing", + "path": "/recipes/cypress/cypress-component-testing", + "id": "cypress-component-testing", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using setupNodeEvents with Cypress preset", + "path": "/recipes/cypress/cypress-setup-node-events", + "id": "cypress-setup-node-events", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cypress v11 Migration Guide", + "path": "/recipes/cypress/cypress-v11-migration", + "id": "cypress-v11-migration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Next", + "path": "/recipes/next", + "id": "next", + "isExternal": false, + "children": [ + { + "name": "How to configure Next.js plugins", + "path": "/recipes/next/next-config-setup", + "id": "next-config-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "How to configure Next.js plugins", + "path": "/recipes/next/next-config-setup", + "id": "next-config-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nuxt", + "path": "/recipes/nuxt", + "id": "nuxt", + "isExternal": false, + "children": [ + { + "name": "Deploying Nuxt applications to Vercel", + "path": "/recipes/nuxt/deploy-nuxt-to-vercel", + "id": "deploy-nuxt-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Deploying Nuxt applications to Vercel", + "path": "/recipes/nuxt/deploy-nuxt-to-vercel", + "id": "deploy-nuxt-to-vercel", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Vite", + "path": "/recipes/vite", + "id": "vite", + "isExternal": false, + "children": [ + { + "name": "Configure Vite on your Nx workspace", + "path": "/recipes/vite/configure-vite", + "id": "configure-vite", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Configure Vite on your Nx workspace", + "path": "/recipes/vite/configure-vite", + "id": "configure-vite", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Webpack", + "path": "/recipes/webpack", + "id": "webpack", + "isExternal": false, + "children": [ + { + "name": "How to configure Webpack in your Nx workspace", + "path": "/recipes/webpack/webpack-config-setup", + "id": "webpack-config-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Webpack plugins", + "path": "/recipes/webpack/webpack-plugins", + "id": "webpack-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "How to configure Webpack in your Nx workspace", + "path": "/recipes/webpack/webpack-config-setup", + "id": "webpack-config-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Webpack plugins", + "path": "/recipes/webpack/webpack-plugins", + "id": "webpack-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Module Federation", + "path": "/recipes/module-federation", + "id": "module-federation", + "isExternal": false, + "children": [ + { + "name": "How to create a Module Federation Host Application", + "path": "/recipes/module-federation/create-a-host", + "id": "create-a-host", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to create a Module Federation Remote Application", + "path": "/recipes/module-federation/create-a-remote", + "id": "create-a-remote", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to Federate a Module", + "path": "/recipes/module-federation/federate-a-module", + "id": "federate-a-module", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "How to create a Module Federation Host Application", + "path": "/recipes/module-federation/create-a-host", + "id": "create-a-host", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to create a Module Federation Remote Application", + "path": "/recipes/module-federation/create-a-remote", + "id": "create-a-remote", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "How to Federate a Module", + "path": "/recipes/module-federation/federate-a-module", + "id": "federate-a-module", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enforce Module Boundaries", + "path": "/recipes/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [ + { + "name": "Ban Dependencies with Certain Tags", + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "id": "ban-dependencies-with-tags", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tag in Multiple Dimensions", + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "id": "tag-multiple-dimensions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Ban External Imports", + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "id": "ban-external-imports", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tags Allow List", + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "id": "tags-allow-list", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Ban Dependencies with Certain Tags", + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "id": "ban-dependencies-with-tags", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tag in Multiple Dimensions", + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "id": "tag-multiple-dimensions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Ban External Imports", + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "id": "ban-external-imports", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tags Allow List", + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "id": "tags-allow-list", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Installation", + "path": "/recipes/installation", + "id": "installation", + "isExternal": false, + "children": [ + { + "name": "Install Nx in a Non-Javascript Repo", + "path": "/recipes/installation/install-non-javascript", + "id": "install-non-javascript", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Update Your Global Nx Installation", + "path": "/recipes/installation/update-global-installation", + "id": "update-global-installation", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Install Nx in a Non-Javascript Repo", + "path": "/recipes/installation/install-non-javascript", + "id": "install-non-javascript", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Update Your Global Nx Installation", + "path": "/recipes/installation/update-global-installation", + "id": "update-global-installation", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tips and tricks", + "path": "/recipes/tips-n-tricks", + "id": "tips-n-tricks", + "isExternal": false, + "children": [ + { + "name": "Add a Package-based Project in an Integrated Repo", + "path": "/recipes/tips-n-tricks/package-based-in-integrated", + "id": "package-based-in-integrated", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add an Integrated Project in a Package-based Repo", + "path": "/recipes/tips-n-tricks/integrated-in-package-based", + "id": "integrated-in-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Convert from a Standalone Repository to an Integrated Repository", + "path": "/recipes/tips-n-tricks/standalone-to-integrated", + "id": "standalone-to-integrated", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring ESLint with Typescript", + "path": "/recipes/tips-n-tricks/eslint", + "id": "eslint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable Typescript Batch Mode", + "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", + "id": "enable-tsc-batch-mode", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Secondary Entrypoints for Typescript Packages", + "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", + "id": "define-secondary-entrypoints", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compile Typescript Packages to Multiple Formats", + "path": "/recipes/tips-n-tricks/compile-multiple-formats", + "id": "compile-multiple-formats", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keep Nx Versions in Sync", + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "id": "keep-nx-versions-in-sync", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Environment Variables", + "path": "/recipes/tips-n-tricks/define-environment-variables", + "id": "define-environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Browser Support", + "path": "/recipes/tips-n-tricks/browser-support", + "id": "browser-support", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include Assets in Build", + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "id": "include-assets-in-build", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include All package.json Files as Projects", + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "id": "include-all-packagejson", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify Dependencies Between Folders", + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "id": "identify-dependencies-between-folders", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Disable Graph Links Created from Analyzing Source Files", + "path": "/recipes/tips-n-tricks/analyze-source-files", + "id": "analyze-source-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use JavaScript instead TypeScript", + "path": "/recipes/tips-n-tricks/js-and-ts", + "id": "js-and-ts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Altering Migration Process", + "path": "/recipes/tips-n-tricks/advanced-update", + "id": "advanced-update", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Yarn PnP", + "path": "/recipes/tips-n-tricks/yarn-pnp", + "id": "yarn-pnp", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Switching to ESLint's flat config format", + "path": "/recipes/tips-n-tricks/flat-config", + "id": "flat-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Add a Package-based Project in an Integrated Repo", + "path": "/recipes/tips-n-tricks/package-based-in-integrated", + "id": "package-based-in-integrated", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add an Integrated Project in a Package-based Repo", + "path": "/recipes/tips-n-tricks/integrated-in-package-based", + "id": "integrated-in-package-based", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Convert from a Standalone Repository to an Integrated Repository", + "path": "/recipes/tips-n-tricks/standalone-to-integrated", + "id": "standalone-to-integrated", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring ESLint with Typescript", + "path": "/recipes/tips-n-tricks/eslint", + "id": "eslint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable Typescript Batch Mode", + "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", + "id": "enable-tsc-batch-mode", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Secondary Entrypoints for Typescript Packages", + "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", + "id": "define-secondary-entrypoints", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compile Typescript Packages to Multiple Formats", + "path": "/recipes/tips-n-tricks/compile-multiple-formats", + "id": "compile-multiple-formats", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keep Nx Versions in Sync", + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "id": "keep-nx-versions-in-sync", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Define Environment Variables", + "path": "/recipes/tips-n-tricks/define-environment-variables", + "id": "define-environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Configuring Browser Support", + "path": "/recipes/tips-n-tricks/browser-support", + "id": "browser-support", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include Assets in Build", + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "id": "include-assets-in-build", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Include All package.json Files as Projects", + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "id": "include-all-packagejson", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify Dependencies Between Folders", + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "id": "identify-dependencies-between-folders", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Disable Graph Links Created from Analyzing Source Files", + "path": "/recipes/tips-n-tricks/analyze-source-files", + "id": "analyze-source-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use JavaScript instead TypeScript", + "path": "/recipes/tips-n-tricks/js-and-ts", + "id": "js-and-ts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Altering Migration Process", + "path": "/recipes/tips-n-tricks/advanced-update", + "id": "advanced-update", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Using Yarn PnP", + "path": "/recipes/tips-n-tricks/yarn-pnp", + "id": "yarn-pnp", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Switching to ESLint's flat config format", + "path": "/recipes/tips-n-tricks/flat-config", + "id": "flat-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/recipes/troubleshooting", + "id": "troubleshooting", + "isExternal": false, + "children": [ + { + "name": "Resolve Circular Dependencies", + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "id": "resolve-circular-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting Nx Install Issues", + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "id": "troubleshoot-nx-install-issues", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshoot Cache Misses", + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "id": "troubleshoot-cache-misses", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Unknown Local Cache Error", + "path": "/recipes/troubleshooting/unknown-local-cache", + "id": "unknown-local-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Profiling Build Performance", + "path": "/recipes/troubleshooting/performance-profiling", + "id": "performance-profiling", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Resolve Circular Dependencies", + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "id": "resolve-circular-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting Nx Install Issues", + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "id": "troubleshoot-nx-install-issues", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshoot Cache Misses", + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "id": "troubleshoot-cache-misses", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Unknown Local Cache Error", + "path": "/recipes/troubleshooting/unknown-local-cache", + "id": "unknown-local-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Profiling Build Performance", + "path": "/recipes/troubleshooting/performance-profiling", + "id": "performance-profiling", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Console", + "path": "/recipes/nx-console", + "id": "nx-console", + "isExternal": false, + "children": [ + { + "name": "Telemetry", + "path": "/recipes/nx-console/console-telemetry", + "id": "console-telemetry", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Details View", + "path": "/recipes/nx-console/console-project-details", + "id": "console-project-details", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Generate Command", + "path": "/recipes/nx-console/console-generate-command", + "id": "console-generate-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Command", + "path": "/recipes/nx-console/console-run-command", + "id": "console-run-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add Dependency Command", + "path": "/recipes/nx-console/console-add-dependency-command", + "id": "console-add-dependency-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Pane", + "path": "/recipes/nx-console/console-project-pane", + "id": "console-project-pane", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keyboard Shortcuts", + "path": "/recipes/nx-console/console-shortcuts", + "id": "console-shortcuts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/recipes/nx-console/console-troubleshooting", + "id": "console-troubleshooting", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Telemetry", + "path": "/recipes/nx-console/console-telemetry", + "id": "console-telemetry", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Details View", + "path": "/recipes/nx-console/console-project-details", + "id": "console-project-details", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Generate Command", + "path": "/recipes/nx-console/console-generate-command", + "id": "console-generate-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Command", + "path": "/recipes/nx-console/console-run-command", + "id": "console-run-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Add Dependency Command", + "path": "/recipes/nx-console/console-add-dependency-command", + "id": "console-add-dependency-command", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Pane", + "path": "/recipes/nx-console/console-project-pane", + "id": "console-project-pane", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Keyboard Shortcuts", + "path": "/recipes/nx-console/console-shortcuts", + "id": "console-shortcuts", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/recipes/nx-console/console-troubleshooting", + "id": "console-troubleshooting", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Release", + "path": "/recipes/nx-release", + "id": "nx-release", + "isExternal": false, + "children": [ + { + "name": "Get Started with Nx Release", + "path": "/recipes/nx-release/get-started-with-nx-release", + "id": "get-started-with-nx-release", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Release Projects Independently", + "path": "/recipes/nx-release/release-projects-independently", + "id": "release-projects-independently", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Version with Conventional Commits", + "path": "/recipes/nx-release/automatically-version-with-conventional-commits", + "id": "automatically-version-with-conventional-commits", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Publish in CI/CD", + "path": "/recipes/nx-release/publish-in-ci-cd", + "id": "publish-in-ci-cd", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automate GitHub Releases", + "path": "/recipes/nx-release/automate-github-releases", + "id": "automate-github-releases", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Publish Rust Crates", + "path": "/recipes/nx-release/publish-rust-crates", + "id": "publish-rust-crates", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Update Your Local Registry Setup to use Nx Release", + "path": "/recipes/nx-release/update-local-registry-setup", + "id": "update-local-registry-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Customize Conventional Commit Types", + "path": "/recipes/nx-release/customize-conventional-commit-types", + "id": "customize-conventional-commit-types", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Get Started with Nx Release", + "path": "/recipes/nx-release/get-started-with-nx-release", + "id": "get-started-with-nx-release", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Release Projects Independently", + "path": "/recipes/nx-release/release-projects-independently", + "id": "release-projects-independently", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Version with Conventional Commits", + "path": "/recipes/nx-release/automatically-version-with-conventional-commits", + "id": "automatically-version-with-conventional-commits", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Publish in CI/CD", + "path": "/recipes/nx-release/publish-in-ci-cd", + "id": "publish-in-ci-cd", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automate GitHub Releases", + "path": "/recipes/nx-release/automate-github-releases", + "id": "automate-github-releases", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Publish Rust Crates", + "path": "/recipes/nx-release/publish-rust-crates", + "id": "publish-rust-crates", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Update Your Local Registry Setup to use Nx Release", + "path": "/recipes/nx-release/update-local-registry-setup", + "id": "update-local-registry-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Customize Conventional Commit Types", + "path": "/recipes/nx-release/customize-conventional-commit-types", + "id": "customize-conventional-commit-types", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Other", + "path": "/recipes/other", + "id": "other", + "isExternal": false, + "children": [ + { + "name": "Rescope Packages from @nrwl to @nx", + "path": "/recipes/other/rescope", + "id": "rescope", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Rescope Packages from @nrwl to @nx", + "path": "/recipes/other/rescope", + "id": "rescope", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Showcase", + "path": "/showcase", + "id": "showcase", + "isExternal": false, + "children": [ + { + "name": "Nx with your favorite tech", + "path": "/showcase/example-repos", + "id": "example-repos", + "isExternal": false, + "children": [ + { + "name": "Express", + "path": "/showcase/example-repos/add-express", + "id": "add-express", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Lit", + "path": "/showcase/example-repos/add-lit", + "id": "add-lit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Solid", + "path": "/showcase/example-repos/add-solid", + "id": "add-solid", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Qwik", + "path": "/showcase/example-repos/add-qwik", + "id": "add-qwik", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Rust", + "path": "/showcase/example-repos/add-rust", + "id": "add-rust", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".NET", + "path": "/showcase/example-repos/add-dotnet", + "id": "add-dotnet", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Astro", + "path": "/showcase/example-repos/add-astro", + "id": "add-astro", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Svelte", + "path": "/showcase/example-repos/add-svelte", + "id": "add-svelte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Fastify", + "path": "/showcase/example-repos/add-fastify", + "id": "add-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Apollo GraphQL", + "path": "/showcase/example-repos/apollo-react", + "id": "apollo-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prisma with NestJS", + "path": "/showcase/example-repos/nestjs-prisma", + "id": "nestjs-prisma", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Mongo with Fastify", + "path": "/showcase/example-repos/mongo-fastify", + "id": "mongo-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Redis with Fastify", + "path": "/showcase/example-repos/redis-fastify", + "id": "redis-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Postgres with Fastify", + "path": "/showcase/example-repos/postgres-fastify", + "id": "postgres-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "PlanetScale with Serverless Fastify", + "path": "/showcase/example-repos/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx with Micro-frontends", + "path": "/showcase/example-repos/mfe", + "id": "mfe", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Benchmarks", + "path": "/showcase/benchmarks", + "id": "benchmarks", + "isExternal": false, + "children": [ + { + "name": "Typescript Batch Mode Compilation", + "path": "/showcase/benchmarks/tsc-batch-mode", + "id": "tsc-batch-mode", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and Caching", + "path": "/showcase/benchmarks/caching", + "id": "caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and DTE", + "path": "/showcase/benchmarks/dte", + "id": "dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Nx with your favorite tech", + "path": "/showcase/example-repos", + "id": "example-repos", + "isExternal": false, + "children": [ + { + "name": "Express", + "path": "/showcase/example-repos/add-express", + "id": "add-express", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Lit", + "path": "/showcase/example-repos/add-lit", + "id": "add-lit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Solid", + "path": "/showcase/example-repos/add-solid", + "id": "add-solid", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Qwik", + "path": "/showcase/example-repos/add-qwik", + "id": "add-qwik", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Rust", + "path": "/showcase/example-repos/add-rust", + "id": "add-rust", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".NET", + "path": "/showcase/example-repos/add-dotnet", + "id": "add-dotnet", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Astro", + "path": "/showcase/example-repos/add-astro", + "id": "add-astro", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Svelte", + "path": "/showcase/example-repos/add-svelte", + "id": "add-svelte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Fastify", + "path": "/showcase/example-repos/add-fastify", + "id": "add-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Apollo GraphQL", + "path": "/showcase/example-repos/apollo-react", + "id": "apollo-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prisma with NestJS", + "path": "/showcase/example-repos/nestjs-prisma", + "id": "nestjs-prisma", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Mongo with Fastify", + "path": "/showcase/example-repos/mongo-fastify", + "id": "mongo-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Redis with Fastify", + "path": "/showcase/example-repos/redis-fastify", + "id": "redis-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Postgres with Fastify", + "path": "/showcase/example-repos/postgres-fastify", + "id": "postgres-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "PlanetScale with Serverless Fastify", + "path": "/showcase/example-repos/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx with Micro-frontends", + "path": "/showcase/example-repos/mfe", + "id": "mfe", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Express", + "path": "/showcase/example-repos/add-express", + "id": "add-express", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Lit", + "path": "/showcase/example-repos/add-lit", + "id": "add-lit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Solid", + "path": "/showcase/example-repos/add-solid", + "id": "add-solid", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Qwik", + "path": "/showcase/example-repos/add-qwik", + "id": "add-qwik", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Rust", + "path": "/showcase/example-repos/add-rust", + "id": "add-rust", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".NET", + "path": "/showcase/example-repos/add-dotnet", + "id": "add-dotnet", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Astro", + "path": "/showcase/example-repos/add-astro", + "id": "add-astro", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Svelte", + "path": "/showcase/example-repos/add-svelte", + "id": "add-svelte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Fastify", + "path": "/showcase/example-repos/add-fastify", + "id": "add-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Apollo GraphQL", + "path": "/showcase/example-repos/apollo-react", + "id": "apollo-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prisma with NestJS", + "path": "/showcase/example-repos/nestjs-prisma", + "id": "nestjs-prisma", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Mongo with Fastify", + "path": "/showcase/example-repos/mongo-fastify", + "id": "mongo-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Redis with Fastify", + "path": "/showcase/example-repos/redis-fastify", + "id": "redis-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Postgres with Fastify", + "path": "/showcase/example-repos/postgres-fastify", + "id": "postgres-fastify", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "PlanetScale with Serverless Fastify", + "path": "/showcase/example-repos/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx with Micro-frontends", + "path": "/showcase/example-repos/mfe", + "id": "mfe", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Benchmarks", + "path": "/showcase/benchmarks", + "id": "benchmarks", + "isExternal": false, + "children": [ + { + "name": "Typescript Batch Mode Compilation", + "path": "/showcase/benchmarks/tsc-batch-mode", + "id": "tsc-batch-mode", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and Caching", + "path": "/showcase/benchmarks/caching", + "id": "caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and DTE", + "path": "/showcase/benchmarks/dte", + "id": "dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Typescript Batch Mode Compilation", + "path": "/showcase/benchmarks/tsc-batch-mode", + "id": "tsc-batch-mode", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and Caching", + "path": "/showcase/benchmarks/caching", + "id": "caching", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Large Repo and DTE", + "path": "/showcase/benchmarks/dte", + "id": "dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reference", + "path": "/reference", + "id": "reference", + "isExternal": false, + "children": [ + { + "name": "Commands", + "path": "/nx-api/nx", + "id": "commands", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Configuration", + "path": "/reference/nx-json", + "id": "nx-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration", + "path": "/reference/project-configuration", + "id": "project-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Inputs and Named Inputs", + "path": "/reference/inputs", + "id": "inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".nxignore", + "path": "/reference/nxignore", + "id": "nxignore", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Environment Variables", + "path": "/reference/environment-variables", + "id": "environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Glossary", + "path": "/reference/glossary", + "id": "glossary", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Commands", + "path": "/nx-api/nx", + "id": "commands", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Configuration", + "path": "/reference/nx-json", + "id": "nx-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration", + "path": "/reference/project-configuration", + "id": "project-configuration", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Inputs and Named Inputs", + "path": "/reference/inputs", + "id": "inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": ".nxignore", + "path": "/reference/nxignore", + "id": "nxignore", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Environment Variables", + "path": "/reference/environment-variables", + "id": "environment-variables", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Glossary", + "path": "/reference/glossary", + "id": "glossary", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Deprecated", + "path": "/deprecated", + "id": "deprecated", + "isExternal": false, + "children": [ + { + "name": "workspace.json", + "path": "/deprecated/workspace-json", + "id": "workspace-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "workspace-lint", + "path": "/deprecated/workspace-lint", + "id": "workspace-lint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "As Provided vs. Derived", + "path": "/deprecated/as-provided-vs-derived", + "id": "as-provided-vs-derived", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Generators", + "path": "/deprecated/workspace-generators", + "id": "workspace-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Executors", + "path": "/deprecated/workspace-executors", + "id": "workspace-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "defaultCollection", + "path": "/deprecated/default-collection", + "id": "default-collection", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "runtimeCacheInputs", + "path": "/deprecated/runtime-cache-inputs", + "id": "runtime-cache-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "cacheableOperations", + "path": "/deprecated/cacheable-operations", + "id": "cacheable-operations", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "npmScope", + "path": "/deprecated/npm-scope", + "id": "npm-scope", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "globalImplicitDependencies", + "path": "/deprecated/global-implicit-dependencies", + "id": "global-implicit-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Schematics and Builders", + "path": "/deprecated/angular-schematics-builders", + "id": "angular-schematics-builders", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook deprecated docs", + "path": "/deprecated/storybook", + "id": "storybook", + "isExternal": false, + "children": [ + { + "name": "Angular: Information about the Storybook targets", + "path": "/deprecated/storybook/angular-storybook-targets", + "id": "angular-storybook-targets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular - The projectBuildConfig", + "path": "/deprecated/storybook/angular-project-build-config", + "id": "angular-project-build-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Storybook Migration to webpackFinal", + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "id": "migrate-webpack-final-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "id": "upgrade-storybook-v6-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "path": "/deprecated/storybook/migrate-webpack-final-react", + "id": "migrate-webpack-final-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "id": "upgrade-storybook-v6-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "v1 Nx Plugin API", + "path": "/deprecated/v1-nx-plugin-api", + "id": "v1-nx-plugin-api", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "workspace.json", + "path": "/deprecated/workspace-json", + "id": "workspace-json", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "workspace-lint", + "path": "/deprecated/workspace-lint", + "id": "workspace-lint", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "As Provided vs. Derived", + "path": "/deprecated/as-provided-vs-derived", + "id": "as-provided-vs-derived", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Generators", + "path": "/deprecated/workspace-generators", + "id": "workspace-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Workspace Executors", + "path": "/deprecated/workspace-executors", + "id": "workspace-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "defaultCollection", + "path": "/deprecated/default-collection", + "id": "default-collection", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "runtimeCacheInputs", + "path": "/deprecated/runtime-cache-inputs", + "id": "runtime-cache-inputs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "cacheableOperations", + "path": "/deprecated/cacheable-operations", + "id": "cacheable-operations", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "npmScope", + "path": "/deprecated/npm-scope", + "id": "npm-scope", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "globalImplicitDependencies", + "path": "/deprecated/global-implicit-dependencies", + "id": "global-implicit-dependencies", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular Schematics and Builders", + "path": "/deprecated/angular-schematics-builders", + "id": "angular-schematics-builders", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook deprecated docs", + "path": "/deprecated/storybook", + "id": "storybook", + "isExternal": false, + "children": [ + { + "name": "Angular: Information about the Storybook targets", + "path": "/deprecated/storybook/angular-storybook-targets", + "id": "angular-storybook-targets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular - The projectBuildConfig", + "path": "/deprecated/storybook/angular-project-build-config", + "id": "angular-project-build-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Storybook Migration to webpackFinal", + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "id": "migrate-webpack-final-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "id": "upgrade-storybook-v6-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "path": "/deprecated/storybook/migrate-webpack-final-react", + "id": "migrate-webpack-final-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "id": "upgrade-storybook-v6-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Angular: Information about the Storybook targets", + "path": "/deprecated/storybook/angular-storybook-targets", + "id": "angular-storybook-targets", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular - The projectBuildConfig", + "path": "/deprecated/storybook/angular-project-build-config", + "id": "angular-project-build-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Storybook Migration to webpackFinal", + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "id": "migrate-webpack-final-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "id": "upgrade-storybook-v6-angular", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "path": "/deprecated/storybook/migrate-webpack-final-react", + "id": "migrate-webpack-final-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "React: Upgrading to Storybook 6", + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "id": "upgrade-storybook-v6-react", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "v1 Nx Plugin API", + "path": "/deprecated/v1-nx-plugin-api", + "id": "v1-nx-plugin-api", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "See Also", + "path": "/see-also", + "id": "see-also", + "isExternal": false, + "children": [ + { + "name": "CI Documentation", + "path": "/ci/intro/ci-with-nx", + "id": "ci", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx Cloud Main Site", + "path": "https://nx.app", + "id": "nx-cloud-main-site", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "--skip-nx-cache flag", + "path": "/nx-api/nx/documents/affected#skip-nx-cache", + "id": "skip-nx-cache-flag", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "tasks-runner-options property", + "path": "/reference/nx-json#tasks-runner-options", + "id": "tasks-runner-options-property", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json reference: inputs and namedInputs", + "path": "/reference/nx-json#inputs-&-namedinputs", + "id": "nxjson-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration reference: inputs and namedInputs", + "path": "/reference/project-configuration#inputs-&-namedinputs", + "id": "project-config-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json generator defaults", + "path": "/reference/nx-json#generators", + "id": "nxjson-generator-defaults", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Site Map", + "path": "/see-also/sitemap", + "id": "sitemap", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "CI Documentation", + "path": "/ci/intro/ci-with-nx", + "id": "ci", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "--skip-nx-cache flag", + "path": "/nx-api/nx/documents/affected#skip-nx-cache", + "id": "skip-nx-cache-flag", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "tasks-runner-options property", + "path": "/reference/nx-json#tasks-runner-options", + "id": "tasks-runner-options-property", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json reference: inputs and namedInputs", + "path": "/reference/nx-json#inputs-&-namedinputs", + "id": "nxjson-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Project Configuration reference: inputs and namedInputs", + "path": "/reference/project-configuration#inputs-&-namedinputs", + "id": "project-config-inputs", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx.json generator defaults", + "path": "/reference/nx-json#generators", + "id": "nxjson-generator-defaults", + "isExternal": true, + "children": [], + "disableCollapsible": false + }, + { + "name": "Site Map", + "path": "/see-also/sitemap", + "id": "sitemap", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ] + }, + { + "id": "extending-nx", + "menu": [ + { + "name": "Intro", + "path": "/extending-nx/intro", + "id": "intro", + "isExternal": false, + "children": [ + { + "name": "Getting Started with Plugins", + "path": "/extending-nx/intro/getting-started", + "id": "getting-started", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Getting Started with Plugins", + "path": "/extending-nx/intro/getting-started", + "id": "getting-started", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "5 Min Tutorials", + "path": "/extending-nx/tutorials", + "id": "tutorials", + "isExternal": false, + "children": [ + { + "name": "Create a Local Plugin", + "path": "/extending-nx/tutorials/create-plugin", + "id": "create-plugin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Maintain a Published Plugin", + "path": "/extending-nx/tutorials/publish-plugin", + "id": "publish-plugin", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Create a Local Plugin", + "path": "/extending-nx/tutorials/create-plugin", + "id": "create-plugin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Maintain a Published Plugin", + "path": "/extending-nx/tutorials/publish-plugin", + "id": "publish-plugin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Recipes", + "path": "/extending-nx/recipes", + "id": "recipes", + "isExternal": false, + "children": [ + { + "name": "Write a Simple Executor", + "path": "/extending-nx/recipes/local-executors", + "id": "local-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compose Executors", + "path": "/extending-nx/recipes/compose-executors", + "id": "compose-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Write a Simple Generator", + "path": "/extending-nx/recipes/local-generators", + "id": "local-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compose Generators", + "path": "/extending-nx/recipes/composing-generators", + "id": "composing-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Provide Options for Generators", + "path": "/extending-nx/recipes/generator-options", + "id": "generator-options", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Create Files", + "path": "/extending-nx/recipes/creating-files", + "id": "creating-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Modify Files", + "path": "/extending-nx/recipes/modifying-files", + "id": "modifying-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Write a Migration", + "path": "/extending-nx/recipes/migration-generators", + "id": "migration-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Create a Preset", + "path": "/extending-nx/recipes/create-preset", + "id": "create-preset", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Create an Install Package", + "path": "/extending-nx/recipes/create-install-package", + "id": "create-install-package", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Modify the Project Graph", + "path": "/extending-nx/recipes/project-graph-plugins", + "id": "project-graph-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Write a Simple Executor", + "path": "/extending-nx/recipes/local-executors", + "id": "local-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compose Executors", + "path": "/extending-nx/recipes/compose-executors", + "id": "compose-executors", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Write a Simple Generator", + "path": "/extending-nx/recipes/local-generators", + "id": "local-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Compose Generators", + "path": "/extending-nx/recipes/composing-generators", + "id": "composing-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Provide Options for Generators", + "path": "/extending-nx/recipes/generator-options", + "id": "generator-options", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Create Files", + "path": "/extending-nx/recipes/creating-files", + "id": "creating-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Modify Files", + "path": "/extending-nx/recipes/modifying-files", + "id": "modifying-files", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Write a Migration", + "path": "/extending-nx/recipes/migration-generators", + "id": "migration-generators", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Create a Preset", + "path": "/extending-nx/recipes/create-preset", + "id": "create-preset", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Create an Install Package", + "path": "/extending-nx/recipes/create-install-package", + "id": "create-install-package", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Modify the Project Graph", + "path": "/extending-nx/recipes/project-graph-plugins", + "id": "project-graph-plugins", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ] + }, + { + "id": "ci", + "menu": [ + { + "name": "Intro", + "path": "/ci/intro", + "id": "intro", + "isExternal": false, + "children": [ + { + "name": "CI with Nx", + "path": "/ci/intro/ci-with-nx", + "id": "ci-with-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tutorials", + "path": "/ci/intro/tutorials", + "id": "tutorials", + "isExternal": false, + "children": [ + { + "name": "Circle CI with Nx", + "path": "/ci/intro/tutorials/circle", + "id": "circle", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitHub Actions with Nx", + "path": "/ci/intro/tutorials/github-actions", + "id": "github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "CI with Nx", + "path": "/ci/intro/ci-with-nx", + "id": "ci-with-nx", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Tutorials", + "path": "/ci/intro/tutorials", + "id": "tutorials", + "isExternal": false, + "children": [ + { + "name": "Circle CI with Nx", + "path": "/ci/intro/tutorials/circle", + "id": "circle", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitHub Actions with Nx", + "path": "/ci/intro/tutorials/github-actions", + "id": "github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Circle CI with Nx", + "path": "/ci/intro/tutorials/circle", + "id": "circle", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitHub Actions with Nx", + "path": "/ci/intro/tutorials/github-actions", + "id": "github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Features", + "path": "/ci/features", + "id": "features", + "isExternal": false, + "children": [ + { + "name": "Run Only Tasks Affected by a PR", + "path": "/ci/features/affected", + "id": "affected", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Remote Caching (Nx Replay)", + "path": "/ci/features/remote-cache", + "id": "remote-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution (Nx Agents)", + "path": "/ci/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dynamically Allocate Agents", + "path": "/ci/features/dynamic-agents", + "id": "dynamic-agents", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Split E2E Tasks (TestAtomizer)", + "path": "/ci/features/split-e2e-tasks", + "id": "split-e2e-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify and Re-run Flaky Tasks", + "path": "/ci/features/flaky-tasks", + "id": "flaky-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/ci/features/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Run Only Tasks Affected by a PR", + "path": "/ci/features/affected", + "id": "affected", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Use Remote Caching (Nx Replay)", + "path": "/ci/features/remote-cache", + "id": "remote-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution (Nx Agents)", + "path": "/ci/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Dynamically Allocate Agents", + "path": "/ci/features/dynamic-agents", + "id": "dynamic-agents", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Automatically Split E2E Tasks (TestAtomizer)", + "path": "/ci/features/split-e2e-tasks", + "id": "split-e2e-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Identify and Re-run Flaky Tasks", + "path": "/ci/features/flaky-tasks", + "id": "flaky-tasks", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/ci/features/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Concepts", + "path": "/ci/concepts", + "id": "concepts", + "isExternal": false, + "children": [ + { + "name": "The Building Blocks of Fast CI", + "path": "/ci/concepts/building-blocks-fast-ci", + "id": "building-blocks-fast-ci", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reduce Wasted Time in CI", + "path": "/ci/concepts/reduce-waste", + "id": "reduce-waste", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Parallelization and Distribution", + "path": "/ci/concepts/parallelization-distribution", + "id": "parallelization-distribution", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cache Security", + "path": "/ci/concepts/cache-security", + "id": "cache-security", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "The Building Blocks of Fast CI", + "path": "/ci/concepts/building-blocks-fast-ci", + "id": "building-blocks-fast-ci", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reduce Wasted Time in CI", + "path": "/ci/concepts/reduce-waste", + "id": "reduce-waste", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Parallelization and Distribution", + "path": "/ci/concepts/parallelization-distribution", + "id": "parallelization-distribution", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Cache Security", + "path": "/ci/concepts/cache-security", + "id": "cache-security", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Recipes", + "path": "/ci/recipes", + "id": "recipes", + "isExternal": false, + "children": [ + { + "name": "Set Up CI", + "path": "/ci/recipes/set-up", + "id": "set-up", + "isExternal": false, + "children": [ + { + "name": "Connect Nx Cloud", + "path": "/ci/recipes/set-up/connect-to-cloud", + "id": "connect-to-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Azure Pipelines", + "path": "/ci/recipes/set-up/monorepo-ci-azure", + "id": "monorepo-ci-azure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up CircleCI", + "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", + "id": "monorepo-ci-circle-ci", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitHub Actions", + "path": "/ci/recipes/set-up/monorepo-ci-github-actions", + "id": "monorepo-ci-github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Jenkins", + "path": "/ci/recipes/set-up/monorepo-ci-jenkins", + "id": "monorepo-ci-jenkins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitLab", + "path": "/ci/recipes/set-up/monorepo-ci-gitlab", + "id": "monorepo-ci-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Bitbucket", + "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", + "id": "monorepo-ci-bitbucket-pipelines", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Security", + "path": "/ci/recipes/security", + "id": "security", + "isExternal": false, + "children": [ + { + "name": "Authenticate with Google Identity", + "path": "/ci/recipes/security/google-auth", + "id": "google-auth", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Access Tokens", + "path": "/ci/recipes/security/access-tokens", + "id": "access-tokens", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable End to End Encryption", + "path": "/ci/recipes/security/encryption", + "id": "encryption", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Source Control Integration", + "path": "/ci/recipes/source-control-integration", + "id": "source-control-integration", + "isExternal": false, + "children": [ + { + "name": "Enable GitHub PR Integration", + "path": "/ci/recipes/source-control-integration/github", + "id": "github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable Bitbucket Cloud PR Integration", + "path": "/ci/recipes/source-control-integration/bitbucket-cloud", + "id": "bitbucket-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable GitLab MR Integration", + "path": "/ci/recipes/source-control-integration/gitlab", + "id": "gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Enterprise", + "path": "/ci/recipes/enterprise", + "id": "enterprise", + "isExternal": false, + "children": [ + { + "name": "On-Premise", + "path": "/ci/recipes/enterprise/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [ + { + "name": "Authenticate with a Single Admin", + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Custom Distributed Task Execution", + "path": "/ci/recipes/enterprise/dte", + "id": "dte", + "isExternal": false, + "children": [ + { + "name": "GitHub Actions Custom DTE", + "path": "/ci/recipes/enterprise/dte/github-dte", + "id": "github-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Circle CI Custom DTE", + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "id": "circle-ci-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Azure Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/azure-dte", + "id": "azure-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Bitbucket Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "id": "bitbucket-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitLab Custom DTE", + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "id": "gitlab-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Jenkins Custom DTE", + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "id": "jenkins-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/ci/recipes/troubleshooting", + "id": "troubleshooting", + "isExternal": false, + "children": [ + { + "name": "CI Execution Failed", + "path": "/ci/recipes/troubleshooting/ci-execution-failed", + "id": "ci-execution-failed", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Other", + "path": "/ci/recipes/other", + "id": "other", + "isExternal": false, + "children": [ + { + "name": "Record Non-Nx Commands", + "path": "/ci/recipes/other/record-commands", + "id": "record-commands", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prepare applications for deployment via CI", + "path": "/ci/recipes/other/ci-deployment", + "id": "ci-deployment", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Set Up CI", + "path": "/ci/recipes/set-up", + "id": "set-up", + "isExternal": false, + "children": [ + { + "name": "Connect Nx Cloud", + "path": "/ci/recipes/set-up/connect-to-cloud", + "id": "connect-to-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Azure Pipelines", + "path": "/ci/recipes/set-up/monorepo-ci-azure", + "id": "monorepo-ci-azure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up CircleCI", + "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", + "id": "monorepo-ci-circle-ci", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitHub Actions", + "path": "/ci/recipes/set-up/monorepo-ci-github-actions", + "id": "monorepo-ci-github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Jenkins", + "path": "/ci/recipes/set-up/monorepo-ci-jenkins", + "id": "monorepo-ci-jenkins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitLab", + "path": "/ci/recipes/set-up/monorepo-ci-gitlab", + "id": "monorepo-ci-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Bitbucket", + "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", + "id": "monorepo-ci-bitbucket-pipelines", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Connect Nx Cloud", + "path": "/ci/recipes/set-up/connect-to-cloud", + "id": "connect-to-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Azure Pipelines", + "path": "/ci/recipes/set-up/monorepo-ci-azure", + "id": "monorepo-ci-azure", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up CircleCI", + "path": "/ci/recipes/set-up/monorepo-ci-circle-ci", + "id": "monorepo-ci-circle-ci", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitHub Actions", + "path": "/ci/recipes/set-up/monorepo-ci-github-actions", + "id": "monorepo-ci-github-actions", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Jenkins", + "path": "/ci/recipes/set-up/monorepo-ci-jenkins", + "id": "monorepo-ci-jenkins", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up GitLab", + "path": "/ci/recipes/set-up/monorepo-ci-gitlab", + "id": "monorepo-ci-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Setting up Bitbucket", + "path": "/ci/recipes/set-up/monorepo-ci-bitbucket-pipelines", + "id": "monorepo-ci-bitbucket-pipelines", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Security", + "path": "/ci/recipes/security", + "id": "security", + "isExternal": false, + "children": [ + { + "name": "Authenticate with Google Identity", + "path": "/ci/recipes/security/google-auth", + "id": "google-auth", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Access Tokens", + "path": "/ci/recipes/security/access-tokens", + "id": "access-tokens", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable End to End Encryption", + "path": "/ci/recipes/security/encryption", + "id": "encryption", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Authenticate with Google Identity", + "path": "/ci/recipes/security/google-auth", + "id": "google-auth", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Access Tokens", + "path": "/ci/recipes/security/access-tokens", + "id": "access-tokens", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable End to End Encryption", + "path": "/ci/recipes/security/encryption", + "id": "encryption", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Source Control Integration", + "path": "/ci/recipes/source-control-integration", + "id": "source-control-integration", + "isExternal": false, + "children": [ + { + "name": "Enable GitHub PR Integration", + "path": "/ci/recipes/source-control-integration/github", + "id": "github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable Bitbucket Cloud PR Integration", + "path": "/ci/recipes/source-control-integration/bitbucket-cloud", + "id": "bitbucket-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable GitLab MR Integration", + "path": "/ci/recipes/source-control-integration/gitlab", + "id": "gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Enable GitHub PR Integration", + "path": "/ci/recipes/source-control-integration/github", + "id": "github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable Bitbucket Cloud PR Integration", + "path": "/ci/recipes/source-control-integration/bitbucket-cloud", + "id": "bitbucket-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enable GitLab MR Integration", + "path": "/ci/recipes/source-control-integration/gitlab", + "id": "gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Enterprise", + "path": "/ci/recipes/enterprise", + "id": "enterprise", + "isExternal": false, + "children": [ + { + "name": "On-Premise", + "path": "/ci/recipes/enterprise/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [ + { + "name": "Authenticate with a Single Admin", + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Custom Distributed Task Execution", + "path": "/ci/recipes/enterprise/dte", + "id": "dte", + "isExternal": false, + "children": [ + { + "name": "GitHub Actions Custom DTE", + "path": "/ci/recipes/enterprise/dte/github-dte", + "id": "github-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Circle CI Custom DTE", + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "id": "circle-ci-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Azure Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/azure-dte", + "id": "azure-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Bitbucket Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "id": "bitbucket-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitLab Custom DTE", + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "id": "gitlab-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Jenkins Custom DTE", + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "id": "jenkins-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "On-Premise", + "path": "/ci/recipes/enterprise/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [ + { + "name": "Authenticate with a Single Admin", + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Authenticate with a Single Admin", + "path": "/ci/recipes/enterprise/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/ci/recipes/enterprise/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/ci/recipes/enterprise/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/ci/recipes/enterprise/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/ci/recipes/enterprise/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/ci/recipes/enterprise/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/ci/recipes/enterprise/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/ci/recipes/enterprise/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Custom Distributed Task Execution", + "path": "/ci/recipes/enterprise/dte", + "id": "dte", + "isExternal": false, + "children": [ + { + "name": "GitHub Actions Custom DTE", + "path": "/ci/recipes/enterprise/dte/github-dte", + "id": "github-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Circle CI Custom DTE", + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "id": "circle-ci-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Azure Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/azure-dte", + "id": "azure-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Bitbucket Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "id": "bitbucket-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitLab Custom DTE", + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "id": "gitlab-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Jenkins Custom DTE", + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "id": "jenkins-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "GitHub Actions Custom DTE", + "path": "/ci/recipes/enterprise/dte/github-dte", + "id": "github-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Circle CI Custom DTE", + "path": "/ci/recipes/enterprise/dte/circle-ci-dte", + "id": "circle-ci-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Azure Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/azure-dte", + "id": "azure-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Bitbucket Pipelines Custom DTE", + "path": "/ci/recipes/enterprise/dte/bitbucket-dte", + "id": "bitbucket-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "GitLab Custom DTE", + "path": "/ci/recipes/enterprise/dte/gitlab-dte", + "id": "gitlab-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Jenkins Custom DTE", + "path": "/ci/recipes/enterprise/dte/jenkins-dte", + "id": "jenkins-dte", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Troubleshooting", + "path": "/ci/recipes/troubleshooting", + "id": "troubleshooting", + "isExternal": false, + "children": [ + { + "name": "CI Execution Failed", + "path": "/ci/recipes/troubleshooting/ci-execution-failed", + "id": "ci-execution-failed", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "CI Execution Failed", + "path": "/ci/recipes/troubleshooting/ci-execution-failed", + "id": "ci-execution-failed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Other", + "path": "/ci/recipes/other", + "id": "other", + "isExternal": false, + "children": [ + { + "name": "Record Non-Nx Commands", + "path": "/ci/recipes/other/record-commands", + "id": "record-commands", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prepare applications for deployment via CI", + "path": "/ci/recipes/other/ci-deployment", + "id": "ci-deployment", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Record Non-Nx Commands", + "path": "/ci/recipes/other/record-commands", + "id": "record-commands", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Prepare applications for deployment via CI", + "path": "/ci/recipes/other/ci-deployment", + "id": "ci-deployment", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Reference", + "path": "/ci/reference", + "id": "reference", + "isExternal": false, + "children": [ + { + "name": "Configuration Options", + "path": "/ci/reference/config", + "id": "config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx-cloud CLI", + "path": "/ci/reference/nx-cloud-cli", + "id": "nx-cloud-cli", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Launch Templates", + "path": "/ci/reference/launch-templates", + "id": "launch-templates", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Environment Variables", + "path": "/ci/reference/env-vars", + "id": "env-vars", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Server API Reference", + "path": "/ci/reference/server-api", + "id": "server-api", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Release Notes", + "path": "/ci/reference/release-notes", + "id": "release-notes", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Configuration Options", + "path": "/ci/reference/config", + "id": "config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "nx-cloud CLI", + "path": "/ci/reference/nx-cloud-cli", + "id": "nx-cloud-cli", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Launch Templates", + "path": "/ci/reference/launch-templates", + "id": "launch-templates", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Environment Variables", + "path": "/ci/reference/env-vars", + "id": "env-vars", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Server API Reference", + "path": "/ci/reference/server-api", + "id": "server-api", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Release Notes", + "path": "/ci/reference/release-notes", + "id": "release-notes", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ] + }, + { + "id": "nx-api", + "menu": [ + { + "id": "angular", + "path": "/nx-api/angular", + "name": "angular", + "children": [ + { + "id": "documents", + "path": "/nx-api/angular/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/angular/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Angular and Nx Version Matrix", + "path": "/nx-api/angular/documents/angular-nx-version-matrix", + "id": "angular-nx-version-matrix", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/angular/executors", + "name": "executors", + "children": [ + { + "id": "delegate-build", + "path": "/nx-api/angular/executors/delegate-build", + "name": "delegate-build", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ng-packagr-lite", + "path": "/nx-api/angular/executors/ng-packagr-lite", + "name": "ng-packagr-lite", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "package", + "path": "/nx-api/angular/executors/package", + "name": "package", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "browser-esbuild", + "path": "/nx-api/angular/executors/browser-esbuild", + "name": "browser-esbuild", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "module-federation-dev-server", + "path": "/nx-api/angular/executors/module-federation-dev-server", + "name": "module-federation-dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/angular/executors/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "extract-i18n", + "path": "/nx-api/angular/executors/extract-i18n", + "name": "extract-i18n", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "webpack-browser", + "path": "/nx-api/angular/executors/webpack-browser", + "name": "webpack-browser", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "dev-server", + "path": "/nx-api/angular/executors/dev-server", + "name": "dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "webpack-server", + "path": "/nx-api/angular/executors/webpack-server", + "name": "webpack-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "module-federation-dev-ssr", + "path": "/nx-api/angular/executors/module-federation-dev-ssr", + "name": "module-federation-dev-ssr", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/angular/generators", + "name": "generators", + "children": [ + { + "id": "add-linting", + "path": "/nx-api/angular/generators/add-linting", + "name": "add-linting", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/angular/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component", + "path": "/nx-api/angular/generators/component", + "name": "component", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-cypress-spec", + "path": "/nx-api/angular/generators/component-cypress-spec", + "name": "component-cypress-spec", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-story", + "path": "/nx-api/angular/generators/component-story", + "name": "component-story", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-test", + "path": "/nx-api/angular/generators/component-test", + "name": "component-test", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "convert-to-application-executor", + "path": "/nx-api/angular/generators/convert-to-application-executor", + "name": "convert-to-application-executor", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "directive", + "path": "/nx-api/angular/generators/directive", + "name": "directive", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "federate-module", + "path": "/nx-api/angular/generators/federate-module", + "name": "federate-module", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "init", + "path": "/nx-api/angular/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/angular/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library-secondary-entry-point", + "path": "/nx-api/angular/generators/library-secondary-entry-point", + "name": "library-secondary-entry-point", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "remote", + "path": "/nx-api/angular/generators/remote", + "name": "remote", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "move", + "path": "/nx-api/angular/generators/move", + "name": "move", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "convert-to-with-mf", + "path": "/nx-api/angular/generators/convert-to-with-mf", + "name": "convert-to-with-mf", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "host", + "path": "/nx-api/angular/generators/host", + "name": "host", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ng-add", + "path": "/nx-api/angular/generators/ng-add", + "name": "ng-add", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ngrx", + "path": "/nx-api/angular/generators/ngrx", + "name": "ngrx", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ngrx-feature-store", + "path": "/nx-api/angular/generators/ngrx-feature-store", + "name": "ngrx-feature-store", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ngrx-root-store", + "path": "/nx-api/angular/generators/ngrx-root-store", + "name": "ngrx-root-store", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "pipe", + "path": "/nx-api/angular/generators/pipe", + "name": "pipe", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "scam-to-standalone", + "path": "/nx-api/angular/generators/scam-to-standalone", + "name": "scam-to-standalone", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "scam", + "path": "/nx-api/angular/generators/scam", + "name": "scam", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "scam-directive", + "path": "/nx-api/angular/generators/scam-directive", + "name": "scam-directive", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "scam-pipe", + "path": "/nx-api/angular/generators/scam-pipe", + "name": "scam-pipe", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-mf", + "path": "/nx-api/angular/generators/setup-mf", + "name": "setup-mf", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-ssr", + "path": "/nx-api/angular/generators/setup-ssr", + "name": "setup-ssr", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-tailwind", + "path": "/nx-api/angular/generators/setup-tailwind", + "name": "setup-tailwind", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "stories", + "path": "/nx-api/angular/generators/stories", + "name": "stories", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook-configuration", + "path": "/nx-api/angular/generators/storybook-configuration", + "name": "storybook-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress-component-configuration", + "path": "/nx-api/angular/generators/cypress-component-configuration", + "name": "cypress-component-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "web-worker", + "path": "/nx-api/angular/generators/web-worker", + "name": "web-worker", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "create-nx-plugin", + "path": "/nx-api/create-nx-plugin", + "name": "create-nx-plugin", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "create-nx-workspace", + "path": "/nx-api/create-nx-workspace", + "name": "create-nx-workspace", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress", + "path": "/nx-api/cypress", + "name": "cypress", + "children": [ + { + "id": "documents", + "path": "/nx-api/cypress/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/cypress/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/cypress/executors", + "name": "executors", + "children": [ + { + "id": "cypress", + "path": "/nx-api/cypress/executors/cypress", + "name": "cypress", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/cypress/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/cypress/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress-project", + "path": "/nx-api/cypress/generators/cypress-project", + "name": "cypress-project", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/cypress/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-configuration", + "path": "/nx-api/cypress/generators/component-configuration", + "name": "component-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "migrate-to-cypress-11", + "path": "/nx-api/cypress/generators/migrate-to-cypress-11", + "name": "migrate-to-cypress-11", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "detox", + "path": "/nx-api/detox", + "name": "detox", + "children": [ + { + "id": "documents", + "path": "/nx-api/detox/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/detox/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/detox/executors", + "name": "executors", + "children": [ + { + "id": "build", + "path": "/nx-api/detox/executors/build", + "name": "build", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "test", + "path": "/nx-api/detox/executors/test", + "name": "test", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/detox/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/detox/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/detox/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "devkit", + "path": "/nx-api/devkit", + "name": "devkit", + "children": [ + { + "id": "documents", + "path": "/nx-api/devkit/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/devkit/documents/nx_devkit", + "id": "nx_devkit", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Ng CLI Adapter", + "path": "/nx-api/devkit/documents/ngcli_adapter", + "id": "ngcli_adapter", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "esbuild", + "path": "/nx-api/esbuild", + "name": "esbuild", + "children": [ + { + "id": "documents", + "path": "/nx-api/esbuild/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/esbuild/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/esbuild/executors", + "name": "executors", + "children": [ + { + "id": "esbuild", + "path": "/nx-api/esbuild/executors/esbuild", + "name": "esbuild", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/esbuild/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/esbuild/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/esbuild/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "eslint", + "path": "/nx-api/eslint", + "name": "eslint", + "children": [ + { + "id": "documents", + "path": "/nx-api/eslint/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/eslint/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/eslint/executors", + "name": "executors", + "children": [ + { + "id": "lint", + "path": "/nx-api/eslint/executors/lint", + "name": "lint", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/eslint/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/eslint/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "workspace-rules-project", + "path": "/nx-api/eslint/generators/workspace-rules-project", + "name": "workspace-rules-project", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "workspace-rule", + "path": "/nx-api/eslint/generators/workspace-rule", + "name": "workspace-rule", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "convert-to-flat-config", + "path": "/nx-api/eslint/generators/convert-to-flat-config", + "name": "convert-to-flat-config", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "eslint-plugin", + "path": "/nx-api/eslint-plugin", + "name": "eslint-plugin", + "children": [ + { + "id": "documents", + "path": "/nx-api/eslint-plugin/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/eslint-plugin/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "The `enforce-module-boundaries` rule", + "path": "/nx-api/eslint-plugin/documents/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "The `dependency-checks` rule", + "path": "/nx-api/eslint-plugin/documents/dependency-checks", + "id": "dependency-checks", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "expo", + "path": "/nx-api/expo", + "name": "expo", + "children": [ + { + "id": "documents", + "path": "/nx-api/expo/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/expo/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/expo/executors", + "name": "executors", + "children": [ + { + "id": "update", + "path": "/nx-api/expo/executors/update", + "name": "update", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build", + "path": "/nx-api/expo/executors/build", + "name": "build", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build-list", + "path": "/nx-api/expo/executors/build-list", + "name": "build-list", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "run", + "path": "/nx-api/expo/executors/run", + "name": "run", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "start", + "path": "/nx-api/expo/executors/start", + "name": "start", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "sync-deps", + "path": "/nx-api/expo/executors/sync-deps", + "name": "sync-deps", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ensure-symlink", + "path": "/nx-api/expo/executors/ensure-symlink", + "name": "ensure-symlink", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "prebuild", + "path": "/nx-api/expo/executors/prebuild", + "name": "prebuild", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "install", + "path": "/nx-api/expo/executors/install", + "name": "install", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "export", + "path": "/nx-api/expo/executors/export", + "name": "export", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "submit", + "path": "/nx-api/expo/executors/submit", + "name": "submit", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "serve", + "path": "/nx-api/expo/executors/serve", + "name": "serve", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/expo/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/expo/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/expo/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/expo/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component", + "path": "/nx-api/expo/generators/component", + "name": "component", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "express", + "path": "/nx-api/express", + "name": "express", + "children": [ + { + "id": "documents", + "path": "/nx-api/express/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/express/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/express/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/express/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/express/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "jest", + "path": "/nx-api/jest", + "name": "jest", + "children": [ + { + "id": "documents", + "path": "/nx-api/jest/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/jest/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/jest/executors", + "name": "executors", + "children": [ + { + "id": "jest", + "path": "/nx-api/jest/executors/jest", + "name": "jest", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/jest/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/jest/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/jest/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "js", + "path": "/nx-api/js", + "name": "js", + "children": [ + { + "id": "documents", + "path": "/nx-api/js/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/js/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/js/executors", + "name": "executors", + "children": [ + { + "id": "tsc", + "path": "/nx-api/js/executors/tsc", + "name": "tsc", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "swc", + "path": "/nx-api/js/executors/swc", + "name": "swc", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "node", + "path": "/nx-api/js/executors/node", + "name": "node", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "release-publish", + "path": "/nx-api/js/executors/release-publish", + "name": "release-publish", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "verdaccio", + "path": "/nx-api/js/executors/verdaccio", + "name": "verdaccio", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/js/generators", + "name": "generators", + "children": [ + { + "id": "library", + "path": "/nx-api/js/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "init", + "path": "/nx-api/js/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "convert-to-swc", + "path": "/nx-api/js/generators/convert-to-swc", + "name": "convert-to-swc", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "release-version", + "path": "/nx-api/js/generators/release-version", + "name": "release-version", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-verdaccio", + "path": "/nx-api/js/generators/setup-verdaccio", + "name": "setup-verdaccio", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-build", + "path": "/nx-api/js/generators/setup-build", + "name": "setup-build", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "nest", + "path": "/nx-api/nest", + "name": "nest", + "children": [ + { + "id": "documents", + "path": "/nx-api/nest/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/nest/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/nest/generators", + "name": "generators", + "children": [ + { + "id": "application", + "path": "/nx-api/nest/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "init", + "path": "/nx-api/nest/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/nest/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "class", + "path": "/nx-api/nest/generators/class", + "name": "class", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "controller", + "path": "/nx-api/nest/generators/controller", + "name": "controller", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "decorator", + "path": "/nx-api/nest/generators/decorator", + "name": "decorator", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "filter", + "path": "/nx-api/nest/generators/filter", + "name": "filter", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "gateway", + "path": "/nx-api/nest/generators/gateway", + "name": "gateway", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "guard", + "path": "/nx-api/nest/generators/guard", + "name": "guard", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "interceptor", + "path": "/nx-api/nest/generators/interceptor", + "name": "interceptor", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "interface", + "path": "/nx-api/nest/generators/interface", + "name": "interface", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "middleware", + "path": "/nx-api/nest/generators/middleware", + "name": "middleware", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "module", + "path": "/nx-api/nest/generators/module", + "name": "module", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "pipe", + "path": "/nx-api/nest/generators/pipe", + "name": "pipe", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "provider", + "path": "/nx-api/nest/generators/provider", + "name": "provider", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "resolver", + "path": "/nx-api/nest/generators/resolver", + "name": "resolver", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "resource", + "path": "/nx-api/nest/generators/resource", + "name": "resource", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "service", + "path": "/nx-api/nest/generators/service", + "name": "service", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "next", + "path": "/nx-api/next", + "name": "next", + "children": [ + { + "id": "documents", + "path": "/nx-api/next/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/next/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/next/executors", + "name": "executors", + "children": [ + { + "id": "build", + "path": "/nx-api/next/executors/build", + "name": "build", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "server", + "path": "/nx-api/next/executors/server", + "name": "server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "export", + "path": "/nx-api/next/executors/export", + "name": "export", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/next/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/next/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/next/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "page", + "path": "/nx-api/next/generators/page", + "name": "page", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component", + "path": "/nx-api/next/generators/component", + "name": "component", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/next/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "custom-server", + "path": "/nx-api/next/generators/custom-server", + "name": "custom-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress-component-configuration", + "path": "/nx-api/next/generators/cypress-component-configuration", + "name": "cypress-component-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "node", + "path": "/nx-api/node", + "name": "node", + "children": [ + { + "id": "documents", + "path": "/nx-api/node/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/node/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/node/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/node/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/node/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/node/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-docker", + "path": "/nx-api/node/generators/setup-docker", + "name": "setup-docker", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "nuxt", + "path": "/nx-api/nuxt", + "name": "nuxt", + "children": [ + { + "id": "documents", + "path": "/nx-api/nuxt/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/nuxt/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/nuxt/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/nuxt/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/nuxt/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook-configuration", + "path": "/nx-api/nuxt/generators/storybook-configuration", + "name": "storybook-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "nx", + "path": "/nx-api/nx", + "name": "nx", + "children": [ + { + "id": "documents", + "path": "/nx-api/nx/documents", + "name": "documents", + "children": [ + { + "name": "create-nx-workspace", + "path": "/nx-api/nx/documents/create-nx-workspace", + "id": "create-nx-workspace", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "init", + "path": "/nx-api/nx/documents/init", + "id": "init", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "generate", + "path": "/nx-api/nx/documents/generate", + "id": "generate", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "run", + "path": "/nx-api/nx/documents/run", + "id": "run", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "daemon", + "path": "/nx-api/nx/documents/daemon", + "id": "daemon", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "graph", + "path": "/nx-api/nx/documents/dep-graph", + "id": "dep-graph", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "run-many", + "path": "/nx-api/nx/documents/run-many", + "id": "run-many", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "affected", + "path": "/nx-api/nx/documents/affected", + "id": "affected", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "affected:graph", + "path": "/nx-api/nx/documents/affected-dep-graph", + "id": "affected-dep-graph", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "print-affected", + "path": "/nx-api/nx/documents/print-affected", + "id": "print-affected", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "format:check", + "path": "/nx-api/nx/documents/format-check", + "id": "format-check", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "format:write", + "path": "/nx-api/nx/documents/format-write", + "id": "format-write", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "migrate", + "path": "/nx-api/nx/documents/migrate", + "id": "migrate", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "report", + "path": "/nx-api/nx/documents/report", + "id": "report", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "list", + "path": "/nx-api/nx/documents/list", + "id": "list", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "connect-to-nx-cloud", + "path": "/nx-api/nx/documents/connect-to-nx-cloud", + "id": "connect-to-nx-cloud", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "reset", + "path": "/nx-api/nx/documents/reset", + "id": "reset", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "repair", + "path": "/nx-api/nx/documents/repair", + "id": "repair", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "exec", + "path": "/nx-api/nx/documents/exec", + "id": "exec", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "watch", + "path": "/nx-api/nx/documents/watch", + "id": "watch", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "show", + "path": "/nx-api/nx/documents/show", + "id": "show", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "view-logs", + "path": "/nx-api/nx/documents/view-logs", + "id": "view-logs", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "release", + "path": "/nx-api/nx/documents/release", + "id": "release", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "add", + "path": "/nx-api/nx/documents/add", + "id": "add", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/nx/executors", + "name": "executors", + "children": [ + { + "id": "noop", + "path": "/nx-api/nx/executors/noop", + "name": "noop", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "run-commands", + "path": "/nx-api/nx/executors/run-commands", + "name": "run-commands", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "run-script", + "path": "/nx-api/nx/executors/run-script", + "name": "run-script", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/nx/generators", + "name": "generators", + "children": [ + { + "id": "connect-to-nx-cloud", + "path": "/nx-api/nx/generators/connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "playwright", + "path": "/nx-api/playwright", + "name": "playwright", + "children": [ + { + "id": "documents", + "path": "/nx-api/playwright/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/playwright/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/playwright/executors", + "name": "executors", + "children": [ + { + "id": "playwright", + "path": "/nx-api/playwright/executors/playwright", + "name": "playwright", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/playwright/generators", + "name": "generators", + "children": [ + { + "id": "configuration", + "path": "/nx-api/playwright/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "init", + "path": "/nx-api/playwright/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "plugin", + "path": "/nx-api/plugin", + "name": "plugin", + "children": [ + { + "id": "documents", + "path": "/nx-api/plugin/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/plugin/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/plugin/executors", + "name": "executors", + "children": [ + { + "id": "e2e", + "path": "/nx-api/plugin/executors/e2e", + "name": "e2e", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/plugin/generators", + "name": "generators", + "children": [ + { + "id": "plugin", + "path": "/nx-api/plugin/generators/plugin", + "name": "plugin", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "create-package", + "path": "/nx-api/plugin/generators/create-package", + "name": "create-package", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "e2e-project", + "path": "/nx-api/plugin/generators/e2e-project", + "name": "e2e-project", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "migration", + "path": "/nx-api/plugin/generators/migration", + "name": "migration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generator", + "path": "/nx-api/plugin/generators/generator", + "name": "generator", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executor", + "path": "/nx-api/plugin/generators/executor", + "name": "executor", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "plugin-lint-checks", + "path": "/nx-api/plugin/generators/plugin-lint-checks", + "name": "plugin-lint-checks", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "preset", + "path": "/nx-api/plugin/generators/preset", + "name": "preset", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "react", + "path": "/nx-api/react", + "name": "react", + "children": [ + { + "id": "documents", + "path": "/nx-api/react/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/react/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/react/executors", + "name": "executors", + "children": [ + { + "id": "module-federation-dev-server", + "path": "/nx-api/react/executors/module-federation-dev-server", + "name": "module-federation-dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "module-federation-ssr-dev-server", + "path": "/nx-api/react/executors/module-federation-ssr-dev-server", + "name": "module-federation-ssr-dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/react/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/react/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/react/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/react/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component", + "path": "/nx-api/react/generators/component", + "name": "component", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "redux", + "path": "/nx-api/react/generators/redux", + "name": "redux", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook-configuration", + "path": "/nx-api/react/generators/storybook-configuration", + "name": "storybook-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-story", + "path": "/nx-api/react/generators/component-story", + "name": "component-story", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "stories", + "path": "/nx-api/react/generators/stories", + "name": "stories", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-cypress-spec", + "path": "/nx-api/react/generators/component-cypress-spec", + "name": "component-cypress-spec", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "hook", + "path": "/nx-api/react/generators/hook", + "name": "hook", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "host", + "path": "/nx-api/react/generators/host", + "name": "host", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "remote", + "path": "/nx-api/react/generators/remote", + "name": "remote", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress-component-configuration", + "path": "/nx-api/react/generators/cypress-component-configuration", + "name": "cypress-component-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-test", + "path": "/nx-api/react/generators/component-test", + "name": "component-test", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-tailwind", + "path": "/nx-api/react/generators/setup-tailwind", + "name": "setup-tailwind", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-ssr", + "path": "/nx-api/react/generators/setup-ssr", + "name": "setup-ssr", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "federate-module", + "path": "/nx-api/react/generators/federate-module", + "name": "federate-module", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "react-native", + "path": "/nx-api/react-native", + "name": "react-native", + "children": [ + { + "id": "documents", + "path": "/nx-api/react-native/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/react-native/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/react-native/executors", + "name": "executors", + "children": [ + { + "id": "run-android", + "path": "/nx-api/react-native/executors/run-android", + "name": "run-android", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "run-ios", + "path": "/nx-api/react-native/executors/run-ios", + "name": "run-ios", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "bundle", + "path": "/nx-api/react-native/executors/bundle", + "name": "bundle", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build-android", + "path": "/nx-api/react-native/executors/build-android", + "name": "build-android", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build-ios", + "path": "/nx-api/react-native/executors/build-ios", + "name": "build-ios", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "start", + "path": "/nx-api/react-native/executors/start", + "name": "start", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "sync-deps", + "path": "/nx-api/react-native/executors/sync-deps", + "name": "sync-deps", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ensure-symlink", + "path": "/nx-api/react-native/executors/ensure-symlink", + "name": "ensure-symlink", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook", + "path": "/nx-api/react-native/executors/storybook", + "name": "storybook", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "pod-install", + "path": "/nx-api/react-native/executors/pod-install", + "name": "pod-install", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "upgrade", + "path": "/nx-api/react-native/executors/upgrade", + "name": "upgrade", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/react-native/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/react-native/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/react-native/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/react-native/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component", + "path": "/nx-api/react-native/generators/component", + "name": "component", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook-configuration", + "path": "/nx-api/react-native/generators/storybook-configuration", + "name": "storybook-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component-story", + "path": "/nx-api/react-native/generators/component-story", + "name": "component-story", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "stories", + "path": "/nx-api/react-native/generators/stories", + "name": "stories", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "upgrade-native", + "path": "/nx-api/react-native/generators/upgrade-native", + "name": "upgrade-native", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "web-configuration", + "path": "/nx-api/react-native/generators/web-configuration", + "name": "web-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "remix", + "path": "/nx-api/remix", + "name": "remix", + "children": [ + { + "id": "documents", + "path": "/nx-api/remix/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/remix/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/remix/executors", + "name": "executors", + "children": [ + { + "id": "serve", + "path": "/nx-api/remix/executors/serve", + "name": "serve", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build", + "path": "/nx-api/remix/executors/build", + "name": "build", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/remix/generators", + "name": "generators", + "children": [ + { + "id": "preset", + "path": "/nx-api/remix/generators/preset", + "name": "preset", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup", + "path": "/nx-api/remix/generators/setup", + "name": "setup", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/remix/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress-component-configuration", + "path": "/nx-api/remix/generators/cypress-component-configuration", + "name": "cypress-component-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/remix/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "init", + "path": "/nx-api/remix/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "route", + "path": "/nx-api/remix/generators/route", + "name": "route", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "resource-route", + "path": "/nx-api/remix/generators/resource-route", + "name": "resource-route", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "action", + "path": "/nx-api/remix/generators/action", + "name": "action", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "loader", + "path": "/nx-api/remix/generators/loader", + "name": "loader", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "style", + "path": "/nx-api/remix/generators/style", + "name": "style", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-tailwind", + "path": "/nx-api/remix/generators/setup-tailwind", + "name": "setup-tailwind", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook-configuration", + "path": "/nx-api/remix/generators/storybook-configuration", + "name": "storybook-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "meta", + "path": "/nx-api/remix/generators/meta", + "name": "meta", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "error-boundary", + "path": "/nx-api/remix/generators/error-boundary", + "name": "error-boundary", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "rollup", + "path": "/nx-api/rollup", + "name": "rollup", + "children": [ + { + "id": "executors", + "path": "/nx-api/rollup/executors", + "name": "executors", + "children": [ + { + "id": "rollup", + "path": "/nx-api/rollup/executors/rollup", + "name": "rollup", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/rollup/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/rollup/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/rollup/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook", + "path": "/nx-api/storybook", + "name": "storybook", + "children": [ + { + "id": "documents", + "path": "/nx-api/storybook/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/storybook/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook best practices for making the most out of Nx", + "path": "/nx-api/storybook/documents/best-practices", + "id": "best-practices", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Storybook 7", + "path": "/nx-api/storybook/documents/storybook-7-setup", + "id": "storybook-7-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/storybook/executors", + "name": "executors", + "children": [ + { + "id": "storybook", + "path": "/nx-api/storybook/executors/storybook", + "name": "storybook", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build", + "path": "/nx-api/storybook/executors/build", + "name": "build", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/storybook/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/storybook/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/storybook/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "cypress-project", + "path": "/nx-api/storybook/generators/cypress-project", + "name": "cypress-project", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "migrate-7", + "path": "/nx-api/storybook/generators/migrate-7", + "name": "migrate-7", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "tao", + "path": "/nx-api/tao", + "name": "tao", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "vite", + "path": "/nx-api/vite", + "name": "vite", + "children": [ + { + "id": "documents", + "path": "/nx-api/vite/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/vite/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/vite/executors", + "name": "executors", + "children": [ + { + "id": "dev-server", + "path": "/nx-api/vite/executors/dev-server", + "name": "dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "build", + "path": "/nx-api/vite/executors/build", + "name": "build", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "test", + "path": "/nx-api/vite/executors/test", + "name": "test", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "preview-server", + "path": "/nx-api/vite/executors/preview-server", + "name": "preview-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/vite/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/vite/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/vite/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "vitest", + "path": "/nx-api/vite/generators/vitest", + "name": "vitest", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "vue", + "path": "/nx-api/vue", + "name": "vue", + "children": [ + { + "id": "documents", + "path": "/nx-api/vue/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/vue/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/vue/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/vue/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/vue/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "library", + "path": "/nx-api/vue/generators/library", + "name": "library", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "component", + "path": "/nx-api/vue/generators/component", + "name": "component", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "setup-tailwind", + "path": "/nx-api/vue/generators/setup-tailwind", + "name": "setup-tailwind", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "storybook-configuration", + "path": "/nx-api/vue/generators/storybook-configuration", + "name": "storybook-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "stories", + "path": "/nx-api/vue/generators/stories", + "name": "stories", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "web", + "path": "/nx-api/web", + "name": "web", + "children": [ + { + "id": "documents", + "path": "/nx-api/web/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/web/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/web/executors", + "name": "executors", + "children": [ + { + "id": "file-server", + "path": "/nx-api/web/executors/file-server", + "name": "file-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/web/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/web/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "application", + "path": "/nx-api/web/generators/application", + "name": "application", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "static-config", + "path": "/nx-api/web/generators/static-config", + "name": "static-config", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "webpack", + "path": "/nx-api/webpack", + "name": "webpack", + "children": [ + { + "id": "documents", + "path": "/nx-api/webpack/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/webpack/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/webpack/executors", + "name": "executors", + "children": [ + { + "id": "webpack", + "path": "/nx-api/webpack/executors/webpack", + "name": "webpack", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "dev-server", + "path": "/nx-api/webpack/executors/dev-server", + "name": "dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ssr-dev-server", + "path": "/nx-api/webpack/executors/ssr-dev-server", + "name": "ssr-dev-server", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/webpack/generators", + "name": "generators", + "children": [ + { + "id": "init", + "path": "/nx-api/webpack/generators/init", + "name": "init", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "configuration", + "path": "/nx-api/webpack/generators/configuration", + "name": "configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "workspace", + "path": "/nx-api/workspace", + "name": "workspace", + "children": [ + { + "id": "documents", + "path": "/nx-api/workspace/documents", + "name": "documents", + "children": [ + { + "name": "Overview", + "path": "/nx-api/workspace/documents/overview", + "id": "overview", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Nx, NodeJS and Typescript Versions", + "path": "/nx-api/workspace/documents/nx-nodejs-typescript-version-matrix", + "id": "nx-nodejs-typescript-version-matrix", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "executors", + "path": "/nx-api/workspace/executors", + "name": "executors", + "children": [ + { + "id": "counter", + "path": "/nx-api/workspace/executors/counter", + "name": "counter", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "generators", + "path": "/nx-api/workspace/generators", + "name": "generators", + "children": [ + { + "id": "preset", + "path": "/nx-api/workspace/generators/preset", + "name": "preset", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "move", + "path": "/nx-api/workspace/generators/move", + "name": "move", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "remove", + "path": "/nx-api/workspace/generators/remove", + "name": "remove", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "convert-to-monorepo", + "path": "/nx-api/workspace/generators/convert-to-monorepo", + "name": "convert-to-monorepo", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "new", + "path": "/nx-api/workspace/generators/new", + "name": "new", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "run-commands", + "path": "/nx-api/workspace/generators/run-commands", + "name": "run-commands", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "fix-configuration", + "path": "/nx-api/workspace/generators/fix-configuration", + "name": "fix-configuration", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "npm-package", + "path": "/nx-api/workspace/generators/npm-package", + "name": "npm-package", + "children": [], + "isExternal": false, + "disableCollapsible": false + }, + { + "id": "ci-workflow", + "path": "/nx-api/workspace/generators/ci-workflow", + "name": "ci-workflow", + "children": [], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ], + "isExternal": false, + "disableCollapsible": false + } + ] + } +] diff --git a/docs/generated/manifests/nx-api.json b/docs/generated/manifests/nx-api.json new file mode 100644 index 0000000000000..da21e9ef07cb0 --- /dev/null +++ b/docs/generated/manifests/nx-api.json @@ -0,0 +1,3253 @@ +{ + "angular": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "angular", + "packageName": "@nx/angular", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/angular/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/angular/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/angular/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/angular/angular-plugin" + }, + "/nx-api/angular/documents/angular-nx-version-matrix": { + "id": "angular-nx-version-matrix", + "name": "Angular and Nx Version Matrix", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/angular/documents/angular-nx-version-matrix", + "itemList": [], + "isExternal": false, + "path": "/nx-api/angular/documents/angular-nx-version-matrix", + "tags": [], + "originalFilePath": "shared/packages/angular/angular-nx-version-matrix" + } + }, + "root": "/packages/angular", + "source": "/packages/angular/src", + "executors": { + "/nx-api/angular/executors/delegate-build": { + "description": "Delegates the build to a different target while supporting incremental builds.", + "file": "generated/packages/angular/executors/delegate-build.json", + "hidden": false, + "name": "delegate-build", + "originalFilePath": "/packages/angular/src/executors/delegate-build/schema.json", + "path": "/nx-api/angular/executors/delegate-build", + "type": "executor" + }, + "/nx-api/angular/executors/ng-packagr-lite": { + "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`.", + "file": "generated/packages/angular/executors/ng-packagr-lite.json", + "hidden": false, + "name": "ng-packagr-lite", + "originalFilePath": "/packages/angular/src/executors/ng-packagr-lite/schema.json", + "path": "/nx-api/angular/executors/ng-packagr-lite", + "type": "executor" + }, + "/nx-api/angular/executors/package": { + "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", + "file": "generated/packages/angular/executors/package.json", + "hidden": false, + "name": "package", + "originalFilePath": "/packages/angular/src/executors/package/schema.json", + "path": "/nx-api/angular/executors/package", + "type": "executor" + }, + "/nx-api/angular/executors/browser-esbuild": { + "description": "Builds your application with esbuild and adds support for incremental builds.", + "file": "generated/packages/angular/executors/browser-esbuild.json", + "hidden": false, + "name": "browser-esbuild", + "originalFilePath": "/packages/angular/src/executors/browser-esbuild/schema.json", + "path": "/nx-api/angular/executors/browser-esbuild", + "type": "executor" + }, + "/nx-api/angular/executors/module-federation-dev-server": { + "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", + "file": "generated/packages/angular/executors/module-federation-dev-server.json", + "hidden": false, + "name": "module-federation-dev-server", + "originalFilePath": "/packages/angular/src/executors/module-federation-dev-server/schema.json", + "path": "/nx-api/angular/executors/module-federation-dev-server", + "type": "executor" + }, + "/nx-api/angular/executors/application": { + "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", + "file": "generated/packages/angular/executors/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/angular/src/executors/application/schema.json", + "path": "/nx-api/angular/executors/application", + "type": "executor" + }, + "/nx-api/angular/executors/extract-i18n": { + "description": "Extracts i18n messages from source code.", + "file": "generated/packages/angular/executors/extract-i18n.json", + "hidden": false, + "name": "extract-i18n", + "originalFilePath": "/packages/angular/src/executors/extract-i18n/schema.json", + "path": "/nx-api/angular/executors/extract-i18n", + "type": "executor" + }, + "/nx-api/angular/executors/webpack-browser": { + "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", + "file": "generated/packages/angular/executors/webpack-browser.json", + "hidden": false, + "name": "webpack-browser", + "originalFilePath": "/packages/angular/src/builders/webpack-browser/schema.json", + "path": "/nx-api/angular/executors/webpack-browser", + "type": "executor" + }, + "/nx-api/angular/executors/dev-server": { + "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", + "file": "generated/packages/angular/executors/dev-server.json", + "hidden": false, + "name": "dev-server", + "originalFilePath": "/packages/angular/src/builders/dev-server/schema.json", + "path": "/nx-api/angular/executors/dev-server", + "type": "executor" + }, + "/nx-api/angular/executors/webpack-server": { + "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", + "file": "generated/packages/angular/executors/webpack-server.json", + "hidden": false, + "name": "webpack-server", + "originalFilePath": "/packages/angular/src/builders/webpack-server/schema.json", + "path": "/nx-api/angular/executors/webpack-server", + "type": "executor" + }, + "/nx-api/angular/executors/module-federation-dev-ssr": { + "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host.", + "file": "generated/packages/angular/executors/module-federation-dev-ssr.json", + "hidden": false, + "name": "module-federation-dev-ssr", + "originalFilePath": "/packages/angular/src/builders/module-federation-dev-ssr/schema.json", + "path": "/nx-api/angular/executors/module-federation-dev-ssr", + "type": "executor" + } + }, + "generators": { + "/nx-api/angular/generators/add-linting": { + "description": "Adds linting configuration to an Angular project.", + "file": "generated/packages/angular/generators/add-linting.json", + "hidden": true, + "name": "add-linting", + "originalFilePath": "/packages/angular/src/generators/add-linting/schema.json", + "path": "/nx-api/angular/generators/add-linting", + "type": "generator" + }, + "/nx-api/angular/generators/application": { + "description": "Creates an Angular application.", + "file": "generated/packages/angular/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/angular/src/generators/application/schema.json", + "path": "/nx-api/angular/generators/application", + "type": "generator" + }, + "/nx-api/angular/generators/component": { + "description": "Generate an Angular Component.", + "file": "generated/packages/angular/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/angular/src/generators/component/schema.json", + "path": "/nx-api/angular/generators/component", + "type": "generator" + }, + "/nx-api/angular/generators/component-cypress-spec": { + "description": "Creates a Cypress spec for a UI component that has a story.", + "file": "generated/packages/angular/generators/component-cypress-spec.json", + "hidden": true, + "name": "component-cypress-spec", + "originalFilePath": "/packages/angular/src/generators/component-cypress-spec/schema.json", + "path": "/nx-api/angular/generators/component-cypress-spec", + "type": "generator" + }, + "/nx-api/angular/generators/component-story": { + "description": "Creates a stories.ts file for a component.", + "file": "generated/packages/angular/generators/component-story.json", + "hidden": true, + "name": "component-story", + "originalFilePath": "/packages/angular/src/generators/component-story/schema.json", + "path": "/nx-api/angular/generators/component-story", + "type": "generator" + }, + "/nx-api/angular/generators/component-test": { + "description": "Creates a cypress component test file for a component.", + "file": "generated/packages/angular/generators/component-test.json", + "hidden": false, + "name": "component-test", + "originalFilePath": "/packages/angular/src/generators/component-test/schema.json", + "path": "/nx-api/angular/generators/component-test", + "type": "generator" + }, + "/nx-api/angular/generators/convert-to-application-executor": { + "description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", + "file": "generated/packages/angular/generators/convert-to-application-executor.json", + "hidden": false, + "name": "convert-to-application-executor", + "originalFilePath": "/packages/angular/src/generators/convert-to-application-executor/schema.json", + "path": "/nx-api/angular/generators/convert-to-application-executor", + "type": "generator" + }, + "/nx-api/angular/generators/directive": { + "description": "Generate an Angular directive.", + "file": "generated/packages/angular/generators/directive.json", + "hidden": false, + "name": "directive", + "originalFilePath": "/packages/angular/src/generators/directive/schema.json", + "path": "/nx-api/angular/generators/directive", + "type": "generator" + }, + "/nx-api/angular/generators/federate-module": { + "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", + "file": "generated/packages/angular/generators/federate-module.json", + "hidden": false, + "name": "federate-module", + "originalFilePath": "/packages/angular/src/generators/federate-module/schema.json", + "path": "/nx-api/angular/generators/federate-module", + "type": "generator" + }, + "/nx-api/angular/generators/init": { + "description": "Initializes the `@nrwl/angular` plugin.", + "file": "generated/packages/angular/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/angular/src/generators/init/schema.json", + "path": "/nx-api/angular/generators/init", + "type": "generator" + }, + "/nx-api/angular/generators/library": { + "description": "Creates an Angular library.", + "file": "generated/packages/angular/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/angular/src/generators/library/schema.json", + "path": "/nx-api/angular/generators/library", + "type": "generator" + }, + "/nx-api/angular/generators/library-secondary-entry-point": { + "description": "Creates a secondary entry point for an Angular publishable library.", + "file": "generated/packages/angular/generators/library-secondary-entry-point.json", + "hidden": false, + "name": "library-secondary-entry-point", + "originalFilePath": "/packages/angular/src/generators/library-secondary-entry-point/schema.json", + "path": "/nx-api/angular/generators/library-secondary-entry-point", + "type": "generator" + }, + "/nx-api/angular/generators/remote": { + "description": "Generate a Remote Angular Module Federation Application.", + "file": "generated/packages/angular/generators/remote.json", + "hidden": false, + "name": "remote", + "originalFilePath": "/packages/angular/src/generators/remote/schema.json", + "path": "/nx-api/angular/generators/remote", + "type": "generator" + }, + "/nx-api/angular/generators/move": { + "description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.", + "file": "generated/packages/angular/generators/move.json", + "hidden": false, + "name": "move", + "originalFilePath": "/packages/angular/src/generators/move/schema.json", + "path": "/nx-api/angular/generators/move", + "type": "generator" + }, + "/nx-api/angular/generators/convert-to-with-mf": { + "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}", + "file": "generated/packages/angular/generators/convert-to-with-mf.json", + "hidden": false, + "name": "convert-to-with-mf", + "originalFilePath": "/packages/angular/src/generators/convert-to-with-mf/schema.json", + "path": "/nx-api/angular/generators/convert-to-with-mf", + "type": "generator" + }, + "/nx-api/angular/generators/host": { + "description": "Generate a Host Angular Module Federation Application.", + "file": "generated/packages/angular/generators/host.json", + "hidden": false, + "name": "host", + "originalFilePath": "/packages/angular/src/generators/host/schema.json", + "path": "/nx-api/angular/generators/host", + "type": "generator" + }, + "/nx-api/angular/generators/ng-add": { + "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", + "file": "generated/packages/angular/generators/ng-add.json", + "hidden": true, + "name": "ng-add", + "originalFilePath": "/packages/angular/src/generators/ng-add/schema.json", + "path": "/nx-api/angular/generators/ng-add", + "type": "generator" + }, + "/nx-api/angular/generators/ngrx": { + "description": "Adds NgRx support to an application or library.", + "file": "generated/packages/angular/generators/ngrx.json", + "hidden": false, + "name": "ngrx", + "originalFilePath": "/packages/angular/src/generators/ngrx/schema.json", + "path": "/nx-api/angular/generators/ngrx", + "type": "generator" + }, + "/nx-api/angular/generators/ngrx-feature-store": { + "description": "Adds an NgRx Feature Store to an application or library.", + "file": "generated/packages/angular/generators/ngrx-feature-store.json", + "hidden": false, + "name": "ngrx-feature-store", + "originalFilePath": "/packages/angular/src/generators/ngrx-feature-store/schema.json", + "path": "/nx-api/angular/generators/ngrx-feature-store", + "type": "generator" + }, + "/nx-api/angular/generators/ngrx-root-store": { + "description": "Adds an NgRx Root Store to an application.", + "file": "generated/packages/angular/generators/ngrx-root-store.json", + "hidden": false, + "name": "ngrx-root-store", + "originalFilePath": "/packages/angular/src/generators/ngrx-root-store/schema.json", + "path": "/nx-api/angular/generators/ngrx-root-store", + "type": "generator" + }, + "/nx-api/angular/generators/pipe": { + "description": "Generate an Angular Pipe", + "file": "generated/packages/angular/generators/pipe.json", + "hidden": false, + "name": "pipe", + "originalFilePath": "/packages/angular/src/generators/pipe/schema.json", + "path": "/nx-api/angular/generators/pipe", + "type": "generator" + }, + "/nx-api/angular/generators/scam-to-standalone": { + "description": "Convert an existing Single Component Angular Module (SCAM) to a Standalone Component.", + "file": "generated/packages/angular/generators/scam-to-standalone.json", + "hidden": false, + "name": "scam-to-standalone", + "originalFilePath": "/packages/angular/src/generators/scam-to-standalone/schema.json", + "path": "/nx-api/angular/generators/scam-to-standalone", + "type": "generator" + }, + "/nx-api/angular/generators/scam": { + "description": "Generate a component with an accompanying Single Component Angular Module (SCAM).", + "file": "generated/packages/angular/generators/scam.json", + "hidden": false, + "name": "scam", + "originalFilePath": "/packages/angular/src/generators/scam/schema.json", + "path": "/nx-api/angular/generators/scam", + "type": "generator" + }, + "/nx-api/angular/generators/scam-directive": { + "description": "Generate a directive with an accompanying Single Component Angular Module (SCAM).", + "file": "generated/packages/angular/generators/scam-directive.json", + "hidden": false, + "name": "scam-directive", + "originalFilePath": "/packages/angular/src/generators/scam-directive/schema.json", + "path": "/nx-api/angular/generators/scam-directive", + "type": "generator" + }, + "/nx-api/angular/generators/scam-pipe": { + "description": "Generate a pipe with an accompanying Single Component Angular Module (SCAM).", + "file": "generated/packages/angular/generators/scam-pipe.json", + "hidden": false, + "name": "scam-pipe", + "originalFilePath": "/packages/angular/src/generators/scam-pipe/schema.json", + "path": "/nx-api/angular/generators/scam-pipe", + "type": "generator" + }, + "/nx-api/angular/generators/setup-mf": { + "description": "Generate a Module Federation configuration for a given Angular application.", + "file": "generated/packages/angular/generators/setup-mf.json", + "hidden": false, + "name": "setup-mf", + "originalFilePath": "/packages/angular/src/generators/setup-mf/schema.json", + "path": "/nx-api/angular/generators/setup-mf", + "type": "generator" + }, + "/nx-api/angular/generators/setup-ssr": { + "description": "Generate Angular Universal (SSR) setup for an Angular application.", + "file": "generated/packages/angular/generators/setup-ssr.json", + "hidden": false, + "name": "setup-ssr", + "originalFilePath": "/packages/angular/src/generators/setup-ssr/schema.json", + "path": "/nx-api/angular/generators/setup-ssr", + "type": "generator" + }, + "/nx-api/angular/generators/setup-tailwind": { + "description": "Configures Tailwind CSS for an application or a buildable/publishable library.", + "file": "generated/packages/angular/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/angular/src/generators/setup-tailwind/schema.json", + "path": "/nx-api/angular/generators/setup-tailwind", + "type": "generator" + }, + "/nx-api/angular/generators/stories": { + "description": "Creates stories/specs for all components declared in a project.", + "file": "generated/packages/angular/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/angular/src/generators/stories/schema.json", + "path": "/nx-api/angular/generators/stories", + "type": "generator" + }, + "/nx-api/angular/generators/storybook-configuration": { + "description": "Adds Storybook configuration to a project.", + "file": "generated/packages/angular/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/angular/src/generators/storybook-configuration/schema.json", + "path": "/nx-api/angular/generators/storybook-configuration", + "type": "generator" + }, + "/nx-api/angular/generators/cypress-component-configuration": { + "description": "Setup Cypress component testing for a project.", + "file": "generated/packages/angular/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/angular/src/generators/cypress-component-configuration/schema.json", + "path": "/nx-api/angular/generators/cypress-component-configuration", + "type": "generator" + }, + "/nx-api/angular/generators/web-worker": { + "description": "Creates a Web Worker.", + "file": "generated/packages/angular/generators/web-worker.json", + "hidden": false, + "name": "web-worker", + "originalFilePath": "/packages/angular/src/generators/web-worker/schema.json", + "path": "/nx-api/angular/generators/web-worker", + "type": "generator" + } + }, + "path": "/nx-api/angular" + }, + "create-nx-plugin": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "create-nx-plugin", + "packageName": "create-nx-plugin", + "description": "This package is used to scaffold a brand-new workspace used to develop an Nx plugin, and sets up a pre-configured plugin with the specified name. The new plugin is created with a default generator, executor, and e2e app.", + "documents": {}, + "root": "/packages/create-nx-plugin", + "source": "/packages/create-nx-plugin/src", + "executors": {}, + "generators": {}, + "path": "/nx-api/create-nx-plugin" + }, + "create-nx-workspace": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "create-nx-workspace", + "packageName": "create-nx-workspace", + "description": "Smart Monorepos · Fast CI", + "documents": {}, + "root": "/packages/create-nx-workspace", + "source": "/packages/create-nx-workspace/src", + "executors": {}, + "generators": {}, + "path": "/nx-api/create-nx-workspace" + }, + "cypress": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "cypress", + "packageName": "@nx/cypress", + "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", + "documents": { + "/nx-api/cypress/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", + "file": "generated/packages/cypress/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/cypress/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/cypress/cypress-plugin" + } + }, + "root": "/packages/cypress", + "source": "/packages/cypress/src", + "executors": { + "/nx-api/cypress/executors/cypress": { + "description": "Run Cypress E2E tests.", + "file": "generated/packages/cypress/executors/cypress.json", + "hidden": false, + "name": "cypress", + "originalFilePath": "/packages/cypress/src/executors/cypress/schema.json", + "path": "/nx-api/cypress/executors/cypress", + "type": "executor" + } + }, + "generators": { + "/nx-api/cypress/generators/init": { + "description": "Initialize the `@nrwl/cypress` plugin.", + "file": "generated/packages/cypress/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/cypress/src/generators/init/schema.json", + "path": "/nx-api/cypress/generators/init", + "type": "generator" + }, + "/nx-api/cypress/generators/cypress-project": { + "description": "Add a Cypress E2E Project.", + "file": "generated/packages/cypress/generators/cypress-project.json", + "hidden": true, + "name": "cypress-project", + "originalFilePath": "/packages/cypress/src/generators/cypress-project/schema.json", + "path": "/nx-api/cypress/generators/cypress-project", + "type": "generator" + }, + "/nx-api/cypress/generators/configuration": { + "description": "Add a Cypress E2E Configuration to an existing project.", + "file": "generated/packages/cypress/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/cypress/src/generators/configuration/schema.json", + "path": "/nx-api/cypress/generators/configuration", + "type": "generator" + }, + "/nx-api/cypress/generators/component-configuration": { + "description": "Set up Cypress Component Test for a project", + "file": "generated/packages/cypress/generators/component-configuration.json", + "hidden": true, + "name": "component-configuration", + "originalFilePath": "/packages/cypress/src/generators/component-configuration/schema.json", + "path": "/nx-api/cypress/generators/component-configuration", + "type": "generator" + }, + "/nx-api/cypress/generators/migrate-to-cypress-11": { + "description": "Migrate existing Cypress e2e projects to Cypress v11", + "file": "generated/packages/cypress/generators/migrate-to-cypress-11.json", + "hidden": false, + "name": "migrate-to-cypress-11", + "originalFilePath": "/packages/cypress/src/generators/migrate-to-cypress-11/schema.json", + "path": "/nx-api/cypress/generators/migrate-to-cypress-11", + "type": "generator" + } + }, + "path": "/nx-api/cypress" + }, + "detox": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "detox", + "packageName": "@nx/detox", + "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", + "documents": { + "/nx-api/detox/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", + "file": "generated/packages/detox/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/detox/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/detox/detox-plugin" + } + }, + "root": "/packages/detox", + "source": "/packages/detox/src", + "executors": { + "/nx-api/detox/executors/build": { + "description": "Run the command defined in build property of the specified configuration.", + "file": "generated/packages/detox/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/detox/src/executors/build/schema.json", + "path": "/nx-api/detox/executors/build", + "type": "executor" + }, + "/nx-api/detox/executors/test": { + "description": "Initiating your detox test suite.", + "file": "generated/packages/detox/executors/test.json", + "hidden": false, + "name": "test", + "originalFilePath": "/packages/detox/src/executors/test/schema.json", + "path": "/nx-api/detox/executors/test", + "type": "executor" + } + }, + "generators": { + "/nx-api/detox/generators/init": { + "description": "Initialize the `@nrwl/detox` plugin.", + "file": "generated/packages/detox/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/detox/src/generators/init/schema.json", + "path": "/nx-api/detox/generators/init", + "type": "generator" + }, + "/nx-api/detox/generators/application": { + "description": "Create a Detox application.", + "file": "generated/packages/detox/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/detox/src/generators/application/schema.json", + "path": "/nx-api/detox/generators/application", + "type": "generator" + } + }, + "path": "/nx-api/detox" + }, + "devkit": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "devkit", + "packageName": "@nx/devkit", + "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", + "documents": { + "/nx-api/devkit/documents/nx_devkit": { + "id": "nx_devkit", + "name": "Overview", + "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", + "file": "generated/packages/devkit/documents/nx_devkit", + "itemList": [], + "isExternal": false, + "path": "/nx-api/devkit/documents/nx_devkit", + "tags": [], + "originalFilePath": "generated/devkit/README" + }, + "/nx-api/devkit/documents/ngcli_adapter": { + "id": "ngcli_adapter", + "name": "Ng CLI Adapter", + "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", + "file": "generated/packages/devkit/documents/ngcli_adapter", + "itemList": [], + "isExternal": false, + "path": "/nx-api/devkit/documents/ngcli_adapter", + "tags": [], + "originalFilePath": "generated/devkit/ngcli_adapter/README" + } + }, + "root": "/packages/devkit", + "source": "/packages/devkit/src", + "executors": {}, + "generators": {}, + "path": "/nx-api/devkit" + }, + "esbuild": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "esbuild", + "packageName": "@nx/esbuild", + "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", + "documents": { + "/nx-api/esbuild/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", + "file": "generated/packages/esbuild/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/esbuild/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/esbuild/esbuild-plugin" + } + }, + "root": "/packages/esbuild", + "source": "/packages/esbuild/src", + "executors": { + "/nx-api/esbuild/executors/esbuild": { + "description": "Bundle a package using EsBuild.", + "file": "generated/packages/esbuild/executors/esbuild.json", + "hidden": false, + "name": "esbuild", + "originalFilePath": "/packages/esbuild/src/executors/esbuild/schema.json", + "path": "/nx-api/esbuild/executors/esbuild", + "type": "executor" + } + }, + "generators": { + "/nx-api/esbuild/generators/init": { + "description": "Initialize the `@nrwl/esbuild` plugin.", + "file": "generated/packages/esbuild/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/esbuild/src/generators/init/schema.json", + "path": "/nx-api/esbuild/generators/init", + "type": "generator" + }, + "/nx-api/esbuild/generators/configuration": { + "description": "Add esbuild configuration to a project.", + "file": "generated/packages/esbuild/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/esbuild/src/generators/configuration/schema.json", + "path": "/nx-api/esbuild/generators/configuration", + "type": "generator" + } + }, + "path": "/nx-api/esbuild" + }, + "eslint": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "eslint", + "packageName": "@nx/eslint", + "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", + "documents": { + "/nx-api/eslint/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", + "file": "generated/packages/eslint/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/eslint/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/eslint/eslint" + } + }, + "root": "/packages/eslint", + "source": "/packages/eslint/src", + "executors": { + "/nx-api/eslint/executors/lint": { + "description": "Run ESLint on a project.", + "file": "generated/packages/eslint/executors/lint.json", + "hidden": false, + "name": "lint", + "originalFilePath": "/packages/eslint/src/executors/lint/schema.json", + "path": "/nx-api/eslint/executors/lint", + "type": "executor" + } + }, + "generators": { + "/nx-api/eslint/generators/init": { + "description": "Set up the ESLint plugin.", + "file": "generated/packages/eslint/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/eslint/src/generators/init/schema.json", + "path": "/nx-api/eslint/generators/init", + "type": "generator" + }, + "/nx-api/eslint/generators/workspace-rules-project": { + "description": "Create the Workspace Lint Rules Project.", + "file": "generated/packages/eslint/generators/workspace-rules-project.json", + "hidden": true, + "name": "workspace-rules-project", + "originalFilePath": "/packages/eslint/src/generators/workspace-rules-project/schema.json", + "path": "/nx-api/eslint/generators/workspace-rules-project", + "type": "generator" + }, + "/nx-api/eslint/generators/workspace-rule": { + "description": "Create a new Workspace ESLint rule.", + "file": "generated/packages/eslint/generators/workspace-rule.json", + "hidden": false, + "name": "workspace-rule", + "originalFilePath": "/packages/eslint/src/generators/workspace-rule/schema.json", + "path": "/nx-api/eslint/generators/workspace-rule", + "type": "generator" + }, + "/nx-api/eslint/generators/convert-to-flat-config": { + "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", + "file": "generated/packages/eslint/generators/convert-to-flat-config.json", + "hidden": false, + "name": "convert-to-flat-config", + "originalFilePath": "/packages/eslint/src/generators/convert-to-flat-config/schema.json", + "path": "/nx-api/eslint/generators/convert-to-flat-config", + "type": "generator" + } + }, + "path": "/nx-api/eslint" + }, + "eslint-plugin": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "eslint-plugin", + "packageName": "@nx/eslint-plugin", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "documents": { + "/nx-api/eslint-plugin/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "file": "generated/packages/eslint-plugin/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/eslint-plugin/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/eslint/eslint-plugin" + }, + "/nx-api/eslint-plugin/documents/enforce-module-boundaries": { + "id": "enforce-module-boundaries", + "name": "The `enforce-module-boundaries` rule", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "file": "generated/packages/eslint-plugin/documents/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/nx-api/eslint-plugin/documents/enforce-module-boundaries", + "tags": [], + "originalFilePath": "shared/packages/eslint/enforce-module-boundaries" + }, + "/nx-api/eslint-plugin/documents/dependency-checks": { + "id": "dependency-checks", + "name": "The `dependency-checks` rule", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "file": "generated/packages/eslint-plugin/documents/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "/nx-api/eslint-plugin/documents/dependency-checks", + "tags": [], + "originalFilePath": "shared/packages/eslint/dependency-checks" + } + }, + "root": "/packages/eslint-plugin", + "source": "/packages/eslint-plugin/src", + "executors": {}, + "generators": {}, + "path": "/nx-api/eslint-plugin" + }, + "expo": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "expo", + "packageName": "@nx/expo", + "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", + "documents": { + "/nx-api/expo/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", + "file": "generated/packages/expo/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/expo/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/expo/expo-plugin" + } + }, + "root": "/packages/expo", + "source": "/packages/expo/src", + "executors": { + "/nx-api/expo/executors/update": { + "description": "Start an EAS update for your expo project", + "file": "generated/packages/expo/executors/update.json", + "hidden": false, + "name": "update", + "originalFilePath": "/packages/expo/src/executors/update/schema.json", + "path": "/nx-api/expo/executors/update", + "type": "executor" + }, + "/nx-api/expo/executors/build": { + "description": "Start an EAS build for your expo project", + "file": "generated/packages/expo/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/expo/src/executors/build/schema.json", + "path": "/nx-api/expo/executors/build", + "type": "executor" + }, + "/nx-api/expo/executors/build-list": { + "description": "List all EAS builds for your Expo project", + "file": "generated/packages/expo/executors/build-list.json", + "hidden": false, + "name": "build-list", + "originalFilePath": "/packages/expo/src/executors/build-list/schema.json", + "path": "/nx-api/expo/executors/build-list", + "type": "executor" + }, + "/nx-api/expo/executors/run": { + "description": "Run the Android app binary locally or run the iOS app binary locally", + "file": "generated/packages/expo/executors/run.json", + "hidden": false, + "name": "run", + "originalFilePath": "/packages/expo/src/executors/run/schema.json", + "path": "/nx-api/expo/executors/run", + "type": "executor" + }, + "/nx-api/expo/executors/start": { + "description": "Start a local dev server for the app or start a Webpack dev server for the web app", + "file": "generated/packages/expo/executors/start.json", + "hidden": false, + "name": "start", + "originalFilePath": "/packages/expo/src/executors/start/schema.json", + "path": "/nx-api/expo/executors/start", + "type": "executor" + }, + "/nx-api/expo/executors/sync-deps": { + "description": "Syncs dependencies to package.json (required for autolinking).", + "file": "generated/packages/expo/executors/sync-deps.json", + "hidden": false, + "name": "sync-deps", + "originalFilePath": "/packages/expo/src/executors/sync-deps/schema.json", + "path": "/nx-api/expo/executors/sync-deps", + "type": "executor" + }, + "/nx-api/expo/executors/ensure-symlink": { + "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", + "file": "generated/packages/expo/executors/ensure-symlink.json", + "hidden": false, + "name": "ensure-symlink", + "originalFilePath": "/packages/expo/src/executors/ensure-symlink/schema.json", + "path": "/nx-api/expo/executors/ensure-symlink", + "type": "executor" + }, + "/nx-api/expo/executors/prebuild": { + "description": "Create native iOS and Android project files for building natively.", + "file": "generated/packages/expo/executors/prebuild.json", + "hidden": false, + "name": "prebuild", + "originalFilePath": "/packages/expo/src/executors/prebuild/schema.json", + "path": "/nx-api/expo/executors/prebuild", + "type": "executor" + }, + "/nx-api/expo/executors/install": { + "description": "Install a module or other package to a project.", + "file": "generated/packages/expo/executors/install.json", + "hidden": false, + "name": "install", + "originalFilePath": "/packages/expo/src/executors/install/schema.json", + "path": "/nx-api/expo/executors/install", + "type": "executor" + }, + "/nx-api/expo/executors/export": { + "description": "Export the JavaScript and assets for your app using Metro/webpack bundler", + "file": "generated/packages/expo/executors/export.json", + "hidden": false, + "name": "export", + "originalFilePath": "/packages/expo/src/executors/export/schema.json", + "path": "/nx-api/expo/executors/export", + "type": "executor" + }, + "/nx-api/expo/executors/submit": { + "description": "Submit app binary to App Store and/or Play Store", + "file": "generated/packages/expo/executors/submit.json", + "hidden": false, + "name": "submit", + "originalFilePath": "/packages/expo/src/executors/submit/schema.json", + "path": "/nx-api/expo/executors/submit", + "type": "executor" + }, + "/nx-api/expo/executors/serve": { + "description": "Serve up the Expo web app locally", + "file": "generated/packages/expo/executors/serve.json", + "hidden": false, + "name": "serve", + "originalFilePath": "/packages/expo/src/executors/serve/schema.json", + "path": "/nx-api/expo/executors/serve", + "type": "executor" + } + }, + "generators": { + "/nx-api/expo/generators/init": { + "description": "Initialize the @nx/expo plugin", + "file": "generated/packages/expo/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/expo/src/generators/init/schema.json", + "path": "/nx-api/expo/generators/init", + "type": "generator" + }, + "/nx-api/expo/generators/application": { + "description": "Create an application", + "file": "generated/packages/expo/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/expo/src/generators/application/schema.json", + "path": "/nx-api/expo/generators/application", + "type": "generator" + }, + "/nx-api/expo/generators/library": { + "description": "Create a library", + "file": "generated/packages/expo/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/expo/src/generators/library/schema.json", + "path": "/nx-api/expo/generators/library", + "type": "generator" + }, + "/nx-api/expo/generators/component": { + "description": "Create a component", + "file": "generated/packages/expo/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/expo/src/generators/component/schema.json", + "path": "/nx-api/expo/generators/component", + "type": "generator" + } + }, + "path": "/nx-api/expo" + }, + "express": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "express", + "packageName": "@nx/express", + "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", + "documents": { + "/nx-api/express/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", + "file": "generated/packages/express/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/express/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/express/express-plugin" + } + }, + "root": "/packages/express", + "source": "/packages/express/src", + "executors": {}, + "generators": { + "/nx-api/express/generators/init": { + "description": "Initialize the `@nrwl/express` plugin.", + "file": "generated/packages/express/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/express/src/generators/init/schema.json", + "path": "/nx-api/express/generators/init", + "type": "generator" + }, + "/nx-api/express/generators/application": { + "description": "Create an Express application.", + "file": "generated/packages/express/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/express/src/generators/application/schema.json", + "path": "/nx-api/express/generators/application", + "type": "generator" + } + }, + "path": "/nx-api/express" + }, + "jest": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "jest", + "packageName": "@nx/jest", + "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", + "documents": { + "/nx-api/jest/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", + "file": "generated/packages/jest/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/jest/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/jest/jest-plugin" + } + }, + "root": "/packages/jest", + "source": "/packages/jest/src", + "executors": { + "/nx-api/jest/executors/jest": { + "description": "Run Jest unit tests.", + "file": "generated/packages/jest/executors/jest.json", + "hidden": false, + "name": "jest", + "originalFilePath": "/packages/jest/src/executors/jest/schema.json", + "path": "/nx-api/jest/executors/jest", + "type": "executor" + } + }, + "generators": { + "/nx-api/jest/generators/init": { + "description": "Initialize the `@nrwl/jest` plugin.", + "file": "generated/packages/jest/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/jest/src/generators/init/schema.json", + "path": "/nx-api/jest/generators/init", + "type": "generator" + }, + "/nx-api/jest/generators/configuration": { + "description": "Add Jest configuration to a project.", + "file": "generated/packages/jest/generators/configuration.json", + "hidden": true, + "name": "configuration", + "originalFilePath": "/packages/jest/src/generators/configuration/schema.json", + "path": "/nx-api/jest/generators/configuration", + "type": "generator" + } + }, + "path": "/nx-api/jest" + }, + "js": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "js", + "packageName": "@nx/js", + "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", + "documents": { + "/nx-api/js/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", + "file": "generated/packages/js/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/js/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/js/js-plugin" + } + }, + "root": "/packages/js", + "source": "/packages/js/src", + "executors": { + "/nx-api/js/executors/tsc": { + "description": "Build a project using TypeScript.", + "file": "generated/packages/js/executors/tsc.json", + "hidden": false, + "name": "tsc", + "originalFilePath": "/packages/js/src/executors/tsc/schema.json", + "path": "/nx-api/js/executors/tsc", + "type": "executor" + }, + "/nx-api/js/executors/swc": { + "description": "Build a project using SWC.", + "file": "generated/packages/js/executors/swc.json", + "hidden": false, + "name": "swc", + "originalFilePath": "/packages/js/src/executors/swc/schema.json", + "path": "/nx-api/js/executors/swc", + "type": "executor" + }, + "/nx-api/js/executors/node": { + "description": "Execute a Node application.", + "file": "generated/packages/js/executors/node.json", + "hidden": false, + "name": "node", + "originalFilePath": "/packages/js/src/executors/node/schema.json", + "path": "/nx-api/js/executors/node", + "type": "executor" + }, + "/nx-api/js/executors/release-publish": { + "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", + "file": "generated/packages/js/executors/release-publish.json", + "hidden": true, + "name": "release-publish", + "originalFilePath": "/packages/js/src/executors/release-publish/schema.json", + "path": "/nx-api/js/executors/release-publish", + "type": "executor" + }, + "/nx-api/js/executors/verdaccio": { + "description": "Start local registry with verdaccio", + "file": "generated/packages/js/executors/verdaccio.json", + "hidden": false, + "name": "verdaccio", + "originalFilePath": "/packages/js/src/executors/verdaccio/schema.json", + "path": "/nx-api/js/executors/verdaccio", + "type": "executor" + } + }, + "generators": { + "/nx-api/js/generators/library": { + "description": "Create a library", + "file": "generated/packages/js/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/js/src/generators/library/schema.json", + "path": "/nx-api/js/generators/library", + "type": "generator" + }, + "/nx-api/js/generators/init": { + "description": "Initialize a TS/JS workspace.", + "file": "generated/packages/js/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/js/src/generators/init/schema.json", + "path": "/nx-api/js/generators/init", + "type": "generator" + }, + "/nx-api/js/generators/convert-to-swc": { + "description": "Convert a TypeScript library to compile with SWC.", + "file": "generated/packages/js/generators/convert-to-swc.json", + "hidden": false, + "name": "convert-to-swc", + "originalFilePath": "/packages/js/src/generators/convert-to-swc/schema.json", + "path": "/nx-api/js/generators/convert-to-swc", + "type": "generator" + }, + "/nx-api/js/generators/release-version": { + "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", + "file": "generated/packages/js/generators/release-version.json", + "hidden": true, + "name": "release-version", + "originalFilePath": "/packages/js/src/generators/release-version/schema.json", + "path": "/nx-api/js/generators/release-version", + "type": "generator" + }, + "/nx-api/js/generators/setup-verdaccio": { + "description": "Setup Verdaccio for local package management.", + "file": "generated/packages/js/generators/setup-verdaccio.json", + "hidden": false, + "name": "setup-verdaccio", + "originalFilePath": "/packages/js/src/generators/setup-verdaccio/schema.json", + "path": "/nx-api/js/generators/setup-verdaccio", + "type": "generator" + }, + "/nx-api/js/generators/setup-build": { + "description": "setup-build generator", + "file": "generated/packages/js/generators/setup-build.json", + "hidden": false, + "name": "setup-build", + "originalFilePath": "/packages/js/src/generators/setup-build/schema.json", + "path": "/nx-api/js/generators/setup-build", + "type": "generator" + } + }, + "path": "/nx-api/js" + }, + "nest": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "nest", + "packageName": "@nx/nest", + "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", + "documents": { + "/nx-api/nest/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", + "file": "generated/packages/nest/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nest/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/nest/nest-plugin" + } + }, + "root": "/packages/nest", + "source": "/packages/nest/src", + "executors": {}, + "generators": { + "/nx-api/nest/generators/application": { + "description": "Create a NestJS application.", + "file": "generated/packages/nest/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/nest/src/generators/application/schema.json", + "path": "/nx-api/nest/generators/application", + "type": "generator" + }, + "/nx-api/nest/generators/init": { + "description": "Initialize the `@nrwl/nest` plugin.", + "file": "generated/packages/nest/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/nest/src/generators/init/schema.json", + "path": "/nx-api/nest/generators/init", + "type": "generator" + }, + "/nx-api/nest/generators/library": { + "description": "Create a new NestJS library.", + "file": "generated/packages/nest/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/nest/src/generators/library/schema.json", + "path": "/nx-api/nest/generators/library", + "type": "generator" + }, + "/nx-api/nest/generators/class": { + "description": "Run the `class` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/class.json", + "hidden": false, + "name": "class", + "originalFilePath": "/packages/nest/src/generators/class/schema.json", + "path": "/nx-api/nest/generators/class", + "type": "generator" + }, + "/nx-api/nest/generators/controller": { + "description": "Run the `controller` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/controller.json", + "hidden": false, + "name": "controller", + "originalFilePath": "/packages/nest/src/generators/controller/schema.json", + "path": "/nx-api/nest/generators/controller", + "type": "generator" + }, + "/nx-api/nest/generators/decorator": { + "description": "Run the `decorator` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/decorator.json", + "hidden": false, + "name": "decorator", + "originalFilePath": "/packages/nest/src/generators/decorator/schema.json", + "path": "/nx-api/nest/generators/decorator", + "type": "generator" + }, + "/nx-api/nest/generators/filter": { + "description": "Run the `filter` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/filter.json", + "hidden": false, + "name": "filter", + "originalFilePath": "/packages/nest/src/generators/filter/schema.json", + "path": "/nx-api/nest/generators/filter", + "type": "generator" + }, + "/nx-api/nest/generators/gateway": { + "description": "Run the `gateway` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/gateway.json", + "hidden": false, + "name": "gateway", + "originalFilePath": "/packages/nest/src/generators/gateway/schema.json", + "path": "/nx-api/nest/generators/gateway", + "type": "generator" + }, + "/nx-api/nest/generators/guard": { + "description": "Run the `guard` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/guard.json", + "hidden": false, + "name": "guard", + "originalFilePath": "/packages/nest/src/generators/guard/schema.json", + "path": "/nx-api/nest/generators/guard", + "type": "generator" + }, + "/nx-api/nest/generators/interceptor": { + "description": "Run the `interceptor` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/interceptor.json", + "hidden": false, + "name": "interceptor", + "originalFilePath": "/packages/nest/src/generators/interceptor/schema.json", + "path": "/nx-api/nest/generators/interceptor", + "type": "generator" + }, + "/nx-api/nest/generators/interface": { + "description": "Run the `interface` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/interface.json", + "hidden": false, + "name": "interface", + "originalFilePath": "/packages/nest/src/generators/interface/schema.json", + "path": "/nx-api/nest/generators/interface", + "type": "generator" + }, + "/nx-api/nest/generators/middleware": { + "description": "Run the `middleware` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/middleware.json", + "hidden": false, + "name": "middleware", + "originalFilePath": "/packages/nest/src/generators/middleware/schema.json", + "path": "/nx-api/nest/generators/middleware", + "type": "generator" + }, + "/nx-api/nest/generators/module": { + "description": "Run the `module` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/module.json", + "hidden": false, + "name": "module", + "originalFilePath": "/packages/nest/src/generators/module/schema.json", + "path": "/nx-api/nest/generators/module", + "type": "generator" + }, + "/nx-api/nest/generators/pipe": { + "description": "Run the `pipe` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/pipe.json", + "hidden": false, + "name": "pipe", + "originalFilePath": "/packages/nest/src/generators/pipe/schema.json", + "path": "/nx-api/nest/generators/pipe", + "type": "generator" + }, + "/nx-api/nest/generators/provider": { + "description": "Run the `provider` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/provider.json", + "hidden": false, + "name": "provider", + "originalFilePath": "/packages/nest/src/generators/provider/schema.json", + "path": "/nx-api/nest/generators/provider", + "type": "generator" + }, + "/nx-api/nest/generators/resolver": { + "description": "Run the `resolver` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/resolver.json", + "hidden": false, + "name": "resolver", + "originalFilePath": "/packages/nest/src/generators/resolver/schema.json", + "path": "/nx-api/nest/generators/resolver", + "type": "generator" + }, + "/nx-api/nest/generators/resource": { + "description": "Run the `resource` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/resource.json", + "hidden": false, + "name": "resource", + "originalFilePath": "/packages/nest/src/generators/resource/schema.json", + "path": "/nx-api/nest/generators/resource", + "type": "generator" + }, + "/nx-api/nest/generators/service": { + "description": "Run the `service` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/service.json", + "hidden": false, + "name": "service", + "originalFilePath": "/packages/nest/src/generators/service/schema.json", + "path": "/nx-api/nest/generators/service", + "type": "generator" + } + }, + "path": "/nx-api/nest" + }, + "next": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "next", + "packageName": "@nx/next", + "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", + "documents": { + "/nx-api/next/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", + "file": "generated/packages/next/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/next/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/next/plugin-overview" + } + }, + "root": "/packages/next", + "source": "/packages/next/src", + "executors": { + "/nx-api/next/executors/build": { + "description": "Build a Next.js application.", + "file": "generated/packages/next/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/next/src/executors/build/schema.json", + "path": "/nx-api/next/executors/build", + "type": "executor" + }, + "/nx-api/next/executors/server": { + "description": "Serve a Next.js application.", + "file": "generated/packages/next/executors/server.json", + "hidden": false, + "name": "server", + "originalFilePath": "/packages/next/src/executors/server/schema.json", + "path": "/nx-api/next/executors/server", + "type": "executor" + }, + "/nx-api/next/executors/export": { + "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", + "file": "generated/packages/next/executors/export.json", + "hidden": false, + "name": "export", + "originalFilePath": "/packages/next/src/executors/export/schema.json", + "path": "/nx-api/next/executors/export", + "type": "executor" + } + }, + "generators": { + "/nx-api/next/generators/init": { + "description": "Initialize the `@nrwl/next` plugin.", + "file": "generated/packages/next/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/next/src/generators/init/schema.json", + "path": "/nx-api/next/generators/init", + "type": "generator" + }, + "/nx-api/next/generators/application": { + "description": "Create an application.", + "file": "generated/packages/next/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/next/src/generators/application/schema.json", + "path": "/nx-api/next/generators/application", + "type": "generator" + }, + "/nx-api/next/generators/page": { + "description": "Create a page.", + "file": "generated/packages/next/generators/page.json", + "hidden": false, + "name": "page", + "originalFilePath": "/packages/next/src/generators/page/schema.json", + "path": "/nx-api/next/generators/page", + "type": "generator" + }, + "/nx-api/next/generators/component": { + "description": "Create a component.", + "file": "generated/packages/next/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/next/src/generators/component/schema.json", + "path": "/nx-api/next/generators/component", + "type": "generator" + }, + "/nx-api/next/generators/library": { + "description": "Create a library.", + "file": "generated/packages/next/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/next/src/generators/library/schema.json", + "path": "/nx-api/next/generators/library", + "type": "generator" + }, + "/nx-api/next/generators/custom-server": { + "description": "Set up a custom server.", + "file": "generated/packages/next/generators/custom-server.json", + "hidden": false, + "name": "custom-server", + "originalFilePath": "/packages/next/src/generators/custom-server/schema.json", + "path": "/nx-api/next/generators/custom-server", + "type": "generator" + }, + "/nx-api/next/generators/cypress-component-configuration": { + "description": "cypress-component-configuration generator", + "file": "generated/packages/next/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/next/src/generators/cypress-component-configuration/schema.json", + "path": "/nx-api/next/generators/cypress-component-configuration", + "type": "generator" + } + }, + "path": "/nx-api/next" + }, + "node": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "node", + "packageName": "@nx/node", + "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", + "documents": { + "/nx-api/node/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", + "file": "generated/packages/node/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/node/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/node/node-plugin" + } + }, + "root": "/packages/node", + "source": "/packages/node/src", + "executors": {}, + "generators": { + "/nx-api/node/generators/init": { + "description": "Initialize the `@nrwl/node` plugin.", + "file": "generated/packages/node/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/node/src/generators/init/schema.json", + "path": "/nx-api/node/generators/init", + "type": "generator" + }, + "/nx-api/node/generators/application": { + "description": "Create a node application.", + "file": "generated/packages/node/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/node/src/generators/application/schema.json", + "path": "/nx-api/node/generators/application", + "type": "generator" + }, + "/nx-api/node/generators/library": { + "description": "Create a node library.", + "file": "generated/packages/node/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/node/src/generators/library/schema.json", + "path": "/nx-api/node/generators/library", + "type": "generator" + }, + "/nx-api/node/generators/setup-docker": { + "description": "Set up Docker configuration for a project.", + "file": "generated/packages/node/generators/setup-docker.json", + "hidden": false, + "name": "setup-docker", + "originalFilePath": "/packages/node/src/generators/setup-docker/schema.json", + "path": "/nx-api/node/generators/setup-docker", + "type": "generator" + } + }, + "path": "/nx-api/node" + }, + "nuxt": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "nuxt", + "packageName": "@nx/nuxt", + "description": "The Nuxt plugin for Nx contains executors and generators for managing Nuxt applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/nuxt/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace.", + "file": "generated/packages/nuxt/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nuxt/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/nuxt/nuxt-plugin" + } + }, + "root": "/packages/nuxt", + "source": "/packages/nuxt/src", + "executors": {}, + "generators": { + "/nx-api/nuxt/generators/init": { + "description": "Initialize the `@nx/nuxt` plugin.", + "file": "generated/packages/nuxt/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/nuxt/src/generators/init/schema.json", + "path": "/nx-api/nuxt/generators/init", + "type": "generator" + }, + "/nx-api/nuxt/generators/application": { + "description": "Create a Nuxt application.", + "file": "generated/packages/nuxt/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/nuxt/src/generators/application/schema.json", + "path": "/nx-api/nuxt/generators/application", + "type": "generator" + }, + "/nx-api/nuxt/generators/storybook-configuration": { + "description": "Set up storybook for a Nuxt app.", + "file": "generated/packages/nuxt/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/nuxt/src/generators/storybook-configuration/schema.json", + "path": "/nx-api/nuxt/generators/storybook-configuration", + "type": "generator" + } + }, + "path": "/nx-api/nuxt" + }, + "nx": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "nx", + "packageName": "nx", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "documents": { + "/nx-api/nx/documents/create-nx-workspace": { + "id": "create-nx-workspace", + "name": "create-nx-workspace", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/create-nx-workspace", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/create-nx-workspace", + "tags": [], + "originalFilePath": "generated/cli/create-nx-workspace" + }, + "/nx-api/nx/documents/init": { + "id": "init", + "name": "init", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/init", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/init", + "tags": [], + "originalFilePath": "generated/cli/init" + }, + "/nx-api/nx/documents/generate": { + "id": "generate", + "name": "generate", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/generate", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/generate", + "tags": ["generate-code"], + "originalFilePath": "generated/cli/generate" + }, + "/nx-api/nx/documents/run": { + "id": "run", + "name": "run", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/run", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/run", + "tags": ["run-tasks"], + "originalFilePath": "generated/cli/run" + }, + "/nx-api/nx/documents/daemon": { + "id": "daemon", + "name": "daemon", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/daemon", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/daemon", + "tags": [], + "originalFilePath": "generated/cli/daemon" + }, + "/nx-api/nx/documents/dep-graph": { + "id": "dep-graph", + "name": "graph", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/dep-graph", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/dep-graph", + "tags": ["explore-graph"], + "originalFilePath": "generated/cli/graph" + }, + "/nx-api/nx/documents/run-many": { + "id": "run-many", + "name": "run-many", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/run-many", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/run-many", + "tags": ["run-tasks"], + "originalFilePath": "generated/cli/run-many" + }, + "/nx-api/nx/documents/affected": { + "id": "affected", + "name": "affected", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/affected", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/affected", + "tags": ["run-tasks"], + "originalFilePath": "generated/cli/affected" + }, + "/nx-api/nx/documents/affected-dep-graph": { + "id": "affected-dep-graph", + "name": "affected:graph", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/affected-dep-graph", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/affected-dep-graph", + "tags": [], + "originalFilePath": "generated/cli/affected-graph" + }, + "/nx-api/nx/documents/print-affected": { + "id": "print-affected", + "name": "print-affected", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/print-affected", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/print-affected", + "tags": [], + "originalFilePath": "generated/cli/print-affected" + }, + "/nx-api/nx/documents/format-check": { + "id": "format-check", + "name": "format:check", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/format-check", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/format-check", + "tags": ["enforce-module-boundaries"], + "originalFilePath": "generated/cli/format-check" + }, + "/nx-api/nx/documents/format-write": { + "id": "format-write", + "name": "format:write", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/format-write", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/format-write", + "tags": ["enforce-module-boundaries"], + "originalFilePath": "generated/cli/format-write" + }, + "/nx-api/nx/documents/migrate": { + "id": "migrate", + "name": "migrate", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/migrate", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/migrate", + "tags": ["automate-updating-dependencies"], + "originalFilePath": "generated/cli/migrate" + }, + "/nx-api/nx/documents/report": { + "id": "report", + "name": "report", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/report", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/report", + "tags": [], + "originalFilePath": "generated/cli/report" + }, + "/nx-api/nx/documents/list": { + "id": "list", + "name": "list", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/list", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/list", + "tags": [], + "originalFilePath": "generated/cli/list" + }, + "/nx-api/nx/documents/connect-to-nx-cloud": { + "id": "connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/connect-to-nx-cloud", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/connect-to-nx-cloud", + "tags": ["cache-task-results", "distribute-task-execution"], + "originalFilePath": "generated/cli/connect" + }, + "/nx-api/nx/documents/reset": { + "id": "reset", + "name": "reset", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/reset", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/reset", + "tags": ["cache-task-results"], + "originalFilePath": "generated/cli/reset" + }, + "/nx-api/nx/documents/repair": { + "id": "repair", + "name": "repair", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/repair", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/repair", + "tags": [], + "originalFilePath": "generated/cli/repair" + }, + "/nx-api/nx/documents/exec": { + "id": "exec", + "name": "exec", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/exec", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/exec", + "tags": [], + "originalFilePath": "generated/cli/exec" + }, + "/nx-api/nx/documents/watch": { + "id": "watch", + "name": "watch", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/watch", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/watch", + "tags": ["workspace-watching"], + "originalFilePath": "generated/cli/watch" + }, + "/nx-api/nx/documents/show": { + "id": "show", + "name": "show", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/show", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/show", + "tags": [], + "originalFilePath": "generated/cli/show" + }, + "/nx-api/nx/documents/view-logs": { + "id": "view-logs", + "name": "view-logs", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/view-logs", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/view-logs", + "tags": [], + "originalFilePath": "generated/cli/view-logs" + }, + "/nx-api/nx/documents/release": { + "id": "release", + "name": "release", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/release", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/release", + "tags": [], + "originalFilePath": "generated/cli/release" + }, + "/nx-api/nx/documents/add": { + "id": "add", + "name": "add", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/add", + "itemList": [], + "isExternal": false, + "path": "/nx-api/nx/documents/add", + "tags": [], + "originalFilePath": "generated/cli/add" + } + }, + "root": "/packages/nx", + "source": "/packages/nx/src", + "executors": { + "/nx-api/nx/executors/noop": { + "description": "An executor that does nothing", + "file": "generated/packages/nx/executors/noop.json", + "hidden": false, + "name": "noop", + "originalFilePath": "/packages/nx/src/executors/noop/schema.json", + "path": "/nx-api/nx/executors/noop", + "type": "executor" + }, + "/nx-api/nx/executors/run-commands": { + "description": "Run any custom commands with Nx.", + "file": "generated/packages/nx/executors/run-commands.json", + "hidden": false, + "name": "run-commands", + "originalFilePath": "/packages/nx/src/executors/run-commands/schema.json", + "path": "/nx-api/nx/executors/run-commands", + "type": "executor" + }, + "/nx-api/nx/executors/run-script": { + "description": "Run an NPM script using Nx.", + "file": "generated/packages/nx/executors/run-script.json", + "hidden": false, + "name": "run-script", + "originalFilePath": "/packages/nx/src/executors/run-script/schema.json", + "path": "/nx-api/nx/executors/run-script", + "type": "executor" + } + }, + "generators": { + "/nx-api/nx/generators/connect-to-nx-cloud": { + "description": "Connect a workspace to Nx Cloud", + "file": "generated/packages/nx/generators/connect-to-nx-cloud.json", + "hidden": false, + "name": "connect-to-nx-cloud", + "originalFilePath": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/schema.json", + "path": "/nx-api/nx/generators/connect-to-nx-cloud", + "type": "generator" + } + }, + "path": "/nx-api/nx" + }, + "playwright": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "playwright", + "packageName": "@nx/playwright", + "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", + "documents": { + "/nx-api/playwright/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", + "file": "generated/packages/playwright/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/playwright/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/playwright/playwright-plugin" + } + }, + "root": "/packages/playwright", + "source": "/packages/playwright/src", + "executors": { + "/nx-api/playwright/executors/playwright": { + "description": "Run Playwright tests.", + "file": "generated/packages/playwright/executors/playwright.json", + "hidden": false, + "name": "playwright", + "originalFilePath": "/packages/playwright/src/executors/playwright/schema.json", + "path": "/nx-api/playwright/executors/playwright", + "type": "executor" + } + }, + "generators": { + "/nx-api/playwright/generators/configuration": { + "description": "Add Nx Playwright configuration to your project", + "file": "generated/packages/playwright/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/playwright/src/generators/configuration/schema.json", + "path": "/nx-api/playwright/generators/configuration", + "type": "generator" + }, + "/nx-api/playwright/generators/init": { + "description": "Initializes a Playwright project in the current workspace", + "file": "generated/packages/playwright/generators/init.json", + "hidden": false, + "name": "init", + "originalFilePath": "/packages/playwright/src/generators/init/schema.json", + "path": "/nx-api/playwright/generators/init", + "type": "generator" + } + }, + "path": "/nx-api/playwright" + }, + "plugin": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "plugin", + "packageName": "@nx/plugin", + "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", + "documents": { + "/nx-api/plugin/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", + "file": "generated/packages/plugin/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/plugin/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/plugin/plugin" + } + }, + "root": "/packages/plugin", + "source": "/packages/plugin/src", + "executors": { + "/nx-api/plugin/executors/e2e": { + "description": "Creates and runs the E2E tests for an Nx Plugin.", + "file": "generated/packages/plugin/executors/e2e.json", + "hidden": false, + "name": "e2e", + "originalFilePath": "/packages/plugin/src/executors/e2e/schema.json", + "path": "/nx-api/plugin/executors/e2e", + "type": "executor" + } + }, + "generators": { + "/nx-api/plugin/generators/plugin": { + "description": "Create a Nx Plugin.", + "file": "generated/packages/plugin/generators/plugin.json", + "hidden": false, + "name": "plugin", + "originalFilePath": "/packages/plugin/src/generators/plugin/schema.json", + "path": "/nx-api/plugin/generators/plugin", + "type": "generator" + }, + "/nx-api/plugin/generators/create-package": { + "description": "Create a package which can be used by npx to create a new workspace", + "file": "generated/packages/plugin/generators/create-package.json", + "hidden": false, + "name": "create-package", + "originalFilePath": "/packages/plugin/src/generators/create-package/schema.json", + "path": "/nx-api/plugin/generators/create-package", + "type": "generator" + }, + "/nx-api/plugin/generators/e2e-project": { + "description": "Create a E2E application for a Nx Plugin.", + "file": "generated/packages/plugin/generators/e2e-project.json", + "hidden": false, + "name": "e2e-project", + "originalFilePath": "/packages/plugin/src/generators/e2e-project/schema.json", + "path": "/nx-api/plugin/generators/e2e-project", + "type": "generator" + }, + "/nx-api/plugin/generators/migration": { + "description": "Create a migration for an Nx Plugin.", + "file": "generated/packages/plugin/generators/migration.json", + "hidden": false, + "name": "migration", + "originalFilePath": "/packages/plugin/src/generators/migration/schema.json", + "path": "/nx-api/plugin/generators/migration", + "type": "generator" + }, + "/nx-api/plugin/generators/generator": { + "description": "Create a generator for an Nx Plugin.", + "file": "generated/packages/plugin/generators/generator.json", + "hidden": false, + "name": "generator", + "originalFilePath": "/packages/plugin/src/generators/generator/schema.json", + "path": "/nx-api/plugin/generators/generator", + "type": "generator" + }, + "/nx-api/plugin/generators/executor": { + "description": "Create an executor for an Nx Plugin.", + "file": "generated/packages/plugin/generators/executor.json", + "hidden": false, + "name": "executor", + "originalFilePath": "/packages/plugin/src/generators/executor/schema.json", + "path": "/nx-api/plugin/generators/executor", + "type": "generator" + }, + "/nx-api/plugin/generators/plugin-lint-checks": { + "description": "Adds linting configuration to validate common json files for nx plugins.", + "file": "generated/packages/plugin/generators/plugin-lint-checks.json", + "hidden": false, + "name": "plugin-lint-checks", + "originalFilePath": "/packages/plugin/src/generators/lint-checks/schema.json", + "path": "/nx-api/plugin/generators/plugin-lint-checks", + "type": "generator" + }, + "/nx-api/plugin/generators/preset": { + "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-workspace --preset @nx/plugin`.", + "file": "generated/packages/plugin/generators/preset.json", + "hidden": true, + "name": "preset", + "originalFilePath": "/packages/plugin/src/generators/preset/schema.json", + "path": "/nx-api/plugin/generators/preset", + "type": "generator" + } + }, + "path": "/nx-api/plugin" + }, + "react": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "react", + "packageName": "@nx/react", + "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/react/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/react/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/react/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/react/react-plugin" + } + }, + "root": "/packages/react", + "source": "/packages/react/src", + "executors": { + "/nx-api/react/executors/module-federation-dev-server": { + "description": "Serve a host or remote application.", + "file": "generated/packages/react/executors/module-federation-dev-server.json", + "hidden": false, + "name": "module-federation-dev-server", + "originalFilePath": "/packages/react/src/executors/module-federation-dev-server/schema.json", + "path": "/nx-api/react/executors/module-federation-dev-server", + "type": "executor" + }, + "/nx-api/react/executors/module-federation-ssr-dev-server": { + "description": "Serve a host application along with it's known remotes.", + "file": "generated/packages/react/executors/module-federation-ssr-dev-server.json", + "hidden": false, + "name": "module-federation-ssr-dev-server", + "originalFilePath": "/packages/react/src/executors/module-federation-ssr-dev-server/schema.json", + "path": "/nx-api/react/executors/module-federation-ssr-dev-server", + "type": "executor" + } + }, + "generators": { + "/nx-api/react/generators/init": { + "description": "Initialize the `@nrwl/react` plugin.", + "file": "generated/packages/react/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/react/src/generators/init/schema.json", + "path": "/nx-api/react/generators/init", + "type": "generator" + }, + "/nx-api/react/generators/application": { + "description": "Create a React application.", + "file": "generated/packages/react/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/react/src/generators/application/schema.json", + "path": "/nx-api/react/generators/application", + "type": "generator" + }, + "/nx-api/react/generators/library": { + "description": "Create a React library.", + "file": "generated/packages/react/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/react/src/generators/library/schema.json", + "path": "/nx-api/react/generators/library", + "type": "generator" + }, + "/nx-api/react/generators/component": { + "description": "Create a React component.", + "file": "generated/packages/react/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/react/src/generators/component/schema.json", + "path": "/nx-api/react/generators/component", + "type": "generator" + }, + "/nx-api/react/generators/redux": { + "description": "Create a Redux slice for a project.", + "file": "generated/packages/react/generators/redux.json", + "hidden": false, + "name": "redux", + "originalFilePath": "/packages/react/src/generators/redux/schema.json", + "path": "/nx-api/react/generators/redux", + "type": "generator" + }, + "/nx-api/react/generators/storybook-configuration": { + "description": "Set up storybook for a React app or library.", + "file": "generated/packages/react/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/react/src/generators/storybook-configuration/schema.json", + "path": "/nx-api/react/generators/storybook-configuration", + "type": "generator" + }, + "/nx-api/react/generators/component-story": { + "description": "Generate storybook story for a React component", + "file": "generated/packages/react/generators/component-story.json", + "hidden": false, + "name": "component-story", + "originalFilePath": "/packages/react/src/generators/component-story/schema.json", + "path": "/nx-api/react/generators/component-story", + "type": "generator" + }, + "/nx-api/react/generators/stories": { + "description": "Create stories/specs for all components declared in an app or library.", + "file": "generated/packages/react/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/react/src/generators/stories/schema.json", + "path": "/nx-api/react/generators/stories", + "type": "generator" + }, + "/nx-api/react/generators/component-cypress-spec": { + "description": "Create a Cypress spec for a UI component that has a story.", + "file": "generated/packages/react/generators/component-cypress-spec.json", + "hidden": false, + "name": "component-cypress-spec", + "originalFilePath": "/packages/react/src/generators/component-cypress-spec/schema.json", + "path": "/nx-api/react/generators/component-cypress-spec", + "type": "generator" + }, + "/nx-api/react/generators/hook": { + "description": "Create a hook.", + "file": "generated/packages/react/generators/hook.json", + "hidden": false, + "name": "hook", + "originalFilePath": "/packages/react/src/generators/hook/schema.json", + "path": "/nx-api/react/generators/hook", + "type": "generator" + }, + "/nx-api/react/generators/host": { + "description": "Generate a host react application", + "file": "generated/packages/react/generators/host.json", + "hidden": false, + "name": "host", + "originalFilePath": "/packages/react/src/generators/host/schema.json", + "path": "/nx-api/react/generators/host", + "type": "generator" + }, + "/nx-api/react/generators/remote": { + "description": "Generate a remote react application", + "file": "generated/packages/react/generators/remote.json", + "hidden": false, + "name": "remote", + "originalFilePath": "/packages/react/src/generators/remote/schema.json", + "path": "/nx-api/react/generators/remote", + "type": "generator" + }, + "/nx-api/react/generators/cypress-component-configuration": { + "description": "Setup Cypress component testing for a React project", + "file": "generated/packages/react/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/react/src/generators/cypress-component-configuration/schema.json", + "path": "/nx-api/react/generators/cypress-component-configuration", + "type": "generator" + }, + "/nx-api/react/generators/component-test": { + "description": "Generate a Cypress component test for a React component", + "file": "generated/packages/react/generators/component-test.json", + "hidden": false, + "name": "component-test", + "originalFilePath": "/packages/react/src/generators/component-test/schema.json", + "path": "/nx-api/react/generators/component-test", + "type": "generator" + }, + "/nx-api/react/generators/setup-tailwind": { + "description": "Set up Tailwind configuration for a project.", + "file": "generated/packages/react/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/react/src/generators/setup-tailwind/schema.json", + "path": "/nx-api/react/generators/setup-tailwind", + "type": "generator" + }, + "/nx-api/react/generators/setup-ssr": { + "description": "Set up SSR configuration for a project.", + "file": "generated/packages/react/generators/setup-ssr.json", + "hidden": false, + "name": "setup-ssr", + "originalFilePath": "/packages/react/src/generators/setup-ssr/schema.json", + "path": "/nx-api/react/generators/setup-ssr", + "type": "generator" + }, + "/nx-api/react/generators/federate-module": { + "description": "Federate a module.", + "file": "generated/packages/react/generators/federate-module.json", + "hidden": false, + "name": "federate-module", + "originalFilePath": "/packages/react/src/generators/federate-module/schema.json", + "path": "/nx-api/react/generators/federate-module", + "type": "generator" + } + }, + "path": "/nx-api/react" + }, + "react-native": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "react-native", + "packageName": "@nx/react-native", + "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/react-native/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", + "file": "generated/packages/react-native/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/react-native/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/react-native/react-native-plugin" + } + }, + "root": "/packages/react-native", + "source": "/packages/react-native/src", + "executors": { + "/nx-api/react-native/executors/run-android": { + "description": "Runs Android application.", + "file": "generated/packages/react-native/executors/run-android.json", + "hidden": false, + "name": "run-android", + "originalFilePath": "/packages/react-native/src/executors/run-android/schema.json", + "path": "/nx-api/react-native/executors/run-android", + "type": "executor" + }, + "/nx-api/react-native/executors/run-ios": { + "description": "Runs iOS application.", + "file": "generated/packages/react-native/executors/run-ios.json", + "hidden": false, + "name": "run-ios", + "originalFilePath": "/packages/react-native/src/executors/run-ios/schema.json", + "path": "/nx-api/react-native/executors/run-ios", + "type": "executor" + }, + "/nx-api/react-native/executors/bundle": { + "description": "Builds the JavaScript bundle for offline use.", + "file": "generated/packages/react-native/executors/bundle.json", + "hidden": false, + "name": "bundle", + "originalFilePath": "/packages/react-native/src/executors/bundle/schema.json", + "path": "/nx-api/react-native/executors/bundle", + "type": "executor" + }, + "/nx-api/react-native/executors/build-android": { + "description": "Release Build for Android.", + "file": "generated/packages/react-native/executors/build-android.json", + "hidden": false, + "name": "build-android", + "originalFilePath": "/packages/react-native/src/executors/build-android/schema.json", + "path": "/nx-api/react-native/executors/build-android", + "type": "executor" + }, + "/nx-api/react-native/executors/build-ios": { + "description": "Build iOS app", + "file": "generated/packages/react-native/executors/build-ios.json", + "hidden": false, + "name": "build-ios", + "originalFilePath": "/packages/react-native/src/executors/build-ios/schema.json", + "path": "/nx-api/react-native/executors/build-ios", + "type": "executor" + }, + "/nx-api/react-native/executors/start": { + "description": "Starts the Javascript server that communicates with connected devices.", + "file": "generated/packages/react-native/executors/start.json", + "hidden": false, + "name": "start", + "originalFilePath": "/packages/react-native/src/executors/start/schema.json", + "path": "/nx-api/react-native/executors/start", + "type": "executor" + }, + "/nx-api/react-native/executors/sync-deps": { + "description": "Syncs dependencies to `package.json` (required for autolinking).", + "file": "generated/packages/react-native/executors/sync-deps.json", + "hidden": false, + "name": "sync-deps", + "originalFilePath": "/packages/react-native/src/executors/sync-deps/schema.json", + "path": "/nx-api/react-native/executors/sync-deps", + "type": "executor" + }, + "/nx-api/react-native/executors/ensure-symlink": { + "description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder.", + "file": "generated/packages/react-native/executors/ensure-symlink.json", + "hidden": false, + "name": "ensure-symlink", + "originalFilePath": "/packages/react-native/src/executors/ensure-symlink/schema.json", + "path": "/nx-api/react-native/executors/ensure-symlink", + "type": "executor" + }, + "/nx-api/react-native/executors/storybook": { + "description": "Serve React Native Storybook.", + "file": "generated/packages/react-native/executors/storybook.json", + "hidden": false, + "name": "storybook", + "originalFilePath": "/packages/react-native/src/executors/storybook/schema.json", + "path": "/nx-api/react-native/executors/storybook", + "type": "executor" + }, + "/nx-api/react-native/executors/pod-install": { + "description": "Run `pod install` in the `ios` directory.", + "file": "generated/packages/react-native/executors/pod-install.json", + "hidden": false, + "name": "pod-install", + "originalFilePath": "/packages/react-native/src/executors/pod-install/schema.json", + "path": "/nx-api/react-native/executors/pod-install", + "type": "executor" + }, + "/nx-api/react-native/executors/upgrade": { + "description": "upgrade executor", + "file": "generated/packages/react-native/executors/upgrade.json", + "hidden": false, + "name": "upgrade", + "originalFilePath": "/packages/react-native/src/executors/upgrade/schema.json", + "path": "/nx-api/react-native/executors/upgrade", + "type": "executor" + } + }, + "generators": { + "/nx-api/react-native/generators/init": { + "description": "Initialize the `@nx/react-native` plugin.", + "file": "generated/packages/react-native/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/react-native/src/generators/init/schema.json", + "path": "/nx-api/react-native/generators/init", + "type": "generator" + }, + "/nx-api/react-native/generators/application": { + "description": "Create a React Native application.", + "file": "generated/packages/react-native/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/react-native/src/generators/application/schema.json", + "path": "/nx-api/react-native/generators/application", + "type": "generator" + }, + "/nx-api/react-native/generators/library": { + "description": "Create a React Native library.", + "file": "generated/packages/react-native/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/react-native/src/generators/library/schema.json", + "path": "/nx-api/react-native/generators/library", + "type": "generator" + }, + "/nx-api/react-native/generators/component": { + "description": "Create a React Native component.", + "file": "generated/packages/react-native/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/react-native/src/generators/component/schema.json", + "path": "/nx-api/react-native/generators/component", + "type": "generator" + }, + "/nx-api/react-native/generators/storybook-configuration": { + "description": "Set up Storybook for a React Native application or library.", + "file": "generated/packages/react-native/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/react-native/src/generators/storybook-configuration/schema.json", + "path": "/nx-api/react-native/generators/storybook-configuration", + "type": "generator" + }, + "/nx-api/react-native/generators/component-story": { + "description": "Generate Storybook story for a React Native component.", + "file": "generated/packages/react-native/generators/component-story.json", + "hidden": false, + "name": "component-story", + "originalFilePath": "/packages/react-native/src/generators/component-story/schema.json", + "path": "/nx-api/react-native/generators/component-story", + "type": "generator" + }, + "/nx-api/react-native/generators/stories": { + "description": "Create stories for all components declared in an application or library.", + "file": "generated/packages/react-native/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/react-native/src/generators/stories/schema.json", + "path": "/nx-api/react-native/generators/stories", + "type": "generator" + }, + "/nx-api/react-native/generators/upgrade-native": { + "description": "Destructive command to upgrade native iOS and Android code to latest.", + "file": "generated/packages/react-native/generators/upgrade-native.json", + "hidden": false, + "name": "upgrade-native", + "originalFilePath": "/packages/react-native/src/generators/upgrade-native/schema.json", + "path": "/nx-api/react-native/generators/upgrade-native", + "type": "generator" + }, + "/nx-api/react-native/generators/web-configuration": { + "description": "Set up web configuration for a React Native app", + "file": "generated/packages/react-native/generators/web-configuration.json", + "hidden": false, + "name": "web-configuration", + "originalFilePath": "/packages/react-native/src/generators/web-configuration/schema.json", + "path": "/nx-api/react-native/generators/web-configuration", + "type": "generator" + } + }, + "path": "/nx-api/react-native" + }, + "remix": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "remix", + "packageName": "@nx/remix", + "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/remix/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/remix/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/remix/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/remix/remix-plugin" + } + }, + "root": "/packages/remix", + "source": "/packages/remix/src", + "executors": { + "/nx-api/remix/executors/serve": { + "description": "Serve a Remix application.", + "file": "generated/packages/remix/executors/serve.json", + "hidden": false, + "name": "serve", + "originalFilePath": "/packages/remix/src/executors/serve/schema.json", + "path": "/nx-api/remix/executors/serve", + "type": "executor" + }, + "/nx-api/remix/executors/build": { + "description": "Build a Remix application.", + "file": "generated/packages/remix/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/remix/src/executors/build/schema.json", + "path": "/nx-api/remix/executors/build", + "type": "executor" + } + }, + "generators": { + "/nx-api/remix/generators/preset": { + "description": "Generate a new Remix workspace", + "file": "generated/packages/remix/generators/preset.json", + "hidden": true, + "name": "preset", + "originalFilePath": "/packages/remix/src/generators/preset/schema.json", + "path": "/nx-api/remix/generators/preset", + "type": "generator" + }, + "/nx-api/remix/generators/setup": { + "description": "Setup a Remix in an existing workspace", + "file": "generated/packages/remix/generators/setup.json", + "hidden": true, + "name": "setup", + "originalFilePath": "/packages/remix/src/generators/setup/schema.json", + "path": "/nx-api/remix/generators/setup", + "type": "generator" + }, + "/nx-api/remix/generators/application": { + "description": "Generate a new Remix application", + "file": "generated/packages/remix/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/remix/src/generators/application/schema.json", + "path": "/nx-api/remix/generators/application", + "type": "generator" + }, + "/nx-api/remix/generators/cypress-component-configuration": { + "description": "Generate a Cypress Component Testing configuration for a Remix project", + "file": "generated/packages/remix/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/remix/src/generators/cypress-component-configuration/schema.json", + "path": "/nx-api/remix/generators/cypress-component-configuration", + "type": "generator" + }, + "/nx-api/remix/generators/library": { + "description": "Generate a new library", + "file": "generated/packages/remix/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/remix/src/generators/library/schema.json", + "path": "/nx-api/remix/generators/library", + "type": "generator" + }, + "/nx-api/remix/generators/init": { + "description": "Initialize the `@nx/remix` plugin.", + "file": "generated/packages/remix/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/remix/src/generators/init/schema.json", + "path": "/nx-api/remix/generators/init", + "type": "generator" + }, + "/nx-api/remix/generators/route": { + "description": "Generate a new route", + "file": "generated/packages/remix/generators/route.json", + "hidden": false, + "name": "route", + "originalFilePath": "/packages/remix/src/generators/route/schema.json", + "path": "/nx-api/remix/generators/route", + "type": "generator" + }, + "/nx-api/remix/generators/resource-route": { + "description": "Generate a new resource route", + "file": "generated/packages/remix/generators/resource-route.json", + "hidden": false, + "name": "resource-route", + "originalFilePath": "/packages/remix/src/generators/resource-route/schema.json", + "path": "/nx-api/remix/generators/resource-route", + "type": "generator" + }, + "/nx-api/remix/generators/action": { + "description": "Add an action function to an existing route", + "file": "generated/packages/remix/generators/action.json", + "hidden": false, + "name": "action", + "originalFilePath": "/packages/remix/src/generators/action/schema.json", + "path": "/nx-api/remix/generators/action", + "type": "generator" + }, + "/nx-api/remix/generators/loader": { + "description": "Add a loader function to an existing route", + "file": "generated/packages/remix/generators/loader.json", + "hidden": false, + "name": "loader", + "originalFilePath": "/packages/remix/src/generators/loader/schema.json", + "path": "/nx-api/remix/generators/loader", + "type": "generator" + }, + "/nx-api/remix/generators/style": { + "description": "Generates a new stylesheet and adds it to an existing route", + "file": "generated/packages/remix/generators/style.json", + "hidden": false, + "name": "style", + "originalFilePath": "/packages/remix/src/generators/style/schema.json", + "path": "/nx-api/remix/generators/style", + "type": "generator" + }, + "/nx-api/remix/generators/setup-tailwind": { + "description": "Generates a TailwindCSS configuration for the Remix application", + "file": "generated/packages/remix/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/remix/src/generators/setup-tailwind/schema.json", + "path": "/nx-api/remix/generators/setup-tailwind", + "type": "generator" + }, + "/nx-api/remix/generators/storybook-configuration": { + "description": "Generates a Storybook configuration for a Remix application", + "file": "generated/packages/remix/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/remix/src/generators/storybook-configuration/schema.json", + "path": "/nx-api/remix/generators/storybook-configuration", + "type": "generator" + }, + "/nx-api/remix/generators/meta": { + "description": "Add a meta function to an existing route", + "file": "generated/packages/remix/generators/meta.json", + "hidden": false, + "name": "meta", + "originalFilePath": "/packages/remix/src/generators/meta/schema.json", + "path": "/nx-api/remix/generators/meta", + "type": "generator" + }, + "/nx-api/remix/generators/error-boundary": { + "description": "Add an ErrorBoundary to an existing route", + "file": "generated/packages/remix/generators/error-boundary.json", + "hidden": false, + "name": "error-boundary", + "originalFilePath": "/packages/remix/src/generators/error-boundary/schema.json", + "path": "/nx-api/remix/generators/error-boundary", + "type": "generator" + } + }, + "path": "/nx-api/remix" + }, + "rollup": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "rollup", + "packageName": "@nx/rollup", + "description": "The Nx Plugin for Rollup contains executors and generators that support building applications using Rollup.", + "documents": {}, + "root": "/packages/rollup", + "source": "/packages/rollup/src", + "executors": { + "/nx-api/rollup/executors/rollup": { + "description": "Bundle a package using Rollup.", + "file": "generated/packages/rollup/executors/rollup.json", + "hidden": false, + "name": "rollup", + "originalFilePath": "/packages/rollup/src/executors/rollup/schema.json", + "path": "/nx-api/rollup/executors/rollup", + "type": "executor" + } + }, + "generators": { + "/nx-api/rollup/generators/init": { + "description": "Initialize the `@nrwl/rollup` plugin.", + "file": "generated/packages/rollup/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/rollup/src/generators/init/schema.json", + "path": "/nx-api/rollup/generators/init", + "type": "generator" + }, + "/nx-api/rollup/generators/configuration": { + "description": "Add rollup configuration to a project.", + "file": "generated/packages/rollup/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/rollup/src/generators/configuration/schema.json", + "path": "/nx-api/rollup/generators/configuration", + "type": "generator" + } + }, + "path": "/nx-api/rollup" + }, + "storybook": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "storybook", + "packageName": "@nx/storybook", + "description": "The Nx Plugin for Storybook contains executors and generators for allowing your workspace to use the powerful Storybook integration testing & documenting capabilities.", + "documents": { + "/nx-api/storybook/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace.", + "file": "generated/packages/storybook/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/storybook/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/storybook/plugin-overview" + }, + "/nx-api/storybook/documents/best-practices": { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "file": "generated/packages/storybook/documents/best-practices", + "itemList": [], + "isExternal": false, + "path": "/nx-api/storybook/documents/best-practices", + "tags": [], + "originalFilePath": "shared/packages/storybook/best-practices" + }, + "/nx-api/storybook/documents/storybook-7-setup": { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "file": "generated/packages/storybook/documents/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "/nx-api/storybook/documents/storybook-7-setup", + "tags": [], + "originalFilePath": "shared/packages/storybook/storybook-7-setup" + } + }, + "root": "/packages/storybook", + "source": "/packages/storybook/src", + "executors": { + "/nx-api/storybook/executors/storybook": { + "description": "Serve Storybook.", + "file": "generated/packages/storybook/executors/storybook.json", + "hidden": false, + "name": "storybook", + "originalFilePath": "/packages/storybook/src/executors/storybook/schema.json", + "path": "/nx-api/storybook/executors/storybook", + "type": "executor" + }, + "/nx-api/storybook/executors/build": { + "description": "Build Storybook.", + "file": "generated/packages/storybook/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/storybook/src/executors/build-storybook/schema.json", + "path": "/nx-api/storybook/executors/build", + "type": "executor" + } + }, + "generators": { + "/nx-api/storybook/generators/init": { + "description": "Add Storybook configuration to the workspace.", + "file": "generated/packages/storybook/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/storybook/src/generators/init/schema.json", + "path": "/nx-api/storybook/generators/init", + "type": "generator" + }, + "/nx-api/storybook/generators/configuration": { + "description": "Add Storybook configuration to a UI library or an application.", + "file": "generated/packages/storybook/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/storybook/src/generators/configuration/schema.json", + "path": "/nx-api/storybook/generators/configuration", + "type": "generator" + }, + "/nx-api/storybook/generators/cypress-project": { + "description": "Add cypress e2e app to test a UI library that is set up for Storybook.", + "file": "generated/packages/storybook/generators/cypress-project.json", + "hidden": false, + "name": "cypress-project", + "originalFilePath": "/packages/storybook/src/generators/cypress-project/schema.json", + "path": "/nx-api/storybook/generators/cypress-project", + "type": "generator" + }, + "/nx-api/storybook/generators/migrate-7": { + "description": "Migrate to Storybook version 7.", + "file": "generated/packages/storybook/generators/migrate-7.json", + "hidden": false, + "name": "migrate-7", + "originalFilePath": "/packages/storybook/src/generators/migrate-7/schema.json", + "path": "/nx-api/storybook/generators/migrate-7", + "type": "generator" + } + }, + "path": "/nx-api/storybook" + }, + "tao": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "tao", + "packageName": "@nrwl/tao", + "description": "CLI for generating code and running commands", + "documents": {}, + "root": "/packages/tao", + "source": "/packages/tao/src", + "executors": {}, + "generators": {}, + "path": "/nx-api/tao" + }, + "vite": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "vite", + "packageName": "@nx/vite", + "description": "The Nx Plugin for building and testing applications using Vite", + "documents": { + "/nx-api/vite/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace.", + "file": "generated/packages/vite/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/vite/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/vite/vite-plugin" + } + }, + "root": "/packages/vite", + "source": "/packages/vite/src", + "executors": { + "/nx-api/vite/executors/dev-server": { + "description": "Vite dev server.", + "file": "generated/packages/vite/executors/dev-server.json", + "hidden": false, + "name": "dev-server", + "originalFilePath": "/packages/vite/src/executors/dev-server/schema.json", + "path": "/nx-api/vite/executors/dev-server", + "type": "executor" + }, + "/nx-api/vite/executors/build": { + "description": "Build with Vite.", + "file": "generated/packages/vite/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/vite/src/executors/build/schema.json", + "path": "/nx-api/vite/executors/build", + "type": "executor" + }, + "/nx-api/vite/executors/test": { + "description": "Test with Vitest", + "file": "generated/packages/vite/executors/test.json", + "hidden": false, + "name": "test", + "originalFilePath": "/packages/vite/src/executors/test/schema.json", + "path": "/nx-api/vite/executors/test", + "type": "executor" + }, + "/nx-api/vite/executors/preview-server": { + "description": "Vite preview server", + "file": "generated/packages/vite/executors/preview-server.json", + "hidden": false, + "name": "preview-server", + "originalFilePath": "/packages/vite/src/executors/preview-server/schema.json", + "path": "/nx-api/vite/executors/preview-server", + "type": "executor" + } + }, + "generators": { + "/nx-api/vite/generators/init": { + "description": "Initialize Vite in the workspace.", + "file": "generated/packages/vite/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/vite/src/generators/init/schema.json", + "path": "/nx-api/vite/generators/init", + "type": "generator" + }, + "/nx-api/vite/generators/configuration": { + "description": "Add Vite configuration to an application.", + "file": "generated/packages/vite/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/vite/src/generators/configuration/schema.json", + "path": "/nx-api/vite/generators/configuration", + "type": "generator" + }, + "/nx-api/vite/generators/vitest": { + "description": "Generate a vitest configuration", + "file": "generated/packages/vite/generators/vitest.json", + "hidden": false, + "name": "vitest", + "originalFilePath": "/packages/vite/src/generators/vitest/schema.json", + "path": "/nx-api/vite/generators/vitest", + "type": "generator" + } + }, + "path": "/nx-api/vite" + }, + "vue": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "vue", + "packageName": "@nx/vue", + "description": "The Vue plugin for Nx contains executors and generators for managing Vue applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/vue/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace.", + "file": "generated/packages/vue/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/vue/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/vue/vue-plugin" + } + }, + "root": "/packages/vue", + "source": "/packages/vue/src", + "executors": {}, + "generators": { + "/nx-api/vue/generators/init": { + "description": "Initialize the `@nx/vue` plugin.", + "file": "generated/packages/vue/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/vue/src/generators/init/schema.json", + "path": "/nx-api/vue/generators/init", + "type": "generator" + }, + "/nx-api/vue/generators/application": { + "description": "Create a Vue application.", + "file": "generated/packages/vue/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/vue/src/generators/application/schema.json", + "path": "/nx-api/vue/generators/application", + "type": "generator" + }, + "/nx-api/vue/generators/library": { + "description": "Create a Vue library.", + "file": "generated/packages/vue/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/vue/src/generators/library/schema.json", + "path": "/nx-api/vue/generators/library", + "type": "generator" + }, + "/nx-api/vue/generators/component": { + "description": "Create a Vue component.", + "file": "generated/packages/vue/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/vue/src/generators/component/schema.json", + "path": "/nx-api/vue/generators/component", + "type": "generator" + }, + "/nx-api/vue/generators/setup-tailwind": { + "description": "Set up Tailwind configuration for a project.", + "file": "generated/packages/vue/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/vue/src/generators/setup-tailwind/schema.json", + "path": "/nx-api/vue/generators/setup-tailwind", + "type": "generator" + }, + "/nx-api/vue/generators/storybook-configuration": { + "description": "Set up storybook for a Vue app or library.", + "file": "generated/packages/vue/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/vue/src/generators/storybook-configuration/schema.json", + "path": "/nx-api/vue/generators/storybook-configuration", + "type": "generator" + }, + "/nx-api/vue/generators/stories": { + "description": "Create stories for all components declared in an app or library.", + "file": "generated/packages/vue/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/vue/src/generators/stories/schema.json", + "path": "/nx-api/vue/generators/stories", + "type": "generator" + } + }, + "path": "/nx-api/vue" + }, + "web": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "web", + "packageName": "@nx/web", + "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", + "documents": { + "/nx-api/web/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/web/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/web/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/web/web-plugin" + } + }, + "root": "/packages/web", + "source": "/packages/web/src", + "executors": { + "/nx-api/web/executors/file-server": { + "description": "Serve a web application from a folder.", + "file": "generated/packages/web/executors/file-server.json", + "hidden": false, + "name": "file-server", + "originalFilePath": "/packages/web/src/executors/file-server/schema.json", + "path": "/nx-api/web/executors/file-server", + "type": "executor" + } + }, + "generators": { + "/nx-api/web/generators/init": { + "description": "Add `@nrwl/web` to a project.", + "file": "generated/packages/web/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/web/src/generators/init/schema.json", + "path": "/nx-api/web/generators/init", + "type": "generator" + }, + "/nx-api/web/generators/application": { + "description": "Create an web application.", + "file": "generated/packages/web/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/web/src/generators/application/schema.json", + "path": "/nx-api/web/generators/application", + "type": "generator" + }, + "/nx-api/web/generators/static-config": { + "description": "Add a new static-serve target to a project.", + "file": "generated/packages/web/generators/static-config.json", + "hidden": false, + "name": "static-config", + "originalFilePath": "/packages/web/src/generators/static-serve/schema.json", + "path": "/nx-api/web/generators/static-config", + "type": "generator" + } + }, + "path": "/nx-api/web" + }, + "webpack": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "webpack", + "packageName": "@nx/webpack", + "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", + "documents": { + "/nx-api/webpack/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", + "file": "generated/packages/webpack/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/webpack/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/webpack/plugin-overview" + } + }, + "root": "/packages/webpack", + "source": "/packages/webpack/src", + "executors": { + "/nx-api/webpack/executors/webpack": { + "description": "Run webpack build.", + "file": "generated/packages/webpack/executors/webpack.json", + "hidden": false, + "name": "webpack", + "originalFilePath": "/packages/webpack/src/executors/webpack/schema.json", + "path": "/nx-api/webpack/executors/webpack", + "type": "executor" + }, + "/nx-api/webpack/executors/dev-server": { + "description": "Serve a web application.", + "file": "generated/packages/webpack/executors/dev-server.json", + "hidden": false, + "name": "dev-server", + "originalFilePath": "/packages/webpack/src/executors/dev-server/schema.json", + "path": "/nx-api/webpack/executors/dev-server", + "type": "executor" + }, + "/nx-api/webpack/executors/ssr-dev-server": { + "description": "Serve a SSR application.", + "file": "generated/packages/webpack/executors/ssr-dev-server.json", + "hidden": false, + "name": "ssr-dev-server", + "originalFilePath": "/packages/webpack/src/executors/ssr-dev-server/schema.json", + "path": "/nx-api/webpack/executors/ssr-dev-server", + "type": "executor" + } + }, + "generators": { + "/nx-api/webpack/generators/init": { + "description": "Initialize the `@nrwl/webpack` plugin.", + "file": "generated/packages/webpack/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/webpack/src/generators/init/schema.json", + "path": "/nx-api/webpack/generators/init", + "type": "generator" + }, + "/nx-api/webpack/generators/configuration": { + "description": "Add webpack configuration to a project.", + "file": "generated/packages/webpack/generators/configuration.json", + "hidden": true, + "name": "configuration", + "originalFilePath": "/packages/webpack/src/generators/configuration/schema.json", + "path": "/nx-api/webpack/generators/configuration", + "type": "generator" + } + }, + "path": "/nx-api/webpack" + }, + "workspace": { + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "workspace", + "packageName": "@nx/workspace", + "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", + "documents": { + "/nx-api/workspace/documents/overview": { + "id": "overview", + "name": "Overview", + "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", + "file": "generated/packages/workspace/documents/overview", + "itemList": [], + "isExternal": false, + "path": "/nx-api/workspace/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/workspace/workspace-plugin" + }, + "/nx-api/workspace/documents/nx-nodejs-typescript-version-matrix": { + "id": "nx-nodejs-typescript-version-matrix", + "name": "Nx, NodeJS and Typescript Versions", + "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", + "file": "generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix", + "itemList": [], + "isExternal": false, + "path": "/nx-api/workspace/documents/nx-nodejs-typescript-version-matrix", + "tags": [], + "originalFilePath": "shared/packages/workspace/nx-compatibility-matrix" + } + }, + "root": "/packages/workspace", + "source": "/packages/workspace/src", + "executors": { + "/nx-api/workspace/executors/counter": { + "description": "A dummy executor useful for E2E tests.", + "file": "generated/packages/workspace/executors/counter.json", + "hidden": true, + "name": "counter", + "originalFilePath": "/packages/workspace/src/executors/counter/schema.json", + "path": "/nx-api/workspace/executors/counter", + "type": "executor" + } + }, + "generators": { + "/nx-api/workspace/generators/preset": { + "description": "Create application in an empty workspace.", + "file": "generated/packages/workspace/generators/preset.json", + "hidden": true, + "name": "preset", + "originalFilePath": "/packages/workspace/src/generators/preset/schema.json", + "path": "/nx-api/workspace/generators/preset", + "type": "generator" + }, + "/nx-api/workspace/generators/move": { + "description": "Move an application or library to another folder.", + "file": "generated/packages/workspace/generators/move.json", + "hidden": false, + "name": "move", + "originalFilePath": "/packages/workspace/src/generators/move/schema.json", + "path": "/nx-api/workspace/generators/move", + "type": "generator" + }, + "/nx-api/workspace/generators/remove": { + "description": "Remove an application or library.", + "file": "generated/packages/workspace/generators/remove.json", + "hidden": false, + "name": "remove", + "originalFilePath": "/packages/workspace/src/generators/remove/schema.json", + "path": "/nx-api/workspace/generators/remove", + "type": "generator" + }, + "/nx-api/workspace/generators/convert-to-monorepo": { + "description": "Convert a Nx project to a monorepo.", + "file": "generated/packages/workspace/generators/convert-to-monorepo.json", + "hidden": false, + "name": "convert-to-monorepo", + "originalFilePath": "/packages/workspace/src/generators/convert-to-monorepo/schema.json", + "path": "/nx-api/workspace/generators/convert-to-monorepo", + "type": "generator" + }, + "/nx-api/workspace/generators/new": { + "description": "Create a workspace.", + "file": "generated/packages/workspace/generators/new.json", + "hidden": true, + "name": "new", + "originalFilePath": "/packages/workspace/src/generators/new/schema.json", + "path": "/nx-api/workspace/generators/new", + "type": "generator" + }, + "/nx-api/workspace/generators/run-commands": { + "description": "Generates a target to run any command in the terminal.", + "file": "generated/packages/workspace/generators/run-commands.json", + "hidden": false, + "name": "run-commands", + "originalFilePath": "/packages/workspace/src/generators/run-commands/schema.json", + "path": "/nx-api/workspace/generators/run-commands", + "type": "generator" + }, + "/nx-api/workspace/generators/fix-configuration": { + "description": "Fixes projects configuration", + "file": "generated/packages/workspace/generators/fix-configuration.json", + "hidden": false, + "name": "fix-configuration", + "originalFilePath": "/packages/workspace/src/generators/convert-to-nx-project/schema.json", + "path": "/nx-api/workspace/generators/fix-configuration", + "type": "generator" + }, + "/nx-api/workspace/generators/npm-package": { + "description": "Create a minimal NPM package.", + "file": "generated/packages/workspace/generators/npm-package.json", + "hidden": false, + "name": "npm-package", + "originalFilePath": "/packages/workspace/src/generators/npm-package/schema.json", + "path": "/nx-api/workspace/generators/npm-package", + "type": "generator" + }, + "/nx-api/workspace/generators/ci-workflow": { + "description": "Generate a CI workflow.", + "file": "generated/packages/workspace/generators/ci-workflow.json", + "hidden": false, + "name": "ci-workflow", + "originalFilePath": "/packages/workspace/src/generators/ci-workflow/schema.json", + "path": "/nx-api/workspace/generators/ci-workflow", + "type": "generator" + } + }, + "path": "/nx-api/workspace" + } +} diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json new file mode 100644 index 0000000000000..e30c388523d89 --- /dev/null +++ b/docs/generated/manifests/nx.json @@ -0,0 +1,7381 @@ +{ + "/getting-started": { + "id": "getting-started", + "name": "Getting Started", + "description": "Get started with basic information, concepts and tutorials.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "intro", + "name": "Intro to Nx", + "description": "", + "mediaImage": "", + "file": "shared/getting-started/intro", + "itemList": [], + "isExternal": false, + "path": "/getting-started/intro", + "tags": [] + }, + { + "id": "installation", + "name": "Installation", + "description": "", + "mediaImage": "", + "file": "shared/getting-started/installation", + "itemList": [], + "isExternal": false, + "path": "/getting-started/installation", + "tags": [] + }, + { + "id": "why-nx", + "name": "Why Nx?", + "description": "", + "mediaImage": "", + "file": "shared/getting-started/why-nx", + "itemList": [], + "isExternal": false, + "path": "/getting-started/why-nx", + "tags": [] + }, + { + "id": "tutorials", + "name": "Tutorials", + "description": "Get started with basic information, concepts and tutorials.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "npm-workspaces-tutorial", + "name": "NPM Workspaces Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/tutorials/npm-workspaces", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/npm-workspaces-tutorial", + "tags": [] + }, + { + "id": "integrated-repo-tutorial", + "name": "Integrated Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/npm-tutorial/integrated", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/integrated-repo-tutorial", + "tags": [] + }, + { + "id": "react-standalone-tutorial", + "name": "React Standalone", + "description": "", + "mediaImage": "", + "file": "shared/react-standalone-tutorial/react-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/react-standalone-tutorial", + "tags": [] + }, + { + "id": "react-monorepo-tutorial", + "name": "React Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/react-tutorial/react-monorepo", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/react-monorepo-tutorial", + "tags": [] + }, + { + "id": "angular-standalone-tutorial", + "name": "Angular Standalone", + "description": "", + "mediaImage": "", + "file": "shared/angular-standalone-tutorial/angular-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/angular-standalone-tutorial", + "tags": [] + }, + { + "id": "angular-monorepo-tutorial", + "name": "Angular Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/angular-tutorial/angular-monorepo", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/angular-monorepo-tutorial", + "tags": [] + }, + { + "id": "vue-standalone-tutorial", + "name": "Vue Standalone", + "description": "", + "mediaImage": "", + "file": "shared/vue-standalone-tutorial/vue-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/vue-standalone-tutorial", + "tags": [] + } + ], + "isExternal": false, + "path": "/getting-started/tutorials", + "tags": [] + } + ], + "isExternal": false, + "path": "/getting-started", + "tags": [] + }, + "/getting-started/intro": { + "id": "intro", + "name": "Intro to Nx", + "description": "", + "mediaImage": "", + "file": "shared/getting-started/intro", + "itemList": [], + "isExternal": false, + "path": "/getting-started/intro", + "tags": [] + }, + "/getting-started/installation": { + "id": "installation", + "name": "Installation", + "description": "", + "mediaImage": "", + "file": "shared/getting-started/installation", + "itemList": [], + "isExternal": false, + "path": "/getting-started/installation", + "tags": [] + }, + "/getting-started/why-nx": { + "id": "why-nx", + "name": "Why Nx?", + "description": "", + "mediaImage": "", + "file": "shared/getting-started/why-nx", + "itemList": [], + "isExternal": false, + "path": "/getting-started/why-nx", + "tags": [] + }, + "/getting-started/tutorials": { + "id": "tutorials", + "name": "Tutorials", + "description": "Get started with basic information, concepts and tutorials.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "npm-workspaces-tutorial", + "name": "NPM Workspaces Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/tutorials/npm-workspaces", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/npm-workspaces-tutorial", + "tags": [] + }, + { + "id": "integrated-repo-tutorial", + "name": "Integrated Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/npm-tutorial/integrated", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/integrated-repo-tutorial", + "tags": [] + }, + { + "id": "react-standalone-tutorial", + "name": "React Standalone", + "description": "", + "mediaImage": "", + "file": "shared/react-standalone-tutorial/react-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/react-standalone-tutorial", + "tags": [] + }, + { + "id": "react-monorepo-tutorial", + "name": "React Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/react-tutorial/react-monorepo", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/react-monorepo-tutorial", + "tags": [] + }, + { + "id": "angular-standalone-tutorial", + "name": "Angular Standalone", + "description": "", + "mediaImage": "", + "file": "shared/angular-standalone-tutorial/angular-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/angular-standalone-tutorial", + "tags": [] + }, + { + "id": "angular-monorepo-tutorial", + "name": "Angular Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/angular-tutorial/angular-monorepo", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/angular-monorepo-tutorial", + "tags": [] + }, + { + "id": "vue-standalone-tutorial", + "name": "Vue Standalone", + "description": "", + "mediaImage": "", + "file": "shared/vue-standalone-tutorial/vue-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/vue-standalone-tutorial", + "tags": [] + } + ], + "isExternal": false, + "path": "/getting-started/tutorials", + "tags": [] + }, + "/getting-started/tutorials/npm-workspaces-tutorial": { + "id": "npm-workspaces-tutorial", + "name": "NPM Workspaces Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/tutorials/npm-workspaces", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/npm-workspaces-tutorial", + "tags": [] + }, + "/getting-started/tutorials/integrated-repo-tutorial": { + "id": "integrated-repo-tutorial", + "name": "Integrated Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/npm-tutorial/integrated", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/integrated-repo-tutorial", + "tags": [] + }, + "/getting-started/tutorials/react-standalone-tutorial": { + "id": "react-standalone-tutorial", + "name": "React Standalone", + "description": "", + "mediaImage": "", + "file": "shared/react-standalone-tutorial/react-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/react-standalone-tutorial", + "tags": [] + }, + "/getting-started/tutorials/react-monorepo-tutorial": { + "id": "react-monorepo-tutorial", + "name": "React Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/react-tutorial/react-monorepo", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/react-monorepo-tutorial", + "tags": [] + }, + "/getting-started/tutorials/angular-standalone-tutorial": { + "id": "angular-standalone-tutorial", + "name": "Angular Standalone", + "description": "", + "mediaImage": "", + "file": "shared/angular-standalone-tutorial/angular-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/angular-standalone-tutorial", + "tags": [] + }, + "/getting-started/tutorials/angular-monorepo-tutorial": { + "id": "angular-monorepo-tutorial", + "name": "Angular Monorepo", + "description": "", + "mediaImage": "", + "file": "shared/angular-tutorial/angular-monorepo", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/angular-monorepo-tutorial", + "tags": [] + }, + "/getting-started/tutorials/vue-standalone-tutorial": { + "id": "vue-standalone-tutorial", + "name": "Vue Standalone", + "description": "", + "mediaImage": "", + "file": "shared/vue-standalone-tutorial/vue-standalone", + "itemList": [], + "isExternal": false, + "path": "/getting-started/tutorials/vue-standalone-tutorial", + "tags": [] + }, + "/core-tutorial": { + "id": "core-tutorial", + "name": "Core Tutorial", + "description": "Learn to use Nx with this core tutorial where you will learn about all its main feature with a real project.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "01-create-blog", + "name": "1 - Create Blog", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/01-create-blog", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/01-create-blog", + "tags": [] + }, + { + "id": "02-create-cli", + "name": "2 - Create CLI", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/02-create-cli", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/02-create-cli", + "tags": [] + }, + { + "id": "03-share-assets", + "name": "3 - Share Assets", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/03-share-assets", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/03-share-assets", + "tags": [] + }, + { + "id": "04-build-affected-projects", + "name": "4 - Build Affected Projects", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/04-build-affected-projects", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/04-build-affected-projects", + "tags": [] + }, + { + "id": "05-auto-detect-dependencies", + "name": "5 - Automatically Detect Dependencies", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/05-auto-detect-dependencies", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/05-auto-detect-dependencies", + "tags": [] + }, + { + "id": "06-summary", + "name": "6 - Summary", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/06-summary", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/06-summary", + "tags": [] + } + ], + "isExternal": false, + "path": "/core-tutorial", + "tags": [] + }, + "/core-tutorial/01-create-blog": { + "id": "01-create-blog", + "name": "1 - Create Blog", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/01-create-blog", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/01-create-blog", + "tags": [] + }, + "/core-tutorial/02-create-cli": { + "id": "02-create-cli", + "name": "2 - Create CLI", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/02-create-cli", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/02-create-cli", + "tags": [] + }, + "/core-tutorial/03-share-assets": { + "id": "03-share-assets", + "name": "3 - Share Assets", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/03-share-assets", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/03-share-assets", + "tags": [] + }, + "/core-tutorial/04-build-affected-projects": { + "id": "04-build-affected-projects", + "name": "4 - Build Affected Projects", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/04-build-affected-projects", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/04-build-affected-projects", + "tags": [] + }, + "/core-tutorial/05-auto-detect-dependencies": { + "id": "05-auto-detect-dependencies", + "name": "5 - Automatically Detect Dependencies", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/05-auto-detect-dependencies", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/05-auto-detect-dependencies", + "tags": [] + }, + "/core-tutorial/06-summary": { + "id": "06-summary", + "name": "6 - Summary", + "description": "", + "mediaImage": "", + "file": "shared/core-tutorial/06-summary", + "itemList": [], + "isExternal": false, + "path": "/core-tutorial/06-summary", + "tags": [] + }, + "/features": { + "id": "features", + "name": "Features", + "description": "Learn the core features of Nx with in depth guides.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "run-tasks", + "name": "Run Tasks", + "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", + "mediaImage": "", + "file": "shared/features/run-tasks", + "itemList": [], + "isExternal": false, + "path": "/features/run-tasks", + "tags": ["run-tasks", "cache-task-results"] + }, + { + "id": "cache-task-results", + "name": "Cache Task Results", + "description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.", + "mediaImage": "", + "file": "shared/features/cache-task-results", + "itemList": [], + "isExternal": false, + "path": "/features/cache-task-results", + "tags": ["cache-task-results"] + }, + { + "id": "explore-graph", + "name": "Explore your Workspace", + "description": "", + "mediaImage": "", + "file": "shared/features/explore-graph", + "itemList": [], + "isExternal": false, + "path": "/features/explore-graph", + "tags": ["explore-graph"] + }, + { + "id": "generate-code", + "name": "Generate Code", + "description": "", + "mediaImage": "", + "file": "shared/features/generate-code", + "itemList": [], + "isExternal": false, + "path": "/features/generate-code", + "tags": ["generate-code"] + }, + { + "id": "automate-updating-dependencies", + "name": "Automate Updating Dependencies", + "description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.", + "mediaImage": "", + "file": "shared/features/automate-updating-dependencies", + "itemList": [], + "isExternal": false, + "path": "/features/automate-updating-dependencies", + "tags": ["automate-updating-dependencies"] + }, + { + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", + "description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.", + "mediaImage": "", + "file": "shared/features/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/features/enforce-module-boundaries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "integrate-with-editors", + "name": "Integrate with Editors", + "description": "Learn about Nx Console, an extension for VS Code and WebStorm.", + "mediaImage": "", + "file": "shared/features/integrate-with-editors", + "itemList": [], + "isExternal": false, + "path": "/features/integrate-with-editors", + "tags": ["integrate-with-editors"] + }, + { + "id": "manage-releases", + "name": "Manage Releases", + "description": "Learn how Nx provides tools to help you manage releasing your projects.", + "mediaImage": "", + "file": "shared/features/manage-releases", + "itemList": [], + "isExternal": false, + "path": "/features/manage-releases", + "tags": ["manage-releases"] + }, + { + "id": "ci-features", + "name": "CI Features", + "description": "Features of Nx and Nx Cloud that improve CI", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/affected", + "tags": [] + }, + { + "id": "remote-cache", + "name": "Use Remote Caching (Nx Replay)", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/remote-cache", + "tags": [] + }, + { + "id": "distribute-task-execution", + "name": "Distribute Task Execution (Nx Agents)", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/distribute-task-execution", + "tags": [] + }, + { + "id": "dynamic-agents", + "name": "Dynamically Allocate Agents", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/dynamic-agents", + "tags": [] + }, + { + "id": "split-e2e-tasks", + "name": "Automatically Split E2E Tasks", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/split-e2e-tasks", + "tags": [] + }, + { + "id": "flaky-tasks", + "name": "Identify and Re-run Flaky Tasks", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/flaky-tasks", + "tags": [] + }, + { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/on-premise", + "tags": [] + } + ], + "isExternal": false, + "path": "/features/ci-features", + "tags": [] + } + ], + "isExternal": false, + "path": "/features", + "tags": [] + }, + "/features/run-tasks": { + "id": "run-tasks", + "name": "Run Tasks", + "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", + "mediaImage": "", + "file": "shared/features/run-tasks", + "itemList": [], + "isExternal": false, + "path": "/features/run-tasks", + "tags": ["run-tasks", "cache-task-results"] + }, + "/features/cache-task-results": { + "id": "cache-task-results", + "name": "Cache Task Results", + "description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.", + "mediaImage": "", + "file": "shared/features/cache-task-results", + "itemList": [], + "isExternal": false, + "path": "/features/cache-task-results", + "tags": ["cache-task-results"] + }, + "/features/explore-graph": { + "id": "explore-graph", + "name": "Explore your Workspace", + "description": "", + "mediaImage": "", + "file": "shared/features/explore-graph", + "itemList": [], + "isExternal": false, + "path": "/features/explore-graph", + "tags": ["explore-graph"] + }, + "/features/generate-code": { + "id": "generate-code", + "name": "Generate Code", + "description": "", + "mediaImage": "", + "file": "shared/features/generate-code", + "itemList": [], + "isExternal": false, + "path": "/features/generate-code", + "tags": ["generate-code"] + }, + "/features/automate-updating-dependencies": { + "id": "automate-updating-dependencies", + "name": "Automate Updating Dependencies", + "description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.", + "mediaImage": "", + "file": "shared/features/automate-updating-dependencies", + "itemList": [], + "isExternal": false, + "path": "/features/automate-updating-dependencies", + "tags": ["automate-updating-dependencies"] + }, + "/features/enforce-module-boundaries": { + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", + "description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.", + "mediaImage": "", + "file": "shared/features/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "/features/enforce-module-boundaries", + "tags": ["enforce-module-boundaries"] + }, + "/features/integrate-with-editors": { + "id": "integrate-with-editors", + "name": "Integrate with Editors", + "description": "Learn about Nx Console, an extension for VS Code and WebStorm.", + "mediaImage": "", + "file": "shared/features/integrate-with-editors", + "itemList": [], + "isExternal": false, + "path": "/features/integrate-with-editors", + "tags": ["integrate-with-editors"] + }, + "/features/manage-releases": { + "id": "manage-releases", + "name": "Manage Releases", + "description": "Learn how Nx provides tools to help you manage releasing your projects.", + "mediaImage": "", + "file": "shared/features/manage-releases", + "itemList": [], + "isExternal": false, + "path": "/features/manage-releases", + "tags": ["manage-releases"] + }, + "/features/ci-features": { + "id": "ci-features", + "name": "CI Features", + "description": "Features of Nx and Nx Cloud that improve CI", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/affected", + "tags": [] + }, + { + "id": "remote-cache", + "name": "Use Remote Caching (Nx Replay)", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/remote-cache", + "tags": [] + }, + { + "id": "distribute-task-execution", + "name": "Distribute Task Execution (Nx Agents)", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/distribute-task-execution", + "tags": [] + }, + { + "id": "dynamic-agents", + "name": "Dynamically Allocate Agents", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/dynamic-agents", + "tags": [] + }, + { + "id": "split-e2e-tasks", + "name": "Automatically Split E2E Tasks", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/split-e2e-tasks", + "tags": [] + }, + { + "id": "flaky-tasks", + "name": "Identify and Re-run Flaky Tasks", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/flaky-tasks", + "tags": [] + }, + { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/on-premise", + "tags": [] + } + ], + "isExternal": false, + "path": "/features/ci-features", + "tags": [] + }, + "/ci/features/affected": { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/affected", + "tags": [] + }, + "/ci/features/remote-cache": { + "id": "remote-cache", + "name": "Use Remote Caching (Nx Replay)", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/remote-cache", + "tags": [] + }, + "/ci/features/distribute-task-execution": { + "id": "distribute-task-execution", + "name": "Distribute Task Execution (Nx Agents)", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/distribute-task-execution", + "tags": [] + }, + "/ci/features/dynamic-agents": { + "id": "dynamic-agents", + "name": "Dynamically Allocate Agents", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/dynamic-agents", + "tags": [] + }, + "/ci/features/split-e2e-tasks": { + "id": "split-e2e-tasks", + "name": "Automatically Split E2E Tasks", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/split-e2e-tasks", + "tags": [] + }, + "/ci/features/flaky-tasks": { + "id": "flaky-tasks", + "name": "Identify and Re-run Flaky Tasks", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/flaky-tasks", + "tags": [] + }, + "/ci/features/on-premise": { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/features/on-premise", + "tags": [] + }, + "/concepts": { + "id": "concepts", + "name": "Concepts", + "description": "Learn about all the different concepts Nx uses to manage your tasks and enhance your productivity.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "mental-model", + "name": "Mental Model", + "description": "", + "mediaImage": "", + "file": "shared/mental-model", + "itemList": [], + "isExternal": false, + "path": "/concepts/mental-model", + "tags": ["intro"] + }, + { + "id": "how-caching-works", + "name": "How Caching Works", + "description": "", + "mediaImage": "", + "file": "shared/concepts/how-caching-works", + "itemList": [], + "isExternal": false, + "path": "/concepts/how-caching-works", + "tags": ["cache-task-results"] + }, + { + "id": "task-pipeline-configuration", + "name": "What is a Task Pipeline", + "description": "", + "mediaImage": "", + "file": "shared/concepts/task-pipeline-configuration", + "itemList": [], + "isExternal": false, + "path": "/concepts/task-pipeline-configuration", + "tags": ["run-tasks"] + }, + { + "id": "nx-plugins", + "name": "What Are Nx Plugins", + "description": "", + "mediaImage": "", + "file": "shared/concepts/nx-plugins", + "itemList": [], + "isExternal": false, + "path": "/concepts/nx-plugins", + "tags": ["generate-code", "create-your-own-plugin"] + }, + { + "id": "inferred-tasks", + "name": "Inferred Tasks", + "description": "", + "mediaImage": "", + "file": "shared/concepts/inferred-tasks", + "itemList": [], + "isExternal": false, + "path": "/concepts/inferred-tasks", + "tags": ["inferred-tasks"] + }, + { + "id": "types-of-configuration", + "name": "Types of Configuration", + "description": "", + "mediaImage": "", + "file": "shared/concepts/types-of-configuration", + "itemList": [], + "isExternal": false, + "path": "/concepts/types-of-configuration", + "tags": [] + }, + { + "id": "executors-and-configurations", + "name": "Executors and Configurations", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/executors-and-configurations", + "itemList": [], + "isExternal": false, + "path": "/concepts/executors-and-configurations", + "tags": ["run-tasks"] + }, + { + "id": "integrated-vs-package-based", + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "description": "", + "mediaImage": "", + "file": "shared/concepts/integrated-vs-package-based", + "itemList": [], + "isExternal": false, + "path": "/concepts/integrated-vs-package-based", + "tags": ["intro", "repository-types"] + }, + { + "id": "module-federation", + "name": "Module Federation", + "description": "Understand more about Module Federation with NX", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "module-federation-and-nx", + "name": "Module Federation and Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/module-federation-and-nx", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/module-federation-and-nx", + "tags": ["module-federation", "angular", "react"] + }, + { + "id": "faster-builds-with-module-federation", + "name": "Faster Builds with Module Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/faster-builds", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/faster-builds-with-module-federation", + "tags": ["module-federation", "angular", "react"] + }, + { + "id": "micro-frontend-architecture", + "name": "Micro Frontend Architecture", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/micro-frontend-architecture", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/micro-frontend-architecture", + "tags": [] + }, + { + "id": "manage-library-versions-with-module-federation", + "name": "Manage Library Versions with Module Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/manage-library-versions-with-module-federation", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/manage-library-versions-with-module-federation", + "tags": [] + } + ], + "isExternal": false, + "path": "/concepts/module-federation", + "tags": [] + }, + { + "id": "more-concepts", + "name": "More Concepts", + "description": "Get deeper into how Nx works and its different aspects.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "incremental-builds", + "name": "Incremental Builds", + "description": "", + "mediaImage": "", + "file": "shared/incremental-builds", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/incremental-builds", + "tags": [] + }, + { + "id": "turbo-and-nx", + "name": "Nx and Turborepo", + "description": "", + "mediaImage": "./shared/guides/nx-media-monorepo.jpg", + "file": "shared/guides/turbo-and-nx", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/turbo-and-nx", + "tags": [] + }, + { + "id": "why-monorepos", + "name": "Monorepos", + "description": "", + "mediaImage": "", + "file": "shared/guides/why-monorepos", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/why-monorepos", + "tags": [] + }, + { + "id": "dependency-management", + "name": "Dependency Management", + "description": "", + "mediaImage": "", + "file": "shared/concepts/dependency-management", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/dependency-management", + "tags": [] + }, + { + "id": "code-sharing", + "name": "Code Sharing", + "description": "", + "mediaImage": "", + "file": "shared/concepts/code-sharing", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/code-sharing", + "tags": [] + }, + { + "id": "monorepo-nx-enterprise", + "name": "Using Nx at Enterprises", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-nx-enterprise", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/monorepo-nx-enterprise", + "tags": ["enforce-module-boundaries", "generate-code"] + }, + { + "id": "nx-daemon", + "name": "Nx Daemon", + "description": "", + "mediaImage": "", + "file": "shared/daemon", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-daemon", + "tags": [] + }, + { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-and-angular", + "tags": [] + }, + { + "id": "folder-structure", + "name": "Folder Structure", + "description": "", + "mediaImage": "", + "file": "shared/guides/integrated-repo-folder-structure", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/folder-structure", + "tags": [] + }, + { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + { + "id": "applications-and-libraries", + "name": "Applications and Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/applications-and-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/applications-and-libraries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "creating-libraries", + "name": "Creating Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/creating-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/creating-libraries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "library-types", + "name": "Library Types", + "description": "", + "mediaImage": "", + "file": "shared/workspace/library-types", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/library-types", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "grouping-libraries", + "name": "Grouping Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/grouping-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/grouping-libraries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "buildable-and-publishable-libraries", + "name": "Buildable and Publishable Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/buildable-and-publishable-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/buildable-and-publishable-libraries", + "tags": [] + }, + { + "id": "how-project-graph-is-built", + "name": "How the Project Graph is Built", + "description": "", + "mediaImage": "", + "file": "shared/concepts/how-project-graph-is-built", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/how-project-graph-is-built", + "tags": ["explore-graph"] + } + ], + "isExternal": false, + "path": "/concepts/more-concepts", + "tags": [] + } + ], + "isExternal": false, + "path": "/concepts", + "tags": [] + }, + "/concepts/mental-model": { + "id": "mental-model", + "name": "Mental Model", + "description": "", + "mediaImage": "", + "file": "shared/mental-model", + "itemList": [], + "isExternal": false, + "path": "/concepts/mental-model", + "tags": ["intro"] + }, + "/concepts/how-caching-works": { + "id": "how-caching-works", + "name": "How Caching Works", + "description": "", + "mediaImage": "", + "file": "shared/concepts/how-caching-works", + "itemList": [], + "isExternal": false, + "path": "/concepts/how-caching-works", + "tags": ["cache-task-results"] + }, + "/concepts/task-pipeline-configuration": { + "id": "task-pipeline-configuration", + "name": "What is a Task Pipeline", + "description": "", + "mediaImage": "", + "file": "shared/concepts/task-pipeline-configuration", + "itemList": [], + "isExternal": false, + "path": "/concepts/task-pipeline-configuration", + "tags": ["run-tasks"] + }, + "/concepts/nx-plugins": { + "id": "nx-plugins", + "name": "What Are Nx Plugins", + "description": "", + "mediaImage": "", + "file": "shared/concepts/nx-plugins", + "itemList": [], + "isExternal": false, + "path": "/concepts/nx-plugins", + "tags": ["generate-code", "create-your-own-plugin"] + }, + "/concepts/inferred-tasks": { + "id": "inferred-tasks", + "name": "Inferred Tasks", + "description": "", + "mediaImage": "", + "file": "shared/concepts/inferred-tasks", + "itemList": [], + "isExternal": false, + "path": "/concepts/inferred-tasks", + "tags": ["inferred-tasks"] + }, + "/concepts/types-of-configuration": { + "id": "types-of-configuration", + "name": "Types of Configuration", + "description": "", + "mediaImage": "", + "file": "shared/concepts/types-of-configuration", + "itemList": [], + "isExternal": false, + "path": "/concepts/types-of-configuration", + "tags": [] + }, + "/concepts/executors-and-configurations": { + "id": "executors-and-configurations", + "name": "Executors and Configurations", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/executors-and-configurations", + "itemList": [], + "isExternal": false, + "path": "/concepts/executors-and-configurations", + "tags": ["run-tasks"] + }, + "/concepts/integrated-vs-package-based": { + "id": "integrated-vs-package-based", + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "description": "", + "mediaImage": "", + "file": "shared/concepts/integrated-vs-package-based", + "itemList": [], + "isExternal": false, + "path": "/concepts/integrated-vs-package-based", + "tags": ["intro", "repository-types"] + }, + "/concepts/module-federation": { + "id": "module-federation", + "name": "Module Federation", + "description": "Understand more about Module Federation with NX", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "module-federation-and-nx", + "name": "Module Federation and Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/module-federation-and-nx", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/module-federation-and-nx", + "tags": ["module-federation", "angular", "react"] + }, + { + "id": "faster-builds-with-module-federation", + "name": "Faster Builds with Module Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/faster-builds", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/faster-builds-with-module-federation", + "tags": ["module-federation", "angular", "react"] + }, + { + "id": "micro-frontend-architecture", + "name": "Micro Frontend Architecture", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/micro-frontend-architecture", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/micro-frontend-architecture", + "tags": [] + }, + { + "id": "manage-library-versions-with-module-federation", + "name": "Manage Library Versions with Module Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/manage-library-versions-with-module-federation", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/manage-library-versions-with-module-federation", + "tags": [] + } + ], + "isExternal": false, + "path": "/concepts/module-federation", + "tags": [] + }, + "/concepts/module-federation/module-federation-and-nx": { + "id": "module-federation-and-nx", + "name": "Module Federation and Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/module-federation-and-nx", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/module-federation-and-nx", + "tags": ["module-federation", "angular", "react"] + }, + "/concepts/module-federation/faster-builds-with-module-federation": { + "id": "faster-builds-with-module-federation", + "name": "Faster Builds with Module Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/faster-builds", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/faster-builds-with-module-federation", + "tags": ["module-federation", "angular", "react"] + }, + "/concepts/module-federation/micro-frontend-architecture": { + "id": "micro-frontend-architecture", + "name": "Micro Frontend Architecture", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/micro-frontend-architecture", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/micro-frontend-architecture", + "tags": [] + }, + "/concepts/module-federation/manage-library-versions-with-module-federation": { + "id": "manage-library-versions-with-module-federation", + "name": "Manage Library Versions with Module Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/manage-library-versions-with-module-federation", + "itemList": [], + "isExternal": false, + "path": "/concepts/module-federation/manage-library-versions-with-module-federation", + "tags": [] + }, + "/concepts/more-concepts": { + "id": "more-concepts", + "name": "More Concepts", + "description": "Get deeper into how Nx works and its different aspects.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "incremental-builds", + "name": "Incremental Builds", + "description": "", + "mediaImage": "", + "file": "shared/incremental-builds", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/incremental-builds", + "tags": [] + }, + { + "id": "turbo-and-nx", + "name": "Nx and Turborepo", + "description": "", + "mediaImage": "./shared/guides/nx-media-monorepo.jpg", + "file": "shared/guides/turbo-and-nx", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/turbo-and-nx", + "tags": [] + }, + { + "id": "why-monorepos", + "name": "Monorepos", + "description": "", + "mediaImage": "", + "file": "shared/guides/why-monorepos", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/why-monorepos", + "tags": [] + }, + { + "id": "dependency-management", + "name": "Dependency Management", + "description": "", + "mediaImage": "", + "file": "shared/concepts/dependency-management", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/dependency-management", + "tags": [] + }, + { + "id": "code-sharing", + "name": "Code Sharing", + "description": "", + "mediaImage": "", + "file": "shared/concepts/code-sharing", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/code-sharing", + "tags": [] + }, + { + "id": "monorepo-nx-enterprise", + "name": "Using Nx at Enterprises", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-nx-enterprise", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/monorepo-nx-enterprise", + "tags": ["enforce-module-boundaries", "generate-code"] + }, + { + "id": "nx-daemon", + "name": "Nx Daemon", + "description": "", + "mediaImage": "", + "file": "shared/daemon", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-daemon", + "tags": [] + }, + { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-and-angular", + "tags": [] + }, + { + "id": "folder-structure", + "name": "Folder Structure", + "description": "", + "mediaImage": "", + "file": "shared/guides/integrated-repo-folder-structure", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/folder-structure", + "tags": [] + }, + { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + { + "id": "applications-and-libraries", + "name": "Applications and Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/applications-and-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/applications-and-libraries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "creating-libraries", + "name": "Creating Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/creating-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/creating-libraries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "library-types", + "name": "Library Types", + "description": "", + "mediaImage": "", + "file": "shared/workspace/library-types", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/library-types", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "grouping-libraries", + "name": "Grouping Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/grouping-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/grouping-libraries", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "buildable-and-publishable-libraries", + "name": "Buildable and Publishable Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/buildable-and-publishable-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/buildable-and-publishable-libraries", + "tags": [] + }, + { + "id": "how-project-graph-is-built", + "name": "How the Project Graph is Built", + "description": "", + "mediaImage": "", + "file": "shared/concepts/how-project-graph-is-built", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/how-project-graph-is-built", + "tags": ["explore-graph"] + } + ], + "isExternal": false, + "path": "/concepts/more-concepts", + "tags": [] + }, + "/concepts/more-concepts/incremental-builds": { + "id": "incremental-builds", + "name": "Incremental Builds", + "description": "", + "mediaImage": "", + "file": "shared/incremental-builds", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/incremental-builds", + "tags": [] + }, + "/concepts/more-concepts/turbo-and-nx": { + "id": "turbo-and-nx", + "name": "Nx and Turborepo", + "description": "", + "mediaImage": "./shared/guides/nx-media-monorepo.jpg", + "file": "shared/guides/turbo-and-nx", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/turbo-and-nx", + "tags": [] + }, + "/concepts/more-concepts/why-monorepos": { + "id": "why-monorepos", + "name": "Monorepos", + "description": "", + "mediaImage": "", + "file": "shared/guides/why-monorepos", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/why-monorepos", + "tags": [] + }, + "/concepts/more-concepts/dependency-management": { + "id": "dependency-management", + "name": "Dependency Management", + "description": "", + "mediaImage": "", + "file": "shared/concepts/dependency-management", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/dependency-management", + "tags": [] + }, + "/concepts/more-concepts/code-sharing": { + "id": "code-sharing", + "name": "Code Sharing", + "description": "", + "mediaImage": "", + "file": "shared/concepts/code-sharing", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/code-sharing", + "tags": [] + }, + "/concepts/more-concepts/monorepo-nx-enterprise": { + "id": "monorepo-nx-enterprise", + "name": "Using Nx at Enterprises", + "description": "", + "mediaImage": "", + "file": "shared/monorepo-nx-enterprise", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/monorepo-nx-enterprise", + "tags": ["enforce-module-boundaries", "generate-code"] + }, + "/concepts/more-concepts/nx-daemon": { + "id": "nx-daemon", + "name": "Nx Daemon", + "description": "", + "mediaImage": "", + "file": "shared/daemon", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-daemon", + "tags": [] + }, + "/concepts/more-concepts/nx-and-angular": { + "id": "nx-and-angular", + "name": "Nx and the Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-and-angular-cli", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-and-angular", + "tags": [] + }, + "/concepts/more-concepts/folder-structure": { + "id": "folder-structure", + "name": "Folder Structure", + "description": "", + "mediaImage": "", + "file": "shared/guides/integrated-repo-folder-structure", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/folder-structure", + "tags": [] + }, + "/concepts/more-concepts/nx-devkit-angular-devkit": { + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "description": "", + "mediaImage": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/nx-devkit-angular-devkit", + "tags": ["create-your-own-plugin"] + }, + "/concepts/more-concepts/applications-and-libraries": { + "id": "applications-and-libraries", + "name": "Applications and Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/applications-and-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/applications-and-libraries", + "tags": ["enforce-module-boundaries"] + }, + "/concepts/more-concepts/creating-libraries": { + "id": "creating-libraries", + "name": "Creating Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/creating-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/creating-libraries", + "tags": ["enforce-module-boundaries"] + }, + "/concepts/more-concepts/library-types": { + "id": "library-types", + "name": "Library Types", + "description": "", + "mediaImage": "", + "file": "shared/workspace/library-types", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/library-types", + "tags": ["enforce-module-boundaries"] + }, + "/concepts/more-concepts/grouping-libraries": { + "id": "grouping-libraries", + "name": "Grouping Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/grouping-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/grouping-libraries", + "tags": ["enforce-module-boundaries"] + }, + "/concepts/more-concepts/buildable-and-publishable-libraries": { + "id": "buildable-and-publishable-libraries", + "name": "Buildable and Publishable Libraries", + "description": "", + "mediaImage": "", + "file": "shared/workspace/buildable-and-publishable-libraries", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/buildable-and-publishable-libraries", + "tags": [] + }, + "/concepts/more-concepts/how-project-graph-is-built": { + "id": "how-project-graph-is-built", + "name": "How the Project Graph is Built", + "description": "", + "mediaImage": "", + "file": "shared/concepts/how-project-graph-is-built", + "itemList": [], + "isExternal": false, + "path": "/concepts/more-concepts/how-project-graph-is-built", + "tags": ["explore-graph"] + }, + "/recipes": { + "id": "recipes", + "name": "Recipes", + "description": "In depth recipes for common tasks", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "running-tasks", + "name": "Tasks & Caching", + "description": "A series of recipes that show how to run tasks efficiently with Nx", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "configure-inputs", + "name": "Configure Inputs for Task Caching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/configure-inputs", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/configure-inputs", + "tags": ["run-tasks", "cache-task-results"] + }, + { + "id": "configure-outputs", + "name": "Configure Outputs for Task Caching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/configure-outputs", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/configure-outputs", + "tags": ["run-tasks", "cache-task-results"] + }, + { + "id": "defining-task-pipeline", + "name": "Define a Task Pipeline", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/defining-task-pipeline", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/defining-task-pipeline", + "tags": ["run-tasks"] + }, + { + "id": "change-cache-location", + "name": "Change Cache Location", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/change-cache-location", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/change-cache-location", + "tags": [] + }, + { + "id": "run-commands-executor", + "name": "Run Custom Commands", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/running-custom-commands", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/run-commands-executor", + "tags": ["run-tasks"] + }, + { + "id": "run-tasks-in-parallel", + "name": "Run Tasks in Parallel", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/run-tasks-in-parallel", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/run-tasks-in-parallel", + "tags": ["run-tasks"] + }, + { + "id": "root-level-scripts", + "name": "Run Root-Level NPM Scripts with Nx", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/root-level-scripts", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/root-level-scripts", + "tags": ["run-tasks"] + }, + { + "id": "workspace-watching", + "name": "Workspace Watching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/workspace-watching", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/workspace-watching", + "tags": ["run-tasks", "workspace-watching"] + }, + { + "id": "reduce-repetitive-configuration", + "name": "Reduce Repetitive Configuration", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/reduce-repetitive-configuration", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/reduce-repetitive-configuration", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/running-tasks", + "tags": [] + }, + { + "id": "adopting-nx", + "name": "Adopting Nx", + "description": "Adopting Nx incrementally, on existing project or from scratch.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "adding-to-monorepo", + "name": "NPM/Yarn/PNPM workspaces", + "description": "", + "mediaImage": "", + "file": "shared/migration/adding-to-monorepo", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/adding-to-monorepo", + "tags": [] + }, + { + "id": "from-turborepo", + "name": "Migrate From Turborepo", + "description": "", + "mediaImage": "", + "file": "shared/migration/from-turborepo", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/from-turborepo", + "tags": [] + }, + { + "id": "adding-to-existing-project", + "name": "Add to any Project", + "description": "", + "mediaImage": "", + "file": "shared/migration/adding-to-existing-project", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/adding-to-existing-project", + "tags": [] + }, + { + "id": "preserving-git-histories", + "name": "Preserving Git Histories", + "description": "", + "mediaImage": "", + "file": "shared/migration/preserving-git-histories", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/preserving-git-histories", + "tags": [] + }, + { + "id": "manual", + "name": "Manual migration", + "description": "", + "mediaImage": "", + "file": "shared/migration/manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/manual", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/adopting-nx", + "tags": [] + }, + { + "id": "react", + "name": "React", + "description": "Advanced guides to adopt Nx in React.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "migration-cra", + "name": "Migrating from CRA", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-cra", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/migration-cra", + "tags": [] + }, + { + "id": "react-18", + "name": "React 18 Migration", + "description": "", + "mediaImage": "", + "file": "shared/guides/react-18", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/react-18", + "tags": [] + }, + { + "id": "react-native", + "name": "React Native with Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/react-native", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/react-native", + "tags": [] + }, + { + "id": "remix", + "name": "Remix with Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/remix", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/remix", + "tags": [] + }, + { + "id": "use-environment-variables-in-react", + "name": "Use Environment Variables in React", + "description": "", + "mediaImage": "", + "file": "shared/guides/use-environment-variables-in-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/use-environment-variables-in-react", + "tags": ["environment-variables"] + }, + { + "id": "using-tailwind-css-in-react", + "name": "Using Tailwind CSS in React", + "description": "", + "mediaImage": "", + "file": "shared/guides/using-tailwind-css-in-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/using-tailwind-css-in-react", + "tags": [] + }, + { + "id": "adding-assets-react", + "name": "Adding Images, Fonts, and Files", + "description": "", + "mediaImage": "", + "file": "shared/guides/adding-assets", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/adding-assets-react", + "tags": [] + }, + { + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for React", + "description": "", + "mediaImage": "", + "file": "shared/recipes/module-federation-with-ssr", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/module-federation-with-ssr", + "tags": ["module-federation", "react"] + }, + { + "id": "deploy-nextjs-to-vercel", + "name": "Deploying Next.js applications to Vercel", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/deploy-nextjs-to-vercel", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/react", + "tags": [] + }, + { + "id": "angular", + "name": "Angular", + "description": "Advanced guides to adopt Nx in Angular.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "migration", + "name": "Migration", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "angular", + "name": "Migrating from Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular", + "tags": [] + }, + { + "id": "angular-multiple", + "name": "Migrating From Multiple Angular CLI Repos", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-multiple", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-multiple", + "tags": [] + }, + { + "id": "angular-manual", + "name": "Migrating Angular Application manually", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-manual", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/angular/migration", + "tags": [] + }, + { + "id": "use-environment-variables-in-angular", + "name": "Use Environment Variables in Angular", + "description": "", + "mediaImage": "", + "file": "shared/guides/use-environment-variables-in-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/use-environment-variables-in-angular", + "tags": ["environment-variables"] + }, + { + "id": "using-tailwind-css-with-angular-projects", + "name": "Using Tailwind CSS with Angular projects", + "description": "", + "mediaImage": "", + "file": "shared/guides/using-tailwind-css-with-angular-projects", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "tags": [] + }, + { + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for Angular", + "description": "", + "mediaImage": "", + "file": "shared/recipes/module-federation-with-ssr", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/module-federation-with-ssr", + "tags": ["module-federation", "angular"] + }, + { + "id": "dynamic-module-federation-with-angular", + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/dynamic-mfe-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "tags": ["module-federation", "angular"] + }, + { + "id": "setup-incremental-builds-angular", + "name": "Setup incremental builds for Angular applications", + "description": "", + "mediaImage": "", + "file": "shared/guides/setup-incremental-builds-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/setup-incremental-builds-angular", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/angular", + "tags": [] + }, + { + "id": "node", + "name": "Node", + "description": "Set of Node related recipes.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "node-server-fly-io", + "name": "Deploying a Node App to Fly.io", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-server-fly-io", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-server-fly-io", + "tags": ["deployment", "node"] + }, + { + "id": "node-serverless-functions-netlify", + "name": "Add and Deploy Netlify Edge Functions with Node", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-serverless-functions-netlify", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-serverless-functions-netlify", + "tags": ["deployment", "node"] + }, + { + "id": "node-aws-lambda", + "name": "Deploying AWS lambda in Node.js", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-aws-lambda", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-aws-lambda", + "tags": ["deployment", "node"] + }, + { + "id": "application-proxies", + "name": "Set Up Application Proxies", + "description": "", + "mediaImage": "", + "file": "shared/recipes/node/application-proxies", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/application-proxies", + "tags": ["node"] + }, + { + "id": "wait-for-tasks", + "name": "Wait for Tasks to Finish", + "description": "", + "mediaImage": "", + "file": "shared/recipes/node/wait-for-tasks", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/wait-for-tasks", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/node", + "tags": [] + }, + { + "id": "storybook", + "name": "Storybook", + "description": "Storybook strategies and setups.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "overview-react", + "name": "Set up Storybook for React Projects", + "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-react", + "tags": ["storybook"] + }, + { + "id": "overview-angular", + "name": "Set up Storybook for Angular Projects", + "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-angular", + "tags": ["storybook"] + }, + { + "id": "overview-vue", + "name": "Set up Storybook for Vue Projects", + "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-vue", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-vue", + "tags": ["storybook"] + }, + { + "id": "configuring-storybook", + "name": "Configuring Storybook on Nx", + "description": "This guide explains how Storybook is configured on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/configuring-storybook", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/configuring-storybook", + "tags": ["storybook"] + }, + { + "id": "one-storybook-for-all", + "name": "One main Storybook instance for all projects", + "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-for-all", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-for-all", + "tags": ["storybook"] + }, + { + "id": "one-storybook-per-scope", + "name": "One Storybook instance per scope", + "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-per-scope", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-per-scope", + "tags": ["storybook"] + }, + { + "id": "one-storybook-with-composition", + "name": "One main Storybook instance using Storybook Composition", + "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-with-composition", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-with-composition", + "tags": ["storybook"] + }, + { + "id": "custom-builder-configs", + "name": "How to configure Webpack and Vite for Storybook", + "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", + "mediaImage": "", + "file": "shared/recipes/storybook/custom-builder-configs", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/custom-builder-configs", + "tags": ["storybook"] + }, + { + "id": "storybook-interaction-tests", + "name": "Setting up Storybook Interaction Tests with Nx", + "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/interaction-tests", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/storybook-interaction-tests", + "tags": ["storybook"] + }, + { + "id": "upgrading-storybook", + "name": "Upgrading Storybook using the Storybook CLI", + "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", + "mediaImage": "", + "file": "shared/recipes/storybook/upgrading-storybook", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/upgrading-storybook", + "tags": ["storybook"] + }, + { + "id": "storybook-composition-setup", + "name": "Setting up Storybook Composition with Nx", + "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/storybook-composition-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/storybook-composition-setup", + "tags": ["storybook"] + }, + { + "id": "angular-storybook-compodoc", + "name": "Angular: Set up Compodoc for Storybook on Nx", + "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/angular-storybook-compodoc", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/angular-storybook-compodoc", + "tags": ["storybook"] + }, + { + "id": "angular-configuring-styles", + "name": "Angular: Configuring styles and preprocessor options", + "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", + "mediaImage": "", + "file": "shared/recipes/storybook/angular-configuring-styles", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/angular-configuring-styles", + "tags": ["storybook"] + } + ], + "isExternal": false, + "path": "/recipes/storybook", + "tags": [] + }, + { + "id": "cypress", + "name": "Cypress", + "description": "Cypress related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "cypress-component-testing", + "name": "Component Testing", + "description": "Component Testing", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-component-testing", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-component-testing", + "tags": [] + }, + { + "id": "cypress-setup-node-events", + "name": "Using setupNodeEvents with Cypress preset", + "description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-setup-node-events", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-setup-node-events", + "tags": [] + }, + { + "id": "cypress-v11-migration", + "name": "Cypress v11 Migration Guide", + "description": "Cypress v11 Migration Guide", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-v11-migration", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-v11-migration", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/cypress", + "tags": [] + }, + { + "id": "next", + "name": "Next", + "description": "Next related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "next-config-setup", + "name": "How to configure Next.js plugins", + "description": "How to configure Next.js plugins", + "mediaImage": "", + "file": "shared/packages/next/next-config-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/next/next-config-setup", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/next", + "tags": [] + }, + { + "id": "nuxt", + "name": "Nuxt", + "description": "Nuxt related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "deploy-nuxt-to-vercel", + "name": "Deploying Nuxt applications to Vercel", + "description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.", + "mediaImage": "", + "file": "shared/recipes/deployment/deploy-nuxt-to-vercel", + "itemList": [], + "isExternal": false, + "path": "/recipes/nuxt/deploy-nuxt-to-vercel", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/nuxt", + "tags": [] + }, + { + "id": "vite", + "name": "Vite", + "description": "Vite related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "configure-vite", + "name": "Configure Vite on your Nx workspace", + "description": "Configure Vite on your Nx workspace", + "mediaImage": "", + "file": "shared/packages/vite/configure-vite", + "itemList": [], + "isExternal": false, + "path": "/recipes/vite/configure-vite", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/vite", + "tags": [] + }, + { + "id": "webpack", + "name": "Webpack", + "description": "Webpack related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "webpack-config-setup", + "name": "How to configure Webpack in your Nx workspace", + "description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration", + "mediaImage": "", + "file": "shared/packages/webpack/webpack-config-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/webpack/webpack-config-setup", + "tags": [] + }, + { + "id": "webpack-plugins", + "name": "Webpack plugins", + "description": "Webpack plugins", + "mediaImage": "", + "file": "shared/packages/webpack/webpack-plugins", + "itemList": [], + "isExternal": false, + "path": "/recipes/webpack/webpack-plugins", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/webpack", + "tags": [] + }, + { + "id": "module-federation", + "name": "Module Federation", + "description": "Advanced guides to utilize Module Federation with Nx.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "create-a-host", + "name": "How to create a Module Federation Host Application", + "description": "A guide on how to create a Module Federation Host Application in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/creating-a-host", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/create-a-host", + "tags": [] + }, + { + "id": "create-a-remote", + "name": "How to create a Module Federation Remote Application", + "description": "A guide on how to create a Module Federation Remote Application in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/creating-a-remote", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/create-a-remote", + "tags": [] + }, + { + "id": "federate-a-module", + "name": "How to Federate a Module", + "description": "A guide on how to federate a module in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/federate-a-module", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/federate-a-module", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/module-federation", + "tags": [] + }, + { + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", + "description": "Configuring the enforce module boundaries rule", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "ban-dependencies-with-tags", + "name": "Ban Dependencies with Certain Tags", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ban-dependencies-with-tags", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "tag-multiple-dimensions", + "name": "Tag in Multiple Dimensions", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tag-multiple-dimensions", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "ban-external-imports", + "name": "Ban External Imports", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ban-external-imports", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "tags-allow-list", + "name": "Tags Allow List", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tags-allow-list", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "tags": ["enforce-module-boundaries"] + } + ], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries", + "tags": [] + }, + { + "id": "installation", + "name": "Installation", + "description": "Installing Nx", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "install-non-javascript", + "name": "Install Nx in a Non-Javascript Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/install-non-javascript", + "itemList": [], + "isExternal": false, + "path": "/recipes/installation/install-non-javascript", + "tags": ["installation"] + }, + { + "id": "update-global-installation", + "name": "Update Your Global Nx Installation", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/update-global-installation", + "itemList": [], + "isExternal": false, + "path": "/recipes/installation/update-global-installation", + "tags": ["installation"] + } + ], + "isExternal": false, + "path": "/recipes/installation", + "tags": [] + }, + { + "id": "tips-n-tricks", + "name": "Tips and tricks", + "description": "Various tips and tricks for using Nx.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "package-based-in-integrated", + "name": "Add a Package-based Project in an Integrated Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/package-based-in-integrated", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/package-based-in-integrated", + "tags": ["repository-types"] + }, + { + "id": "integrated-in-package-based", + "name": "Add an Integrated Project in a Package-based Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/integrated-in-package-based", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/integrated-in-package-based", + "tags": ["repository-types"] + }, + { + "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to an Integrated Repository", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/standalone-to-integrated", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/standalone-to-integrated", + "tags": ["repository-types"] + }, + { + "id": "eslint", + "name": "Configuring ESLint with Typescript", + "description": "", + "mediaImage": "", + "file": "shared/eslint", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/eslint", + "tags": [] + }, + { + "id": "enable-tsc-batch-mode", + "name": "Enable Typescript Batch Mode", + "description": "", + "mediaImage": "", + "file": "shared/recipes/enable-tsc-batch-mode", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", + "tags": [] + }, + { + "id": "define-secondary-entrypoints", + "name": "Define Secondary Entrypoints for Typescript Packages", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", + "tags": [] + }, + { + "id": "compile-multiple-formats", + "name": "Compile Typescript Packages to Multiple Formats", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/compile-multiple-formats", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/compile-multiple-formats", + "tags": [] + }, + { + "id": "keep-nx-versions-in-sync", + "name": "Keep Nx Versions in Sync", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "tags": ["automate-updating-dependencies"] + }, + { + "id": "define-environment-variables", + "name": "Define Environment Variables", + "description": "", + "mediaImage": "", + "file": "shared/guides/define-environment-variables", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/define-environment-variables", + "tags": ["environment-variables"] + }, + { + "id": "browser-support", + "name": "Configuring Browser Support", + "description": "", + "mediaImage": "", + "file": "shared/guides/browser-support", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/browser-support", + "tags": [] + }, + { + "id": "include-assets-in-build", + "name": "Include Assets in Build", + "description": "", + "mediaImage": "", + "file": "shared/recipes/include-assets-in-build", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "tags": [] + }, + { + "id": "include-all-packagejson", + "name": "Include All package.json Files as Projects", + "description": "", + "mediaImage": "", + "file": "shared/recipes/include-all-packagejson", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "tags": [] + }, + { + "id": "identify-dependencies-between-folders", + "name": "Identify Dependencies Between Folders", + "description": "", + "mediaImage": "", + "file": "shared/recipes/identify-dependencies-between-folders", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "tags": [] + }, + { + "id": "analyze-source-files", + "name": "Disable Graph Links Created from Analyzing Source Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/analyze-source-files", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/analyze-source-files", + "tags": ["explore-graph"] + }, + { + "id": "js-and-ts", + "name": "Use JavaScript instead TypeScript", + "description": "", + "mediaImage": "", + "file": "shared/guides/js-and-ts", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/js-and-ts", + "tags": [] + }, + { + "id": "advanced-update", + "name": "Altering Migration Process", + "description": "", + "mediaImage": "", + "file": "shared/recipes/advanced-update", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/advanced-update", + "tags": ["automate-updating-dependencies"] + }, + { + "id": "yarn-pnp", + "name": "Using Yarn PnP", + "description": "", + "mediaImage": "", + "file": "shared/recipes/yarn-pnp", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/yarn-pnp", + "tags": ["yarn", "Plug and Play"] + }, + { + "id": "flat-config", + "name": "Switching to ESLint's flat config format", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/flat-config", + "tags": ["eslint", "flat config"] + } + ], + "isExternal": false, + "path": "/recipes/tips-n-tricks", + "tags": [] + }, + { + "id": "troubleshooting", + "name": "Troubleshooting", + "description": "Learn how to troubleshoot common problems.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "resolve-circular-dependencies", + "name": "Resolve Circular Dependencies", + "description": "", + "mediaImage": "", + "file": "shared/recipes/resolve-circular-dependencies", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "tags": ["explore-graph"] + }, + { + "id": "troubleshoot-nx-install-issues", + "name": "Troubleshooting Nx Install Issues", + "description": "", + "mediaImage": "", + "file": "shared/installation/troubleshoot-installation", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "tags": [] + }, + { + "id": "troubleshoot-cache-misses", + "name": "Troubleshoot Cache Misses", + "description": "", + "mediaImage": "", + "file": "shared/recipes/troubleshoot-cache-misses", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "tags": ["cache-task-results"] + }, + { + "id": "unknown-local-cache", + "name": "Unknown Local Cache Error", + "description": "", + "mediaImage": "", + "file": "shared/guides/unknown-local-cache", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/unknown-local-cache", + "tags": [] + }, + { + "id": "performance-profiling", + "name": "Profiling Build Performance", + "description": "", + "mediaImage": "", + "file": "shared/guides/performance-profiling", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/performance-profiling", + "tags": ["environment-variables"] + } + ], + "isExternal": false, + "path": "/recipes/troubleshooting", + "tags": [] + }, + { + "id": "nx-console", + "name": "Nx Console", + "description": "Checkout all the recipes related to Nx Console.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "console-telemetry", + "name": "Telemetry", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-telemetry", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-telemetry", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-project-details", + "name": "Project Details View", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-project-details", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-project-details", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-generate-command", + "name": "Generate Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-generate-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-generate-command", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-run-command", + "name": "Run Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-run-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-run-command", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-add-dependency-command", + "name": "Add Dependency Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-add-dependency-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-add-dependency-command", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-project-pane", + "name": "Project Pane", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-project-pane", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-project-pane", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-shortcuts", + "name": "Keyboard Shortcuts", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-shortcuts", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-shortcuts", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-troubleshooting", + "name": "Troubleshooting", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-troubleshooting", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-troubleshooting", + "tags": ["integrate-with-editors"] + } + ], + "isExternal": false, + "path": "/recipes/nx-console", + "tags": [] + }, + { + "id": "nx-release", + "name": "Nx Release", + "description": "Recipes for releasing with Nx release.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "get-started-with-nx-release", + "name": "Get Started with Nx Release", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/get-started-with-nx-release", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/get-started-with-nx-release", + "tags": ["nx-release"] + }, + { + "id": "release-projects-independently", + "name": "Release Projects Independently", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/release-projects-independently", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/release-projects-independently", + "tags": ["nx-release"] + }, + { + "id": "automatically-version-with-conventional-commits", + "name": "Automatically Version with Conventional Commits", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/automatically-version-with-conventional-commits", + "tags": ["nx-release"] + }, + { + "id": "publish-in-ci-cd", + "name": "Publish in CI/CD", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/publish-in-ci-cd", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/publish-in-ci-cd", + "tags": ["nx-release"] + }, + { + "id": "automate-github-releases", + "name": "Automate GitHub Releases", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/automate-github-releases", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/automate-github-releases", + "tags": ["nx-release"] + }, + { + "id": "publish-rust-crates", + "name": "Publish Rust Crates", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/publish-rust-crates", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/publish-rust-crates", + "tags": ["nx-release"] + }, + { + "id": "update-local-registry-setup", + "name": "Update Your Local Registry Setup to use Nx Release", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/update-local-registry-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/update-local-registry-setup", + "tags": ["nx-release"] + }, + { + "id": "customize-conventional-commit-types", + "name": "Customize Conventional Commit Types", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/customize-conventional-commit-types", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/customize-conventional-commit-types", + "tags": ["nx-release"] + } + ], + "isExternal": false, + "path": "/recipes/nx-release", + "tags": [] + }, + { + "id": "other", + "name": "Other", + "description": "Other recipes you will find useful.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "rescope", + "name": "Rescope Packages from @nrwl to @nx", + "description": "", + "mediaImage": "", + "file": "shared/recipes/rescope", + "itemList": [], + "isExternal": false, + "path": "/recipes/other/rescope", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/other", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes", + "tags": [] + }, + "/recipes/running-tasks": { + "id": "running-tasks", + "name": "Tasks & Caching", + "description": "A series of recipes that show how to run tasks efficiently with Nx", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "configure-inputs", + "name": "Configure Inputs for Task Caching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/configure-inputs", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/configure-inputs", + "tags": ["run-tasks", "cache-task-results"] + }, + { + "id": "configure-outputs", + "name": "Configure Outputs for Task Caching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/configure-outputs", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/configure-outputs", + "tags": ["run-tasks", "cache-task-results"] + }, + { + "id": "defining-task-pipeline", + "name": "Define a Task Pipeline", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/defining-task-pipeline", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/defining-task-pipeline", + "tags": ["run-tasks"] + }, + { + "id": "change-cache-location", + "name": "Change Cache Location", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/change-cache-location", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/change-cache-location", + "tags": [] + }, + { + "id": "run-commands-executor", + "name": "Run Custom Commands", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/running-custom-commands", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/run-commands-executor", + "tags": ["run-tasks"] + }, + { + "id": "run-tasks-in-parallel", + "name": "Run Tasks in Parallel", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/run-tasks-in-parallel", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/run-tasks-in-parallel", + "tags": ["run-tasks"] + }, + { + "id": "root-level-scripts", + "name": "Run Root-Level NPM Scripts with Nx", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/root-level-scripts", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/root-level-scripts", + "tags": ["run-tasks"] + }, + { + "id": "workspace-watching", + "name": "Workspace Watching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/workspace-watching", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/workspace-watching", + "tags": ["run-tasks", "workspace-watching"] + }, + { + "id": "reduce-repetitive-configuration", + "name": "Reduce Repetitive Configuration", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/reduce-repetitive-configuration", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/reduce-repetitive-configuration", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/running-tasks", + "tags": [] + }, + "/recipes/running-tasks/configure-inputs": { + "id": "configure-inputs", + "name": "Configure Inputs for Task Caching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/configure-inputs", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/configure-inputs", + "tags": ["run-tasks", "cache-task-results"] + }, + "/recipes/running-tasks/configure-outputs": { + "id": "configure-outputs", + "name": "Configure Outputs for Task Caching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/configure-outputs", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/configure-outputs", + "tags": ["run-tasks", "cache-task-results"] + }, + "/recipes/running-tasks/defining-task-pipeline": { + "id": "defining-task-pipeline", + "name": "Define a Task Pipeline", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/defining-task-pipeline", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/defining-task-pipeline", + "tags": ["run-tasks"] + }, + "/recipes/running-tasks/change-cache-location": { + "id": "change-cache-location", + "name": "Change Cache Location", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/change-cache-location", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/change-cache-location", + "tags": [] + }, + "/recipes/running-tasks/run-commands-executor": { + "id": "run-commands-executor", + "name": "Run Custom Commands", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/running-custom-commands", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/run-commands-executor", + "tags": ["run-tasks"] + }, + "/recipes/running-tasks/run-tasks-in-parallel": { + "id": "run-tasks-in-parallel", + "name": "Run Tasks in Parallel", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/run-tasks-in-parallel", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/run-tasks-in-parallel", + "tags": ["run-tasks"] + }, + "/recipes/running-tasks/root-level-scripts": { + "id": "root-level-scripts", + "name": "Run Root-Level NPM Scripts with Nx", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/root-level-scripts", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/root-level-scripts", + "tags": ["run-tasks"] + }, + "/recipes/running-tasks/workspace-watching": { + "id": "workspace-watching", + "name": "Workspace Watching", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/workspace-watching", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/workspace-watching", + "tags": ["run-tasks", "workspace-watching"] + }, + "/recipes/running-tasks/reduce-repetitive-configuration": { + "id": "reduce-repetitive-configuration", + "name": "Reduce Repetitive Configuration", + "description": "", + "mediaImage": "", + "file": "shared/recipes/running-tasks/reduce-repetitive-configuration", + "itemList": [], + "isExternal": false, + "path": "/recipes/running-tasks/reduce-repetitive-configuration", + "tags": [] + }, + "/recipes/adopting-nx": { + "id": "adopting-nx", + "name": "Adopting Nx", + "description": "Adopting Nx incrementally, on existing project or from scratch.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "adding-to-monorepo", + "name": "NPM/Yarn/PNPM workspaces", + "description": "", + "mediaImage": "", + "file": "shared/migration/adding-to-monorepo", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/adding-to-monorepo", + "tags": [] + }, + { + "id": "from-turborepo", + "name": "Migrate From Turborepo", + "description": "", + "mediaImage": "", + "file": "shared/migration/from-turborepo", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/from-turborepo", + "tags": [] + }, + { + "id": "adding-to-existing-project", + "name": "Add to any Project", + "description": "", + "mediaImage": "", + "file": "shared/migration/adding-to-existing-project", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/adding-to-existing-project", + "tags": [] + }, + { + "id": "preserving-git-histories", + "name": "Preserving Git Histories", + "description": "", + "mediaImage": "", + "file": "shared/migration/preserving-git-histories", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/preserving-git-histories", + "tags": [] + }, + { + "id": "manual", + "name": "Manual migration", + "description": "", + "mediaImage": "", + "file": "shared/migration/manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/manual", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/adopting-nx", + "tags": [] + }, + "/recipes/adopting-nx/adding-to-monorepo": { + "id": "adding-to-monorepo", + "name": "NPM/Yarn/PNPM workspaces", + "description": "", + "mediaImage": "", + "file": "shared/migration/adding-to-monorepo", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/adding-to-monorepo", + "tags": [] + }, + "/recipes/adopting-nx/from-turborepo": { + "id": "from-turborepo", + "name": "Migrate From Turborepo", + "description": "", + "mediaImage": "", + "file": "shared/migration/from-turborepo", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/from-turborepo", + "tags": [] + }, + "/recipes/adopting-nx/adding-to-existing-project": { + "id": "adding-to-existing-project", + "name": "Add to any Project", + "description": "", + "mediaImage": "", + "file": "shared/migration/adding-to-existing-project", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/adding-to-existing-project", + "tags": [] + }, + "/recipes/adopting-nx/preserving-git-histories": { + "id": "preserving-git-histories", + "name": "Preserving Git Histories", + "description": "", + "mediaImage": "", + "file": "shared/migration/preserving-git-histories", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/preserving-git-histories", + "tags": [] + }, + "/recipes/adopting-nx/manual": { + "id": "manual", + "name": "Manual migration", + "description": "", + "mediaImage": "", + "file": "shared/migration/manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/adopting-nx/manual", + "tags": [] + }, + "/recipes/react": { + "id": "react", + "name": "React", + "description": "Advanced guides to adopt Nx in React.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "migration-cra", + "name": "Migrating from CRA", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-cra", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/migration-cra", + "tags": [] + }, + { + "id": "react-18", + "name": "React 18 Migration", + "description": "", + "mediaImage": "", + "file": "shared/guides/react-18", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/react-18", + "tags": [] + }, + { + "id": "react-native", + "name": "React Native with Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/react-native", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/react-native", + "tags": [] + }, + { + "id": "remix", + "name": "Remix with Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/remix", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/remix", + "tags": [] + }, + { + "id": "use-environment-variables-in-react", + "name": "Use Environment Variables in React", + "description": "", + "mediaImage": "", + "file": "shared/guides/use-environment-variables-in-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/use-environment-variables-in-react", + "tags": ["environment-variables"] + }, + { + "id": "using-tailwind-css-in-react", + "name": "Using Tailwind CSS in React", + "description": "", + "mediaImage": "", + "file": "shared/guides/using-tailwind-css-in-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/using-tailwind-css-in-react", + "tags": [] + }, + { + "id": "adding-assets-react", + "name": "Adding Images, Fonts, and Files", + "description": "", + "mediaImage": "", + "file": "shared/guides/adding-assets", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/adding-assets-react", + "tags": [] + }, + { + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for React", + "description": "", + "mediaImage": "", + "file": "shared/recipes/module-federation-with-ssr", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/module-federation-with-ssr", + "tags": ["module-federation", "react"] + }, + { + "id": "deploy-nextjs-to-vercel", + "name": "Deploying Next.js applications to Vercel", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/deploy-nextjs-to-vercel", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/react", + "tags": [] + }, + "/recipes/react/migration-cra": { + "id": "migration-cra", + "name": "Migrating from CRA", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-cra", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/migration-cra", + "tags": [] + }, + "/recipes/react/react-18": { + "id": "react-18", + "name": "React 18 Migration", + "description": "", + "mediaImage": "", + "file": "shared/guides/react-18", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/react-18", + "tags": [] + }, + "/recipes/react/react-native": { + "id": "react-native", + "name": "React Native with Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/react-native", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/react-native", + "tags": [] + }, + "/recipes/react/remix": { + "id": "remix", + "name": "Remix with Nx", + "description": "", + "mediaImage": "", + "file": "shared/guides/remix", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/remix", + "tags": [] + }, + "/recipes/react/use-environment-variables-in-react": { + "id": "use-environment-variables-in-react", + "name": "Use Environment Variables in React", + "description": "", + "mediaImage": "", + "file": "shared/guides/use-environment-variables-in-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/use-environment-variables-in-react", + "tags": ["environment-variables"] + }, + "/recipes/react/using-tailwind-css-in-react": { + "id": "using-tailwind-css-in-react", + "name": "Using Tailwind CSS in React", + "description": "", + "mediaImage": "", + "file": "shared/guides/using-tailwind-css-in-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/using-tailwind-css-in-react", + "tags": [] + }, + "/recipes/react/adding-assets-react": { + "id": "adding-assets-react", + "name": "Adding Images, Fonts, and Files", + "description": "", + "mediaImage": "", + "file": "shared/guides/adding-assets", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/adding-assets-react", + "tags": [] + }, + "/recipes/react/module-federation-with-ssr": { + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for React", + "description": "", + "mediaImage": "", + "file": "shared/recipes/module-federation-with-ssr", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/module-federation-with-ssr", + "tags": ["module-federation", "react"] + }, + "/recipes/react/deploy-nextjs-to-vercel": { + "id": "deploy-nextjs-to-vercel", + "name": "Deploying Next.js applications to Vercel", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/deploy-nextjs-to-vercel", + "itemList": [], + "isExternal": false, + "path": "/recipes/react/deploy-nextjs-to-vercel", + "tags": [] + }, + "/recipes/angular": { + "id": "angular", + "name": "Angular", + "description": "Advanced guides to adopt Nx in Angular.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "migration", + "name": "Migration", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "angular", + "name": "Migrating from Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular", + "tags": [] + }, + { + "id": "angular-multiple", + "name": "Migrating From Multiple Angular CLI Repos", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-multiple", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-multiple", + "tags": [] + }, + { + "id": "angular-manual", + "name": "Migrating Angular Application manually", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-manual", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/angular/migration", + "tags": [] + }, + { + "id": "use-environment-variables-in-angular", + "name": "Use Environment Variables in Angular", + "description": "", + "mediaImage": "", + "file": "shared/guides/use-environment-variables-in-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/use-environment-variables-in-angular", + "tags": ["environment-variables"] + }, + { + "id": "using-tailwind-css-with-angular-projects", + "name": "Using Tailwind CSS with Angular projects", + "description": "", + "mediaImage": "", + "file": "shared/guides/using-tailwind-css-with-angular-projects", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "tags": [] + }, + { + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for Angular", + "description": "", + "mediaImage": "", + "file": "shared/recipes/module-federation-with-ssr", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/module-federation-with-ssr", + "tags": ["module-federation", "angular"] + }, + { + "id": "dynamic-module-federation-with-angular", + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/dynamic-mfe-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "tags": ["module-federation", "angular"] + }, + { + "id": "setup-incremental-builds-angular", + "name": "Setup incremental builds for Angular applications", + "description": "", + "mediaImage": "", + "file": "shared/guides/setup-incremental-builds-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/setup-incremental-builds-angular", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/angular", + "tags": [] + }, + "/recipes/angular/migration": { + "id": "migration", + "name": "Migration", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "angular", + "name": "Migrating from Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular", + "tags": [] + }, + { + "id": "angular-multiple", + "name": "Migrating From Multiple Angular CLI Repos", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-multiple", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-multiple", + "tags": [] + }, + { + "id": "angular-manual", + "name": "Migrating Angular Application manually", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-manual", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/angular/migration", + "tags": [] + }, + "/recipes/angular/migration/angular": { + "id": "angular", + "name": "Migrating from Angular CLI", + "description": "", + "mediaImage": "", + "file": "shared/migration/migration-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular", + "tags": [] + }, + "/recipes/angular/migration/angular-multiple": { + "id": "angular-multiple", + "name": "Migrating From Multiple Angular CLI Repos", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-multiple", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-multiple", + "tags": [] + }, + "/recipes/angular/migration/angular-manual": { + "id": "angular-manual", + "name": "Migrating Angular Application manually", + "description": "", + "mediaImage": "", + "file": "shared/migration/angular-manual", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/migration/angular-manual", + "tags": [] + }, + "/recipes/angular/use-environment-variables-in-angular": { + "id": "use-environment-variables-in-angular", + "name": "Use Environment Variables in Angular", + "description": "", + "mediaImage": "", + "file": "shared/guides/use-environment-variables-in-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/use-environment-variables-in-angular", + "tags": ["environment-variables"] + }, + "/recipes/angular/using-tailwind-css-with-angular-projects": { + "id": "using-tailwind-css-with-angular-projects", + "name": "Using Tailwind CSS with Angular projects", + "description": "", + "mediaImage": "", + "file": "shared/guides/using-tailwind-css-with-angular-projects", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/using-tailwind-css-with-angular-projects", + "tags": [] + }, + "/recipes/angular/module-federation-with-ssr": { + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for Angular", + "description": "", + "mediaImage": "", + "file": "shared/recipes/module-federation-with-ssr", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/module-federation-with-ssr", + "tags": ["module-federation", "angular"] + }, + "/recipes/angular/dynamic-module-federation-with-angular": { + "id": "dynamic-module-federation-with-angular", + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "description": "", + "mediaImage": "", + "file": "shared/guides/module-federation/dynamic-mfe-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/dynamic-module-federation-with-angular", + "tags": ["module-federation", "angular"] + }, + "/recipes/angular/setup-incremental-builds-angular": { + "id": "setup-incremental-builds-angular", + "name": "Setup incremental builds for Angular applications", + "description": "", + "mediaImage": "", + "file": "shared/guides/setup-incremental-builds-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/angular/setup-incremental-builds-angular", + "tags": [] + }, + "/recipes/node": { + "id": "node", + "name": "Node", + "description": "Set of Node related recipes.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "node-server-fly-io", + "name": "Deploying a Node App to Fly.io", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-server-fly-io", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-server-fly-io", + "tags": ["deployment", "node"] + }, + { + "id": "node-serverless-functions-netlify", + "name": "Add and Deploy Netlify Edge Functions with Node", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-serverless-functions-netlify", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-serverless-functions-netlify", + "tags": ["deployment", "node"] + }, + { + "id": "node-aws-lambda", + "name": "Deploying AWS lambda in Node.js", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-aws-lambda", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-aws-lambda", + "tags": ["deployment", "node"] + }, + { + "id": "application-proxies", + "name": "Set Up Application Proxies", + "description": "", + "mediaImage": "", + "file": "shared/recipes/node/application-proxies", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/application-proxies", + "tags": ["node"] + }, + { + "id": "wait-for-tasks", + "name": "Wait for Tasks to Finish", + "description": "", + "mediaImage": "", + "file": "shared/recipes/node/wait-for-tasks", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/wait-for-tasks", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/node", + "tags": [] + }, + "/recipes/node/node-server-fly-io": { + "id": "node-server-fly-io", + "name": "Deploying a Node App to Fly.io", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-server-fly-io", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-server-fly-io", + "tags": ["deployment", "node"] + }, + "/recipes/node/node-serverless-functions-netlify": { + "id": "node-serverless-functions-netlify", + "name": "Add and Deploy Netlify Edge Functions with Node", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-serverless-functions-netlify", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-serverless-functions-netlify", + "tags": ["deployment", "node"] + }, + "/recipes/node/node-aws-lambda": { + "id": "node-aws-lambda", + "name": "Deploying AWS lambda in Node.js", + "description": "", + "mediaImage": "", + "file": "shared/recipes/deployment/node-aws-lambda", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/node-aws-lambda", + "tags": ["deployment", "node"] + }, + "/recipes/node/application-proxies": { + "id": "application-proxies", + "name": "Set Up Application Proxies", + "description": "", + "mediaImage": "", + "file": "shared/recipes/node/application-proxies", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/application-proxies", + "tags": ["node"] + }, + "/recipes/node/wait-for-tasks": { + "id": "wait-for-tasks", + "name": "Wait for Tasks to Finish", + "description": "", + "mediaImage": "", + "file": "shared/recipes/node/wait-for-tasks", + "itemList": [], + "isExternal": false, + "path": "/recipes/node/wait-for-tasks", + "tags": [] + }, + "/recipes/storybook": { + "id": "storybook", + "name": "Storybook", + "description": "Storybook strategies and setups.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "overview-react", + "name": "Set up Storybook for React Projects", + "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-react", + "tags": ["storybook"] + }, + { + "id": "overview-angular", + "name": "Set up Storybook for Angular Projects", + "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-angular", + "tags": ["storybook"] + }, + { + "id": "overview-vue", + "name": "Set up Storybook for Vue Projects", + "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-vue", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-vue", + "tags": ["storybook"] + }, + { + "id": "configuring-storybook", + "name": "Configuring Storybook on Nx", + "description": "This guide explains how Storybook is configured on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/configuring-storybook", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/configuring-storybook", + "tags": ["storybook"] + }, + { + "id": "one-storybook-for-all", + "name": "One main Storybook instance for all projects", + "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-for-all", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-for-all", + "tags": ["storybook"] + }, + { + "id": "one-storybook-per-scope", + "name": "One Storybook instance per scope", + "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-per-scope", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-per-scope", + "tags": ["storybook"] + }, + { + "id": "one-storybook-with-composition", + "name": "One main Storybook instance using Storybook Composition", + "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-with-composition", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-with-composition", + "tags": ["storybook"] + }, + { + "id": "custom-builder-configs", + "name": "How to configure Webpack and Vite for Storybook", + "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", + "mediaImage": "", + "file": "shared/recipes/storybook/custom-builder-configs", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/custom-builder-configs", + "tags": ["storybook"] + }, + { + "id": "storybook-interaction-tests", + "name": "Setting up Storybook Interaction Tests with Nx", + "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/interaction-tests", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/storybook-interaction-tests", + "tags": ["storybook"] + }, + { + "id": "upgrading-storybook", + "name": "Upgrading Storybook using the Storybook CLI", + "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", + "mediaImage": "", + "file": "shared/recipes/storybook/upgrading-storybook", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/upgrading-storybook", + "tags": ["storybook"] + }, + { + "id": "storybook-composition-setup", + "name": "Setting up Storybook Composition with Nx", + "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/storybook-composition-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/storybook-composition-setup", + "tags": ["storybook"] + }, + { + "id": "angular-storybook-compodoc", + "name": "Angular: Set up Compodoc for Storybook on Nx", + "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/angular-storybook-compodoc", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/angular-storybook-compodoc", + "tags": ["storybook"] + }, + { + "id": "angular-configuring-styles", + "name": "Angular: Configuring styles and preprocessor options", + "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", + "mediaImage": "", + "file": "shared/recipes/storybook/angular-configuring-styles", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/angular-configuring-styles", + "tags": ["storybook"] + } + ], + "isExternal": false, + "path": "/recipes/storybook", + "tags": [] + }, + "/recipes/storybook/overview-react": { + "id": "overview-react", + "name": "Set up Storybook for React Projects", + "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-react", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-react", + "tags": ["storybook"] + }, + "/recipes/storybook/overview-angular": { + "id": "overview-angular", + "name": "Set up Storybook for Angular Projects", + "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-angular", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-angular", + "tags": ["storybook"] + }, + "/recipes/storybook/overview-vue": { + "id": "overview-vue", + "name": "Set up Storybook for Vue Projects", + "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/plugin-vue", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/overview-vue", + "tags": ["storybook"] + }, + "/recipes/storybook/configuring-storybook": { + "id": "configuring-storybook", + "name": "Configuring Storybook on Nx", + "description": "This guide explains how Storybook is configured on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/configuring-storybook", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/configuring-storybook", + "tags": ["storybook"] + }, + "/recipes/storybook/one-storybook-for-all": { + "id": "one-storybook-for-all", + "name": "One main Storybook instance for all projects", + "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-for-all", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-for-all", + "tags": ["storybook"] + }, + "/recipes/storybook/one-storybook-per-scope": { + "id": "one-storybook-per-scope", + "name": "One Storybook instance per scope", + "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-per-scope", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-per-scope", + "tags": ["storybook"] + }, + "/recipes/storybook/one-storybook-with-composition": { + "id": "one-storybook-with-composition", + "name": "One main Storybook instance using Storybook Composition", + "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", + "mediaImage": "", + "file": "shared/recipes/storybook/one-storybook-with-composition", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/one-storybook-with-composition", + "tags": ["storybook"] + }, + "/recipes/storybook/custom-builder-configs": { + "id": "custom-builder-configs", + "name": "How to configure Webpack and Vite for Storybook", + "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", + "mediaImage": "", + "file": "shared/recipes/storybook/custom-builder-configs", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/custom-builder-configs", + "tags": ["storybook"] + }, + "/recipes/storybook/storybook-interaction-tests": { + "id": "storybook-interaction-tests", + "name": "Setting up Storybook Interaction Tests with Nx", + "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/interaction-tests", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/storybook-interaction-tests", + "tags": ["storybook"] + }, + "/recipes/storybook/upgrading-storybook": { + "id": "upgrading-storybook", + "name": "Upgrading Storybook using the Storybook CLI", + "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", + "mediaImage": "", + "file": "shared/recipes/storybook/upgrading-storybook", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/upgrading-storybook", + "tags": ["storybook"] + }, + "/recipes/storybook/storybook-composition-setup": { + "id": "storybook-composition-setup", + "name": "Setting up Storybook Composition with Nx", + "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/storybook-composition-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/storybook-composition-setup", + "tags": ["storybook"] + }, + "/recipes/storybook/angular-storybook-compodoc": { + "id": "angular-storybook-compodoc", + "name": "Angular: Set up Compodoc for Storybook on Nx", + "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", + "mediaImage": "", + "file": "shared/recipes/storybook/angular-storybook-compodoc", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/angular-storybook-compodoc", + "tags": ["storybook"] + }, + "/recipes/storybook/angular-configuring-styles": { + "id": "angular-configuring-styles", + "name": "Angular: Configuring styles and preprocessor options", + "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", + "mediaImage": "", + "file": "shared/recipes/storybook/angular-configuring-styles", + "itemList": [], + "isExternal": false, + "path": "/recipes/storybook/angular-configuring-styles", + "tags": ["storybook"] + }, + "/recipes/cypress": { + "id": "cypress", + "name": "Cypress", + "description": "Cypress related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "cypress-component-testing", + "name": "Component Testing", + "description": "Component Testing", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-component-testing", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-component-testing", + "tags": [] + }, + { + "id": "cypress-setup-node-events", + "name": "Using setupNodeEvents with Cypress preset", + "description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-setup-node-events", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-setup-node-events", + "tags": [] + }, + { + "id": "cypress-v11-migration", + "name": "Cypress v11 Migration Guide", + "description": "Cypress v11 Migration Guide", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-v11-migration", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-v11-migration", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/cypress", + "tags": [] + }, + "/recipes/cypress/cypress-component-testing": { + "id": "cypress-component-testing", + "name": "Component Testing", + "description": "Component Testing", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-component-testing", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-component-testing", + "tags": [] + }, + "/recipes/cypress/cypress-setup-node-events": { + "id": "cypress-setup-node-events", + "name": "Using setupNodeEvents with Cypress preset", + "description": "A guide on using the setupNodeEvents function with @nx/cypress/plugins/cypress-preset", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-setup-node-events", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-setup-node-events", + "tags": [] + }, + "/recipes/cypress/cypress-v11-migration": { + "id": "cypress-v11-migration", + "name": "Cypress v11 Migration Guide", + "description": "Cypress v11 Migration Guide", + "mediaImage": "", + "file": "shared/packages/cypress/cypress-v11-migration", + "itemList": [], + "isExternal": false, + "path": "/recipes/cypress/cypress-v11-migration", + "tags": [] + }, + "/recipes/next": { + "id": "next", + "name": "Next", + "description": "Next related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "next-config-setup", + "name": "How to configure Next.js plugins", + "description": "How to configure Next.js plugins", + "mediaImage": "", + "file": "shared/packages/next/next-config-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/next/next-config-setup", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/next", + "tags": [] + }, + "/recipes/next/next-config-setup": { + "id": "next-config-setup", + "name": "How to configure Next.js plugins", + "description": "How to configure Next.js plugins", + "mediaImage": "", + "file": "shared/packages/next/next-config-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/next/next-config-setup", + "tags": [] + }, + "/recipes/nuxt": { + "id": "nuxt", + "name": "Nuxt", + "description": "Nuxt related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "deploy-nuxt-to-vercel", + "name": "Deploying Nuxt applications to Vercel", + "description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.", + "mediaImage": "", + "file": "shared/recipes/deployment/deploy-nuxt-to-vercel", + "itemList": [], + "isExternal": false, + "path": "/recipes/nuxt/deploy-nuxt-to-vercel", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/nuxt", + "tags": [] + }, + "/recipes/nuxt/deploy-nuxt-to-vercel": { + "id": "deploy-nuxt-to-vercel", + "name": "Deploying Nuxt applications to Vercel", + "description": "A detailed guide on how to deploy Nuxt applications from Nx workspaces to Vercel.", + "mediaImage": "", + "file": "shared/recipes/deployment/deploy-nuxt-to-vercel", + "itemList": [], + "isExternal": false, + "path": "/recipes/nuxt/deploy-nuxt-to-vercel", + "tags": [] + }, + "/recipes/vite": { + "id": "vite", + "name": "Vite", + "description": "Vite related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "configure-vite", + "name": "Configure Vite on your Nx workspace", + "description": "Configure Vite on your Nx workspace", + "mediaImage": "", + "file": "shared/packages/vite/configure-vite", + "itemList": [], + "isExternal": false, + "path": "/recipes/vite/configure-vite", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/vite", + "tags": [] + }, + "/recipes/vite/configure-vite": { + "id": "configure-vite", + "name": "Configure Vite on your Nx workspace", + "description": "Configure Vite on your Nx workspace", + "mediaImage": "", + "file": "shared/packages/vite/configure-vite", + "itemList": [], + "isExternal": false, + "path": "/recipes/vite/configure-vite", + "tags": [] + }, + "/recipes/webpack": { + "id": "webpack", + "name": "Webpack", + "description": "Webpack related recipes", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "webpack-config-setup", + "name": "How to configure Webpack in your Nx workspace", + "description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration", + "mediaImage": "", + "file": "shared/packages/webpack/webpack-config-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/webpack/webpack-config-setup", + "tags": [] + }, + { + "id": "webpack-plugins", + "name": "Webpack plugins", + "description": "Webpack plugins", + "mediaImage": "", + "file": "shared/packages/webpack/webpack-plugins", + "itemList": [], + "isExternal": false, + "path": "/recipes/webpack/webpack-plugins", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/webpack", + "tags": [] + }, + "/recipes/webpack/webpack-config-setup": { + "id": "webpack-config-setup", + "name": "How to configure Webpack in your Nx workspace", + "description": "A guide on how to configure webpack on your Nx workspace, and instructions on how to customize your webpack configuration", + "mediaImage": "", + "file": "shared/packages/webpack/webpack-config-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/webpack/webpack-config-setup", + "tags": [] + }, + "/recipes/webpack/webpack-plugins": { + "id": "webpack-plugins", + "name": "Webpack plugins", + "description": "Webpack plugins", + "mediaImage": "", + "file": "shared/packages/webpack/webpack-plugins", + "itemList": [], + "isExternal": false, + "path": "/recipes/webpack/webpack-plugins", + "tags": [] + }, + "/recipes/module-federation": { + "id": "module-federation", + "name": "Module Federation", + "description": "Advanced guides to utilize Module Federation with Nx.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "create-a-host", + "name": "How to create a Module Federation Host Application", + "description": "A guide on how to create a Module Federation Host Application in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/creating-a-host", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/create-a-host", + "tags": [] + }, + { + "id": "create-a-remote", + "name": "How to create a Module Federation Remote Application", + "description": "A guide on how to create a Module Federation Remote Application in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/creating-a-remote", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/create-a-remote", + "tags": [] + }, + { + "id": "federate-a-module", + "name": "How to Federate a Module", + "description": "A guide on how to federate a module in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/federate-a-module", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/federate-a-module", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/module-federation", + "tags": [] + }, + "/recipes/module-federation/create-a-host": { + "id": "create-a-host", + "name": "How to create a Module Federation Host Application", + "description": "A guide on how to create a Module Federation Host Application in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/creating-a-host", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/create-a-host", + "tags": [] + }, + "/recipes/module-federation/create-a-remote": { + "id": "create-a-remote", + "name": "How to create a Module Federation Remote Application", + "description": "A guide on how to create a Module Federation Remote Application in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/creating-a-remote", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/create-a-remote", + "tags": [] + }, + "/recipes/module-federation/federate-a-module": { + "id": "federate-a-module", + "name": "How to Federate a Module", + "description": "A guide on how to federate a module in your Nx workspace", + "mediaImage": "", + "file": "shared/recipes/module-federation/federate-a-module", + "itemList": [], + "isExternal": false, + "path": "/recipes/module-federation/federate-a-module", + "tags": [] + }, + "/recipes/enforce-module-boundaries": { + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", + "description": "Configuring the enforce module boundaries rule", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "ban-dependencies-with-tags", + "name": "Ban Dependencies with Certain Tags", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ban-dependencies-with-tags", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "tag-multiple-dimensions", + "name": "Tag in Multiple Dimensions", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tag-multiple-dimensions", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "ban-external-imports", + "name": "Ban External Imports", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ban-external-imports", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "tags-allow-list", + "name": "Tags Allow List", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tags-allow-list", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "tags": ["enforce-module-boundaries"] + } + ], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries", + "tags": [] + }, + "/recipes/enforce-module-boundaries/ban-dependencies-with-tags": { + "id": "ban-dependencies-with-tags", + "name": "Ban Dependencies with Certain Tags", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ban-dependencies-with-tags", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags", + "tags": ["enforce-module-boundaries"] + }, + "/recipes/enforce-module-boundaries/tag-multiple-dimensions": { + "id": "tag-multiple-dimensions", + "name": "Tag in Multiple Dimensions", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tag-multiple-dimensions", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions", + "tags": ["enforce-module-boundaries"] + }, + "/recipes/enforce-module-boundaries/ban-external-imports": { + "id": "ban-external-imports", + "name": "Ban External Imports", + "description": "", + "mediaImage": "", + "file": "shared/recipes/ban-external-imports", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/ban-external-imports", + "tags": ["enforce-module-boundaries"] + }, + "/recipes/enforce-module-boundaries/tags-allow-list": { + "id": "tags-allow-list", + "name": "Tags Allow List", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tags-allow-list", + "itemList": [], + "isExternal": false, + "path": "/recipes/enforce-module-boundaries/tags-allow-list", + "tags": ["enforce-module-boundaries"] + }, + "/recipes/installation": { + "id": "installation", + "name": "Installation", + "description": "Installing Nx", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "install-non-javascript", + "name": "Install Nx in a Non-Javascript Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/install-non-javascript", + "itemList": [], + "isExternal": false, + "path": "/recipes/installation/install-non-javascript", + "tags": ["installation"] + }, + { + "id": "update-global-installation", + "name": "Update Your Global Nx Installation", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/update-global-installation", + "itemList": [], + "isExternal": false, + "path": "/recipes/installation/update-global-installation", + "tags": ["installation"] + } + ], + "isExternal": false, + "path": "/recipes/installation", + "tags": [] + }, + "/recipes/installation/install-non-javascript": { + "id": "install-non-javascript", + "name": "Install Nx in a Non-Javascript Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/install-non-javascript", + "itemList": [], + "isExternal": false, + "path": "/recipes/installation/install-non-javascript", + "tags": ["installation"] + }, + "/recipes/installation/update-global-installation": { + "id": "update-global-installation", + "name": "Update Your Global Nx Installation", + "description": "", + "mediaImage": "", + "file": "shared/recipes/installation/update-global-installation", + "itemList": [], + "isExternal": false, + "path": "/recipes/installation/update-global-installation", + "tags": ["installation"] + }, + "/recipes/tips-n-tricks": { + "id": "tips-n-tricks", + "name": "Tips and tricks", + "description": "Various tips and tricks for using Nx.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "package-based-in-integrated", + "name": "Add a Package-based Project in an Integrated Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/package-based-in-integrated", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/package-based-in-integrated", + "tags": ["repository-types"] + }, + { + "id": "integrated-in-package-based", + "name": "Add an Integrated Project in a Package-based Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/integrated-in-package-based", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/integrated-in-package-based", + "tags": ["repository-types"] + }, + { + "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to an Integrated Repository", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/standalone-to-integrated", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/standalone-to-integrated", + "tags": ["repository-types"] + }, + { + "id": "eslint", + "name": "Configuring ESLint with Typescript", + "description": "", + "mediaImage": "", + "file": "shared/eslint", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/eslint", + "tags": [] + }, + { + "id": "enable-tsc-batch-mode", + "name": "Enable Typescript Batch Mode", + "description": "", + "mediaImage": "", + "file": "shared/recipes/enable-tsc-batch-mode", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", + "tags": [] + }, + { + "id": "define-secondary-entrypoints", + "name": "Define Secondary Entrypoints for Typescript Packages", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", + "tags": [] + }, + { + "id": "compile-multiple-formats", + "name": "Compile Typescript Packages to Multiple Formats", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/compile-multiple-formats", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/compile-multiple-formats", + "tags": [] + }, + { + "id": "keep-nx-versions-in-sync", + "name": "Keep Nx Versions in Sync", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "tags": ["automate-updating-dependencies"] + }, + { + "id": "define-environment-variables", + "name": "Define Environment Variables", + "description": "", + "mediaImage": "", + "file": "shared/guides/define-environment-variables", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/define-environment-variables", + "tags": ["environment-variables"] + }, + { + "id": "browser-support", + "name": "Configuring Browser Support", + "description": "", + "mediaImage": "", + "file": "shared/guides/browser-support", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/browser-support", + "tags": [] + }, + { + "id": "include-assets-in-build", + "name": "Include Assets in Build", + "description": "", + "mediaImage": "", + "file": "shared/recipes/include-assets-in-build", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "tags": [] + }, + { + "id": "include-all-packagejson", + "name": "Include All package.json Files as Projects", + "description": "", + "mediaImage": "", + "file": "shared/recipes/include-all-packagejson", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "tags": [] + }, + { + "id": "identify-dependencies-between-folders", + "name": "Identify Dependencies Between Folders", + "description": "", + "mediaImage": "", + "file": "shared/recipes/identify-dependencies-between-folders", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "tags": [] + }, + { + "id": "analyze-source-files", + "name": "Disable Graph Links Created from Analyzing Source Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/analyze-source-files", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/analyze-source-files", + "tags": ["explore-graph"] + }, + { + "id": "js-and-ts", + "name": "Use JavaScript instead TypeScript", + "description": "", + "mediaImage": "", + "file": "shared/guides/js-and-ts", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/js-and-ts", + "tags": [] + }, + { + "id": "advanced-update", + "name": "Altering Migration Process", + "description": "", + "mediaImage": "", + "file": "shared/recipes/advanced-update", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/advanced-update", + "tags": ["automate-updating-dependencies"] + }, + { + "id": "yarn-pnp", + "name": "Using Yarn PnP", + "description": "", + "mediaImage": "", + "file": "shared/recipes/yarn-pnp", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/yarn-pnp", + "tags": ["yarn", "Plug and Play"] + }, + { + "id": "flat-config", + "name": "Switching to ESLint's flat config format", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/flat-config", + "tags": ["eslint", "flat config"] + } + ], + "isExternal": false, + "path": "/recipes/tips-n-tricks", + "tags": [] + }, + "/recipes/tips-n-tricks/package-based-in-integrated": { + "id": "package-based-in-integrated", + "name": "Add a Package-based Project in an Integrated Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/package-based-in-integrated", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/package-based-in-integrated", + "tags": ["repository-types"] + }, + "/recipes/tips-n-tricks/integrated-in-package-based": { + "id": "integrated-in-package-based", + "name": "Add an Integrated Project in a Package-based Repo", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/integrated-in-package-based", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/integrated-in-package-based", + "tags": ["repository-types"] + }, + "/recipes/tips-n-tricks/standalone-to-integrated": { + "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to an Integrated Repository", + "description": "", + "mediaImage": "", + "file": "shared/recipes/repo-types/standalone-to-integrated", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/standalone-to-integrated", + "tags": ["repository-types"] + }, + "/recipes/tips-n-tricks/eslint": { + "id": "eslint", + "name": "Configuring ESLint with Typescript", + "description": "", + "mediaImage": "", + "file": "shared/eslint", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/eslint", + "tags": [] + }, + "/recipes/tips-n-tricks/enable-tsc-batch-mode": { + "id": "enable-tsc-batch-mode", + "name": "Enable Typescript Batch Mode", + "description": "", + "mediaImage": "", + "file": "shared/recipes/enable-tsc-batch-mode", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/enable-tsc-batch-mode", + "tags": [] + }, + "/recipes/tips-n-tricks/define-secondary-entrypoints": { + "id": "define-secondary-entrypoints", + "name": "Define Secondary Entrypoints for Typescript Packages", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/define-secondary-entrypoints", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/define-secondary-entrypoints", + "tags": [] + }, + "/recipes/tips-n-tricks/compile-multiple-formats": { + "id": "compile-multiple-formats", + "name": "Compile Typescript Packages to Multiple Formats", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/compile-multiple-formats", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/compile-multiple-formats", + "tags": [] + }, + "/recipes/tips-n-tricks/keep-nx-versions-in-sync": { + "id": "keep-nx-versions-in-sync", + "name": "Keep Nx Versions in Sync", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "tags": ["automate-updating-dependencies"] + }, + "/recipes/tips-n-tricks/define-environment-variables": { + "id": "define-environment-variables", + "name": "Define Environment Variables", + "description": "", + "mediaImage": "", + "file": "shared/guides/define-environment-variables", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/define-environment-variables", + "tags": ["environment-variables"] + }, + "/recipes/tips-n-tricks/browser-support": { + "id": "browser-support", + "name": "Configuring Browser Support", + "description": "", + "mediaImage": "", + "file": "shared/guides/browser-support", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/browser-support", + "tags": [] + }, + "/recipes/tips-n-tricks/include-assets-in-build": { + "id": "include-assets-in-build", + "name": "Include Assets in Build", + "description": "", + "mediaImage": "", + "file": "shared/recipes/include-assets-in-build", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/include-assets-in-build", + "tags": [] + }, + "/recipes/tips-n-tricks/include-all-packagejson": { + "id": "include-all-packagejson", + "name": "Include All package.json Files as Projects", + "description": "", + "mediaImage": "", + "file": "shared/recipes/include-all-packagejson", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/include-all-packagejson", + "tags": [] + }, + "/recipes/tips-n-tricks/identify-dependencies-between-folders": { + "id": "identify-dependencies-between-folders", + "name": "Identify Dependencies Between Folders", + "description": "", + "mediaImage": "", + "file": "shared/recipes/identify-dependencies-between-folders", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/identify-dependencies-between-folders", + "tags": [] + }, + "/recipes/tips-n-tricks/analyze-source-files": { + "id": "analyze-source-files", + "name": "Disable Graph Links Created from Analyzing Source Files", + "description": "", + "mediaImage": "", + "file": "shared/recipes/analyze-source-files", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/analyze-source-files", + "tags": ["explore-graph"] + }, + "/recipes/tips-n-tricks/js-and-ts": { + "id": "js-and-ts", + "name": "Use JavaScript instead TypeScript", + "description": "", + "mediaImage": "", + "file": "shared/guides/js-and-ts", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/js-and-ts", + "tags": [] + }, + "/recipes/tips-n-tricks/advanced-update": { + "id": "advanced-update", + "name": "Altering Migration Process", + "description": "", + "mediaImage": "", + "file": "shared/recipes/advanced-update", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/advanced-update", + "tags": ["automate-updating-dependencies"] + }, + "/recipes/tips-n-tricks/yarn-pnp": { + "id": "yarn-pnp", + "name": "Using Yarn PnP", + "description": "", + "mediaImage": "", + "file": "shared/recipes/yarn-pnp", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/yarn-pnp", + "tags": ["yarn", "Plug and Play"] + }, + "/recipes/tips-n-tricks/flat-config": { + "id": "flat-config", + "name": "Switching to ESLint's flat config format", + "description": "", + "mediaImage": "", + "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", + "itemList": [], + "isExternal": false, + "path": "/recipes/tips-n-tricks/flat-config", + "tags": ["eslint", "flat config"] + }, + "/recipes/troubleshooting": { + "id": "troubleshooting", + "name": "Troubleshooting", + "description": "Learn how to troubleshoot common problems.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "resolve-circular-dependencies", + "name": "Resolve Circular Dependencies", + "description": "", + "mediaImage": "", + "file": "shared/recipes/resolve-circular-dependencies", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "tags": ["explore-graph"] + }, + { + "id": "troubleshoot-nx-install-issues", + "name": "Troubleshooting Nx Install Issues", + "description": "", + "mediaImage": "", + "file": "shared/installation/troubleshoot-installation", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "tags": [] + }, + { + "id": "troubleshoot-cache-misses", + "name": "Troubleshoot Cache Misses", + "description": "", + "mediaImage": "", + "file": "shared/recipes/troubleshoot-cache-misses", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "tags": ["cache-task-results"] + }, + { + "id": "unknown-local-cache", + "name": "Unknown Local Cache Error", + "description": "", + "mediaImage": "", + "file": "shared/guides/unknown-local-cache", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/unknown-local-cache", + "tags": [] + }, + { + "id": "performance-profiling", + "name": "Profiling Build Performance", + "description": "", + "mediaImage": "", + "file": "shared/guides/performance-profiling", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/performance-profiling", + "tags": ["environment-variables"] + } + ], + "isExternal": false, + "path": "/recipes/troubleshooting", + "tags": [] + }, + "/recipes/troubleshooting/resolve-circular-dependencies": { + "id": "resolve-circular-dependencies", + "name": "Resolve Circular Dependencies", + "description": "", + "mediaImage": "", + "file": "shared/recipes/resolve-circular-dependencies", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/resolve-circular-dependencies", + "tags": ["explore-graph"] + }, + "/recipes/troubleshooting/troubleshoot-nx-install-issues": { + "id": "troubleshoot-nx-install-issues", + "name": "Troubleshooting Nx Install Issues", + "description": "", + "mediaImage": "", + "file": "shared/installation/troubleshoot-installation", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/troubleshoot-nx-install-issues", + "tags": [] + }, + "/recipes/troubleshooting/troubleshoot-cache-misses": { + "id": "troubleshoot-cache-misses", + "name": "Troubleshoot Cache Misses", + "description": "", + "mediaImage": "", + "file": "shared/recipes/troubleshoot-cache-misses", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/troubleshoot-cache-misses", + "tags": ["cache-task-results"] + }, + "/recipes/troubleshooting/unknown-local-cache": { + "id": "unknown-local-cache", + "name": "Unknown Local Cache Error", + "description": "", + "mediaImage": "", + "file": "shared/guides/unknown-local-cache", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/unknown-local-cache", + "tags": [] + }, + "/recipes/troubleshooting/performance-profiling": { + "id": "performance-profiling", + "name": "Profiling Build Performance", + "description": "", + "mediaImage": "", + "file": "shared/guides/performance-profiling", + "itemList": [], + "isExternal": false, + "path": "/recipes/troubleshooting/performance-profiling", + "tags": ["environment-variables"] + }, + "/recipes/nx-console": { + "id": "nx-console", + "name": "Nx Console", + "description": "Checkout all the recipes related to Nx Console.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "console-telemetry", + "name": "Telemetry", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-telemetry", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-telemetry", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-project-details", + "name": "Project Details View", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-project-details", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-project-details", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-generate-command", + "name": "Generate Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-generate-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-generate-command", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-run-command", + "name": "Run Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-run-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-run-command", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-add-dependency-command", + "name": "Add Dependency Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-add-dependency-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-add-dependency-command", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-project-pane", + "name": "Project Pane", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-project-pane", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-project-pane", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-shortcuts", + "name": "Keyboard Shortcuts", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-shortcuts", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-shortcuts", + "tags": ["integrate-with-editors"] + }, + { + "id": "console-troubleshooting", + "name": "Troubleshooting", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-troubleshooting", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-troubleshooting", + "tags": ["integrate-with-editors"] + } + ], + "isExternal": false, + "path": "/recipes/nx-console", + "tags": [] + }, + "/recipes/nx-console/console-telemetry": { + "id": "console-telemetry", + "name": "Telemetry", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-telemetry", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-telemetry", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-project-details": { + "id": "console-project-details", + "name": "Project Details View", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-project-details", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-project-details", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-generate-command": { + "id": "console-generate-command", + "name": "Generate Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-generate-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-generate-command", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-run-command": { + "id": "console-run-command", + "name": "Run Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-run-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-run-command", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-add-dependency-command": { + "id": "console-add-dependency-command", + "name": "Add Dependency Command", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-add-dependency-command", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-add-dependency-command", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-project-pane": { + "id": "console-project-pane", + "name": "Project Pane", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-project-pane", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-project-pane", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-shortcuts": { + "id": "console-shortcuts", + "name": "Keyboard Shortcuts", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-shortcuts", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-shortcuts", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-console/console-troubleshooting": { + "id": "console-troubleshooting", + "name": "Troubleshooting", + "description": "", + "mediaImage": "", + "file": "shared/recipes/console-troubleshooting", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-console/console-troubleshooting", + "tags": ["integrate-with-editors"] + }, + "/recipes/nx-release": { + "id": "nx-release", + "name": "Nx Release", + "description": "Recipes for releasing with Nx release.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "get-started-with-nx-release", + "name": "Get Started with Nx Release", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/get-started-with-nx-release", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/get-started-with-nx-release", + "tags": ["nx-release"] + }, + { + "id": "release-projects-independently", + "name": "Release Projects Independently", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/release-projects-independently", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/release-projects-independently", + "tags": ["nx-release"] + }, + { + "id": "automatically-version-with-conventional-commits", + "name": "Automatically Version with Conventional Commits", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/automatically-version-with-conventional-commits", + "tags": ["nx-release"] + }, + { + "id": "publish-in-ci-cd", + "name": "Publish in CI/CD", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/publish-in-ci-cd", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/publish-in-ci-cd", + "tags": ["nx-release"] + }, + { + "id": "automate-github-releases", + "name": "Automate GitHub Releases", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/automate-github-releases", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/automate-github-releases", + "tags": ["nx-release"] + }, + { + "id": "publish-rust-crates", + "name": "Publish Rust Crates", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/publish-rust-crates", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/publish-rust-crates", + "tags": ["nx-release"] + }, + { + "id": "update-local-registry-setup", + "name": "Update Your Local Registry Setup to use Nx Release", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/update-local-registry-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/update-local-registry-setup", + "tags": ["nx-release"] + }, + { + "id": "customize-conventional-commit-types", + "name": "Customize Conventional Commit Types", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/customize-conventional-commit-types", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/customize-conventional-commit-types", + "tags": ["nx-release"] + } + ], + "isExternal": false, + "path": "/recipes/nx-release", + "tags": [] + }, + "/recipes/nx-release/get-started-with-nx-release": { + "id": "get-started-with-nx-release", + "name": "Get Started with Nx Release", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/get-started-with-nx-release", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/get-started-with-nx-release", + "tags": ["nx-release"] + }, + "/recipes/nx-release/release-projects-independently": { + "id": "release-projects-independently", + "name": "Release Projects Independently", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/release-projects-independently", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/release-projects-independently", + "tags": ["nx-release"] + }, + "/recipes/nx-release/automatically-version-with-conventional-commits": { + "id": "automatically-version-with-conventional-commits", + "name": "Automatically Version with Conventional Commits", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/automatically-version-with-conventional-commits", + "tags": ["nx-release"] + }, + "/recipes/nx-release/publish-in-ci-cd": { + "id": "publish-in-ci-cd", + "name": "Publish in CI/CD", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/publish-in-ci-cd", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/publish-in-ci-cd", + "tags": ["nx-release"] + }, + "/recipes/nx-release/automate-github-releases": { + "id": "automate-github-releases", + "name": "Automate GitHub Releases", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/automate-github-releases", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/automate-github-releases", + "tags": ["nx-release"] + }, + "/recipes/nx-release/publish-rust-crates": { + "id": "publish-rust-crates", + "name": "Publish Rust Crates", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/publish-rust-crates", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/publish-rust-crates", + "tags": ["nx-release"] + }, + "/recipes/nx-release/update-local-registry-setup": { + "id": "update-local-registry-setup", + "name": "Update Your Local Registry Setup to use Nx Release", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/update-local-registry-setup", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/update-local-registry-setup", + "tags": ["nx-release"] + }, + "/recipes/nx-release/customize-conventional-commit-types": { + "id": "customize-conventional-commit-types", + "name": "Customize Conventional Commit Types", + "description": "", + "mediaImage": "", + "file": "shared/recipes/nx-release/customize-conventional-commit-types", + "itemList": [], + "isExternal": false, + "path": "/recipes/nx-release/customize-conventional-commit-types", + "tags": ["nx-release"] + }, + "/recipes/other": { + "id": "other", + "name": "Other", + "description": "Other recipes you will find useful.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "rescope", + "name": "Rescope Packages from @nrwl to @nx", + "description": "", + "mediaImage": "", + "file": "shared/recipes/rescope", + "itemList": [], + "isExternal": false, + "path": "/recipes/other/rescope", + "tags": [] + } + ], + "isExternal": false, + "path": "/recipes/other", + "tags": [] + }, + "/recipes/other/rescope": { + "id": "rescope", + "name": "Rescope Packages from @nrwl to @nx", + "description": "", + "mediaImage": "", + "file": "shared/recipes/rescope", + "itemList": [], + "isExternal": false, + "path": "/recipes/other/rescope", + "tags": [] + }, + "/showcase": { + "id": "showcase", + "name": "Showcase", + "description": "Discover our selection of examples and benchmarks.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "example-repos", + "name": "Nx with your favorite tech", + "description": "Examples of different ways to use Nx with your favorite tech", + "mediaImage": "", + "file": "shared/showcase/example-repos", + "itemList": [ + { + "id": "add-express", + "name": "Express", + "description": "Add an Express application to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-express", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-express", + "tags": [] + }, + { + "id": "add-lit", + "name": "Lit", + "description": "Lit to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-lit", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-lit", + "tags": [] + }, + { + "id": "add-solid", + "name": "Solid", + "description": "Solid to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-solid", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-solid", + "tags": [] + }, + { + "id": "add-qwik", + "name": "Qwik", + "description": "Qwik to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-qwik", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-qwik", + "tags": [] + }, + { + "id": "add-rust", + "name": "Rust", + "description": "Rust to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-rust", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-rust", + "tags": [] + }, + { + "id": "add-dotnet", + "name": ".NET", + "description": ".NET to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-dotnet", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-dotnet", + "tags": [] + }, + { + "id": "add-astro", + "name": "Astro", + "description": "Add Nx to an Astro project", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-astro", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-astro", + "tags": [] + }, + { + "id": "add-svelte", + "name": "Svelte", + "description": "Svelte to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-svelte", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-svelte", + "tags": [] + }, + { + "id": "add-fastify", + "name": "Fastify", + "description": "Fastify to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-fastify", + "tags": [] + }, + { + "id": "apollo-react", + "name": "Apollo GraphQL", + "description": "", + "mediaImage": "", + "file": "shared/examples/apollo-react", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/apollo-react", + "tags": [] + }, + { + "id": "nestjs-prisma", + "name": "Prisma with NestJS", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/nestjs-prisma", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/nestjs-prisma", + "tags": ["database", "node"] + }, + { + "id": "mongo-fastify", + "name": "Mongo with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/mongo-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/mongo-fastify", + "tags": ["database", "node"] + }, + { + "id": "redis-fastify", + "name": "Redis with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/redis-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/redis-fastify", + "tags": ["database", "node"] + }, + { + "id": "postgres-fastify", + "name": "Postgres with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/postgres-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/postgres-fastify", + "tags": ["database", "node"] + }, + { + "id": "serverless-fastify-planetscale", + "name": "PlanetScale with Serverless Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/serverless-fastify-planetscale", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/serverless-fastify-planetscale", + "tags": ["database", "node", "serverless"] + }, + { + "id": "mfe", + "name": "Nx with Micro-frontends", + "description": "", + "mediaImage": "", + "file": "shared/examples/nx-examples", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/mfe", + "tags": [] + } + ], + "isExternal": false, + "path": "/showcase/example-repos", + "tags": [] + }, + { + "id": "benchmarks", + "name": "Benchmarks", + "description": "Benchmarks showing how fast Nx is", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "tsc-batch-mode", + "name": "Typescript Batch Mode Compilation", + "description": "", + "mediaImage": "", + "file": "shared/examples/tsc-batch-mode", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/tsc-batch-mode", + "tags": [] + }, + { + "id": "caching", + "name": "Large Repo and Caching", + "description": "", + "mediaImage": "", + "file": "shared/examples/caching", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/caching", + "tags": [] + }, + { + "id": "dte", + "name": "Large Repo and DTE", + "description": "", + "mediaImage": "", + "file": "shared/examples/dte", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/showcase/benchmarks", + "tags": [] + } + ], + "isExternal": false, + "path": "/showcase", + "tags": [] + }, + "/showcase/example-repos": { + "id": "example-repos", + "name": "Nx with your favorite tech", + "description": "Examples of different ways to use Nx with your favorite tech", + "mediaImage": "", + "file": "shared/showcase/example-repos", + "itemList": [ + { + "id": "add-express", + "name": "Express", + "description": "Add an Express application to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-express", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-express", + "tags": [] + }, + { + "id": "add-lit", + "name": "Lit", + "description": "Lit to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-lit", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-lit", + "tags": [] + }, + { + "id": "add-solid", + "name": "Solid", + "description": "Solid to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-solid", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-solid", + "tags": [] + }, + { + "id": "add-qwik", + "name": "Qwik", + "description": "Qwik to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-qwik", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-qwik", + "tags": [] + }, + { + "id": "add-rust", + "name": "Rust", + "description": "Rust to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-rust", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-rust", + "tags": [] + }, + { + "id": "add-dotnet", + "name": ".NET", + "description": ".NET to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-dotnet", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-dotnet", + "tags": [] + }, + { + "id": "add-astro", + "name": "Astro", + "description": "Add Nx to an Astro project", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-astro", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-astro", + "tags": [] + }, + { + "id": "add-svelte", + "name": "Svelte", + "description": "Svelte to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-svelte", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-svelte", + "tags": [] + }, + { + "id": "add-fastify", + "name": "Fastify", + "description": "Fastify to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-fastify", + "tags": [] + }, + { + "id": "apollo-react", + "name": "Apollo GraphQL", + "description": "", + "mediaImage": "", + "file": "shared/examples/apollo-react", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/apollo-react", + "tags": [] + }, + { + "id": "nestjs-prisma", + "name": "Prisma with NestJS", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/nestjs-prisma", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/nestjs-prisma", + "tags": ["database", "node"] + }, + { + "id": "mongo-fastify", + "name": "Mongo with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/mongo-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/mongo-fastify", + "tags": ["database", "node"] + }, + { + "id": "redis-fastify", + "name": "Redis with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/redis-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/redis-fastify", + "tags": ["database", "node"] + }, + { + "id": "postgres-fastify", + "name": "Postgres with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/postgres-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/postgres-fastify", + "tags": ["database", "node"] + }, + { + "id": "serverless-fastify-planetscale", + "name": "PlanetScale with Serverless Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/serverless-fastify-planetscale", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/serverless-fastify-planetscale", + "tags": ["database", "node", "serverless"] + }, + { + "id": "mfe", + "name": "Nx with Micro-frontends", + "description": "", + "mediaImage": "", + "file": "shared/examples/nx-examples", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/mfe", + "tags": [] + } + ], + "isExternal": false, + "path": "/showcase/example-repos", + "tags": [] + }, + "/showcase/example-repos/add-express": { + "id": "add-express", + "name": "Express", + "description": "Add an Express application to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-express", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-express", + "tags": [] + }, + "/showcase/example-repos/add-lit": { + "id": "add-lit", + "name": "Lit", + "description": "Lit to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-lit", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-lit", + "tags": [] + }, + "/showcase/example-repos/add-solid": { + "id": "add-solid", + "name": "Solid", + "description": "Solid to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-solid", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-solid", + "tags": [] + }, + "/showcase/example-repos/add-qwik": { + "id": "add-qwik", + "name": "Qwik", + "description": "Qwik to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-qwik", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-qwik", + "tags": [] + }, + "/showcase/example-repos/add-rust": { + "id": "add-rust", + "name": "Rust", + "description": "Rust to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-rust", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-rust", + "tags": [] + }, + "/showcase/example-repos/add-dotnet": { + "id": "add-dotnet", + "name": ".NET", + "description": ".NET to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-dotnet", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-dotnet", + "tags": [] + }, + "/showcase/example-repos/add-astro": { + "id": "add-astro", + "name": "Astro", + "description": "Add Nx to an Astro project", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-astro", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-astro", + "tags": [] + }, + "/showcase/example-repos/add-svelte": { + "id": "add-svelte", + "name": "Svelte", + "description": "Svelte to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-svelte", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-svelte", + "tags": [] + }, + "/showcase/example-repos/add-fastify": { + "id": "add-fastify", + "name": "Fastify", + "description": "Fastify to your repo", + "mediaImage": "", + "file": "shared/recipes/add-stack/add-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/add-fastify", + "tags": [] + }, + "/showcase/example-repos/apollo-react": { + "id": "apollo-react", + "name": "Apollo GraphQL", + "description": "", + "mediaImage": "", + "file": "shared/examples/apollo-react", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/apollo-react", + "tags": [] + }, + "/showcase/example-repos/nestjs-prisma": { + "id": "nestjs-prisma", + "name": "Prisma with NestJS", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/nestjs-prisma", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/nestjs-prisma", + "tags": ["database", "node"] + }, + "/showcase/example-repos/mongo-fastify": { + "id": "mongo-fastify", + "name": "Mongo with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/mongo-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/mongo-fastify", + "tags": ["database", "node"] + }, + "/showcase/example-repos/redis-fastify": { + "id": "redis-fastify", + "name": "Redis with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/redis-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/redis-fastify", + "tags": ["database", "node"] + }, + "/showcase/example-repos/postgres-fastify": { + "id": "postgres-fastify", + "name": "Postgres with Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/postgres-fastify", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/postgres-fastify", + "tags": ["database", "node"] + }, + "/showcase/example-repos/serverless-fastify-planetscale": { + "id": "serverless-fastify-planetscale", + "name": "PlanetScale with Serverless Fastify", + "description": "", + "mediaImage": "", + "file": "shared/recipes/database/serverless-fastify-planetscale", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/serverless-fastify-planetscale", + "tags": ["database", "node", "serverless"] + }, + "/showcase/example-repos/mfe": { + "id": "mfe", + "name": "Nx with Micro-frontends", + "description": "", + "mediaImage": "", + "file": "shared/examples/nx-examples", + "itemList": [], + "isExternal": false, + "path": "/showcase/example-repos/mfe", + "tags": [] + }, + "/showcase/benchmarks": { + "id": "benchmarks", + "name": "Benchmarks", + "description": "Benchmarks showing how fast Nx is", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "tsc-batch-mode", + "name": "Typescript Batch Mode Compilation", + "description": "", + "mediaImage": "", + "file": "shared/examples/tsc-batch-mode", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/tsc-batch-mode", + "tags": [] + }, + { + "id": "caching", + "name": "Large Repo and Caching", + "description": "", + "mediaImage": "", + "file": "shared/examples/caching", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/caching", + "tags": [] + }, + { + "id": "dte", + "name": "Large Repo and DTE", + "description": "", + "mediaImage": "", + "file": "shared/examples/dte", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/dte", + "tags": [] + } + ], + "isExternal": false, + "path": "/showcase/benchmarks", + "tags": [] + }, + "/showcase/benchmarks/tsc-batch-mode": { + "id": "tsc-batch-mode", + "name": "Typescript Batch Mode Compilation", + "description": "", + "mediaImage": "", + "file": "shared/examples/tsc-batch-mode", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/tsc-batch-mode", + "tags": [] + }, + "/showcase/benchmarks/caching": { + "id": "caching", + "name": "Large Repo and Caching", + "description": "", + "mediaImage": "", + "file": "shared/examples/caching", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/caching", + "tags": [] + }, + "/showcase/benchmarks/dte": { + "id": "dte", + "name": "Large Repo and DTE", + "description": "", + "mediaImage": "", + "file": "shared/examples/dte", + "itemList": [], + "isExternal": false, + "path": "/showcase/benchmarks/dte", + "tags": [] + }, + "/reference": { + "id": "reference", + "name": "Reference", + "description": "Understand how to use Nx functionalities, what arguments and options are available for each component.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "commands", + "name": "Commands", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/nx-api/nx", + "tags": [] + }, + { + "id": "nx-json", + "name": "Nx Configuration", + "description": "", + "mediaImage": "", + "file": "shared/reference/nx-json", + "itemList": [], + "isExternal": false, + "path": "/reference/nx-json", + "tags": [] + }, + { + "id": "project-configuration", + "name": "Project Configuration", + "description": "", + "mediaImage": "", + "file": "shared/reference/project-configuration", + "itemList": [], + "isExternal": false, + "path": "/reference/project-configuration", + "tags": [] + }, + { + "id": "inputs", + "name": "Inputs and Named Inputs", + "description": "", + "mediaImage": "", + "file": "shared/reference/inputs", + "itemList": [], + "isExternal": false, + "path": "/reference/inputs", + "tags": ["cache-task-results"] + }, + { + "id": "nxignore", + "name": ".nxignore", + "description": "", + "mediaImage": "", + "file": "shared/reference/nxignore", + "itemList": [], + "isExternal": false, + "path": "/reference/nxignore", + "tags": ["enforce-module-boundaries"] + }, + { + "id": "environment-variables", + "name": "Environment Variables", + "description": "", + "mediaImage": "", + "file": "shared/reference/environment-variables", + "itemList": [], + "isExternal": false, + "path": "/reference/environment-variables", + "tags": ["environment-variables"] + }, + { + "id": "glossary", + "name": "Glossary", + "description": "", + "mediaImage": "", + "file": "shared/reference/glossary", + "itemList": [], + "isExternal": false, + "path": "/reference/glossary", + "tags": [] + } + ], + "isExternal": false, + "path": "/reference", + "tags": [] + }, + "/nx-api/nx": { + "id": "commands", + "name": "Commands", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/nx-api/nx", + "tags": [] + }, + "/reference/nx-json": { + "id": "nx-json", + "name": "Nx Configuration", + "description": "", + "mediaImage": "", + "file": "shared/reference/nx-json", + "itemList": [], + "isExternal": false, + "path": "/reference/nx-json", + "tags": [] + }, + "/reference/project-configuration": { + "id": "project-configuration", + "name": "Project Configuration", + "description": "", + "mediaImage": "", + "file": "shared/reference/project-configuration", + "itemList": [], + "isExternal": false, + "path": "/reference/project-configuration", + "tags": [] + }, + "/reference/inputs": { + "id": "inputs", + "name": "Inputs and Named Inputs", + "description": "", + "mediaImage": "", + "file": "shared/reference/inputs", + "itemList": [], + "isExternal": false, + "path": "/reference/inputs", + "tags": ["cache-task-results"] + }, + "/reference/nxignore": { + "id": "nxignore", + "name": ".nxignore", + "description": "", + "mediaImage": "", + "file": "shared/reference/nxignore", + "itemList": [], + "isExternal": false, + "path": "/reference/nxignore", + "tags": ["enforce-module-boundaries"] + }, + "/reference/environment-variables": { + "id": "environment-variables", + "name": "Environment Variables", + "description": "", + "mediaImage": "", + "file": "shared/reference/environment-variables", + "itemList": [], + "isExternal": false, + "path": "/reference/environment-variables", + "tags": ["environment-variables"] + }, + "/reference/glossary": { + "id": "glossary", + "name": "Glossary", + "description": "", + "mediaImage": "", + "file": "shared/reference/glossary", + "itemList": [], + "isExternal": false, + "path": "/reference/glossary", + "tags": [] + }, + "/deprecated": { + "id": "deprecated", + "name": "Deprecated", + "description": "Functionality that has been superseded in the current version of Nx. Listed here for those running older versions.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "workspace-json", + "name": "workspace.json", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-json", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-json", + "tags": [] + }, + { + "id": "workspace-lint", + "name": "workspace-lint", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-lint", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-lint", + "tags": [] + }, + { + "id": "as-provided-vs-derived", + "name": "As Provided vs. Derived", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/as-provided-vs-derived", + "itemList": [], + "isExternal": false, + "path": "/deprecated/as-provided-vs-derived", + "tags": [] + }, + { + "id": "workspace-generators", + "name": "Workspace Generators", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-generators", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-generators", + "tags": [] + }, + { + "id": "workspace-executors", + "name": "Workspace Executors", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-executors", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-executors", + "tags": [] + }, + { + "id": "default-collection", + "name": "defaultCollection", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/default-collection", + "itemList": [], + "isExternal": false, + "path": "/deprecated/default-collection", + "tags": [] + }, + { + "id": "runtime-cache-inputs", + "name": "runtimeCacheInputs", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/runtime-cache-inputs", + "itemList": [], + "isExternal": false, + "path": "/deprecated/runtime-cache-inputs", + "tags": [] + }, + { + "id": "cacheable-operations", + "name": "cacheableOperations", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/cacheable-operations", + "itemList": [], + "isExternal": false, + "path": "/deprecated/cacheable-operations", + "tags": [] + }, + { + "id": "npm-scope", + "name": "npmScope", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/npm-scope", + "itemList": [], + "isExternal": false, + "path": "/deprecated/npm-scope", + "tags": [] + }, + { + "id": "global-implicit-dependencies", + "name": "globalImplicitDependencies", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/global-implicit-dependencies", + "itemList": [], + "isExternal": false, + "path": "/deprecated/global-implicit-dependencies", + "tags": [] + }, + { + "id": "angular-schematics-builders", + "name": "Angular Schematics and Builders", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/angular-schematics-builders", + "itemList": [], + "isExternal": false, + "path": "/deprecated/angular-schematics-builders", + "tags": [] + }, + { + "id": "storybook", + "name": "Storybook deprecated docs", + "description": "Deprecated @nx/storybook package documentation and guides.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "angular-storybook-targets", + "name": "Angular: Information about the Storybook targets", + "description": "This document explains the role of the storybook and build-storybook targets in Angular projects with a Storybook configuration, and specifically which executors are used for them.", + "mediaImage": "", + "file": "shared/deprecated/storybook/angular-storybook-targets", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/angular-storybook-targets", + "tags": [] + }, + { + "id": "angular-project-build-config", + "name": "Angular - The projectBuildConfig", + "description": "This document explains the role of the projectBuildConfig in Angular projects with a Storybook configuration, and how the Storybook executors use it.", + "mediaImage": "", + "file": "shared/deprecated/storybook/angular-project-build-config", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/angular-project-build-config", + "tags": [] + }, + { + "id": "migrate-webpack-final-angular", + "name": "Angular: Storybook Migration to webpackFinal", + "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration.", + "mediaImage": "", + "file": "shared/deprecated/storybook/migrate-webpack-final-angular", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "tags": [] + }, + { + "id": "upgrade-storybook-v6-angular", + "name": "Angular: Upgrading to Storybook 6", + "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for Angular projects.", + "mediaImage": "", + "file": "shared/deprecated/storybook/storybook-v6-angular", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "tags": [] + }, + { + "id": "migrate-webpack-final-react", + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration and the Nx React Addon.", + "mediaImage": "", + "file": "shared/deprecated/storybook/migrate-webpack-final-react", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/migrate-webpack-final-react", + "tags": [] + }, + { + "id": "upgrade-storybook-v6-react", + "name": "React: Upgrading to Storybook 6", + "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for React projects.", + "mediaImage": "", + "file": "shared/deprecated/storybook/storybook-v6-react", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "tags": [] + } + ], + "isExternal": false, + "path": "/deprecated/storybook", + "tags": [] + }, + { + "id": "v1-nx-plugin-api", + "name": "v1 Nx Plugin API", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/v1-nx-plugin-api", + "itemList": [], + "isExternal": false, + "path": "/deprecated/v1-nx-plugin-api", + "tags": [] + } + ], + "isExternal": false, + "path": "/deprecated", + "tags": [] + }, + "/deprecated/workspace-json": { + "id": "workspace-json", + "name": "workspace.json", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-json", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-json", + "tags": [] + }, + "/deprecated/workspace-lint": { + "id": "workspace-lint", + "name": "workspace-lint", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-lint", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-lint", + "tags": [] + }, + "/deprecated/as-provided-vs-derived": { + "id": "as-provided-vs-derived", + "name": "As Provided vs. Derived", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/as-provided-vs-derived", + "itemList": [], + "isExternal": false, + "path": "/deprecated/as-provided-vs-derived", + "tags": [] + }, + "/deprecated/workspace-generators": { + "id": "workspace-generators", + "name": "Workspace Generators", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-generators", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-generators", + "tags": [] + }, + "/deprecated/workspace-executors": { + "id": "workspace-executors", + "name": "Workspace Executors", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/workspace-executors", + "itemList": [], + "isExternal": false, + "path": "/deprecated/workspace-executors", + "tags": [] + }, + "/deprecated/default-collection": { + "id": "default-collection", + "name": "defaultCollection", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/default-collection", + "itemList": [], + "isExternal": false, + "path": "/deprecated/default-collection", + "tags": [] + }, + "/deprecated/runtime-cache-inputs": { + "id": "runtime-cache-inputs", + "name": "runtimeCacheInputs", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/runtime-cache-inputs", + "itemList": [], + "isExternal": false, + "path": "/deprecated/runtime-cache-inputs", + "tags": [] + }, + "/deprecated/cacheable-operations": { + "id": "cacheable-operations", + "name": "cacheableOperations", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/cacheable-operations", + "itemList": [], + "isExternal": false, + "path": "/deprecated/cacheable-operations", + "tags": [] + }, + "/deprecated/npm-scope": { + "id": "npm-scope", + "name": "npmScope", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/npm-scope", + "itemList": [], + "isExternal": false, + "path": "/deprecated/npm-scope", + "tags": [] + }, + "/deprecated/global-implicit-dependencies": { + "id": "global-implicit-dependencies", + "name": "globalImplicitDependencies", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/global-implicit-dependencies", + "itemList": [], + "isExternal": false, + "path": "/deprecated/global-implicit-dependencies", + "tags": [] + }, + "/deprecated/angular-schematics-builders": { + "id": "angular-schematics-builders", + "name": "Angular Schematics and Builders", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/angular-schematics-builders", + "itemList": [], + "isExternal": false, + "path": "/deprecated/angular-schematics-builders", + "tags": [] + }, + "/deprecated/storybook": { + "id": "storybook", + "name": "Storybook deprecated docs", + "description": "Deprecated @nx/storybook package documentation and guides.", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "angular-storybook-targets", + "name": "Angular: Information about the Storybook targets", + "description": "This document explains the role of the storybook and build-storybook targets in Angular projects with a Storybook configuration, and specifically which executors are used for them.", + "mediaImage": "", + "file": "shared/deprecated/storybook/angular-storybook-targets", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/angular-storybook-targets", + "tags": [] + }, + { + "id": "angular-project-build-config", + "name": "Angular - The projectBuildConfig", + "description": "This document explains the role of the projectBuildConfig in Angular projects with a Storybook configuration, and how the Storybook executors use it.", + "mediaImage": "", + "file": "shared/deprecated/storybook/angular-project-build-config", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/angular-project-build-config", + "tags": [] + }, + { + "id": "migrate-webpack-final-angular", + "name": "Angular: Storybook Migration to webpackFinal", + "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration.", + "mediaImage": "", + "file": "shared/deprecated/storybook/migrate-webpack-final-angular", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "tags": [] + }, + { + "id": "upgrade-storybook-v6-angular", + "name": "Angular: Upgrading to Storybook 6", + "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for Angular projects.", + "mediaImage": "", + "file": "shared/deprecated/storybook/storybook-v6-angular", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "tags": [] + }, + { + "id": "migrate-webpack-final-react", + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration and the Nx React Addon.", + "mediaImage": "", + "file": "shared/deprecated/storybook/migrate-webpack-final-react", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/migrate-webpack-final-react", + "tags": [] + }, + { + "id": "upgrade-storybook-v6-react", + "name": "React: Upgrading to Storybook 6", + "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for React projects.", + "mediaImage": "", + "file": "shared/deprecated/storybook/storybook-v6-react", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "tags": [] + } + ], + "isExternal": false, + "path": "/deprecated/storybook", + "tags": [] + }, + "/deprecated/storybook/angular-storybook-targets": { + "id": "angular-storybook-targets", + "name": "Angular: Information about the Storybook targets", + "description": "This document explains the role of the storybook and build-storybook targets in Angular projects with a Storybook configuration, and specifically which executors are used for them.", + "mediaImage": "", + "file": "shared/deprecated/storybook/angular-storybook-targets", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/angular-storybook-targets", + "tags": [] + }, + "/deprecated/storybook/angular-project-build-config": { + "id": "angular-project-build-config", + "name": "Angular - The projectBuildConfig", + "description": "This document explains the role of the projectBuildConfig in Angular projects with a Storybook configuration, and how the Storybook executors use it.", + "mediaImage": "", + "file": "shared/deprecated/storybook/angular-project-build-config", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/angular-project-build-config", + "tags": [] + }, + "/deprecated/storybook/migrate-webpack-final-angular": { + "id": "migrate-webpack-final-angular", + "name": "Angular: Storybook Migration to webpackFinal", + "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration.", + "mediaImage": "", + "file": "shared/deprecated/storybook/migrate-webpack-final-angular", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/migrate-webpack-final-angular", + "tags": [] + }, + "/deprecated/storybook/upgrade-storybook-v6-angular": { + "id": "upgrade-storybook-v6-angular", + "name": "Angular: Upgrading to Storybook 6", + "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for Angular projects.", + "mediaImage": "", + "file": "shared/deprecated/storybook/storybook-v6-angular", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/upgrade-storybook-v6-angular", + "tags": [] + }, + "/deprecated/storybook/migrate-webpack-final-react": { + "id": "migrate-webpack-final-react", + "name": "React: Storybook Migration to webpackFinal and the Nx Addon", + "description": "This guide explains how migrate from older versions of Storybook which used a custom webpack.config.js to the new Storybook 6.3+ which uses the webpackFinal property in the main configuration and the Nx React Addon.", + "mediaImage": "", + "file": "shared/deprecated/storybook/migrate-webpack-final-react", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/migrate-webpack-final-react", + "tags": [] + }, + "/deprecated/storybook/upgrade-storybook-v6-react": { + "id": "upgrade-storybook-v6-react", + "name": "React: Upgrading to Storybook 6", + "description": "This guide explains how you can upgrade your Storybook from versions 5.3 and below to Storybook 6, for React projects.", + "mediaImage": "", + "file": "shared/deprecated/storybook/storybook-v6-react", + "itemList": [], + "isExternal": false, + "path": "/deprecated/storybook/upgrade-storybook-v6-react", + "tags": [] + }, + "/deprecated/v1-nx-plugin-api": { + "id": "v1-nx-plugin-api", + "name": "v1 Nx Plugin API", + "description": "", + "mediaImage": "", + "file": "shared/deprecated/v1-nx-plugin-api", + "itemList": [], + "isExternal": false, + "path": "/deprecated/v1-nx-plugin-api", + "tags": [] + }, + "/see-also": { + "id": "see-also", + "name": "See Also", + "description": "Links to other pieces of documentation", + "mediaImage": "", + "file": "", + "itemList": [ + { + "id": "ci", + "name": "CI Documentation", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/intro/ci-with-nx", + "tags": ["cache-task-results", "distribute-task-execution"] + }, + { + "id": "nx-cloud-main-site", + "name": "Nx Cloud Main Site", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "https://nx.app", + "tags": ["cache-task-results", "distribute-task-execution"] + }, + { + "id": "skip-nx-cache-flag", + "name": "--skip-nx-cache flag", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/nx-api/nx/documents/affected#skip-nx-cache", + "tags": ["cache-task-results"] + }, + { + "id": "tasks-runner-options-property", + "name": "tasks-runner-options property", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/nx-json#tasks-runner-options", + "tags": ["cache-task-results"] + }, + { + "id": "nxjson-inputs", + "name": "nx.json reference: inputs and namedInputs", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/nx-json#inputs-&-namedinputs", + "tags": ["cache-task-results"] + }, + { + "id": "project-config-inputs", + "name": "Project Configuration reference: inputs and namedInputs", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/project-configuration#inputs-&-namedinputs", + "tags": ["cache-task-results"] + }, + { + "id": "nxjson-generator-defaults", + "name": "nx.json generator defaults", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/nx-json#generators", + "tags": ["generate-code"] + }, + { + "id": "sitemap", + "name": "Site Map", + "description": "", + "mediaImage": "", + "file": "shared/reference/sitemap", + "itemList": [], + "isExternal": false, + "path": "/see-also/sitemap", + "tags": [] + } + ], + "isExternal": false, + "path": "/see-also", + "tags": [] + }, + "/ci/intro/ci-with-nx": { + "id": "ci", + "name": "CI Documentation", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/ci/intro/ci-with-nx", + "tags": ["cache-task-results", "distribute-task-execution"] + }, + "/nx-api/nx/documents/affected#skip-nx-cache": { + "id": "skip-nx-cache-flag", + "name": "--skip-nx-cache flag", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/nx-api/nx/documents/affected#skip-nx-cache", + "tags": ["cache-task-results"] + }, + "/reference/nx-json#tasks-runner-options": { + "id": "tasks-runner-options-property", + "name": "tasks-runner-options property", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/nx-json#tasks-runner-options", + "tags": ["cache-task-results"] + }, + "/reference/nx-json#inputs-&-namedinputs": { + "id": "nxjson-inputs", + "name": "nx.json reference: inputs and namedInputs", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/nx-json#inputs-&-namedinputs", + "tags": ["cache-task-results"] + }, + "/reference/project-configuration#inputs-&-namedinputs": { + "id": "project-config-inputs", + "name": "Project Configuration reference: inputs and namedInputs", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/project-configuration#inputs-&-namedinputs", + "tags": ["cache-task-results"] + }, + "/reference/nx-json#generators": { + "id": "nxjson-generator-defaults", + "name": "nx.json generator defaults", + "description": "", + "mediaImage": "", + "file": "", + "itemList": [], + "isExternal": true, + "path": "/reference/nx-json#generators", + "tags": ["generate-code"] + }, + "/see-also/sitemap": { + "id": "sitemap", + "name": "Site Map", + "description": "", + "mediaImage": "", + "file": "shared/reference/sitemap", + "itemList": [], + "isExternal": false, + "path": "/see-also/sitemap", + "tags": [] + } +} diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json new file mode 100644 index 0000000000000..340a48fc0c94f --- /dev/null +++ b/docs/generated/manifests/tags.json @@ -0,0 +1,1160 @@ +{ + "run-tasks": [ + { + "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", + "file": "shared/features/run-tasks", + "id": "run-tasks", + "name": "Run Tasks", + "path": "/features/run-tasks" + }, + { + "description": "", + "file": "shared/concepts/task-pipeline-configuration", + "id": "task-pipeline-configuration", + "name": "What is a Task Pipeline", + "path": "/concepts/task-pipeline-configuration" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/executors-and-configurations", + "id": "executors-and-configurations", + "name": "Executors and Configurations", + "path": "/concepts/executors-and-configurations" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/configure-inputs", + "id": "configure-inputs", + "name": "Configure Inputs for Task Caching", + "path": "/recipes/running-tasks/configure-inputs" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/configure-outputs", + "id": "configure-outputs", + "name": "Configure Outputs for Task Caching", + "path": "/recipes/running-tasks/configure-outputs" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/defining-task-pipeline", + "id": "defining-task-pipeline", + "name": "Define a Task Pipeline", + "path": "/recipes/running-tasks/defining-task-pipeline" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/running-custom-commands", + "id": "run-commands-executor", + "name": "Run Custom Commands", + "path": "/recipes/running-tasks/run-commands-executor" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/run-tasks-in-parallel", + "id": "run-tasks-in-parallel", + "name": "Run Tasks in Parallel", + "path": "/recipes/running-tasks/run-tasks-in-parallel" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/root-level-scripts", + "id": "root-level-scripts", + "name": "Run Root-Level NPM Scripts with Nx", + "path": "/recipes/running-tasks/root-level-scripts" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/workspace-watching", + "id": "workspace-watching", + "name": "Workspace Watching", + "path": "/recipes/running-tasks/workspace-watching" + }, + { + "description": "", + "file": "shared/using-nx/affected", + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "path": "/ci/features/affected" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/run", + "id": "run", + "name": "run", + "path": "/nx-api/nx/documents/run" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/run-many", + "id": "run-many", + "name": "run-many", + "path": "/nx-api/nx/documents/run-many" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/affected", + "id": "affected", + "name": "affected", + "path": "/nx-api/nx/documents/affected" + } + ], + "cache-task-results": [ + { + "description": "Learn about the various ways you can use Nx to run tasks in your workspace.", + "file": "shared/features/run-tasks", + "id": "run-tasks", + "name": "Run Tasks", + "path": "/features/run-tasks" + }, + { + "description": "Learn how to define cacheable tasks, how to fine-tune with inputs and outputs, where the cache is stored and much more.", + "file": "shared/features/cache-task-results", + "id": "cache-task-results", + "name": "Cache Task Results", + "path": "/features/cache-task-results" + }, + { + "description": "", + "file": "shared/concepts/how-caching-works", + "id": "how-caching-works", + "name": "How Caching Works", + "path": "/concepts/how-caching-works" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/configure-inputs", + "id": "configure-inputs", + "name": "Configure Inputs for Task Caching", + "path": "/recipes/running-tasks/configure-inputs" + }, + { + "description": "", + "file": "shared/recipes/running-tasks/configure-outputs", + "id": "configure-outputs", + "name": "Configure Outputs for Task Caching", + "path": "/recipes/running-tasks/configure-outputs" + }, + { + "description": "", + "file": "shared/recipes/troubleshoot-cache-misses", + "id": "troubleshoot-cache-misses", + "name": "Troubleshoot Cache Misses", + "path": "/recipes/troubleshooting/troubleshoot-cache-misses" + }, + { + "description": "", + "file": "shared/reference/inputs", + "id": "inputs", + "name": "Inputs and Named Inputs", + "path": "/reference/inputs" + }, + { + "description": "", + "file": "", + "id": "ci", + "name": "CI Documentation", + "path": "/ci/intro/ci-with-nx" + }, + { + "description": "", + "file": "", + "id": "skip-nx-cache-flag", + "name": "--skip-nx-cache flag", + "path": "/nx-api/nx/documents/affected#skip-nx-cache" + }, + { + "description": "", + "file": "", + "id": "tasks-runner-options-property", + "name": "tasks-runner-options property", + "path": "/reference/nx-json#tasks-runner-options" + }, + { + "description": "", + "file": "", + "id": "nxjson-inputs", + "name": "nx.json reference: inputs and namedInputs", + "path": "/reference/nx-json#inputs-&-namedinputs" + }, + { + "description": "", + "file": "", + "id": "project-config-inputs", + "name": "Project Configuration reference: inputs and namedInputs", + "path": "/reference/project-configuration#inputs-&-namedinputs" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", + "id": "connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "path": "/nx-api/nx/documents/connect-to-nx-cloud" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/reset", + "id": "reset", + "name": "reset", + "path": "/nx-api/nx/documents/reset" + } + ], + "explore-graph": [ + { + "description": "", + "file": "shared/features/explore-graph", + "id": "explore-graph", + "name": "Explore your Workspace", + "path": "/features/explore-graph" + }, + { + "description": "", + "file": "shared/concepts/how-project-graph-is-built", + "id": "how-project-graph-is-built", + "name": "How the Project Graph is Built", + "path": "/concepts/more-concepts/how-project-graph-is-built" + }, + { + "description": "", + "file": "shared/recipes/analyze-source-files", + "id": "analyze-source-files", + "name": "Disable Graph Links Created from Analyzing Source Files", + "path": "/recipes/tips-n-tricks/analyze-source-files" + }, + { + "description": "", + "file": "shared/recipes/resolve-circular-dependencies", + "id": "resolve-circular-dependencies", + "name": "Resolve Circular Dependencies", + "path": "/recipes/troubleshooting/resolve-circular-dependencies" + }, + { + "description": "", + "file": "shared/recipes/plugins/project-graph-plugins", + "id": "project-graph-plugins", + "name": "Modify the Project Graph", + "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.", + "file": "generated/packages/generated/packages/nx/documents/dep-graph", + "id": "dep-graph", + "name": "graph", + "path": "/nx-api/nx/documents/dep-graph" + } + ], + "generate-code": [ + { + "description": "", + "file": "shared/features/generate-code", + "id": "generate-code", + "name": "Generate Code", + "path": "/features/generate-code" + }, + { + "description": "", + "file": "shared/concepts/nx-plugins", + "id": "nx-plugins", + "name": "What Are Nx Plugins", + "path": "/concepts/nx-plugins" + }, + { + "description": "", + "file": "shared/monorepo-nx-enterprise", + "id": "monorepo-nx-enterprise", + "name": "Using Nx at Enterprises", + "path": "/concepts/more-concepts/monorepo-nx-enterprise" + }, + { + "description": "", + "file": "", + "id": "nxjson-generator-defaults", + "name": "nx.json generator defaults", + "path": "/reference/nx-json#generators" + }, + { + "description": "", + "file": "shared/recipes/generators/local-generators", + "id": "local-generators", + "name": "Write a Simple Generator", + "path": "/extending-nx/recipes/local-generators" + }, + { + "description": "", + "file": "shared/recipes/generators/composing-generators", + "id": "composing-generators", + "name": "Compose Generators", + "path": "/extending-nx/recipes/composing-generators" + }, + { + "description": "", + "file": "shared/recipes/generators/generator-options", + "id": "generator-options", + "name": "Provide Options for Generators", + "path": "/extending-nx/recipes/generator-options" + }, + { + "description": "", + "file": "shared/recipes/generators/creating-files", + "id": "creating-files", + "name": "Create Files", + "path": "/extending-nx/recipes/creating-files" + }, + { + "description": "", + "file": "shared/recipes/generators/modifying-files", + "id": "modifying-files", + "name": "Modify 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.", + "file": "generated/packages/generated/packages/nx/documents/generate", + "id": "generate", + "name": "generate", + "path": "/nx-api/nx/documents/generate" + } + ], + "automate-updating-dependencies": [ + { + "description": "Learn how Nx provides automated update scripts to help you keep your workspace, tooling and framework dependencies up to date.", + "file": "shared/features/automate-updating-dependencies", + "id": "automate-updating-dependencies", + "name": "Automate Updating Dependencies", + "path": "/features/automate-updating-dependencies" + }, + { + "description": "", + "file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync", + "id": "keep-nx-versions-in-sync", + "name": "Keep Nx Versions in Sync", + "path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync" + }, + { + "description": "", + "file": "shared/recipes/advanced-update", + "id": "advanced-update", + "name": "Altering Migration Process", + "path": "/recipes/tips-n-tricks/advanced-update" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/migrate", + "id": "migrate", + "name": "migrate", + "path": "/nx-api/nx/documents/migrate" + } + ], + "enforce-module-boundaries": [ + { + "description": "Learn how to avoid dependency hell and scale a codebase by imposing constraints on your projects using the module boundary lint rule.", + "file": "shared/features/enforce-module-boundaries", + "id": "enforce-module-boundaries", + "name": "Enforce Module Boundaries", + "path": "/features/enforce-module-boundaries" + }, + { + "description": "", + "file": "shared/monorepo-nx-enterprise", + "id": "monorepo-nx-enterprise", + "name": "Using Nx at Enterprises", + "path": "/concepts/more-concepts/monorepo-nx-enterprise" + }, + { + "description": "", + "file": "shared/workspace/applications-and-libraries", + "id": "applications-and-libraries", + "name": "Applications and Libraries", + "path": "/concepts/more-concepts/applications-and-libraries" + }, + { + "description": "", + "file": "shared/workspace/creating-libraries", + "id": "creating-libraries", + "name": "Creating Libraries", + "path": "/concepts/more-concepts/creating-libraries" + }, + { + "description": "", + "file": "shared/workspace/library-types", + "id": "library-types", + "name": "Library Types", + "path": "/concepts/more-concepts/library-types" + }, + { + "description": "", + "file": "shared/workspace/grouping-libraries", + "id": "grouping-libraries", + "name": "Grouping Libraries", + "path": "/concepts/more-concepts/grouping-libraries" + }, + { + "description": "", + "file": "shared/recipes/ban-dependencies-with-tags", + "id": "ban-dependencies-with-tags", + "name": "Ban Dependencies with Certain Tags", + "path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags" + }, + { + "description": "", + "file": "shared/recipes/tag-multiple-dimensions", + "id": "tag-multiple-dimensions", + "name": "Tag in Multiple Dimensions", + "path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions" + }, + { + "description": "", + "file": "shared/recipes/ban-external-imports", + "id": "ban-external-imports", + "name": "Ban External Imports", + "path": "/recipes/enforce-module-boundaries/ban-external-imports" + }, + { + "description": "", + "file": "shared/recipes/tags-allow-list", + "id": "tags-allow-list", + "name": "Tags Allow List", + "path": "/recipes/enforce-module-boundaries/tags-allow-list" + }, + { + "description": "", + "file": "shared/reference/nxignore", + "id": "nxignore", + "name": ".nxignore", + "path": "/reference/nxignore" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/format-check", + "id": "format-check", + "name": "format:check", + "path": "/nx-api/nx/documents/format-check" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/format-write", + "id": "format-write", + "name": "format:write", + "path": "/nx-api/nx/documents/format-write" + } + ], + "integrate-with-editors": [ + { + "description": "Learn about Nx Console, an extension for VS Code and WebStorm.", + "file": "shared/features/integrate-with-editors", + "id": "integrate-with-editors", + "name": "Integrate with Editors", + "path": "/features/integrate-with-editors" + }, + { + "description": "", + "file": "shared/recipes/console-telemetry", + "id": "console-telemetry", + "name": "Telemetry", + "path": "/recipes/nx-console/console-telemetry" + }, + { + "description": "", + "file": "shared/recipes/console-project-details", + "id": "console-project-details", + "name": "Project Details View", + "path": "/recipes/nx-console/console-project-details" + }, + { + "description": "", + "file": "shared/recipes/console-generate-command", + "id": "console-generate-command", + "name": "Generate Command", + "path": "/recipes/nx-console/console-generate-command" + }, + { + "description": "", + "file": "shared/recipes/console-run-command", + "id": "console-run-command", + "name": "Run Command", + "path": "/recipes/nx-console/console-run-command" + }, + { + "description": "", + "file": "shared/recipes/console-add-dependency-command", + "id": "console-add-dependency-command", + "name": "Add Dependency Command", + "path": "/recipes/nx-console/console-add-dependency-command" + }, + { + "description": "", + "file": "shared/recipes/console-project-pane", + "id": "console-project-pane", + "name": "Project Pane", + "path": "/recipes/nx-console/console-project-pane" + }, + { + "description": "", + "file": "shared/recipes/console-shortcuts", + "id": "console-shortcuts", + "name": "Keyboard Shortcuts", + "path": "/recipes/nx-console/console-shortcuts" + }, + { + "description": "", + "file": "shared/recipes/console-troubleshooting", + "id": "console-troubleshooting", + "name": "Troubleshooting", + "path": "/recipes/nx-console/console-troubleshooting" + } + ], + "manage-releases": [ + { + "description": "Learn how Nx provides tools to help you manage releasing your projects.", + "file": "shared/features/manage-releases", + "id": "manage-releases", + "name": "Manage Releases", + "path": "/features/manage-releases" + } + ], + "intro": [ + { + "description": "", + "file": "shared/mental-model", + "id": "mental-model", + "name": "Mental Model", + "path": "/concepts/mental-model" + }, + { + "description": "", + "file": "shared/concepts/integrated-vs-package-based", + "id": "integrated-vs-package-based", + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "path": "/concepts/integrated-vs-package-based" + } + ], + "create-your-own-plugin": [ + { + "description": "", + "file": "shared/concepts/nx-plugins", + "id": "nx-plugins", + "name": "What Are Nx Plugins", + "path": "/concepts/nx-plugins" + }, + { + "description": "", + "file": "shared/guides/nx-devkit-angular-devkit", + "id": "nx-devkit-angular-devkit", + "name": "Nx Devkit and Angular Devkit", + "path": "/concepts/more-concepts/nx-devkit-angular-devkit" + }, + { + "description": "", + "file": "shared/recipes/plugins/migration-generators", + "id": "migration-generators", + "name": "Write a Migration", + "path": "/extending-nx/recipes/migration-generators" + }, + { + "description": "", + "file": "shared/recipes/plugins/create-preset", + "id": "create-preset", + "name": "Create a Preset", + "path": "/extending-nx/recipes/create-preset" + }, + { + "description": "", + "file": "shared/recipes/plugins/create-install-package", + "id": "create-install-package", + "name": "Create an Install Package", + "path": "/extending-nx/recipes/create-install-package" + }, + { + "description": "", + "file": "shared/recipes/plugins/project-graph-plugins", + "id": "project-graph-plugins", + "name": "Modify the Project Graph", + "path": "/extending-nx/recipes/project-graph-plugins" + } + ], + "inferred-tasks": [ + { + "description": "", + "file": "shared/concepts/inferred-tasks", + "id": "inferred-tasks", + "name": "Inferred Tasks", + "path": "/concepts/inferred-tasks" + } + ], + "repository-types": [ + { + "description": "", + "file": "shared/concepts/integrated-vs-package-based", + "id": "integrated-vs-package-based", + "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", + "path": "/concepts/integrated-vs-package-based" + }, + { + "description": "", + "file": "shared/recipes/repo-types/package-based-in-integrated", + "id": "package-based-in-integrated", + "name": "Add a Package-based Project in an Integrated Repo", + "path": "/recipes/tips-n-tricks/package-based-in-integrated" + }, + { + "description": "", + "file": "shared/recipes/repo-types/integrated-in-package-based", + "id": "integrated-in-package-based", + "name": "Add an Integrated Project in a Package-based Repo", + "path": "/recipes/tips-n-tricks/integrated-in-package-based" + }, + { + "description": "", + "file": "shared/recipes/repo-types/standalone-to-integrated", + "id": "standalone-to-integrated", + "name": "Convert from a Standalone Repository to an Integrated Repository", + "path": "/recipes/tips-n-tricks/standalone-to-integrated" + } + ], + "module-federation": [ + { + "description": "", + "file": "shared/guides/module-federation/module-federation-and-nx", + "id": "module-federation-and-nx", + "name": "Module Federation and Nx", + "path": "/concepts/module-federation/module-federation-and-nx" + }, + { + "description": "", + "file": "shared/guides/module-federation/faster-builds", + "id": "faster-builds-with-module-federation", + "name": "Faster Builds with Module Federation", + "path": "/concepts/module-federation/faster-builds-with-module-federation" + }, + { + "description": "", + "file": "shared/recipes/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for React", + "path": "/recipes/react/module-federation-with-ssr" + }, + { + "description": "", + "file": "shared/recipes/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for Angular", + "path": "/recipes/angular/module-federation-with-ssr" + }, + { + "description": "", + "file": "shared/guides/module-federation/dynamic-mfe-angular", + "id": "dynamic-module-federation-with-angular", + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "path": "/recipes/angular/dynamic-module-federation-with-angular" + } + ], + "angular": [ + { + "description": "", + "file": "shared/guides/module-federation/module-federation-and-nx", + "id": "module-federation-and-nx", + "name": "Module Federation and Nx", + "path": "/concepts/module-federation/module-federation-and-nx" + }, + { + "description": "", + "file": "shared/guides/module-federation/faster-builds", + "id": "faster-builds-with-module-federation", + "name": "Faster Builds with Module Federation", + "path": "/concepts/module-federation/faster-builds-with-module-federation" + }, + { + "description": "", + "file": "shared/recipes/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for Angular", + "path": "/recipes/angular/module-federation-with-ssr" + }, + { + "description": "", + "file": "shared/guides/module-federation/dynamic-mfe-angular", + "id": "dynamic-module-federation-with-angular", + "name": "Advanced Micro Frontends with Angular using Dynamic Federation", + "path": "/recipes/angular/dynamic-module-federation-with-angular" + } + ], + "react": [ + { + "description": "", + "file": "shared/guides/module-federation/module-federation-and-nx", + "id": "module-federation-and-nx", + "name": "Module Federation and Nx", + "path": "/concepts/module-federation/module-federation-and-nx" + }, + { + "description": "", + "file": "shared/guides/module-federation/faster-builds", + "id": "faster-builds-with-module-federation", + "name": "Faster Builds with Module Federation", + "path": "/concepts/module-federation/faster-builds-with-module-federation" + }, + { + "description": "", + "file": "shared/recipes/module-federation-with-ssr", + "id": "module-federation-with-ssr", + "name": "Setup Module Federation with SSR for React", + "path": "/recipes/react/module-federation-with-ssr" + } + ], + "workspace-watching": [ + { + "description": "", + "file": "shared/recipes/running-tasks/workspace-watching", + "id": "workspace-watching", + "name": "Workspace Watching", + "path": "/recipes/running-tasks/workspace-watching" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/watch", + "id": "watch", + "name": "watch", + "path": "/nx-api/nx/documents/watch" + } + ], + "environment-variables": [ + { + "description": "", + "file": "shared/guides/use-environment-variables-in-react", + "id": "use-environment-variables-in-react", + "name": "Use Environment Variables in React", + "path": "/recipes/react/use-environment-variables-in-react" + }, + { + "description": "", + "file": "shared/guides/use-environment-variables-in-angular", + "id": "use-environment-variables-in-angular", + "name": "Use Environment Variables in Angular", + "path": "/recipes/angular/use-environment-variables-in-angular" + }, + { + "description": "", + "file": "shared/guides/define-environment-variables", + "id": "define-environment-variables", + "name": "Define Environment Variables", + "path": "/recipes/tips-n-tricks/define-environment-variables" + }, + { + "description": "", + "file": "shared/guides/performance-profiling", + "id": "performance-profiling", + "name": "Profiling Build Performance", + "path": "/recipes/troubleshooting/performance-profiling" + }, + { + "description": "", + "file": "shared/reference/environment-variables", + "id": "environment-variables", + "name": "Environment Variables", + "path": "/reference/environment-variables" + } + ], + "deployment": [ + { + "description": "", + "file": "shared/recipes/deployment/node-server-fly-io", + "id": "node-server-fly-io", + "name": "Deploying a Node App to Fly.io", + "path": "/recipes/node/node-server-fly-io" + }, + { + "description": "", + "file": "shared/recipes/deployment/node-serverless-functions-netlify", + "id": "node-serverless-functions-netlify", + "name": "Add and Deploy Netlify Edge Functions with Node", + "path": "/recipes/node/node-serverless-functions-netlify" + }, + { + "description": "", + "file": "shared/recipes/deployment/node-aws-lambda", + "id": "node-aws-lambda", + "name": "Deploying AWS lambda in Node.js", + "path": "/recipes/node/node-aws-lambda" + } + ], + "node": [ + { + "description": "", + "file": "shared/recipes/deployment/node-server-fly-io", + "id": "node-server-fly-io", + "name": "Deploying a Node App to Fly.io", + "path": "/recipes/node/node-server-fly-io" + }, + { + "description": "", + "file": "shared/recipes/deployment/node-serverless-functions-netlify", + "id": "node-serverless-functions-netlify", + "name": "Add and Deploy Netlify Edge Functions with Node", + "path": "/recipes/node/node-serverless-functions-netlify" + }, + { + "description": "", + "file": "shared/recipes/deployment/node-aws-lambda", + "id": "node-aws-lambda", + "name": "Deploying AWS lambda in Node.js", + "path": "/recipes/node/node-aws-lambda" + }, + { + "description": "", + "file": "shared/recipes/node/application-proxies", + "id": "application-proxies", + "name": "Set Up Application Proxies", + "path": "/recipes/node/application-proxies" + }, + { + "description": "", + "file": "shared/recipes/database/nestjs-prisma", + "id": "nestjs-prisma", + "name": "Prisma with NestJS", + "path": "/showcase/example-repos/nestjs-prisma" + }, + { + "description": "", + "file": "shared/recipes/database/mongo-fastify", + "id": "mongo-fastify", + "name": "Mongo with Fastify", + "path": "/showcase/example-repos/mongo-fastify" + }, + { + "description": "", + "file": "shared/recipes/database/redis-fastify", + "id": "redis-fastify", + "name": "Redis with Fastify", + "path": "/showcase/example-repos/redis-fastify" + }, + { + "description": "", + "file": "shared/recipes/database/postgres-fastify", + "id": "postgres-fastify", + "name": "Postgres with Fastify", + "path": "/showcase/example-repos/postgres-fastify" + }, + { + "description": "", + "file": "shared/recipes/database/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "name": "PlanetScale with Serverless Fastify", + "path": "/showcase/example-repos/serverless-fastify-planetscale" + } + ], + "storybook": [ + { + "description": "This guide explains how to set up Storybook for React projects in your Nx workspace.", + "file": "shared/recipes/storybook/plugin-react", + "id": "overview-react", + "name": "Set up Storybook for React Projects", + "path": "/recipes/storybook/overview-react" + }, + { + "description": "This guide explains how to set up Storybook for Angular projects in your Nx workspace.", + "file": "shared/recipes/storybook/plugin-angular", + "id": "overview-angular", + "name": "Set up Storybook for Angular Projects", + "path": "/recipes/storybook/overview-angular" + }, + { + "description": "This guide explains how to set up Storybook for Vue projects in your Nx workspace.", + "file": "shared/recipes/storybook/plugin-vue", + "id": "overview-vue", + "name": "Set up Storybook for Vue Projects", + "path": "/recipes/storybook/overview-vue" + }, + { + "description": "This guide explains how Storybook is configured on your Nx workspace.", + "file": "shared/recipes/storybook/configuring-storybook", + "id": "configuring-storybook", + "name": "Configuring Storybook on Nx", + "path": "/recipes/storybook/configuring-storybook" + }, + { + "description": "This guide explains how to consolidate all your Storybook stories from different projects into one unified Storybook instance. Ideal for Nx workspaces leveraging a single framework.", + "file": "shared/recipes/storybook/one-storybook-for-all", + "id": "one-storybook-for-all", + "name": "One main Storybook instance for all projects", + "path": "/recipes/storybook/one-storybook-for-all" + }, + { + "description": "This guide explains how to set up individual Storybook instances for each scope within an Nx workspace. It provides a structured approach, emphasizing folder organization and thematic scope separation.", + "file": "shared/recipes/storybook/one-storybook-per-scope", + "id": "one-storybook-per-scope", + "name": "One Storybook instance per scope", + "path": "/recipes/storybook/one-storybook-per-scope" + }, + { + "description": "This guide explains how to publish a unified Storybook instance from multiple frameworks within an Nx workspace using Storybook Composition.", + "file": "shared/recipes/storybook/one-storybook-with-composition", + "id": "one-storybook-with-composition", + "name": "One main Storybook instance using Storybook Composition", + "path": "/recipes/storybook/one-storybook-with-composition" + }, + { + "description": "This guide explains how to customize the webpack configuration and your vite configuration for Storybook.", + "file": "shared/recipes/storybook/custom-builder-configs", + "id": "custom-builder-configs", + "name": "How to configure Webpack and Vite for Storybook", + "path": "/recipes/storybook/custom-builder-configs" + }, + { + "description": "This guide explains how you can set up Storybook interaction tests on your Nx workspace.", + "file": "shared/recipes/storybook/interaction-tests", + "id": "storybook-interaction-tests", + "name": "Setting up Storybook Interaction Tests with Nx", + "path": "/recipes/storybook/storybook-interaction-tests" + }, + { + "description": "This guide explains how you can upgrade Storybook using the Storybook CLI upgrade and automigrate commands.", + "file": "shared/recipes/storybook/upgrading-storybook", + "id": "upgrading-storybook", + "name": "Upgrading Storybook using the Storybook CLI", + "path": "/recipes/storybook/upgrading-storybook" + }, + { + "description": "This guide explains how you can set up Storybook composition on your Nx workspace.", + "file": "shared/recipes/storybook/storybook-composition-setup", + "id": "storybook-composition-setup", + "name": "Setting up Storybook Composition with Nx", + "path": "/recipes/storybook/storybook-composition-setup" + }, + { + "description": "This guide explains how to set up Compodoc for Storybook on Angular projects in a Nx workspace.", + "file": "shared/recipes/storybook/angular-storybook-compodoc", + "id": "angular-storybook-compodoc", + "name": "Angular: Set up Compodoc for Storybook on Nx", + "path": "/recipes/storybook/angular-storybook-compodoc" + }, + { + "description": "This document explains how to configure styles and preprocessor options in Angular projects with a Storybook configuration.", + "file": "shared/recipes/storybook/angular-configuring-styles", + "id": "angular-configuring-styles", + "name": "Angular: Configuring styles and preprocessor options", + "path": "/recipes/storybook/angular-configuring-styles" + } + ], + "installation": [ + { + "description": "", + "file": "shared/recipes/installation/install-non-javascript", + "id": "install-non-javascript", + "name": "Install Nx in a Non-Javascript Repo", + "path": "/recipes/installation/install-non-javascript" + }, + { + "description": "", + "file": "shared/recipes/installation/update-global-installation", + "id": "update-global-installation", + "name": "Update Your Global Nx Installation", + "path": "/recipes/installation/update-global-installation" + } + ], + "yarn": [ + { + "description": "", + "file": "shared/recipes/yarn-pnp", + "id": "yarn-pnp", + "name": "Using Yarn PnP", + "path": "/recipes/tips-n-tricks/yarn-pnp" + } + ], + "Plug and Play": [ + { + "description": "", + "file": "shared/recipes/yarn-pnp", + "id": "yarn-pnp", + "name": "Using Yarn PnP", + "path": "/recipes/tips-n-tricks/yarn-pnp" + } + ], + "eslint": [ + { + "description": "", + "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", + "id": "flat-config", + "name": "Switching to ESLint's flat config format", + "path": "/recipes/tips-n-tricks/flat-config" + } + ], + "flat config": [ + { + "description": "", + "file": "shared/recipes/tips-n-tricks/migrating-to-flat-eslint", + "id": "flat-config", + "name": "Switching to ESLint's flat config format", + "path": "/recipes/tips-n-tricks/flat-config" + } + ], + "nx-release": [ + { + "description": "", + "file": "shared/recipes/nx-release/get-started-with-nx-release", + "id": "get-started-with-nx-release", + "name": "Get Started with Nx Release", + "path": "/recipes/nx-release/get-started-with-nx-release" + }, + { + "description": "", + "file": "shared/recipes/nx-release/release-projects-independently", + "id": "release-projects-independently", + "name": "Release Projects Independently", + "path": "/recipes/nx-release/release-projects-independently" + }, + { + "description": "", + "file": "shared/recipes/nx-release/automatically-version-with-conventional-commits", + "id": "automatically-version-with-conventional-commits", + "name": "Automatically Version with Conventional Commits", + "path": "/recipes/nx-release/automatically-version-with-conventional-commits" + }, + { + "description": "", + "file": "shared/recipes/nx-release/publish-in-ci-cd", + "id": "publish-in-ci-cd", + "name": "Publish in CI/CD", + "path": "/recipes/nx-release/publish-in-ci-cd" + }, + { + "description": "", + "file": "shared/recipes/nx-release/automate-github-releases", + "id": "automate-github-releases", + "name": "Automate GitHub Releases", + "path": "/recipes/nx-release/automate-github-releases" + }, + { + "description": "", + "file": "shared/recipes/nx-release/publish-rust-crates", + "id": "publish-rust-crates", + "name": "Publish Rust Crates", + "path": "/recipes/nx-release/publish-rust-crates" + }, + { + "description": "", + "file": "shared/recipes/nx-release/update-local-registry-setup", + "id": "update-local-registry-setup", + "name": "Update Your Local Registry Setup to use Nx Release", + "path": "/recipes/nx-release/update-local-registry-setup" + }, + { + "description": "", + "file": "shared/recipes/nx-release/customize-conventional-commit-types", + "id": "customize-conventional-commit-types", + "name": "Customize Conventional Commit Types", + "path": "/recipes/nx-release/customize-conventional-commit-types" + } + ], + "database": [ + { + "description": "", + "file": "shared/recipes/database/nestjs-prisma", + "id": "nestjs-prisma", + "name": "Prisma with NestJS", + "path": "/showcase/example-repos/nestjs-prisma" + }, + { + "description": "", + "file": "shared/recipes/database/mongo-fastify", + "id": "mongo-fastify", + "name": "Mongo with Fastify", + "path": "/showcase/example-repos/mongo-fastify" + }, + { + "description": "", + "file": "shared/recipes/database/redis-fastify", + "id": "redis-fastify", + "name": "Redis with Fastify", + "path": "/showcase/example-repos/redis-fastify" + }, + { + "description": "", + "file": "shared/recipes/database/postgres-fastify", + "id": "postgres-fastify", + "name": "Postgres with Fastify", + "path": "/showcase/example-repos/postgres-fastify" + }, + { + "description": "", + "file": "shared/recipes/database/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "name": "PlanetScale with Serverless Fastify", + "path": "/showcase/example-repos/serverless-fastify-planetscale" + } + ], + "serverless": [ + { + "description": "", + "file": "shared/recipes/database/serverless-fastify-planetscale", + "id": "serverless-fastify-planetscale", + "name": "PlanetScale with Serverless Fastify", + "path": "/showcase/example-repos/serverless-fastify-planetscale" + } + ], + "distribute-task-execution": [ + { + "description": "", + "file": "", + "id": "ci", + "name": "CI Documentation", + "path": "/ci/intro/ci-with-nx" + }, + { + "description": "", + "file": "nx-cloud/concepts/parallelization-distribution", + "id": "parallelization-distribution", + "name": "Parallelization and Distribution", + "path": "/ci/concepts/parallelization-distribution" + }, + { + "description": "Learn how to set up Nx Cloud for your workspace.", + "file": "", + "id": "set-up", + "name": "Set Up CI", + "path": "/ci/recipes/set-up" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", + "id": "connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "path": "/nx-api/nx/documents/connect-to-nx-cloud" + } + ], + "remote-cache": [ + { + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "file": "shared/features/remote-cache", + "id": "remote-cache", + "name": "Use Remote Caching (Nx Replay)", + "path": "/ci/features/remote-cache" + } + ], + "on-premise": [ + { + "description": "Set up Nx Cloud on machines that you control", + "file": "nx-cloud/features/nx-enterprise-on-prem", + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "path": "/ci/features/on-premise" + } + ], + "docker": [ + { + "description": "", + "file": "shared/recipes/ci-deployment", + "id": "ci-deployment", + "name": "Prepare applications for deployment via CI", + "path": "/ci/recipes/other/ci-deployment" + } + ], + "deploy": [ + { + "description": "", + "file": "shared/recipes/ci-deployment", + "id": "ci-deployment", + "name": "Prepare applications for deployment via CI", + "path": "/ci/recipes/other/ci-deployment" + } + ] +} diff --git a/docs/generated/packages-metadata.json b/docs/generated/packages-metadata.json new file mode 100644 index 0000000000000..c07eee63e94cd --- /dev/null +++ b/docs/generated/packages-metadata.json @@ -0,0 +1,3222 @@ +[ + { + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/angular/documents/overview", + "itemList": [], + "isExternal": false, + "path": "angular/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/angular/angular-plugin" + }, + { + "id": "angular-nx-version-matrix", + "name": "Angular and Nx Version Matrix", + "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/angular/documents/angular-nx-version-matrix", + "itemList": [], + "isExternal": false, + "path": "angular/documents/angular-nx-version-matrix", + "tags": [], + "originalFilePath": "shared/packages/angular/angular-nx-version-matrix" + } + ], + "executors": [ + { + "description": "Delegates the build to a different target while supporting incremental builds.", + "file": "generated/packages/angular/executors/delegate-build.json", + "hidden": false, + "name": "delegate-build", + "originalFilePath": "/packages/angular/src/executors/delegate-build/schema.json", + "path": "angular/executors/delegate-build", + "type": "executor" + }, + { + "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`.", + "file": "generated/packages/angular/executors/ng-packagr-lite.json", + "hidden": false, + "name": "ng-packagr-lite", + "originalFilePath": "/packages/angular/src/executors/ng-packagr-lite/schema.json", + "path": "angular/executors/ng-packagr-lite", + "type": "executor" + }, + { + "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", + "file": "generated/packages/angular/executors/package.json", + "hidden": false, + "name": "package", + "originalFilePath": "/packages/angular/src/executors/package/schema.json", + "path": "angular/executors/package", + "type": "executor" + }, + { + "description": "Builds your application with esbuild and adds support for incremental builds.", + "file": "generated/packages/angular/executors/browser-esbuild.json", + "hidden": false, + "name": "browser-esbuild", + "originalFilePath": "/packages/angular/src/executors/browser-esbuild/schema.json", + "path": "angular/executors/browser-esbuild", + "type": "executor" + }, + { + "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", + "file": "generated/packages/angular/executors/module-federation-dev-server.json", + "hidden": false, + "name": "module-federation-dev-server", + "originalFilePath": "/packages/angular/src/executors/module-federation-dev-server/schema.json", + "path": "angular/executors/module-federation-dev-server", + "type": "executor" + }, + { + "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", + "file": "generated/packages/angular/executors/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/angular/src/executors/application/schema.json", + "path": "angular/executors/application", + "type": "executor" + }, + { + "description": "Extracts i18n messages from source code.", + "file": "generated/packages/angular/executors/extract-i18n.json", + "hidden": false, + "name": "extract-i18n", + "originalFilePath": "/packages/angular/src/executors/extract-i18n/schema.json", + "path": "angular/executors/extract-i18n", + "type": "executor" + }, + { + "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", + "file": "generated/packages/angular/executors/webpack-browser.json", + "hidden": false, + "name": "webpack-browser", + "originalFilePath": "/packages/angular/src/builders/webpack-browser/schema.json", + "path": "angular/executors/webpack-browser", + "type": "executor" + }, + { + "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", + "file": "generated/packages/angular/executors/dev-server.json", + "hidden": false, + "name": "dev-server", + "originalFilePath": "/packages/angular/src/builders/dev-server/schema.json", + "path": "angular/executors/dev-server", + "type": "executor" + }, + { + "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", + "file": "generated/packages/angular/executors/webpack-server.json", + "hidden": false, + "name": "webpack-server", + "originalFilePath": "/packages/angular/src/builders/webpack-server/schema.json", + "path": "angular/executors/webpack-server", + "type": "executor" + }, + { + "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host.", + "file": "generated/packages/angular/executors/module-federation-dev-ssr.json", + "hidden": false, + "name": "module-federation-dev-ssr", + "originalFilePath": "/packages/angular/src/builders/module-federation-dev-ssr/schema.json", + "path": "angular/executors/module-federation-dev-ssr", + "type": "executor" + } + ], + "generators": [ + { + "description": "Adds linting configuration to an Angular project.", + "file": "generated/packages/angular/generators/add-linting.json", + "hidden": true, + "name": "add-linting", + "originalFilePath": "/packages/angular/src/generators/add-linting/schema.json", + "path": "angular/generators/add-linting", + "type": "generator" + }, + { + "description": "Creates an Angular application.", + "file": "generated/packages/angular/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/angular/src/generators/application/schema.json", + "path": "angular/generators/application", + "type": "generator" + }, + { + "description": "Generate an Angular Component.", + "file": "generated/packages/angular/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/angular/src/generators/component/schema.json", + "path": "angular/generators/component", + "type": "generator" + }, + { + "description": "Creates a Cypress spec for a UI component that has a story.", + "file": "generated/packages/angular/generators/component-cypress-spec.json", + "hidden": true, + "name": "component-cypress-spec", + "originalFilePath": "/packages/angular/src/generators/component-cypress-spec/schema.json", + "path": "angular/generators/component-cypress-spec", + "type": "generator" + }, + { + "description": "Creates a stories.ts file for a component.", + "file": "generated/packages/angular/generators/component-story.json", + "hidden": true, + "name": "component-story", + "originalFilePath": "/packages/angular/src/generators/component-story/schema.json", + "path": "angular/generators/component-story", + "type": "generator" + }, + { + "description": "Creates a cypress component test file for a component.", + "file": "generated/packages/angular/generators/component-test.json", + "hidden": false, + "name": "component-test", + "originalFilePath": "/packages/angular/src/generators/component-test/schema.json", + "path": "angular/generators/component-test", + "type": "generator" + }, + { + "description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", + "file": "generated/packages/angular/generators/convert-to-application-executor.json", + "hidden": false, + "name": "convert-to-application-executor", + "originalFilePath": "/packages/angular/src/generators/convert-to-application-executor/schema.json", + "path": "angular/generators/convert-to-application-executor", + "type": "generator" + }, + { + "description": "Generate an Angular directive.", + "file": "generated/packages/angular/generators/directive.json", + "hidden": false, + "name": "directive", + "originalFilePath": "/packages/angular/src/generators/directive/schema.json", + "path": "angular/generators/directive", + "type": "generator" + }, + { + "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", + "file": "generated/packages/angular/generators/federate-module.json", + "hidden": false, + "name": "federate-module", + "originalFilePath": "/packages/angular/src/generators/federate-module/schema.json", + "path": "angular/generators/federate-module", + "type": "generator" + }, + { + "description": "Initializes the `@nrwl/angular` plugin.", + "file": "generated/packages/angular/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/angular/src/generators/init/schema.json", + "path": "angular/generators/init", + "type": "generator" + }, + { + "description": "Creates an Angular library.", + "file": "generated/packages/angular/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/angular/src/generators/library/schema.json", + "path": "angular/generators/library", + "type": "generator" + }, + { + "description": "Creates a secondary entry point for an Angular publishable library.", + "file": "generated/packages/angular/generators/library-secondary-entry-point.json", + "hidden": false, + "name": "library-secondary-entry-point", + "originalFilePath": "/packages/angular/src/generators/library-secondary-entry-point/schema.json", + "path": "angular/generators/library-secondary-entry-point", + "type": "generator" + }, + { + "description": "Generate a Remote Angular Module Federation Application.", + "file": "generated/packages/angular/generators/remote.json", + "hidden": false, + "name": "remote", + "originalFilePath": "/packages/angular/src/generators/remote/schema.json", + "path": "angular/generators/remote", + "type": "generator" + }, + { + "description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.", + "file": "generated/packages/angular/generators/move.json", + "hidden": false, + "name": "move", + "originalFilePath": "/packages/angular/src/generators/move/schema.json", + "path": "angular/generators/move", + "type": "generator" + }, + { + "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}", + "file": "generated/packages/angular/generators/convert-to-with-mf.json", + "hidden": false, + "name": "convert-to-with-mf", + "originalFilePath": "/packages/angular/src/generators/convert-to-with-mf/schema.json", + "path": "angular/generators/convert-to-with-mf", + "type": "generator" + }, + { + "description": "Generate a Host Angular Module Federation Application.", + "file": "generated/packages/angular/generators/host.json", + "hidden": false, + "name": "host", + "originalFilePath": "/packages/angular/src/generators/host/schema.json", + "path": "angular/generators/host", + "type": "generator" + }, + { + "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", + "file": "generated/packages/angular/generators/ng-add.json", + "hidden": true, + "name": "ng-add", + "originalFilePath": "/packages/angular/src/generators/ng-add/schema.json", + "path": "angular/generators/ng-add", + "type": "generator" + }, + { + "description": "Adds NgRx support to an application or library.", + "file": "generated/packages/angular/generators/ngrx.json", + "hidden": false, + "name": "ngrx", + "originalFilePath": "/packages/angular/src/generators/ngrx/schema.json", + "path": "angular/generators/ngrx", + "type": "generator" + }, + { + "description": "Adds an NgRx Feature Store to an application or library.", + "file": "generated/packages/angular/generators/ngrx-feature-store.json", + "hidden": false, + "name": "ngrx-feature-store", + "originalFilePath": "/packages/angular/src/generators/ngrx-feature-store/schema.json", + "path": "angular/generators/ngrx-feature-store", + "type": "generator" + }, + { + "description": "Adds an NgRx Root Store to an application.", + "file": "generated/packages/angular/generators/ngrx-root-store.json", + "hidden": false, + "name": "ngrx-root-store", + "originalFilePath": "/packages/angular/src/generators/ngrx-root-store/schema.json", + "path": "angular/generators/ngrx-root-store", + "type": "generator" + }, + { + "description": "Generate an Angular Pipe", + "file": "generated/packages/angular/generators/pipe.json", + "hidden": false, + "name": "pipe", + "originalFilePath": "/packages/angular/src/generators/pipe/schema.json", + "path": "angular/generators/pipe", + "type": "generator" + }, + { + "description": "Convert an existing Single Component Angular Module (SCAM) to a Standalone Component.", + "file": "generated/packages/angular/generators/scam-to-standalone.json", + "hidden": false, + "name": "scam-to-standalone", + "originalFilePath": "/packages/angular/src/generators/scam-to-standalone/schema.json", + "path": "angular/generators/scam-to-standalone", + "type": "generator" + }, + { + "description": "Generate a component with an accompanying Single Component Angular Module (SCAM).", + "file": "generated/packages/angular/generators/scam.json", + "hidden": false, + "name": "scam", + "originalFilePath": "/packages/angular/src/generators/scam/schema.json", + "path": "angular/generators/scam", + "type": "generator" + }, + { + "description": "Generate a directive with an accompanying Single Component Angular Module (SCAM).", + "file": "generated/packages/angular/generators/scam-directive.json", + "hidden": false, + "name": "scam-directive", + "originalFilePath": "/packages/angular/src/generators/scam-directive/schema.json", + "path": "angular/generators/scam-directive", + "type": "generator" + }, + { + "description": "Generate a pipe with an accompanying Single Component Angular Module (SCAM).", + "file": "generated/packages/angular/generators/scam-pipe.json", + "hidden": false, + "name": "scam-pipe", + "originalFilePath": "/packages/angular/src/generators/scam-pipe/schema.json", + "path": "angular/generators/scam-pipe", + "type": "generator" + }, + { + "description": "Generate a Module Federation configuration for a given Angular application.", + "file": "generated/packages/angular/generators/setup-mf.json", + "hidden": false, + "name": "setup-mf", + "originalFilePath": "/packages/angular/src/generators/setup-mf/schema.json", + "path": "angular/generators/setup-mf", + "type": "generator" + }, + { + "description": "Generate Angular Universal (SSR) setup for an Angular application.", + "file": "generated/packages/angular/generators/setup-ssr.json", + "hidden": false, + "name": "setup-ssr", + "originalFilePath": "/packages/angular/src/generators/setup-ssr/schema.json", + "path": "angular/generators/setup-ssr", + "type": "generator" + }, + { + "description": "Configures Tailwind CSS for an application or a buildable/publishable library.", + "file": "generated/packages/angular/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/angular/src/generators/setup-tailwind/schema.json", + "path": "angular/generators/setup-tailwind", + "type": "generator" + }, + { + "description": "Creates stories/specs for all components declared in a project.", + "file": "generated/packages/angular/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/angular/src/generators/stories/schema.json", + "path": "angular/generators/stories", + "type": "generator" + }, + { + "description": "Adds Storybook configuration to a project.", + "file": "generated/packages/angular/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/angular/src/generators/storybook-configuration/schema.json", + "path": "angular/generators/storybook-configuration", + "type": "generator" + }, + { + "description": "Setup Cypress component testing for a project.", + "file": "generated/packages/angular/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/angular/src/generators/cypress-component-configuration/schema.json", + "path": "angular/generators/cypress-component-configuration", + "type": "generator" + }, + { + "description": "Creates a Web Worker.", + "file": "generated/packages/angular/generators/web-worker.json", + "hidden": false, + "name": "web-worker", + "originalFilePath": "/packages/angular/src/generators/web-worker/schema.json", + "path": "angular/generators/web-worker", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "angular", + "packageName": "@nx/angular", + "root": "/packages/angular", + "source": "/packages/angular/src" + }, + { + "description": "This package is used to scaffold a brand-new workspace used to develop an Nx plugin, and sets up a pre-configured plugin with the specified name. The new plugin is created with a default generator, executor, and e2e app.", + "documents": [], + "executors": [], + "generators": [], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "create-nx-plugin", + "packageName": "create-nx-plugin", + "root": "/packages/create-nx-plugin", + "source": "/packages/create-nx-plugin/src" + }, + { + "description": "Smart Monorepos · Fast CI", + "documents": [], + "executors": [], + "generators": [], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "create-nx-workspace", + "packageName": "create-nx-workspace", + "root": "/packages/create-nx-workspace", + "source": "/packages/create-nx-workspace/src" + }, + { + "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.", + "file": "generated/packages/cypress/documents/overview", + "itemList": [], + "isExternal": false, + "path": "cypress/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/cypress/cypress-plugin" + } + ], + "executors": [ + { + "description": "Run Cypress E2E tests.", + "file": "generated/packages/cypress/executors/cypress.json", + "hidden": false, + "name": "cypress", + "originalFilePath": "/packages/cypress/src/executors/cypress/schema.json", + "path": "cypress/executors/cypress", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/cypress` plugin.", + "file": "generated/packages/cypress/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/cypress/src/generators/init/schema.json", + "path": "cypress/generators/init", + "type": "generator" + }, + { + "description": "Add a Cypress E2E Project.", + "file": "generated/packages/cypress/generators/cypress-project.json", + "hidden": true, + "name": "cypress-project", + "originalFilePath": "/packages/cypress/src/generators/cypress-project/schema.json", + "path": "cypress/generators/cypress-project", + "type": "generator" + }, + { + "description": "Add a Cypress E2E Configuration to an existing project.", + "file": "generated/packages/cypress/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/cypress/src/generators/configuration/schema.json", + "path": "cypress/generators/configuration", + "type": "generator" + }, + { + "description": "Set up Cypress Component Test for a project", + "file": "generated/packages/cypress/generators/component-configuration.json", + "hidden": true, + "name": "component-configuration", + "originalFilePath": "/packages/cypress/src/generators/component-configuration/schema.json", + "path": "cypress/generators/component-configuration", + "type": "generator" + }, + { + "description": "Migrate existing Cypress e2e projects to Cypress v11", + "file": "generated/packages/cypress/generators/migrate-to-cypress-11.json", + "hidden": false, + "name": "migrate-to-cypress-11", + "originalFilePath": "/packages/cypress/src/generators/migrate-to-cypress-11/schema.json", + "path": "cypress/generators/migrate-to-cypress-11", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "cypress", + "packageName": "@nx/cypress", + "root": "/packages/cypress", + "source": "/packages/cypress/src" + }, + { + "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.", + "file": "generated/packages/detox/documents/overview", + "itemList": [], + "isExternal": false, + "path": "detox/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/detox/detox-plugin" + } + ], + "executors": [ + { + "description": "Run the command defined in build property of the specified configuration.", + "file": "generated/packages/detox/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/detox/src/executors/build/schema.json", + "path": "detox/executors/build", + "type": "executor" + }, + { + "description": "Initiating your detox test suite.", + "file": "generated/packages/detox/executors/test.json", + "hidden": false, + "name": "test", + "originalFilePath": "/packages/detox/src/executors/test/schema.json", + "path": "detox/executors/test", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/detox` plugin.", + "file": "generated/packages/detox/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/detox/src/generators/init/schema.json", + "path": "detox/generators/init", + "type": "generator" + }, + { + "description": "Create a Detox application.", + "file": "generated/packages/detox/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/detox/src/generators/application/schema.json", + "path": "detox/generators/application", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "detox", + "packageName": "@nx/detox", + "root": "/packages/detox", + "source": "/packages/detox/src" + }, + { + "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", + "documents": [ + { + "id": "nx_devkit", + "name": "Overview", + "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", + "file": "generated/packages/devkit/documents/nx_devkit", + "itemList": [], + "isExternal": false, + "path": "devkit/documents/nx_devkit", + "tags": [], + "originalFilePath": "generated/devkit/README" + }, + { + "id": "ngcli_adapter", + "name": "Ng CLI Adapter", + "description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.", + "file": "generated/packages/devkit/documents/ngcli_adapter", + "itemList": [], + "isExternal": false, + "path": "devkit/documents/ngcli_adapter", + "tags": [], + "originalFilePath": "generated/devkit/ngcli_adapter/README" + } + ], + "executors": [], + "generators": [], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "devkit", + "packageName": "@nx/devkit", + "root": "/packages/devkit", + "source": "/packages/devkit/src" + }, + { + "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild", + "file": "generated/packages/esbuild/documents/overview", + "itemList": [], + "isExternal": false, + "path": "esbuild/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/esbuild/esbuild-plugin" + } + ], + "executors": [ + { + "description": "Bundle a package using EsBuild.", + "file": "generated/packages/esbuild/executors/esbuild.json", + "hidden": false, + "name": "esbuild", + "originalFilePath": "/packages/esbuild/src/executors/esbuild/schema.json", + "path": "esbuild/executors/esbuild", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/esbuild` plugin.", + "file": "generated/packages/esbuild/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/esbuild/src/generators/init/schema.json", + "path": "esbuild/generators/init", + "type": "generator" + }, + { + "description": "Add esbuild configuration to a project.", + "file": "generated/packages/esbuild/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/esbuild/src/generators/configuration/schema.json", + "path": "esbuild/generators/configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "esbuild", + "packageName": "@nx/esbuild", + "root": "/packages/esbuild", + "source": "/packages/esbuild/src" + }, + { + "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.", + "file": "generated/packages/eslint/documents/overview", + "itemList": [], + "isExternal": false, + "path": "eslint/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/eslint/eslint" + } + ], + "executors": [ + { + "description": "Run ESLint on a project.", + "file": "generated/packages/eslint/executors/lint.json", + "hidden": false, + "name": "lint", + "originalFilePath": "/packages/eslint/src/executors/lint/schema.json", + "path": "eslint/executors/lint", + "type": "executor" + } + ], + "generators": [ + { + "description": "Set up the ESLint plugin.", + "file": "generated/packages/eslint/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/eslint/src/generators/init/schema.json", + "path": "eslint/generators/init", + "type": "generator" + }, + { + "description": "Create the Workspace Lint Rules Project.", + "file": "generated/packages/eslint/generators/workspace-rules-project.json", + "hidden": true, + "name": "workspace-rules-project", + "originalFilePath": "/packages/eslint/src/generators/workspace-rules-project/schema.json", + "path": "eslint/generators/workspace-rules-project", + "type": "generator" + }, + { + "description": "Create a new Workspace ESLint rule.", + "file": "generated/packages/eslint/generators/workspace-rule.json", + "hidden": false, + "name": "workspace-rule", + "originalFilePath": "/packages/eslint/src/generators/workspace-rule/schema.json", + "path": "eslint/generators/workspace-rule", + "type": "generator" + }, + { + "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", + "file": "generated/packages/eslint/generators/convert-to-flat-config.json", + "hidden": false, + "name": "convert-to-flat-config", + "originalFilePath": "/packages/eslint/src/generators/convert-to-flat-config/schema.json", + "path": "eslint/generators/convert-to-flat-config", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "eslint", + "packageName": "@nx/eslint", + "root": "/packages/eslint", + "source": "/packages/eslint/src" + }, + { + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "file": "generated/packages/eslint-plugin/documents/overview", + "itemList": [], + "isExternal": false, + "path": "eslint-plugin/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/eslint/eslint-plugin" + }, + { + "id": "enforce-module-boundaries", + "name": "The `enforce-module-boundaries` rule", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "file": "generated/packages/eslint-plugin/documents/enforce-module-boundaries", + "itemList": [], + "isExternal": false, + "path": "eslint-plugin/documents/enforce-module-boundaries", + "tags": [], + "originalFilePath": "shared/packages/eslint/enforce-module-boundaries" + }, + { + "id": "dependency-checks", + "name": "The `dependency-checks` rule", + "description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.", + "file": "generated/packages/eslint-plugin/documents/dependency-checks", + "itemList": [], + "isExternal": false, + "path": "eslint-plugin/documents/dependency-checks", + "tags": [], + "originalFilePath": "shared/packages/eslint/dependency-checks" + } + ], + "executors": [], + "generators": [], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "eslint-plugin", + "packageName": "@nx/eslint-plugin", + "root": "/packages/eslint-plugin", + "source": "/packages/eslint-plugin/src" + }, + { + "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.", + "file": "generated/packages/expo/documents/overview", + "itemList": [], + "isExternal": false, + "path": "expo/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/expo/expo-plugin" + } + ], + "executors": [ + { + "description": "Start an EAS update for your expo project", + "file": "generated/packages/expo/executors/update.json", + "hidden": false, + "name": "update", + "originalFilePath": "/packages/expo/src/executors/update/schema.json", + "path": "expo/executors/update", + "type": "executor" + }, + { + "description": "Start an EAS build for your expo project", + "file": "generated/packages/expo/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/expo/src/executors/build/schema.json", + "path": "expo/executors/build", + "type": "executor" + }, + { + "description": "List all EAS builds for your Expo project", + "file": "generated/packages/expo/executors/build-list.json", + "hidden": false, + "name": "build-list", + "originalFilePath": "/packages/expo/src/executors/build-list/schema.json", + "path": "expo/executors/build-list", + "type": "executor" + }, + { + "description": "Run the Android app binary locally or run the iOS app binary locally", + "file": "generated/packages/expo/executors/run.json", + "hidden": false, + "name": "run", + "originalFilePath": "/packages/expo/src/executors/run/schema.json", + "path": "expo/executors/run", + "type": "executor" + }, + { + "description": "Start a local dev server for the app or start a Webpack dev server for the web app", + "file": "generated/packages/expo/executors/start.json", + "hidden": false, + "name": "start", + "originalFilePath": "/packages/expo/src/executors/start/schema.json", + "path": "expo/executors/start", + "type": "executor" + }, + { + "description": "Syncs dependencies to package.json (required for autolinking).", + "file": "generated/packages/expo/executors/sync-deps.json", + "hidden": false, + "name": "sync-deps", + "originalFilePath": "/packages/expo/src/executors/sync-deps/schema.json", + "path": "expo/executors/sync-deps", + "type": "executor" + }, + { + "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", + "file": "generated/packages/expo/executors/ensure-symlink.json", + "hidden": false, + "name": "ensure-symlink", + "originalFilePath": "/packages/expo/src/executors/ensure-symlink/schema.json", + "path": "expo/executors/ensure-symlink", + "type": "executor" + }, + { + "description": "Create native iOS and Android project files for building natively.", + "file": "generated/packages/expo/executors/prebuild.json", + "hidden": false, + "name": "prebuild", + "originalFilePath": "/packages/expo/src/executors/prebuild/schema.json", + "path": "expo/executors/prebuild", + "type": "executor" + }, + { + "description": "Install a module or other package to a project.", + "file": "generated/packages/expo/executors/install.json", + "hidden": false, + "name": "install", + "originalFilePath": "/packages/expo/src/executors/install/schema.json", + "path": "expo/executors/install", + "type": "executor" + }, + { + "description": "Export the JavaScript and assets for your app using Metro/webpack bundler", + "file": "generated/packages/expo/executors/export.json", + "hidden": false, + "name": "export", + "originalFilePath": "/packages/expo/src/executors/export/schema.json", + "path": "expo/executors/export", + "type": "executor" + }, + { + "description": "Submit app binary to App Store and/or Play Store", + "file": "generated/packages/expo/executors/submit.json", + "hidden": false, + "name": "submit", + "originalFilePath": "/packages/expo/src/executors/submit/schema.json", + "path": "expo/executors/submit", + "type": "executor" + }, + { + "description": "Serve up the Expo web app locally", + "file": "generated/packages/expo/executors/serve.json", + "hidden": false, + "name": "serve", + "originalFilePath": "/packages/expo/src/executors/serve/schema.json", + "path": "expo/executors/serve", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the @nx/expo plugin", + "file": "generated/packages/expo/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/expo/src/generators/init/schema.json", + "path": "expo/generators/init", + "type": "generator" + }, + { + "description": "Create an application", + "file": "generated/packages/expo/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/expo/src/generators/application/schema.json", + "path": "expo/generators/application", + "type": "generator" + }, + { + "description": "Create a library", + "file": "generated/packages/expo/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/expo/src/generators/library/schema.json", + "path": "expo/generators/library", + "type": "generator" + }, + { + "description": "Create a component", + "file": "generated/packages/expo/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/expo/src/generators/component/schema.json", + "path": "expo/generators/component", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "expo", + "packageName": "@nx/expo", + "root": "/packages/expo", + "source": "/packages/expo/src" + }, + { + "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Express contains executors and generators for allowing your workspace to create powerful Express Node applications and APIs.", + "file": "generated/packages/express/documents/overview", + "itemList": [], + "isExternal": false, + "path": "express/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/express/express-plugin" + } + ], + "executors": [], + "generators": [ + { + "description": "Initialize the `@nrwl/express` plugin.", + "file": "generated/packages/express/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/express/src/generators/init/schema.json", + "path": "express/generators/init", + "type": "generator" + }, + { + "description": "Create an Express application.", + "file": "generated/packages/express/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/express/src/generators/application/schema.json", + "path": "express/generators/application", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "express", + "packageName": "@nx/express", + "root": "/packages/express", + "source": "/packages/express/src" + }, + { + "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Jest contains executors and generators allowing your workspace to use the powerful Jest testing capabilities.", + "file": "generated/packages/jest/documents/overview", + "itemList": [], + "isExternal": false, + "path": "jest/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/jest/jest-plugin" + } + ], + "executors": [ + { + "description": "Run Jest unit tests.", + "file": "generated/packages/jest/executors/jest.json", + "hidden": false, + "name": "jest", + "originalFilePath": "/packages/jest/src/executors/jest/schema.json", + "path": "jest/executors/jest", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/jest` plugin.", + "file": "generated/packages/jest/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/jest/src/generators/init/schema.json", + "path": "jest/generators/init", + "type": "generator" + }, + { + "description": "Add Jest configuration to a project.", + "file": "generated/packages/jest/generators/configuration.json", + "hidden": true, + "name": "configuration", + "originalFilePath": "/packages/jest/src/generators/configuration/schema.json", + "path": "jest/generators/configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "jest", + "packageName": "@nx/jest", + "root": "/packages/jest", + "source": "/packages/jest/src" + }, + { + "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ", + "file": "generated/packages/js/documents/overview", + "itemList": [], + "isExternal": false, + "path": "js/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/js/js-plugin" + } + ], + "executors": [ + { + "description": "Build a project using TypeScript.", + "file": "generated/packages/js/executors/tsc.json", + "hidden": false, + "name": "tsc", + "originalFilePath": "/packages/js/src/executors/tsc/schema.json", + "path": "js/executors/tsc", + "type": "executor" + }, + { + "description": "Build a project using SWC.", + "file": "generated/packages/js/executors/swc.json", + "hidden": false, + "name": "swc", + "originalFilePath": "/packages/js/src/executors/swc/schema.json", + "path": "js/executors/swc", + "type": "executor" + }, + { + "description": "Execute a Node application.", + "file": "generated/packages/js/executors/node.json", + "hidden": false, + "name": "node", + "originalFilePath": "/packages/js/src/executors/node/schema.json", + "path": "js/executors/node", + "type": "executor" + }, + { + "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", + "file": "generated/packages/js/executors/release-publish.json", + "hidden": true, + "name": "release-publish", + "originalFilePath": "/packages/js/src/executors/release-publish/schema.json", + "path": "js/executors/release-publish", + "type": "executor" + }, + { + "description": "Start local registry with verdaccio", + "file": "generated/packages/js/executors/verdaccio.json", + "hidden": false, + "name": "verdaccio", + "originalFilePath": "/packages/js/src/executors/verdaccio/schema.json", + "path": "js/executors/verdaccio", + "type": "executor" + } + ], + "generators": [ + { + "description": "Create a library", + "file": "generated/packages/js/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/js/src/generators/library/schema.json", + "path": "js/generators/library", + "type": "generator" + }, + { + "description": "Initialize a TS/JS workspace.", + "file": "generated/packages/js/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/js/src/generators/init/schema.json", + "path": "js/generators/init", + "type": "generator" + }, + { + "description": "Convert a TypeScript library to compile with SWC.", + "file": "generated/packages/js/generators/convert-to-swc.json", + "hidden": false, + "name": "convert-to-swc", + "originalFilePath": "/packages/js/src/generators/convert-to-swc/schema.json", + "path": "js/generators/convert-to-swc", + "type": "generator" + }, + { + "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", + "file": "generated/packages/js/generators/release-version.json", + "hidden": true, + "name": "release-version", + "originalFilePath": "/packages/js/src/generators/release-version/schema.json", + "path": "js/generators/release-version", + "type": "generator" + }, + { + "description": "Setup Verdaccio for local package management.", + "file": "generated/packages/js/generators/setup-verdaccio.json", + "hidden": false, + "name": "setup-verdaccio", + "originalFilePath": "/packages/js/src/generators/setup-verdaccio/schema.json", + "path": "js/generators/setup-verdaccio", + "type": "generator" + }, + { + "description": "setup-build generator", + "file": "generated/packages/js/generators/setup-build.json", + "hidden": false, + "name": "setup-build", + "originalFilePath": "/packages/js/src/generators/setup-build/schema.json", + "path": "js/generators/setup-build", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "js", + "packageName": "@nx/js", + "root": "/packages/js", + "source": "/packages/js/src" + }, + { + "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.", + "file": "generated/packages/nest/documents/overview", + "itemList": [], + "isExternal": false, + "path": "nest/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/nest/nest-plugin" + } + ], + "executors": [], + "generators": [ + { + "description": "Create a NestJS application.", + "file": "generated/packages/nest/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/nest/src/generators/application/schema.json", + "path": "nest/generators/application", + "type": "generator" + }, + { + "description": "Initialize the `@nrwl/nest` plugin.", + "file": "generated/packages/nest/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/nest/src/generators/init/schema.json", + "path": "nest/generators/init", + "type": "generator" + }, + { + "description": "Create a new NestJS library.", + "file": "generated/packages/nest/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/nest/src/generators/library/schema.json", + "path": "nest/generators/library", + "type": "generator" + }, + { + "description": "Run the `class` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/class.json", + "hidden": false, + "name": "class", + "originalFilePath": "/packages/nest/src/generators/class/schema.json", + "path": "nest/generators/class", + "type": "generator" + }, + { + "description": "Run the `controller` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/controller.json", + "hidden": false, + "name": "controller", + "originalFilePath": "/packages/nest/src/generators/controller/schema.json", + "path": "nest/generators/controller", + "type": "generator" + }, + { + "description": "Run the `decorator` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/decorator.json", + "hidden": false, + "name": "decorator", + "originalFilePath": "/packages/nest/src/generators/decorator/schema.json", + "path": "nest/generators/decorator", + "type": "generator" + }, + { + "description": "Run the `filter` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/filter.json", + "hidden": false, + "name": "filter", + "originalFilePath": "/packages/nest/src/generators/filter/schema.json", + "path": "nest/generators/filter", + "type": "generator" + }, + { + "description": "Run the `gateway` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/gateway.json", + "hidden": false, + "name": "gateway", + "originalFilePath": "/packages/nest/src/generators/gateway/schema.json", + "path": "nest/generators/gateway", + "type": "generator" + }, + { + "description": "Run the `guard` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/guard.json", + "hidden": false, + "name": "guard", + "originalFilePath": "/packages/nest/src/generators/guard/schema.json", + "path": "nest/generators/guard", + "type": "generator" + }, + { + "description": "Run the `interceptor` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/interceptor.json", + "hidden": false, + "name": "interceptor", + "originalFilePath": "/packages/nest/src/generators/interceptor/schema.json", + "path": "nest/generators/interceptor", + "type": "generator" + }, + { + "description": "Run the `interface` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/interface.json", + "hidden": false, + "name": "interface", + "originalFilePath": "/packages/nest/src/generators/interface/schema.json", + "path": "nest/generators/interface", + "type": "generator" + }, + { + "description": "Run the `middleware` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/middleware.json", + "hidden": false, + "name": "middleware", + "originalFilePath": "/packages/nest/src/generators/middleware/schema.json", + "path": "nest/generators/middleware", + "type": "generator" + }, + { + "description": "Run the `module` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/module.json", + "hidden": false, + "name": "module", + "originalFilePath": "/packages/nest/src/generators/module/schema.json", + "path": "nest/generators/module", + "type": "generator" + }, + { + "description": "Run the `pipe` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/pipe.json", + "hidden": false, + "name": "pipe", + "originalFilePath": "/packages/nest/src/generators/pipe/schema.json", + "path": "nest/generators/pipe", + "type": "generator" + }, + { + "description": "Run the `provider` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/provider.json", + "hidden": false, + "name": "provider", + "originalFilePath": "/packages/nest/src/generators/provider/schema.json", + "path": "nest/generators/provider", + "type": "generator" + }, + { + "description": "Run the `resolver` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/resolver.json", + "hidden": false, + "name": "resolver", + "originalFilePath": "/packages/nest/src/generators/resolver/schema.json", + "path": "nest/generators/resolver", + "type": "generator" + }, + { + "description": "Run the `resource` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/resource.json", + "hidden": false, + "name": "resource", + "originalFilePath": "/packages/nest/src/generators/resource/schema.json", + "path": "nest/generators/resource", + "type": "generator" + }, + { + "description": "Run the `service` NestJS generator with Nx project support.", + "file": "generated/packages/nest/generators/service.json", + "hidden": false, + "name": "service", + "originalFilePath": "/packages/nest/src/generators/service/schema.json", + "path": "nest/generators/service", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "nest", + "packageName": "@nx/nest", + "root": "/packages/nest", + "source": "/packages/nest/src" + }, + { + "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.", + "file": "generated/packages/next/documents/overview", + "itemList": [], + "isExternal": false, + "path": "next/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/next/plugin-overview" + } + ], + "executors": [ + { + "description": "Build a Next.js application.", + "file": "generated/packages/next/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/next/src/executors/build/schema.json", + "path": "next/executors/build", + "type": "executor" + }, + { + "description": "Serve a Next.js application.", + "file": "generated/packages/next/executors/server.json", + "hidden": false, + "name": "server", + "originalFilePath": "/packages/next/src/executors/server/schema.json", + "path": "next/executors/server", + "type": "executor" + }, + { + "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", + "file": "generated/packages/next/executors/export.json", + "hidden": false, + "name": "export", + "originalFilePath": "/packages/next/src/executors/export/schema.json", + "path": "next/executors/export", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/next` plugin.", + "file": "generated/packages/next/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/next/src/generators/init/schema.json", + "path": "next/generators/init", + "type": "generator" + }, + { + "description": "Create an application.", + "file": "generated/packages/next/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/next/src/generators/application/schema.json", + "path": "next/generators/application", + "type": "generator" + }, + { + "description": "Create a page.", + "file": "generated/packages/next/generators/page.json", + "hidden": false, + "name": "page", + "originalFilePath": "/packages/next/src/generators/page/schema.json", + "path": "next/generators/page", + "type": "generator" + }, + { + "description": "Create a component.", + "file": "generated/packages/next/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/next/src/generators/component/schema.json", + "path": "next/generators/component", + "type": "generator" + }, + { + "description": "Create a library.", + "file": "generated/packages/next/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/next/src/generators/library/schema.json", + "path": "next/generators/library", + "type": "generator" + }, + { + "description": "Set up a custom server.", + "file": "generated/packages/next/generators/custom-server.json", + "hidden": false, + "name": "custom-server", + "originalFilePath": "/packages/next/src/generators/custom-server/schema.json", + "path": "next/generators/custom-server", + "type": "generator" + }, + { + "description": "cypress-component-configuration generator", + "file": "generated/packages/next/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/next/src/generators/cypress-component-configuration/schema.json", + "path": "next/generators/cypress-component-configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "next", + "packageName": "@nx/next", + "root": "/packages/next", + "source": "/packages/next/src" + }, + { + "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.", + "file": "generated/packages/node/documents/overview", + "itemList": [], + "isExternal": false, + "path": "node/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/node/node-plugin" + } + ], + "executors": [], + "generators": [ + { + "description": "Initialize the `@nrwl/node` plugin.", + "file": "generated/packages/node/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/node/src/generators/init/schema.json", + "path": "node/generators/init", + "type": "generator" + }, + { + "description": "Create a node application.", + "file": "generated/packages/node/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/node/src/generators/application/schema.json", + "path": "node/generators/application", + "type": "generator" + }, + { + "description": "Create a node library.", + "file": "generated/packages/node/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/node/src/generators/library/schema.json", + "path": "node/generators/library", + "type": "generator" + }, + { + "description": "Set up Docker configuration for a project.", + "file": "generated/packages/node/generators/setup-docker.json", + "hidden": false, + "name": "setup-docker", + "originalFilePath": "/packages/node/src/generators/setup-docker/schema.json", + "path": "node/generators/setup-docker", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "node", + "packageName": "@nx/node", + "root": "/packages/node", + "source": "/packages/node/src" + }, + { + "description": "The Nuxt plugin for Nx contains executors and generators for managing Nuxt applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace.", + "file": "generated/packages/nuxt/documents/overview", + "itemList": [], + "isExternal": false, + "path": "nuxt/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/nuxt/nuxt-plugin" + } + ], + "executors": [], + "generators": [ + { + "description": "Initialize the `@nx/nuxt` plugin.", + "file": "generated/packages/nuxt/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/nuxt/src/generators/init/schema.json", + "path": "nuxt/generators/init", + "type": "generator" + }, + { + "description": "Create a Nuxt application.", + "file": "generated/packages/nuxt/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/nuxt/src/generators/application/schema.json", + "path": "nuxt/generators/application", + "type": "generator" + }, + { + "description": "Set up storybook for a Nuxt app.", + "file": "generated/packages/nuxt/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/nuxt/src/generators/storybook-configuration/schema.json", + "path": "nuxt/generators/storybook-configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "nuxt", + "packageName": "@nx/nuxt", + "root": "/packages/nuxt", + "source": "/packages/nuxt/src" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "documents": [ + { + "id": "create-nx-workspace", + "name": "create-nx-workspace", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/create-nx-workspace", + "itemList": [], + "isExternal": false, + "path": "nx/documents/create-nx-workspace", + "tags": [], + "originalFilePath": "generated/cli/create-nx-workspace" + }, + { + "id": "init", + "name": "init", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/init", + "itemList": [], + "isExternal": false, + "path": "nx/documents/init", + "tags": [], + "originalFilePath": "generated/cli/init" + }, + { + "id": "generate", + "name": "generate", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/generate", + "itemList": [], + "isExternal": false, + "path": "nx/documents/generate", + "tags": ["generate-code"], + "originalFilePath": "generated/cli/generate" + }, + { + "id": "run", + "name": "run", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/run", + "itemList": [], + "isExternal": false, + "path": "nx/documents/run", + "tags": ["run-tasks"], + "originalFilePath": "generated/cli/run" + }, + { + "id": "daemon", + "name": "daemon", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/daemon", + "itemList": [], + "isExternal": false, + "path": "nx/documents/daemon", + "tags": [], + "originalFilePath": "generated/cli/daemon" + }, + { + "id": "dep-graph", + "name": "graph", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/dep-graph", + "itemList": [], + "isExternal": false, + "path": "nx/documents/dep-graph", + "tags": ["explore-graph"], + "originalFilePath": "generated/cli/graph" + }, + { + "id": "run-many", + "name": "run-many", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/run-many", + "itemList": [], + "isExternal": false, + "path": "nx/documents/run-many", + "tags": ["run-tasks"], + "originalFilePath": "generated/cli/run-many" + }, + { + "id": "affected", + "name": "affected", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/affected", + "itemList": [], + "isExternal": false, + "path": "nx/documents/affected", + "tags": ["run-tasks"], + "originalFilePath": "generated/cli/affected" + }, + { + "id": "affected-dep-graph", + "name": "affected:graph", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/affected-dep-graph", + "itemList": [], + "isExternal": false, + "path": "nx/documents/affected-dep-graph", + "tags": [], + "originalFilePath": "generated/cli/affected-graph" + }, + { + "id": "print-affected", + "name": "print-affected", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/print-affected", + "itemList": [], + "isExternal": false, + "path": "nx/documents/print-affected", + "tags": [], + "originalFilePath": "generated/cli/print-affected" + }, + { + "id": "format-check", + "name": "format:check", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/format-check", + "itemList": [], + "isExternal": false, + "path": "nx/documents/format-check", + "tags": ["enforce-module-boundaries"], + "originalFilePath": "generated/cli/format-check" + }, + { + "id": "format-write", + "name": "format:write", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/format-write", + "itemList": [], + "isExternal": false, + "path": "nx/documents/format-write", + "tags": ["enforce-module-boundaries"], + "originalFilePath": "generated/cli/format-write" + }, + { + "id": "migrate", + "name": "migrate", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/migrate", + "itemList": [], + "isExternal": false, + "path": "nx/documents/migrate", + "tags": ["automate-updating-dependencies"], + "originalFilePath": "generated/cli/migrate" + }, + { + "id": "report", + "name": "report", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/report", + "itemList": [], + "isExternal": false, + "path": "nx/documents/report", + "tags": [], + "originalFilePath": "generated/cli/report" + }, + { + "id": "list", + "name": "list", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/list", + "itemList": [], + "isExternal": false, + "path": "nx/documents/list", + "tags": [], + "originalFilePath": "generated/cli/list" + }, + { + "id": "connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/connect-to-nx-cloud", + "itemList": [], + "isExternal": false, + "path": "nx/documents/connect-to-nx-cloud", + "tags": ["cache-task-results", "distribute-task-execution"], + "originalFilePath": "generated/cli/connect" + }, + { + "id": "reset", + "name": "reset", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/reset", + "itemList": [], + "isExternal": false, + "path": "nx/documents/reset", + "tags": ["cache-task-results"], + "originalFilePath": "generated/cli/reset" + }, + { + "id": "repair", + "name": "repair", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/repair", + "itemList": [], + "isExternal": false, + "path": "nx/documents/repair", + "tags": [], + "originalFilePath": "generated/cli/repair" + }, + { + "id": "exec", + "name": "exec", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/exec", + "itemList": [], + "isExternal": false, + "path": "nx/documents/exec", + "tags": [], + "originalFilePath": "generated/cli/exec" + }, + { + "id": "watch", + "name": "watch", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/watch", + "itemList": [], + "isExternal": false, + "path": "nx/documents/watch", + "tags": ["workspace-watching"], + "originalFilePath": "generated/cli/watch" + }, + { + "id": "show", + "name": "show", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/show", + "itemList": [], + "isExternal": false, + "path": "nx/documents/show", + "tags": [], + "originalFilePath": "generated/cli/show" + }, + { + "id": "view-logs", + "name": "view-logs", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/view-logs", + "itemList": [], + "isExternal": false, + "path": "nx/documents/view-logs", + "tags": [], + "originalFilePath": "generated/cli/view-logs" + }, + { + "id": "release", + "name": "release", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/release", + "itemList": [], + "isExternal": false, + "path": "nx/documents/release", + "tags": [], + "originalFilePath": "generated/cli/release" + }, + { + "id": "add", + "name": "add", + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/nx/documents/add", + "itemList": [], + "isExternal": false, + "path": "nx/documents/add", + "tags": [], + "originalFilePath": "generated/cli/add" + } + ], + "executors": [ + { + "description": "An executor that does nothing", + "file": "generated/packages/nx/executors/noop.json", + "hidden": false, + "name": "noop", + "originalFilePath": "/packages/nx/src/executors/noop/schema.json", + "path": "nx/executors/noop", + "type": "executor" + }, + { + "description": "Run any custom commands with Nx.", + "file": "generated/packages/nx/executors/run-commands.json", + "hidden": false, + "name": "run-commands", + "originalFilePath": "/packages/nx/src/executors/run-commands/schema.json", + "path": "nx/executors/run-commands", + "type": "executor" + }, + { + "description": "Run an NPM script using Nx.", + "file": "generated/packages/nx/executors/run-script.json", + "hidden": false, + "name": "run-script", + "originalFilePath": "/packages/nx/src/executors/run-script/schema.json", + "path": "nx/executors/run-script", + "type": "executor" + } + ], + "generators": [ + { + "description": "Connect a workspace to Nx Cloud", + "file": "generated/packages/nx/generators/connect-to-nx-cloud.json", + "hidden": false, + "name": "connect-to-nx-cloud", + "originalFilePath": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/schema.json", + "path": "nx/generators/connect-to-nx-cloud", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "nx", + "packageName": "nx", + "root": "/packages/nx", + "source": "/packages/nx/src" + }, + { + "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.", + "file": "generated/packages/playwright/documents/overview", + "itemList": [], + "isExternal": false, + "path": "playwright/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/playwright/playwright-plugin" + } + ], + "executors": [ + { + "description": "Run Playwright tests.", + "file": "generated/packages/playwright/executors/playwright.json", + "hidden": false, + "name": "playwright", + "originalFilePath": "/packages/playwright/src/executors/playwright/schema.json", + "path": "playwright/executors/playwright", + "type": "executor" + } + ], + "generators": [ + { + "description": "Add Nx Playwright configuration to your project", + "file": "generated/packages/playwright/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/playwright/src/generators/configuration/schema.json", + "path": "playwright/generators/configuration", + "type": "generator" + }, + { + "description": "Initializes a Playwright project in the current workspace", + "file": "generated/packages/playwright/generators/init.json", + "hidden": false, + "name": "init", + "originalFilePath": "/packages/playwright/src/generators/init/schema.json", + "path": "playwright/generators/init", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "playwright", + "packageName": "@nx/playwright", + "root": "/packages/playwright", + "source": "/packages/playwright/src" + }, + { + "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "This plugin is used to create Nx plugins! It contains generators for generating common plugin features like generators, executors, migrations and more.", + "file": "generated/packages/plugin/documents/overview", + "itemList": [], + "isExternal": false, + "path": "plugin/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/plugin/plugin" + } + ], + "executors": [ + { + "description": "Creates and runs the E2E tests for an Nx Plugin.", + "file": "generated/packages/plugin/executors/e2e.json", + "hidden": false, + "name": "e2e", + "originalFilePath": "/packages/plugin/src/executors/e2e/schema.json", + "path": "plugin/executors/e2e", + "type": "executor" + } + ], + "generators": [ + { + "description": "Create a Nx Plugin.", + "file": "generated/packages/plugin/generators/plugin.json", + "hidden": false, + "name": "plugin", + "originalFilePath": "/packages/plugin/src/generators/plugin/schema.json", + "path": "plugin/generators/plugin", + "type": "generator" + }, + { + "description": "Create a package which can be used by npx to create a new workspace", + "file": "generated/packages/plugin/generators/create-package.json", + "hidden": false, + "name": "create-package", + "originalFilePath": "/packages/plugin/src/generators/create-package/schema.json", + "path": "plugin/generators/create-package", + "type": "generator" + }, + { + "description": "Create a E2E application for a Nx Plugin.", + "file": "generated/packages/plugin/generators/e2e-project.json", + "hidden": false, + "name": "e2e-project", + "originalFilePath": "/packages/plugin/src/generators/e2e-project/schema.json", + "path": "plugin/generators/e2e-project", + "type": "generator" + }, + { + "description": "Create a migration for an Nx Plugin.", + "file": "generated/packages/plugin/generators/migration.json", + "hidden": false, + "name": "migration", + "originalFilePath": "/packages/plugin/src/generators/migration/schema.json", + "path": "plugin/generators/migration", + "type": "generator" + }, + { + "description": "Create a generator for an Nx Plugin.", + "file": "generated/packages/plugin/generators/generator.json", + "hidden": false, + "name": "generator", + "originalFilePath": "/packages/plugin/src/generators/generator/schema.json", + "path": "plugin/generators/generator", + "type": "generator" + }, + { + "description": "Create an executor for an Nx Plugin.", + "file": "generated/packages/plugin/generators/executor.json", + "hidden": false, + "name": "executor", + "originalFilePath": "/packages/plugin/src/generators/executor/schema.json", + "path": "plugin/generators/executor", + "type": "generator" + }, + { + "description": "Adds linting configuration to validate common json files for nx plugins.", + "file": "generated/packages/plugin/generators/plugin-lint-checks.json", + "hidden": false, + "name": "plugin-lint-checks", + "originalFilePath": "/packages/plugin/src/generators/lint-checks/schema.json", + "path": "plugin/generators/plugin-lint-checks", + "type": "generator" + }, + { + "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-workspace --preset @nx/plugin`.", + "file": "generated/packages/plugin/generators/preset.json", + "hidden": true, + "name": "preset", + "originalFilePath": "/packages/plugin/src/generators/preset/schema.json", + "path": "plugin/generators/preset", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "plugin", + "packageName": "@nx/plugin", + "root": "/packages/plugin", + "source": "/packages/plugin/src" + }, + { + "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/react/documents/overview", + "itemList": [], + "isExternal": false, + "path": "react/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/react/react-plugin" + } + ], + "executors": [ + { + "description": "Serve a host or remote application.", + "file": "generated/packages/react/executors/module-federation-dev-server.json", + "hidden": false, + "name": "module-federation-dev-server", + "originalFilePath": "/packages/react/src/executors/module-federation-dev-server/schema.json", + "path": "react/executors/module-federation-dev-server", + "type": "executor" + }, + { + "description": "Serve a host application along with it's known remotes.", + "file": "generated/packages/react/executors/module-federation-ssr-dev-server.json", + "hidden": false, + "name": "module-federation-ssr-dev-server", + "originalFilePath": "/packages/react/src/executors/module-federation-ssr-dev-server/schema.json", + "path": "react/executors/module-federation-ssr-dev-server", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/react` plugin.", + "file": "generated/packages/react/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/react/src/generators/init/schema.json", + "path": "react/generators/init", + "type": "generator" + }, + { + "description": "Create a React application.", + "file": "generated/packages/react/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/react/src/generators/application/schema.json", + "path": "react/generators/application", + "type": "generator" + }, + { + "description": "Create a React library.", + "file": "generated/packages/react/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/react/src/generators/library/schema.json", + "path": "react/generators/library", + "type": "generator" + }, + { + "description": "Create a React component.", + "file": "generated/packages/react/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/react/src/generators/component/schema.json", + "path": "react/generators/component", + "type": "generator" + }, + { + "description": "Create a Redux slice for a project.", + "file": "generated/packages/react/generators/redux.json", + "hidden": false, + "name": "redux", + "originalFilePath": "/packages/react/src/generators/redux/schema.json", + "path": "react/generators/redux", + "type": "generator" + }, + { + "description": "Set up storybook for a React app or library.", + "file": "generated/packages/react/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/react/src/generators/storybook-configuration/schema.json", + "path": "react/generators/storybook-configuration", + "type": "generator" + }, + { + "description": "Generate storybook story for a React component", + "file": "generated/packages/react/generators/component-story.json", + "hidden": false, + "name": "component-story", + "originalFilePath": "/packages/react/src/generators/component-story/schema.json", + "path": "react/generators/component-story", + "type": "generator" + }, + { + "description": "Create stories/specs for all components declared in an app or library.", + "file": "generated/packages/react/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/react/src/generators/stories/schema.json", + "path": "react/generators/stories", + "type": "generator" + }, + { + "description": "Create a Cypress spec for a UI component that has a story.", + "file": "generated/packages/react/generators/component-cypress-spec.json", + "hidden": false, + "name": "component-cypress-spec", + "originalFilePath": "/packages/react/src/generators/component-cypress-spec/schema.json", + "path": "react/generators/component-cypress-spec", + "type": "generator" + }, + { + "description": "Create a hook.", + "file": "generated/packages/react/generators/hook.json", + "hidden": false, + "name": "hook", + "originalFilePath": "/packages/react/src/generators/hook/schema.json", + "path": "react/generators/hook", + "type": "generator" + }, + { + "description": "Generate a host react application", + "file": "generated/packages/react/generators/host.json", + "hidden": false, + "name": "host", + "originalFilePath": "/packages/react/src/generators/host/schema.json", + "path": "react/generators/host", + "type": "generator" + }, + { + "description": "Generate a remote react application", + "file": "generated/packages/react/generators/remote.json", + "hidden": false, + "name": "remote", + "originalFilePath": "/packages/react/src/generators/remote/schema.json", + "path": "react/generators/remote", + "type": "generator" + }, + { + "description": "Setup Cypress component testing for a React project", + "file": "generated/packages/react/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/react/src/generators/cypress-component-configuration/schema.json", + "path": "react/generators/cypress-component-configuration", + "type": "generator" + }, + { + "description": "Generate a Cypress component test for a React component", + "file": "generated/packages/react/generators/component-test.json", + "hidden": false, + "name": "component-test", + "originalFilePath": "/packages/react/src/generators/component-test/schema.json", + "path": "react/generators/component-test", + "type": "generator" + }, + { + "description": "Set up Tailwind configuration for a project.", + "file": "generated/packages/react/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/react/src/generators/setup-tailwind/schema.json", + "path": "react/generators/setup-tailwind", + "type": "generator" + }, + { + "description": "Set up SSR configuration for a project.", + "file": "generated/packages/react/generators/setup-ssr.json", + "hidden": false, + "name": "setup-ssr", + "originalFilePath": "/packages/react/src/generators/setup-ssr/schema.json", + "path": "react/generators/setup-ssr", + "type": "generator" + }, + { + "description": "Federate a module.", + "file": "generated/packages/react/generators/federate-module.json", + "hidden": false, + "name": "federate-module", + "originalFilePath": "/packages/react/src/generators/federate-module/schema.json", + "path": "react/generators/federate-module", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "react", + "packageName": "@nx/react", + "root": "/packages/react", + "source": "/packages/react/src" + }, + { + "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: \n\n-Integration with libraries such as Jest, Detox, and Storybook.\n-Scaffolding for creating buildable libraries that can be published to npm.\n-Utilities for automatic workspace refactoring.", + "file": "generated/packages/react-native/documents/overview", + "itemList": [], + "isExternal": false, + "path": "react-native/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/react-native/react-native-plugin" + } + ], + "executors": [ + { + "description": "Runs Android application.", + "file": "generated/packages/react-native/executors/run-android.json", + "hidden": false, + "name": "run-android", + "originalFilePath": "/packages/react-native/src/executors/run-android/schema.json", + "path": "react-native/executors/run-android", + "type": "executor" + }, + { + "description": "Runs iOS application.", + "file": "generated/packages/react-native/executors/run-ios.json", + "hidden": false, + "name": "run-ios", + "originalFilePath": "/packages/react-native/src/executors/run-ios/schema.json", + "path": "react-native/executors/run-ios", + "type": "executor" + }, + { + "description": "Builds the JavaScript bundle for offline use.", + "file": "generated/packages/react-native/executors/bundle.json", + "hidden": false, + "name": "bundle", + "originalFilePath": "/packages/react-native/src/executors/bundle/schema.json", + "path": "react-native/executors/bundle", + "type": "executor" + }, + { + "description": "Release Build for Android.", + "file": "generated/packages/react-native/executors/build-android.json", + "hidden": false, + "name": "build-android", + "originalFilePath": "/packages/react-native/src/executors/build-android/schema.json", + "path": "react-native/executors/build-android", + "type": "executor" + }, + { + "description": "Build iOS app", + "file": "generated/packages/react-native/executors/build-ios.json", + "hidden": false, + "name": "build-ios", + "originalFilePath": "/packages/react-native/src/executors/build-ios/schema.json", + "path": "react-native/executors/build-ios", + "type": "executor" + }, + { + "description": "Starts the Javascript server that communicates with connected devices.", + "file": "generated/packages/react-native/executors/start.json", + "hidden": false, + "name": "start", + "originalFilePath": "/packages/react-native/src/executors/start/schema.json", + "path": "react-native/executors/start", + "type": "executor" + }, + { + "description": "Syncs dependencies to `package.json` (required for autolinking).", + "file": "generated/packages/react-native/executors/sync-deps.json", + "hidden": false, + "name": "sync-deps", + "originalFilePath": "/packages/react-native/src/executors/sync-deps/schema.json", + "path": "react-native/executors/sync-deps", + "type": "executor" + }, + { + "description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder.", + "file": "generated/packages/react-native/executors/ensure-symlink.json", + "hidden": false, + "name": "ensure-symlink", + "originalFilePath": "/packages/react-native/src/executors/ensure-symlink/schema.json", + "path": "react-native/executors/ensure-symlink", + "type": "executor" + }, + { + "description": "Serve React Native Storybook.", + "file": "generated/packages/react-native/executors/storybook.json", + "hidden": false, + "name": "storybook", + "originalFilePath": "/packages/react-native/src/executors/storybook/schema.json", + "path": "react-native/executors/storybook", + "type": "executor" + }, + { + "description": "Run `pod install` in the `ios` directory.", + "file": "generated/packages/react-native/executors/pod-install.json", + "hidden": false, + "name": "pod-install", + "originalFilePath": "/packages/react-native/src/executors/pod-install/schema.json", + "path": "react-native/executors/pod-install", + "type": "executor" + }, + { + "description": "upgrade executor", + "file": "generated/packages/react-native/executors/upgrade.json", + "hidden": false, + "name": "upgrade", + "originalFilePath": "/packages/react-native/src/executors/upgrade/schema.json", + "path": "react-native/executors/upgrade", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nx/react-native` plugin.", + "file": "generated/packages/react-native/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/react-native/src/generators/init/schema.json", + "path": "react-native/generators/init", + "type": "generator" + }, + { + "description": "Create a React Native application.", + "file": "generated/packages/react-native/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/react-native/src/generators/application/schema.json", + "path": "react-native/generators/application", + "type": "generator" + }, + { + "description": "Create a React Native library.", + "file": "generated/packages/react-native/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/react-native/src/generators/library/schema.json", + "path": "react-native/generators/library", + "type": "generator" + }, + { + "description": "Create a React Native component.", + "file": "generated/packages/react-native/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/react-native/src/generators/component/schema.json", + "path": "react-native/generators/component", + "type": "generator" + }, + { + "description": "Set up Storybook for a React Native application or library.", + "file": "generated/packages/react-native/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/react-native/src/generators/storybook-configuration/schema.json", + "path": "react-native/generators/storybook-configuration", + "type": "generator" + }, + { + "description": "Generate Storybook story for a React Native component.", + "file": "generated/packages/react-native/generators/component-story.json", + "hidden": false, + "name": "component-story", + "originalFilePath": "/packages/react-native/src/generators/component-story/schema.json", + "path": "react-native/generators/component-story", + "type": "generator" + }, + { + "description": "Create stories for all components declared in an application or library.", + "file": "generated/packages/react-native/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/react-native/src/generators/stories/schema.json", + "path": "react-native/generators/stories", + "type": "generator" + }, + { + "description": "Destructive command to upgrade native iOS and Android code to latest.", + "file": "generated/packages/react-native/generators/upgrade-native.json", + "hidden": false, + "name": "upgrade-native", + "originalFilePath": "/packages/react-native/src/generators/upgrade-native/schema.json", + "path": "react-native/generators/upgrade-native", + "type": "generator" + }, + { + "description": "Set up web configuration for a React Native app", + "file": "generated/packages/react-native/generators/web-configuration.json", + "hidden": false, + "name": "web-configuration", + "originalFilePath": "/packages/react-native/src/generators/web-configuration/schema.json", + "path": "react-native/generators/web-configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "react-native", + "packageName": "@nx/react-native", + "root": "/packages/react-native", + "source": "/packages/react-native/src" + }, + { + "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Remix plugin for Nx contains executors and generators for managing Remix applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Jest, Cypress, and Storybook.\n\n- Generators for applications, libraries, routes, loaders, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/remix/documents/overview", + "itemList": [], + "isExternal": false, + "path": "remix/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/remix/remix-plugin" + } + ], + "executors": [ + { + "description": "Serve a Remix application.", + "file": "generated/packages/remix/executors/serve.json", + "hidden": false, + "name": "serve", + "originalFilePath": "/packages/remix/src/executors/serve/schema.json", + "path": "remix/executors/serve", + "type": "executor" + }, + { + "description": "Build a Remix application.", + "file": "generated/packages/remix/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/remix/src/executors/build/schema.json", + "path": "remix/executors/build", + "type": "executor" + } + ], + "generators": [ + { + "description": "Generate a new Remix workspace", + "file": "generated/packages/remix/generators/preset.json", + "hidden": true, + "name": "preset", + "originalFilePath": "/packages/remix/src/generators/preset/schema.json", + "path": "remix/generators/preset", + "type": "generator" + }, + { + "description": "Setup a Remix in an existing workspace", + "file": "generated/packages/remix/generators/setup.json", + "hidden": true, + "name": "setup", + "originalFilePath": "/packages/remix/src/generators/setup/schema.json", + "path": "remix/generators/setup", + "type": "generator" + }, + { + "description": "Generate a new Remix application", + "file": "generated/packages/remix/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/remix/src/generators/application/schema.json", + "path": "remix/generators/application", + "type": "generator" + }, + { + "description": "Generate a Cypress Component Testing configuration for a Remix project", + "file": "generated/packages/remix/generators/cypress-component-configuration.json", + "hidden": false, + "name": "cypress-component-configuration", + "originalFilePath": "/packages/remix/src/generators/cypress-component-configuration/schema.json", + "path": "remix/generators/cypress-component-configuration", + "type": "generator" + }, + { + "description": "Generate a new library", + "file": "generated/packages/remix/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/remix/src/generators/library/schema.json", + "path": "remix/generators/library", + "type": "generator" + }, + { + "description": "Initialize the `@nx/remix` plugin.", + "file": "generated/packages/remix/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/remix/src/generators/init/schema.json", + "path": "remix/generators/init", + "type": "generator" + }, + { + "description": "Generate a new route", + "file": "generated/packages/remix/generators/route.json", + "hidden": false, + "name": "route", + "originalFilePath": "/packages/remix/src/generators/route/schema.json", + "path": "remix/generators/route", + "type": "generator" + }, + { + "description": "Generate a new resource route", + "file": "generated/packages/remix/generators/resource-route.json", + "hidden": false, + "name": "resource-route", + "originalFilePath": "/packages/remix/src/generators/resource-route/schema.json", + "path": "remix/generators/resource-route", + "type": "generator" + }, + { + "description": "Add an action function to an existing route", + "file": "generated/packages/remix/generators/action.json", + "hidden": false, + "name": "action", + "originalFilePath": "/packages/remix/src/generators/action/schema.json", + "path": "remix/generators/action", + "type": "generator" + }, + { + "description": "Add a loader function to an existing route", + "file": "generated/packages/remix/generators/loader.json", + "hidden": false, + "name": "loader", + "originalFilePath": "/packages/remix/src/generators/loader/schema.json", + "path": "remix/generators/loader", + "type": "generator" + }, + { + "description": "Generates a new stylesheet and adds it to an existing route", + "file": "generated/packages/remix/generators/style.json", + "hidden": false, + "name": "style", + "originalFilePath": "/packages/remix/src/generators/style/schema.json", + "path": "remix/generators/style", + "type": "generator" + }, + { + "description": "Generates a TailwindCSS configuration for the Remix application", + "file": "generated/packages/remix/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/remix/src/generators/setup-tailwind/schema.json", + "path": "remix/generators/setup-tailwind", + "type": "generator" + }, + { + "description": "Generates a Storybook configuration for a Remix application", + "file": "generated/packages/remix/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/remix/src/generators/storybook-configuration/schema.json", + "path": "remix/generators/storybook-configuration", + "type": "generator" + }, + { + "description": "Add a meta function to an existing route", + "file": "generated/packages/remix/generators/meta.json", + "hidden": false, + "name": "meta", + "originalFilePath": "/packages/remix/src/generators/meta/schema.json", + "path": "remix/generators/meta", + "type": "generator" + }, + { + "description": "Add an ErrorBoundary to an existing route", + "file": "generated/packages/remix/generators/error-boundary.json", + "hidden": false, + "name": "error-boundary", + "originalFilePath": "/packages/remix/src/generators/error-boundary/schema.json", + "path": "remix/generators/error-boundary", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "remix", + "packageName": "@nx/remix", + "root": "/packages/remix", + "source": "/packages/remix/src" + }, + { + "description": "The Nx Plugin for Rollup contains executors and generators that support building applications using Rollup.", + "documents": [], + "executors": [ + { + "description": "Bundle a package using Rollup.", + "file": "generated/packages/rollup/executors/rollup.json", + "hidden": false, + "name": "rollup", + "originalFilePath": "/packages/rollup/src/executors/rollup/schema.json", + "path": "rollup/executors/rollup", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/rollup` plugin.", + "file": "generated/packages/rollup/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/rollup/src/generators/init/schema.json", + "path": "rollup/generators/init", + "type": "generator" + }, + { + "description": "Add rollup configuration to a project.", + "file": "generated/packages/rollup/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/rollup/src/generators/configuration/schema.json", + "path": "rollup/generators/configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "rollup", + "packageName": "@nx/rollup", + "root": "/packages/rollup", + "source": "/packages/rollup/src" + }, + { + "description": "The Nx Plugin for Storybook contains executors and generators for allowing your workspace to use the powerful Storybook integration testing & documenting capabilities.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace.", + "file": "generated/packages/storybook/documents/overview", + "itemList": [], + "isExternal": false, + "path": "storybook/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/storybook/plugin-overview" + }, + { + "id": "best-practices", + "name": "Storybook best practices for making the most out of Nx", + "description": "The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities.", + "file": "generated/packages/storybook/documents/best-practices", + "itemList": [], + "isExternal": false, + "path": "storybook/documents/best-practices", + "tags": [], + "originalFilePath": "shared/packages/storybook/best-practices" + }, + { + "id": "storybook-7-setup", + "name": "Storybook 7", + "description": "This guide explains how you can set up Storybook version 7 in your Nx workspace. It contains information about the generators and the frameworks that are supported.", + "file": "generated/packages/storybook/documents/storybook-7-setup", + "itemList": [], + "isExternal": false, + "path": "storybook/documents/storybook-7-setup", + "tags": [], + "originalFilePath": "shared/packages/storybook/storybook-7-setup" + } + ], + "executors": [ + { + "description": "Serve Storybook.", + "file": "generated/packages/storybook/executors/storybook.json", + "hidden": false, + "name": "storybook", + "originalFilePath": "/packages/storybook/src/executors/storybook/schema.json", + "path": "storybook/executors/storybook", + "type": "executor" + }, + { + "description": "Build Storybook.", + "file": "generated/packages/storybook/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/storybook/src/executors/build-storybook/schema.json", + "path": "storybook/executors/build", + "type": "executor" + } + ], + "generators": [ + { + "description": "Add Storybook configuration to the workspace.", + "file": "generated/packages/storybook/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/storybook/src/generators/init/schema.json", + "path": "storybook/generators/init", + "type": "generator" + }, + { + "description": "Add Storybook configuration to a UI library or an application.", + "file": "generated/packages/storybook/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/storybook/src/generators/configuration/schema.json", + "path": "storybook/generators/configuration", + "type": "generator" + }, + { + "description": "Add cypress e2e app to test a UI library that is set up for Storybook.", + "file": "generated/packages/storybook/generators/cypress-project.json", + "hidden": false, + "name": "cypress-project", + "originalFilePath": "/packages/storybook/src/generators/cypress-project/schema.json", + "path": "storybook/generators/cypress-project", + "type": "generator" + }, + { + "description": "Migrate to Storybook version 7.", + "file": "generated/packages/storybook/generators/migrate-7.json", + "hidden": false, + "name": "migrate-7", + "originalFilePath": "/packages/storybook/src/generators/migrate-7/schema.json", + "path": "storybook/generators/migrate-7", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "storybook", + "packageName": "@nx/storybook", + "root": "/packages/storybook", + "source": "/packages/storybook/src" + }, + { + "description": "CLI for generating code and running commands", + "documents": [], + "executors": [], + "generators": [], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "tao", + "packageName": "@nrwl/tao", + "root": "/packages/tao", + "source": "/packages/tao/src" + }, + { + "description": "The Nx Plugin for building and testing applications using Vite", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace.", + "file": "generated/packages/vite/documents/overview", + "itemList": [], + "isExternal": false, + "path": "vite/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/vite/vite-plugin" + } + ], + "executors": [ + { + "description": "Vite dev server.", + "file": "generated/packages/vite/executors/dev-server.json", + "hidden": false, + "name": "dev-server", + "originalFilePath": "/packages/vite/src/executors/dev-server/schema.json", + "path": "vite/executors/dev-server", + "type": "executor" + }, + { + "description": "Build with Vite.", + "file": "generated/packages/vite/executors/build.json", + "hidden": false, + "name": "build", + "originalFilePath": "/packages/vite/src/executors/build/schema.json", + "path": "vite/executors/build", + "type": "executor" + }, + { + "description": "Test with Vitest", + "file": "generated/packages/vite/executors/test.json", + "hidden": false, + "name": "test", + "originalFilePath": "/packages/vite/src/executors/test/schema.json", + "path": "vite/executors/test", + "type": "executor" + }, + { + "description": "Vite preview server", + "file": "generated/packages/vite/executors/preview-server.json", + "hidden": false, + "name": "preview-server", + "originalFilePath": "/packages/vite/src/executors/preview-server/schema.json", + "path": "vite/executors/preview-server", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize Vite in the workspace.", + "file": "generated/packages/vite/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/vite/src/generators/init/schema.json", + "path": "vite/generators/init", + "type": "generator" + }, + { + "description": "Add Vite configuration to an application.", + "file": "generated/packages/vite/generators/configuration.json", + "hidden": false, + "name": "configuration", + "originalFilePath": "/packages/vite/src/generators/configuration/schema.json", + "path": "vite/generators/configuration", + "type": "generator" + }, + { + "description": "Generate a vitest configuration", + "file": "generated/packages/vite/generators/vitest.json", + "hidden": false, + "name": "vitest", + "originalFilePath": "/packages/vite/src/generators/vitest/schema.json", + "path": "vite/generators/vitest", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "vite", + "packageName": "@nx/vite", + "root": "/packages/vite", + "source": "/packages/vite/src" + }, + { + "description": "The Vue plugin for Nx contains executors and generators for managing Vue applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Vitest, Cypress, and Storybook.\n\n- Generators for applications, libraries, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace.", + "file": "generated/packages/vue/documents/overview", + "itemList": [], + "isExternal": false, + "path": "vue/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/vue/vue-plugin" + } + ], + "executors": [], + "generators": [ + { + "description": "Initialize the `@nx/vue` plugin.", + "file": "generated/packages/vue/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/vue/src/generators/init/schema.json", + "path": "vue/generators/init", + "type": "generator" + }, + { + "description": "Create a Vue application.", + "file": "generated/packages/vue/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/vue/src/generators/application/schema.json", + "path": "vue/generators/application", + "type": "generator" + }, + { + "description": "Create a Vue library.", + "file": "generated/packages/vue/generators/library.json", + "hidden": false, + "name": "library", + "originalFilePath": "/packages/vue/src/generators/library/schema.json", + "path": "vue/generators/library", + "type": "generator" + }, + { + "description": "Create a Vue component.", + "file": "generated/packages/vue/generators/component.json", + "hidden": false, + "name": "component", + "originalFilePath": "/packages/vue/src/generators/component/schema.json", + "path": "vue/generators/component", + "type": "generator" + }, + { + "description": "Set up Tailwind configuration for a project.", + "file": "generated/packages/vue/generators/setup-tailwind.json", + "hidden": false, + "name": "setup-tailwind", + "originalFilePath": "/packages/vue/src/generators/setup-tailwind/schema.json", + "path": "vue/generators/setup-tailwind", + "type": "generator" + }, + { + "description": "Set up storybook for a Vue app or library.", + "file": "generated/packages/vue/generators/storybook-configuration.json", + "hidden": false, + "name": "storybook-configuration", + "originalFilePath": "/packages/vue/src/generators/storybook-configuration/schema.json", + "path": "vue/generators/storybook-configuration", + "type": "generator" + }, + { + "description": "Create stories for all components declared in an app or library.", + "file": "generated/packages/vue/generators/stories.json", + "hidden": false, + "name": "stories", + "originalFilePath": "/packages/vue/src/generators/stories/schema.json", + "path": "vue/generators/stories", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "vue", + "packageName": "@nx/vue", + "root": "/packages/vue", + "source": "/packages/vue/src" + }, + { + "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Cypress, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.", + "file": "generated/packages/web/documents/overview", + "itemList": [], + "isExternal": false, + "path": "web/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/web/web-plugin" + } + ], + "executors": [ + { + "description": "Serve a web application from a folder.", + "file": "generated/packages/web/executors/file-server.json", + "hidden": false, + "name": "file-server", + "originalFilePath": "/packages/web/src/executors/file-server/schema.json", + "path": "web/executors/file-server", + "type": "executor" + } + ], + "generators": [ + { + "description": "Add `@nrwl/web` to a project.", + "file": "generated/packages/web/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/web/src/generators/init/schema.json", + "path": "web/generators/init", + "type": "generator" + }, + { + "description": "Create an web application.", + "file": "generated/packages/web/generators/application.json", + "hidden": false, + "name": "application", + "originalFilePath": "/packages/web/src/generators/application/schema.json", + "path": "web/generators/application", + "type": "generator" + }, + { + "description": "Add a new static-serve target to a project.", + "file": "generated/packages/web/generators/static-config.json", + "hidden": false, + "name": "static-config", + "originalFilePath": "/packages/web/src/generators/static-serve/schema.json", + "path": "web/generators/static-config", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "web", + "packageName": "@nx/web", + "root": "/packages/web", + "source": "/packages/web/src" + }, + { + "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack.", + "file": "generated/packages/webpack/documents/overview", + "itemList": [], + "isExternal": false, + "path": "webpack/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/webpack/plugin-overview" + } + ], + "executors": [ + { + "description": "Run webpack build.", + "file": "generated/packages/webpack/executors/webpack.json", + "hidden": false, + "name": "webpack", + "originalFilePath": "/packages/webpack/src/executors/webpack/schema.json", + "path": "webpack/executors/webpack", + "type": "executor" + }, + { + "description": "Serve a web application.", + "file": "generated/packages/webpack/executors/dev-server.json", + "hidden": false, + "name": "dev-server", + "originalFilePath": "/packages/webpack/src/executors/dev-server/schema.json", + "path": "webpack/executors/dev-server", + "type": "executor" + }, + { + "description": "Serve a SSR application.", + "file": "generated/packages/webpack/executors/ssr-dev-server.json", + "hidden": false, + "name": "ssr-dev-server", + "originalFilePath": "/packages/webpack/src/executors/ssr-dev-server/schema.json", + "path": "webpack/executors/ssr-dev-server", + "type": "executor" + } + ], + "generators": [ + { + "description": "Initialize the `@nrwl/webpack` plugin.", + "file": "generated/packages/webpack/generators/init.json", + "hidden": true, + "name": "init", + "originalFilePath": "/packages/webpack/src/generators/init/schema.json", + "path": "webpack/generators/init", + "type": "generator" + }, + { + "description": "Add webpack configuration to a project.", + "file": "generated/packages/webpack/generators/configuration.json", + "hidden": true, + "name": "configuration", + "originalFilePath": "/packages/webpack/src/generators/configuration/schema.json", + "path": "webpack/generators/configuration", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "webpack", + "packageName": "@nx/webpack", + "root": "/packages/webpack", + "source": "/packages/webpack/src" + }, + { + "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", + "documents": [ + { + "id": "overview", + "name": "Overview", + "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", + "file": "generated/packages/workspace/documents/overview", + "itemList": [], + "isExternal": false, + "path": "workspace/documents/overview", + "tags": [], + "originalFilePath": "shared/packages/workspace/workspace-plugin" + }, + { + "id": "nx-nodejs-typescript-version-matrix", + "name": "Nx, NodeJS and Typescript Versions", + "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.", + "file": "generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix", + "itemList": [], + "isExternal": false, + "path": "workspace/documents/nx-nodejs-typescript-version-matrix", + "tags": [], + "originalFilePath": "shared/packages/workspace/nx-compatibility-matrix" + } + ], + "executors": [ + { + "description": "A dummy executor useful for E2E tests.", + "file": "generated/packages/workspace/executors/counter.json", + "hidden": true, + "name": "counter", + "originalFilePath": "/packages/workspace/src/executors/counter/schema.json", + "path": "workspace/executors/counter", + "type": "executor" + } + ], + "generators": [ + { + "description": "Create application in an empty workspace.", + "file": "generated/packages/workspace/generators/preset.json", + "hidden": true, + "name": "preset", + "originalFilePath": "/packages/workspace/src/generators/preset/schema.json", + "path": "workspace/generators/preset", + "type": "generator" + }, + { + "description": "Move an application or library to another folder.", + "file": "generated/packages/workspace/generators/move.json", + "hidden": false, + "name": "move", + "originalFilePath": "/packages/workspace/src/generators/move/schema.json", + "path": "workspace/generators/move", + "type": "generator" + }, + { + "description": "Remove an application or library.", + "file": "generated/packages/workspace/generators/remove.json", + "hidden": false, + "name": "remove", + "originalFilePath": "/packages/workspace/src/generators/remove/schema.json", + "path": "workspace/generators/remove", + "type": "generator" + }, + { + "description": "Convert a Nx project to a monorepo.", + "file": "generated/packages/workspace/generators/convert-to-monorepo.json", + "hidden": false, + "name": "convert-to-monorepo", + "originalFilePath": "/packages/workspace/src/generators/convert-to-monorepo/schema.json", + "path": "workspace/generators/convert-to-monorepo", + "type": "generator" + }, + { + "description": "Create a workspace.", + "file": "generated/packages/workspace/generators/new.json", + "hidden": true, + "name": "new", + "originalFilePath": "/packages/workspace/src/generators/new/schema.json", + "path": "workspace/generators/new", + "type": "generator" + }, + { + "description": "Generates a target to run any command in the terminal.", + "file": "generated/packages/workspace/generators/run-commands.json", + "hidden": false, + "name": "run-commands", + "originalFilePath": "/packages/workspace/src/generators/run-commands/schema.json", + "path": "workspace/generators/run-commands", + "type": "generator" + }, + { + "description": "Fixes projects configuration", + "file": "generated/packages/workspace/generators/fix-configuration.json", + "hidden": false, + "name": "fix-configuration", + "originalFilePath": "/packages/workspace/src/generators/convert-to-nx-project/schema.json", + "path": "workspace/generators/fix-configuration", + "type": "generator" + }, + { + "description": "Create a minimal NPM package.", + "file": "generated/packages/workspace/generators/npm-package.json", + "hidden": false, + "name": "npm-package", + "originalFilePath": "/packages/workspace/src/generators/npm-package/schema.json", + "path": "workspace/generators/npm-package", + "type": "generator" + }, + { + "description": "Generate a CI workflow.", + "file": "generated/packages/workspace/generators/ci-workflow.json", + "hidden": false, + "name": "ci-workflow", + "originalFilePath": "/packages/workspace/src/generators/ci-workflow/schema.json", + "path": "workspace/generators/ci-workflow", + "type": "generator" + } + ], + "githubRoot": "https://github.com/nrwl/nx/blob/master", + "name": "workspace", + "packageName": "@nx/workspace", + "root": "/packages/workspace", + "source": "/packages/workspace/src" + } +] diff --git a/docs/generated/packages/angular/documents/angular-nx-version-matrix.md b/docs/generated/packages/angular/documents/angular-nx-version-matrix.md new file mode 100644 index 0000000000000..9bc7146806ba9 --- /dev/null +++ b/docs/generated/packages/angular/documents/angular-nx-version-matrix.md @@ -0,0 +1,36 @@ +# Nx and Angular Versions + +The latest version of Nx supports the [actively supported versions of Angular (current and LTS versions)](https://angular.io/guide/releases#actively-supported-versions). Workspaces in any of those versions are recommended to use the latest version of Nx to benefit from all the new features and fixes. + +{% callout type="note" title="Older Nx and Angular versions" %} +The support for multiple versions of Angular in the latest version of Nx was added in **v15.7.0** and started by supporting Angular v14 and v15. If your workspace is in an older version of Angular or you can't update to the latest version of Nx for some reason, please have a look at the next section to know which version of Nx to use. +{% /callout %} + +## Nx and Angular Version Compatibility Matrix + +Below is a reference table that matches versions of Angular to the version of Nx that is compatible with it. The table shows the version of Angular, the recommended version of Nx to use and the range of Nx versions that support the version of Angular. + +We provide a recommended version, and it is usually the latest minor version of Nx in the range provided because there will have been bug fixes added since the first release in the range. + +| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ | +| --------------- | ------------------------------ | -------------------------------------- | +| ~17.2.0 | **latest** | 18.1.1 <= latest | +| ~17.1.0 | **latest** | 17.3.0 <= latest | +| ~17.0.0 | **latest** | 17.1.0 <= latest | +| ~16.2.0 | **latest** | 16.7.0 <= latest | +| ~16.1.0 | **latest** | 16.4.0 <= latest | +| ~16.0.0 | **latest** | 16.1.0 <= latest | +| ~15.2.0 | **latest** | 15.8.0 <= latest | +| ~15.1.0 | **latest** | 15.5.0 <= latest | +| ~15.0.0 | **latest** | 15.2.0 <= 15.4.8 \|\| 15.7.0 <= latest | +| ~14.2.0 | **~17.0.0** | 14.6.0 <= 15.1.1 \|\| 15.7.0 < 17.1.0 | +| ~14.1.0 | **~17.0.0** | 14.5.0 <= 14.5.10 \|\| 15.7.0 < 17.1.0 | +| ~14.0.0 | **~17.0.0** | 14.2.1 <= 14.4.3 \|\| 15.7.0 < 17.1.0 | +| ^13.0.0 | **14.1.9** | 13.2.0 <= 14.1.9 | +| ^12.0.0 | **13.1.4** | 12.3.0 <= 13.1.4 | +| ^11.0.0 | **12.2.0** | 11.0.0 <= 12.2.0 | +| ^10.0.0 | **10.4.15** | 9.7.0 <= 10.4.15 | +| ^9.0.0 | **9.6.0** | 8.12.4 <= 9.6.0 | +| ^8.0.0 | **8.12.2** | 8.7.0 <= 8.12.2 | + +Additionally, you can check the supported versions of Node and Typescript for the version of Angular you are using in the [Angular docs](https://angular.io/guide/versions#actively-supported-versions). diff --git a/docs/generated/packages/angular/documents/overview.md b/docs/generated/packages/angular/documents/overview.md new file mode 100644 index 0000000000000..5ddbaf8e0e97e --- /dev/null +++ b/docs/generated/packages/angular/documents/overview.md @@ -0,0 +1,125 @@ +--- +title: Overview of the Nx Angular Plugin +description: The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. +--- + +The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries +within an Nx workspace. It provides: + +- Integration with libraries such as Storybook, Jest and Cypress. +- Generators to help scaffold code quickly, including: + - Micro Frontends + - Libraries, both internal to your codebase and publishable to npm + - Single Component Application Modules (SCAMs) +- NgRx helpers. +- Utilities for automatic workspace refactoring. + +{% callout type="note" title="Currently using the Angular CLI?" %} +You can easily and mostly **automatically migrate from an Angular CLI** project to Nx! Learn +more [here](/recipes/angular/migration/angular). +{% /callout %} + +## Setting Up @nx/angular + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/angular` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/angular` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/angular +``` + +This will install the correct version of `@nx/angular`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/angular` package with your package manager. + +```shell +npm add -D @nx/angular +``` + +{% /tab %} +{% /tabs %} + +{% callout type="note" title="Angular Tutorials" %} +For a full tutorial experience, follow the [Angular Standalone Tutorial](/getting-started/tutorials/angular-standalone-tutorial) or the [Angular Monorepo Tutorial](/getting-started/tutorials/angular-monorepo-tutorial) +{% /callout %} + +## Using the Angular Plugin + +### Generating an application + +It's straightforward to generate an Angular application: + +```shell +nx g @nx/angular:app appName +``` + +By default, the application will be generated with: + +- ESLint as the linter. +- Jest as the unit test runner. +- Cypress as the E2E test runner. + +We can then serve, build, test, lint, and run e2e tests on the application with the following commands: + +```shell +nx serve appName +nx build appName +nx test appName +nx lint appName +nx e2e appName +``` + +### Generating a library + +Generating an Angular library is very similar to generating an application: + +```shell +nx g @nx/angular:lib libName +``` + +By default, the library will be generated with: + +- ESLint as the linter. +- Jest as the unit test runner. + +We can then test and lint the library with the following commands: + +```shell +nx test libName +nx lint libName +``` + +Read more about: + +- [Creating Libraries](/concepts/more-concepts/creating-libraries) +- [Library Types](/concepts/more-concepts/library-types) +- [Buildable and Publishable Libraries](/concepts/more-concepts/buildable-and-publishable-libraries) + +### Fallback to `@schematics/angular` + +If you try to invoke a generator that is not present in `@nx/angular`, the request will automatically be forwarded on +to `@schematics/angular`. So, even though there is no `@nx/angular:service` generator, the following command will +successfully create a service: + +```shell +nx g @nx/angular:service my-service +``` + +## More Documentation + +- [Angular Standalone Tutorial](/getting-started/tutorials/angular-standalone-tutorial) +- [Angular Monorepo Tutorial](/getting-started/tutorials/angular-monorepo-tutorial) +- [Migrating from the Angular CLI](/recipes/angular/migration/angular) +- [Setup Module Federation with Angular and Nx](/concepts/module-federation/faster-builds-with-module-federation) +- [Using Tailwind CSS with Angular projects](/recipes/angular/using-tailwind-css-with-angular-projects) diff --git a/docs/generated/packages/angular/executors/application.json b/docs/generated/packages/angular/executors/application.json new file mode 100644 index 0000000000000..8f50fa9813947 --- /dev/null +++ b/docs/generated/packages/angular/executors/application.json @@ -0,0 +1,743 @@ +{ + "name": "application", + "implementation": "/packages/angular/src/executors/application/application.impl.ts", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Nx Application Executor", + "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", + "examplesFile": "The `@nx/angular:application` executor is very similar to the `@angular-devkit/build-angular:application` builder provided by the Angular CLI. It builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.\n\nIn addition to the features provided by the Angular CLI builder, the `@nx/angular:application` executor also supports the following:\n\n- Providing esbuild plugins\n- Providing a function to transform the application's `index.html` file\n- Incremental builds\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Providing esbuild plugins\" %}\n\nThe executor accepts a `plugins` option that allows you to provide esbuild plugins that will be used when building your application. It allows providing a path to a plugin file or an object with a `path` and `options` property to provide options to the plugin.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[\"8-16\"] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:application\",\n \"options\": {\n ...\n \"plugins\": [\n \"apps/my-app/plugins/plugin1.js\",\n {\n \"path\": \"apps/my-app/plugins/plugin2.js\",\n \"options\": {\n \"someOption\": \"some value\"\n }\n }\n ]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin1.js\" %}\nconst plugin1 = {\n name: 'plugin1',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN1_TEXT = '\"Value was provided at build time\"';\n },\n};\n\nmodule.exports = plugin1;\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin2.js\" %}\nfunction plugin2({ someOption }) {\n return {\n name: 'plugin2',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN2_TEXT = JSON.stringify(someOption);\n },\n };\n}\n\nmodule.exports = plugin2;\n```\n\n{% /tab %}\n\n{% tab label=\"Transforming the 'index.html' file\" %}\n\nThe executor accepts an `indexHtmlTransformer` option to provide a path to a file with a default export for a function that receives the application's `index.html` file contents and outputs the updated contents.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[8] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:application\",\n \"options\": {\n ...\n \"indexHtmlTransformer\": \"apps/my-app/index-html.transformer.ts\"\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/index-html.transformer.ts\" %}\nexport default function (indexContent: string) {\n return indexContent.replace(\n 'my-app',\n 'my-app (transformed)'\n );\n}\n```\n\n{% /tab %}\n{% /tabs %}\n", + "outputCapture": "direct-nodejs", + "type": "object", + "properties": { + "assets": { + "type": "array", + "description": "List of static application assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "browser": { + "type": "string", + "description": "The full path for the browser entry point to the application, relative to the current workspace." + }, + "server": { + "type": "string", + "description": "The full path for the server entry point to the application, relative to the current workspace." + }, + "polyfills": { + "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.", + "type": "array", + "items": { "type": "string", "uniqueItems": true }, + "default": [] + }, + "tsConfig": { + "type": "string", + "description": "The full path for the TypeScript configuration file, relative to the current workspace." + }, + "scripts": { + "description": "Global scripts to be included in the build.", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "pattern": "\\.[cm]?jsx?$" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The JavaScript/TypeScript file or package containing the file to include." + } + ] + } + }, + "styles": { + "description": "Global styles to be included in the build.", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "pattern": "\\.(?:css|scss|sass|less)$" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "pattern": "\\.(?:css|scss|sass|less)$" + } + ] + } + }, + "inlineStyleLanguage": { + "description": "The stylesheet language to use for the application's inline component styles.", + "type": "string", + "default": "css", + "enum": ["css", "less", "sass", "scss"] + }, + "stylePreprocessorOptions": { + "description": "Options to pass to style preprocessors.", + "type": "object", + "properties": { + "includePaths": { + "description": "Paths to include. Paths will be resolved to workspace root.", + "type": "array", + "items": { "type": "string" }, + "default": [] + } + }, + "additionalProperties": false + }, + "externalDependencies": { + "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "clearScreen": { + "type": "boolean", + "default": false, + "description": "Automatically clear the terminal screen during rebuilds. _Note: this is only supported in Angular versions >= 17.2.0_." + }, + "optimization": { + "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", + "default": true, + "x-user-analytics": "ep.ng_optimization", + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Enables optimization of the scripts output.", + "default": true + }, + "styles": { + "description": "Enables optimization of the styles output.", + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "minify": { + "type": "boolean", + "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.", + "default": true + }, + "inlineCritical": { + "type": "boolean", + "description": "Extract and inline critical CSS definitions to improve first paint time.", + "default": true + }, + "removeSpecialComments": { + "type": "boolean", + "description": "Remove comments in global CSS that contains '@license' or '@preserve' or that starts with '//!' or '/*!'. _Note: this is only supported in Angular versions >= 17.1.0_.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "fonts": { + "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "inline": { + "type": "boolean", + "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "loader": { + "description": "Defines the type of loader to use with a specified file extension when used with a JavaScript `import`. `text` inlines the content as a string; `binary` inlines the content as a Uint8Array; `file` emits the file and provides the runtime location of the file; `empty` considers the content to be empty and not include it in bundles. _Note: this is only supported in Angular versions >= 17.1.0_.", + "type": "object", + "patternProperties": { + "^\\.\\S+$": { "enum": ["text", "binary", "file", "empty"] } + } + }, + "define": { + "description": "Defines global identifiers that will be replaced with a specified constant value when found in any JavaScript or TypeScript code including libraries. The value will be used directly. String values must be put in quotes. Identifiers within Angular metadata such as Component Decorators will not be replaced. _Note: this is only supported in Angular versions >= 17.2.0_.", + "type": "object", + "additionalProperties": { "type": "string" } + }, + "fileReplacements": { + "description": "Replace compilation source files with other compilation source files in the build.", + "type": "array", + "items": { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } + }, + "additionalProperties": false, + "required": ["replace", "with"] + }, + "default": [] + }, + "outputPath": { + "description": "Specify the output path relative to workspace root. _Note: the object notation is only supported in Angular versions >= 17.1.0_.", + "oneOf": [ + { + "type": "object", + "properties": { + "base": { + "type": "string", + "description": "Specify the output path relative to workspace root." + }, + "browser": { + "type": "string", + "pattern": "^[-\\w\\.]*$", + "default": "browser", + "description": "The output directory name of your browser build within the output path base. Defaults to 'browser'." + }, + "server": { + "type": "string", + "pattern": "^[-\\w\\.]*$", + "default": "server", + "description": "The output directory name of your server build within the output path base. Defaults to 'server'." + }, + "media": { + "type": "string", + "pattern": "^[-\\w\\.]+$", + "default": "media", + "description": "The output directory name of your media files within the output browser directory. Defaults to 'media'." + } + }, + "required": ["base"], + "additionalProperties": false + }, + { "type": "string" } + ] + }, + "aot": { + "type": "boolean", + "description": "Build using Ahead of Time compilation.", + "x-user-analytics": "ep.ng_aot", + "default": true + }, + "sourceMap": { + "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", + "default": false, + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Output source maps for all scripts.", + "default": true + }, + "styles": { + "type": "boolean", + "description": "Output source maps for all styles.", + "default": true + }, + "hidden": { + "type": "boolean", + "description": "Output source maps used for error reporting tools.", + "default": false + }, + "vendor": { + "type": "boolean", + "description": "Resolve vendor packages source maps.", + "default": false + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "baseHref": { + "type": "string", + "description": "Base url for the application being built." + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging.", + "default": false + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console while building.", + "default": true + }, + "i18nMissingTranslation": { + "type": "string", + "description": "How to handle missing translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "i18nDuplicateTranslation": { + "type": "string", + "description": "How to handle duplicate translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "localize": { + "description": "Translate the bundles in one or more locales.", + "oneOf": [ + { "type": "boolean", "description": "Translate all locales." }, + { + "type": "array", + "description": "List of locales ID's to translate.", + "minItems": 1, + "items": { + "type": "string", + "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" + } + } + ] + }, + "watch": { + "type": "boolean", + "description": "Run build when files change.", + "default": false + }, + "outputHashing": { + "type": "string", + "description": "Define the output filename cache-busting hashing mode.", + "default": "none", + "enum": ["none", "all", "media", "bundles"] + }, + "poll": { + "type": "number", + "description": "Enable and define the file watching poll time period in milliseconds." + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Delete the output path before building.", + "default": true + }, + "preserveSymlinks": { + "type": "boolean", + "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." + }, + "extractLicenses": { + "type": "boolean", + "description": "Extract all licenses in a separate file.", + "default": true + }, + "namedChunks": { + "type": "boolean", + "description": "Use file name for lazy loaded chunks.", + "default": false + }, + "subresourceIntegrity": { + "type": "boolean", + "description": "Enables the use of subresource integrity validation.", + "default": false + }, + "serviceWorker": { + "description": "Generates a service worker configuration.", + "default": false, + "oneOf": [ + { "type": "string", "description": "Path to ngsw-config.json." }, + { + "const": false, + "type": "boolean", + "description": "Does not generate a service worker configuration." + } + ] + }, + "index": { + "description": "Configures the generation of the application's HTML index.", + "oneOf": [ + { + "type": "string", + "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path." + }, + { + "type": "object", + "description": "", + "properties": { + "input": { + "type": "string", + "minLength": 1, + "description": "The path of a file to use for the application's generated HTML index." + }, + "output": { + "type": "string", + "minLength": 1, + "default": "index.html", + "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path." + }, + "preloadInitial": { + "type": "boolean", + "default": true, + "description": "Generates 'preload', 'modulepreload', and 'preconnect' link elements for initial application files and resources. _Note: this is only supported in Angular versions >= 17.1.0_." + } + }, + "required": ["input"] + }, + { + "const": false, + "type": "boolean", + "description": "Does not generate an `index.html` file." + } + ] + }, + "statsJson": { + "type": "boolean", + "description": "Generates a 'stats.json' file which can be analyzed with https://esbuild.github.io/analyze/.", + "default": false + }, + "budgets": { + "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.", + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of budget.", + "enum": [ + "all", + "allScript", + "any", + "anyScript", + "anyComponentStyle", + "bundle", + "initial" + ] + }, + "name": { + "type": "string", + "description": "The name of the bundle." + }, + "baseline": { + "type": "string", + "description": "The baseline size for comparison." + }, + "maximumWarning": { + "type": "string", + "description": "The maximum threshold for warning relative to the baseline." + }, + "maximumError": { + "type": "string", + "description": "The maximum threshold for error relative to the baseline." + }, + "minimumWarning": { + "type": "string", + "description": "The minimum threshold for warning relative to the baseline." + }, + "minimumError": { + "type": "string", + "description": "The minimum threshold for error relative to the baseline." + }, + "warning": { + "type": "string", + "description": "The threshold for warning relative to the baseline (min & max)." + }, + "error": { + "type": "string", + "description": "The threshold for error relative to the baseline (min & max)." + } + }, + "additionalProperties": false, + "required": ["type"] + }, + "default": [] + }, + "webWorkerTsConfig": { + "type": "string", + "description": "TypeScript configuration for Web Worker modules." + }, + "crossOrigin": { + "type": "string", + "description": "Define the crossorigin attribute setting of elements that provide CORS support.", + "default": "none", + "enum": ["none", "anonymous", "use-credentials"] + }, + "allowedCommonJsDependencies": { + "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "prerender": { + "description": "Prerender (SSG) pages of your application during build time.", + "default": false, + "oneOf": [ + { + "type": "boolean", + "description": "Enable prerending of pages of your application during build time." + }, + { + "type": "object", + "properties": { + "routesFile": { + "type": "string", + "description": "The path to a file that contains a list of all routes to prerender, separated by newlines. This option is useful if you want to prerender routes with parameterized URLs." + }, + "discoverRoutes": { + "type": "boolean", + "description": "Whether the builder should process the Angular Router configuration to find all unparameterized routes and prerender them.", + "default": true + } + }, + "additionalProperties": false + } + ] + }, + "ssr": { + "description": "Server side render (SSR) pages of your application during runtime.", + "default": false, + "oneOf": [ + { + "type": "boolean", + "description": "Enable the server bundles to be written to disk." + }, + { + "type": "object", + "properties": { + "entry": { + "type": "string", + "description": "The server entry-point that when executed will spawn the web server." + } + }, + "additionalProperties": false + } + ] + }, + "appShell": { + "type": "boolean", + "description": "Generates an application shell during build time.", + "default": false + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + }, + "plugins": { + "description": "A list of ESBuild plugins.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path to the plugin. Relative to the workspace root." + }, + "options": { + "type": "object", + "description": "The options to provide to the plugin.", + "properties": {}, + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": ["path"] + }, + { + "type": "string", + "description": "The path to the plugin. Relative to the workspace root." + } + ] + } + }, + "indexHtmlTransformer": { + "description": "Path to a file exposing a default function to transform the `index.html` file. _Note: this is only supported in Angular versions >= 17.1.0_.", + "type": "string" + } + }, + "additionalProperties": false, + "required": ["outputPath", "index", "browser", "tsConfig"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + }, + "fileReplacement": { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } + }, + "additionalProperties": false, + "required": ["replace", "with"] + }, + "budget": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of budget.", + "enum": [ + "all", + "allScript", + "any", + "anyScript", + "anyComponentStyle", + "bundle", + "initial" + ] + }, + "name": { + "type": "string", + "description": "The name of the bundle." + }, + "baseline": { + "type": "string", + "description": "The baseline size for comparison." + }, + "maximumWarning": { + "type": "string", + "description": "The maximum threshold for warning relative to the baseline." + }, + "maximumError": { + "type": "string", + "description": "The maximum threshold for error relative to the baseline." + }, + "minimumWarning": { + "type": "string", + "description": "The minimum threshold for warning relative to the baseline." + }, + "minimumError": { + "type": "string", + "description": "The minimum threshold for error relative to the baseline." + }, + "warning": { + "type": "string", + "description": "The threshold for warning relative to the baseline (min & max)." + }, + "error": { + "type": "string", + "description": "The threshold for error relative to the baseline (min & max)." + } + }, + "additionalProperties": false, + "required": ["type"] + } + }, + "presets": [] + }, + "description": "Builds an application with esbuild with support for incremental builds. _Note: this is only supported in Angular versions >= 17.0.0_.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/application/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/browser-esbuild.json b/docs/generated/packages/angular/executors/browser-esbuild.json new file mode 100644 index 0000000000000..2c639fa9a934c --- /dev/null +++ b/docs/generated/packages/angular/executors/browser-esbuild.json @@ -0,0 +1,657 @@ +{ + "name": "browser-esbuild", + "implementation": "/packages/angular/src/executors/browser-esbuild/browser-esbuild.impl.ts", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Nx ESBuild Executor", + "description": "Nx ESBuild Executor supporting Incremental Builds.", + "examplesFile": "The `@nx/angular:browser-esbuild` executor is very similar to the `@angular-devkit/build-angular:browser-esbuild` builder provided by the Angular CLI. It builds an Angular application using [esbuild](https://esbuild.github.io/).\n\nIn addition to the features provided by the Angular CLI builder, the `@nx/angular:browser-esbuild` executor also supports the following:\n\n- Providing esbuild plugins\n- Incremental builds\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Providing esbuild plugins\" %}\n\nThe executor accepts a `plugins` option that allows you to provide esbuild plugins that will be used when building your application. It allows providing a path to a plugin file or an object with a `path` and `options` property to provide options to the plugin.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[\"8-16\"] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:browser-esbuild\",\n \"options\": {\n ...\n \"plugins\": [\n \"apps/my-app/plugins/plugin1.js\",\n {\n \"path\": \"apps/my-app/plugins/plugin2.js\",\n \"options\": {\n \"someOption\": \"some value\"\n }\n }\n ]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin1.js\" %}\nconst plugin1 = {\n name: 'plugin1',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN1_TEXT = '\"Value was provided at build time\"';\n },\n};\n\nmodule.exports = plugin1;\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin2.js\" %}\nfunction plugin2({ someOption }) {\n return {\n name: 'plugin2',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN2_TEXT = JSON.stringify(someOption);\n },\n };\n}\n\nmodule.exports = plugin2;\n```\n\n{% /tab %}\n{% /tabs %}\n", + "outputCapture": "direct-nodejs", + "type": "object", + "properties": { + "assets": { + "type": "array", + "description": "List of static application assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "main": { + "type": "string", + "description": "The full path for the main entry point to the app, relative to the current workspace." + }, + "polyfills": { + "description": "Polyfills to be included in the build.", + "oneOf": [ + { + "type": "array", + "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.", + "items": { "type": "string", "uniqueItems": true }, + "default": [] + }, + { + "type": "string", + "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'." + } + ] + }, + "tsConfig": { + "type": "string", + "description": "The full path for the TypeScript configuration file, relative to the current workspace." + }, + "scripts": { + "description": "Global scripts to be included in the build.", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "pattern": "\\.[cm]?jsx?$" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The JavaScript/TypeScript file or package containing the file to include." + } + ] + } + }, + "styles": { + "description": "Global styles to be included in the build.", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "pattern": "\\.(?:css|scss|sass|less)$" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "pattern": "\\.(?:css|scss|sass|less)$" + } + ] + } + }, + "inlineStyleLanguage": { + "description": "The stylesheet language to use for the application's inline component styles.", + "type": "string", + "default": "css", + "enum": ["css", "less", "sass", "scss"] + }, + "stylePreprocessorOptions": { + "description": "Options to pass to style preprocessors.", + "type": "object", + "properties": { + "includePaths": { + "description": "Paths to include. Paths will be resolved to workspace root.", + "type": "array", + "items": { "type": "string" }, + "default": [] + } + }, + "additionalProperties": false + }, + "externalDependencies": { + "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "optimization": { + "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", + "default": true, + "x-user-analytics": "ep.ng_optimization", + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Enables optimization of the scripts output.", + "default": true + }, + "styles": { + "description": "Enables optimization of the styles output.", + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "minify": { + "type": "boolean", + "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.", + "default": true + }, + "inlineCritical": { + "type": "boolean", + "description": "Extract and inline critical CSS definitions to improve first paint time.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "fonts": { + "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "inline": { + "type": "boolean", + "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "fileReplacements": { + "description": "Replace compilation source files with other compilation source files in the build.", + "type": "array", + "items": { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } + }, + "additionalProperties": false, + "required": ["replace", "with"] + }, + "default": [] + }, + "outputPath": { + "type": "string", + "description": "The full path for the new output directory, relative to the current workspace." + }, + "resourcesOutputPath": { + "type": "string", + "description": "The path where style resources will be placed, relative to outputPath." + }, + "aot": { + "type": "boolean", + "description": "Build using Ahead of Time compilation.", + "x-user-analytics": "ep.ng_aot", + "default": true + }, + "sourceMap": { + "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", + "default": false, + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Output source maps for all scripts.", + "default": true + }, + "styles": { + "type": "boolean", + "description": "Output source maps for all styles.", + "default": true + }, + "hidden": { + "type": "boolean", + "description": "Output source maps used for error reporting tools.", + "default": false + }, + "vendor": { + "type": "boolean", + "description": "Resolve vendor packages source maps.", + "default": false + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "vendorChunk": { + "type": "boolean", + "description": "Generate a separate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.", + "default": false + }, + "commonChunk": { + "type": "boolean", + "description": "Generate a separate bundle containing code used across multiple bundles.", + "default": true + }, + "baseHref": { + "type": "string", + "description": "Base url for the application being built." + }, + "deployUrl": { + "type": "string", + "description": "URL where files will be deployed.", + "x-deprecated": "Use \"baseHref\" option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url." + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging.", + "default": false + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console while building.", + "default": true + }, + "i18nMissingTranslation": { + "type": "string", + "description": "How to handle missing translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "i18nDuplicateTranslation": { + "type": "string", + "description": "How to handle duplicate translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "localize": { + "description": "Translate the bundles in one or more locales.", + "oneOf": [ + { "type": "boolean", "description": "Translate all locales." }, + { + "type": "array", + "description": "List of locales ID's to translate.", + "minItems": 1, + "items": { + "type": "string", + "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" + } + } + ] + }, + "watch": { + "type": "boolean", + "description": "Run build when files change.", + "default": false + }, + "outputHashing": { + "type": "string", + "description": "Define the output filename cache-busting hashing mode.", + "default": "none", + "enum": ["none", "all", "media", "bundles"] + }, + "poll": { + "type": "number", + "description": "Enable and define the file watching poll time period in milliseconds." + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Delete the output path before building.", + "default": true + }, + "preserveSymlinks": { + "type": "boolean", + "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." + }, + "extractLicenses": { + "type": "boolean", + "description": "Extract all licenses in a separate file.", + "default": true + }, + "buildOptimizer": { + "type": "boolean", + "description": "Enables advanced build optimizations when using the 'aot' option.", + "default": true + }, + "namedChunks": { + "type": "boolean", + "description": "Use file name for lazy loaded chunks.", + "default": false + }, + "subresourceIntegrity": { + "type": "boolean", + "description": "Enables the use of subresource integrity validation.", + "default": false + }, + "serviceWorker": { + "type": "boolean", + "description": "Generates a service worker config for production builds.", + "default": false + }, + "ngswConfigPath": { + "type": "string", + "description": "Path to ngsw-config.json." + }, + "index": { + "description": "Configures the generation of the application's HTML index.", + "oneOf": [ + { + "type": "string", + "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path." + }, + { + "type": "object", + "description": "", + "properties": { + "input": { + "type": "string", + "minLength": 1, + "description": "The path of a file to use for the application's generated HTML index." + }, + "output": { + "type": "string", + "minLength": 1, + "default": "index.html", + "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path." + } + }, + "required": ["input"] + }, + { + "const": false, + "type": "boolean", + "description": "Does not generate an `index.html` file." + } + ] + }, + "statsJson": { + "type": "boolean", + "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.", + "default": false + }, + "budgets": { + "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.", + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of budget.", + "enum": [ + "all", + "allScript", + "any", + "anyScript", + "anyComponentStyle", + "bundle", + "initial" + ] + }, + "name": { + "type": "string", + "description": "The name of the bundle." + }, + "baseline": { + "type": "string", + "description": "The baseline size for comparison." + }, + "maximumWarning": { + "type": "string", + "description": "The maximum threshold for warning relative to the baseline." + }, + "maximumError": { + "type": "string", + "description": "The maximum threshold for error relative to the baseline." + }, + "minimumWarning": { + "type": "string", + "description": "The minimum threshold for warning relative to the baseline." + }, + "minimumError": { + "type": "string", + "description": "The minimum threshold for error relative to the baseline." + }, + "warning": { + "type": "string", + "description": "The threshold for warning relative to the baseline (min & max)." + }, + "error": { + "type": "string", + "description": "The threshold for error relative to the baseline (min & max)." + } + }, + "additionalProperties": false, + "required": ["type"] + }, + "default": [] + }, + "webWorkerTsConfig": { + "type": "string", + "description": "TypeScript configuration for Web Worker modules." + }, + "crossOrigin": { + "type": "string", + "description": "Define the crossorigin attribute setting of elements that provide CORS support.", + "default": "none", + "enum": ["none", "anonymous", "use-credentials"] + }, + "allowedCommonJsDependencies": { + "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + }, + "plugins": { + "description": "A list of ESBuild plugins. _Note: this is only supported in Angular versions >= 17.0.0_.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path to the plugin. Relative to the workspace root." + }, + "options": { + "type": "object", + "description": "The options to provide to the plugin.", + "properties": {}, + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": ["path"] + }, + { + "type": "string", + "description": "The path to the plugin. Relative to the workspace root." + } + ] + } + } + }, + "additionalProperties": false, + "required": ["outputPath", "index", "main", "tsConfig"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + }, + "fileReplacement": { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { "type": "string", "pattern": "\\.(([cm]?j|t)sx?|json)$" } + }, + "additionalProperties": false, + "required": ["replace", "with"] + }, + "budget": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of budget.", + "enum": [ + "all", + "allScript", + "any", + "anyScript", + "anyComponentStyle", + "bundle", + "initial" + ] + }, + "name": { + "type": "string", + "description": "The name of the bundle." + }, + "baseline": { + "type": "string", + "description": "The baseline size for comparison." + }, + "maximumWarning": { + "type": "string", + "description": "The maximum threshold for warning relative to the baseline." + }, + "maximumError": { + "type": "string", + "description": "The maximum threshold for error relative to the baseline." + }, + "minimumWarning": { + "type": "string", + "description": "The minimum threshold for warning relative to the baseline." + }, + "minimumError": { + "type": "string", + "description": "The minimum threshold for error relative to the baseline." + }, + "warning": { + "type": "string", + "description": "The threshold for warning relative to the baseline (min & max)." + }, + "error": { + "type": "string", + "description": "The threshold for error relative to the baseline (min & max)." + } + }, + "additionalProperties": false, + "required": ["type"] + } + }, + "presets": [] + }, + "description": "Builds your application with esbuild and adds support for incremental builds.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/browser-esbuild/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/delegate-build.json b/docs/generated/packages/angular/executors/delegate-build.json new file mode 100644 index 0000000000000..065b5deab5422 --- /dev/null +++ b/docs/generated/packages/angular/executors/delegate-build.json @@ -0,0 +1,44 @@ +{ + "name": "delegate-build", + "implementation": "/packages/angular/src/executors/delegate-build/delegate-build.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for an executor which delegates a build.", + "description": "Delegates the build to a different target while supporting incremental builds.", + "cli": "nx", + "type": "object", + "properties": { + "buildTarget": { + "description": "Build target used for building the application after its dependencies have been built.", + "type": "string" + }, + "outputPath": { + "type": "string", + "description": "The full path for the output directory, relative to the workspace root.", + "x-completion-type": "directory" + }, + "tsConfig": { + "type": "string", + "description": "The full path for the TypeScript configuration file, relative to the workspace root.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json" + }, + "watch": { + "type": "boolean", + "description": "Whether to run a build when any file changes.", + "default": false + } + }, + "additionalProperties": false, + "required": ["buildTarget", "outputPath", "tsConfig"], + "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\nDelegate the build of the project to a different target.\n\n```json\n{\n \"prod-build\": {\n \"executor\": \"@nx/angular:delegate-build\",\n \"options\": {\n \"buildTarget\": \"app:build:production\",\n \"outputPath\": \"dist/apps/app/production\",\n \"tsConfig\": \"apps/app/tsconfig.json\",\n \"watch\": false\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Watch for build changes\" %}\nDelegate the build of the project to a different target.\n\n```json\n{\n \"prod-build\": {\n \"executor\": \"@nx/angular:delegate-build\",\n \"options\": {\n \"buildTarget\": \"app:build:production\",\n \"outputPath\": \"dist/apps/app/production\",\n \"tsConfig\": \"apps/app/tsconfig.json\",\n \"watch\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Delegates the build to a different target while supporting incremental builds.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/delegate-build/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/dev-server.json b/docs/generated/packages/angular/executors/dev-server.json new file mode 100644 index 0000000000000..57e71c318f662 --- /dev/null +++ b/docs/generated/packages/angular/executors/dev-server.json @@ -0,0 +1,156 @@ +{ + "name": "dev-server", + "implementation": "/packages/angular/src/builders/dev-server/dev-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Webpack Dev Server", + "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", + "examplesFile": "The `@nx/angular:dev-server` executor is very similar to the `@angular-devkit/build-angular:dev-server` builder provided by the Angular CLI. In addition to the features provided by the Angular CLI builder, the `@nx/angular:dev-server` executor also supports the following:\n\n- Best integration for `@nx/angular:webpack-browser`, `@nx/angular:browser-esbuild` and `@nx/angular:application`\n- Providing HTTP request middleware functions when the build target is using an esbuild-based executor\n- Incremental builds\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Using a custom Webpack configuration\" %}\n\nThis executor should be used along with `@nx/angular:webpack-browser` to serve an application using a custom Webpack configuration.\n\nAdd the `serve` target using the `@nx/angular:dev-server` executor, set the `build` target executor as `@nx/angular:webpack-browser` and set the `customWebpackConfig` option as shown below:\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[2,\"5-7\",\"10-20\"] %}\n\"build\": {\n \"executor\": \"@nx/angular:webpack-browser\",\n \"options\": {\n ...\n \"customWebpackConfig\": {\n \"path\": \"apps/my-app/webpack.config.js\"\n }\n }\n},\n\"serve\": {\n \"executor\": \"@nx/angular:dev-server\",\n \"configurations\": {\n \"production\": {\n \"buildTarget\": \"my-app:build:production\"\n },\n \"development\": {\n \"buildTarget\": \"my-app:build:development\"\n }\n },\n \"defaultConfiguration\": \"development\",\n}\n```\n\n```js {% fileName=\"apps/my-app/webpack.config.js\" %}\nmodule.exports = (config) => {\n // update the config with your custom configuration\n\n return config;\n};\n```\n\n{% /tab %}\n\n{% tab label=\"Providing HTTP request middleware function\" %}\n\n{% callout type=\"warning\" title=\"Overrides\" }\n\nAvailable for workspaces using Angular version 17.0.0 or greater and with `build` targets using an esbuild-based executor.\n\n{% /callout %}\n\nThe executor accepts an `esbuildMidleware` option that allows you to provide HTTP require middleware functions that will be used by the Vite development server.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[8] %}\n{\n ...\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/angular:dev-server\",\n \"options\": {\n ...\n \"esbuildMidleware\": [\"apps/my-app/hello-world.middleware.ts\"]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/hello-world.middleware.ts\" %}\nimport type { IncomingMessage, ServerResponse } from 'node:http';\n\nconst helloWorldMiddleware = (\n req: IncomingMessage,\n res: ServerResponse,\n next: (err?: unknown) => void\n) => {\n if (req.url === '/hello-world') {\n res.end('

Hello World!

');\n } else {\n next();\n }\n};\n\nexport default helloWorldMiddleware;\n```\n\n{% /tab %}\n", + "type": "object", + "presets": [ + { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } + ], + "properties": { + "browserTarget": { + "type": "string", + "description": "A browser builder target to serve in the format of `project:target[:configuration]`. Ignored if `buildTarget` is set.", + "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$", + "x-deprecated": "Use 'buildTarget' instead. It will be removed in Nx v19." + }, + "buildTarget": { + "type": "string", + "description": "A build builder target to serve in the format of `project:target[:configuration]`.", + "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$" + }, + "port": { + "type": "number", + "description": "Port to listen on.", + "default": 4200 + }, + "host": { + "type": "string", + "description": "Host to listen on.", + "default": "localhost" + }, + "proxyConfig": { + "type": "string", + "description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server." + }, + "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." + }, + "headers": { + "type": "object", + "description": "Custom HTTP headers to be added to all responses.", + "propertyNames": { "pattern": "^[-_A-Za-z0-9]+$" }, + "additionalProperties": { "type": "string" } + }, + "open": { + "type": "boolean", + "description": "Opens the url in default browser.", + "default": false, + "alias": "o" + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging." + }, + "liveReload": { + "type": "boolean", + "description": "Whether to reload the page on change, using live-reload.", + "default": true + }, + "publicHost": { + "type": "string", + "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies." + }, + "allowedHosts": { + "type": "array", + "description": "List of hosts that are allowed to access the dev server.", + "default": [], + "items": { "type": "string" } + }, + "servePath": { + "type": "string", + "description": "The pathname where the app will be served." + }, + "disableHostCheck": { + "type": "boolean", + "description": "Don't verify connected clients are part of allowed hosts.", + "default": false + }, + "hmr": { + "type": "boolean", + "description": "Enable hot module replacement.", + "default": false + }, + "watch": { + "type": "boolean", + "description": "Rebuild on change.", + "default": true + }, + "poll": { + "type": "number", + "description": "Enable and define the file watching poll time period in milliseconds." + }, + "forceEsbuild": { + "type": "boolean", + "description": "Force the development server to use the 'browser-esbuild' builder when building. This is a developer preview option for the esbuild-based build system. _Note: this is only supported in Angular versions >= 16.1.0_.", + "default": false + }, + "prebundle": { + "description": "Enable and control the Vite-based development server's prebundling capabilities. To enable prebundling, the Angular CLI cache must also be enabled. This option has no effect when using the 'browser' or other Webpack-based builders. _Note: this is only supported in Angular versions >= 17.2.0_.", + "oneOf": [ + { "type": "boolean" }, + { + "type": "object", + "properties": { + "exclude": { + "description": "List of package imports that should not be prebundled by the development server. The packages will be bundled into the application code itself.", + "type": "array", + "items": { "type": "string" } + } + }, + "additionalProperties": false, + "required": ["exclude"] + } + ] + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.", + "x-priority": "important" + }, + "esbuildMiddleware": { + "description": "A list of HTTP request middleware functions. _Note: this is only supported in Angular versions >= 17.0.0_.", + "type": "array", + "items": { + "type": "string", + "description": "The path to the middleware function. Relative to the workspace root." + } + } + }, + "additionalProperties": false, + "anyOf": [ + { "required": ["buildTarget"] }, + { "required": ["browserTarget"] } + ] + }, + "description": "Serves an Angular application using [Webpack](https://webpack.js.org/) when the build target is using a Webpack-based executor, or [Vite](https://vitejs.dev/) when the build target uses an esbuild-based executor.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/builders/dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/extract-i18n.json b/docs/generated/packages/angular/executors/extract-i18n.json new file mode 100644 index 0000000000000..3a607bbbfd126 --- /dev/null +++ b/docs/generated/packages/angular/executors/extract-i18n.json @@ -0,0 +1,55 @@ +{ + "name": "extract-i18n", + "implementation": "/packages/angular/src/executors/extract-i18n/extract-i18n.impl.ts", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Nx extract-i18n Executor", + "description": "Extracts i18n messages from source code.", + "outputCapture": "direct-nodejs", + "type": "object", + "properties": { + "buildTarget": { + "type": "string", + "description": "A builder target to extract i18n messages in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.", + "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$" + }, + "format": { + "type": "string", + "description": "Output format for the generated file.", + "default": "xlf", + "enum": [ + "xmb", + "xlf", + "xlif", + "xliff", + "xlf2", + "xliff2", + "json", + "arb", + "legacy-migrate" + ] + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console.", + "default": true + }, + "outputPath": { + "type": "string", + "description": "Path where output will be placed." + }, + "outFile": { + "type": "string", + "description": "Name of the file to output." + } + }, + "additionalProperties": false, + "required": ["buildTarget"], + "presets": [] + }, + "description": "Extracts i18n messages from source code.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/extract-i18n/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/module-federation-dev-server.json b/docs/generated/packages/angular/executors/module-federation-dev-server.json new file mode 100644 index 0000000000000..202386064838b --- /dev/null +++ b/docs/generated/packages/angular/executors/module-federation-dev-server.json @@ -0,0 +1,157 @@ +{ + "name": "module-federation-dev-server", + "implementation": "/packages/angular/src/executors/module-federation-dev-server/module-federation-dev-server.impl.ts", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Module Federation Dev Server", + "outputCapture": "direct-nodejs", + "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", + "type": "object", + "presets": [ + { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } + ], + "properties": { + "browserTarget": { + "type": "string", + "description": "A browser builder target to serve in the format of `project:target[:configuration]`.", + "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$", + "x-deprecated": "Use 'buildTarget' instead. It will be removed in Nx v19." + }, + "buildTarget": { + "type": "string", + "description": "A build builder target to serve in the format of `project:target[:configuration]`.", + "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$" + }, + "port": { + "type": "number", + "description": "Port to listen on.", + "default": 4200 + }, + "host": { + "type": "string", + "description": "Host to listen on.", + "default": "localhost" + }, + "proxyConfig": { + "type": "string", + "description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server." + }, + "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." + }, + "headers": { + "type": "object", + "description": "Custom HTTP headers to be added to all responses.", + "propertyNames": { "pattern": "^[-_A-Za-z0-9]+$" }, + "additionalProperties": { "type": "string" } + }, + "open": { + "type": "boolean", + "description": "Opens the url in default browser.", + "default": false, + "alias": "o" + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging." + }, + "liveReload": { + "type": "boolean", + "description": "Whether to reload the page on change, using live-reload.", + "default": true + }, + "publicHost": { + "type": "string", + "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies." + }, + "allowedHosts": { + "type": "array", + "description": "List of hosts that are allowed to access the dev server.", + "default": [], + "items": { "type": "string" } + }, + "servePath": { + "type": "string", + "description": "The pathname where the app will be served." + }, + "disableHostCheck": { + "type": "boolean", + "description": "Don't verify connected clients are part of allowed hosts.", + "default": false + }, + "hmr": { + "type": "boolean", + "description": "Enable hot module replacement.", + "default": false + }, + "watch": { + "type": "boolean", + "description": "Rebuild on change.", + "default": true + }, + "poll": { + "type": "number", + "description": "Enable and define the file watching poll time period in milliseconds." + }, + "devRemotes": { + "type": "array", + "items": { "type": "string" }, + "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 for when the `host` application is using a `remote` that does not live in the same workspace as the `host`." + }, + "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." + }, + "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." + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.", + "x-priority": "important" + } + }, + "additionalProperties": false, + "anyOf": [ + { "required": ["buildTarget"] }, + { "required": ["browserTarget"] } + ], + "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/angular: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/angular: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\": [\"remote1\", \"remote2\"]\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" + }, + "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/module-federation-dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/module-federation-dev-ssr.json b/docs/generated/packages/angular/executors/module-federation-dev-ssr.json new file mode 100644 index 0000000000000..28330f038d446 --- /dev/null +++ b/docs/generated/packages/angular/executors/module-federation-dev-ssr.json @@ -0,0 +1,96 @@ +{ + "name": "module-federation-dev-ssr", + "implementation": "/packages/angular/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.ts", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Module Federation SSR Dev Server Target", + "description": "SSR Dev Server target options for Module Federation host applications.", + "type": "object", + "properties": { + "browserTarget": { + "type": "string", + "description": "Browser target to build.", + "pattern": ".+:.+(:.+)?" + }, + "serverTarget": { + "type": "string", + "description": "Server target to build.", + "pattern": ".+:.+(:.+)?" + }, + "host": { + "type": "string", + "description": "Host to listen on.", + "default": "localhost" + }, + "port": { + "type": "number", + "default": 4200, + "description": "Port to start the development server at. Default is 4200. Pass 0 to get a dynamically assigned port." + }, + "publicHost": { + "type": "string", + "description": "The URL that the browser client should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies." + }, + "open": { + "type": "boolean", + "description": "Opens the url in default browser.", + "default": false, + "alias": "o" + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console while building." + }, + "inspect": { + "type": "boolean", + "description": "Launch the development server in inspector mode and listen on address and port '127.0.0.1:9229'.", + "default": false + }, + "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." + }, + "proxyConfig": { + "type": "string", + "description": "Proxy configuration file." + }, + "devRemotes": { + "type": "array", + "items": { "type": "string" }, + "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." + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging.", + "default": false + }, + "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." + } + }, + "additionalProperties": false, + "required": ["browserTarget", "serverTarget"], + "presets": [] + }, + "description": "The module-federation-dev-ssr executor is reserved exclusively for use with host Module Federation applications that use SSR. It allows the user to specify which remote applications should be served with the host.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/builders/module-federation-dev-ssr/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/ng-packagr-lite.json b/docs/generated/packages/angular/executors/ng-packagr-lite.json new file mode 100644 index 0000000000000..c449cab34914e --- /dev/null +++ b/docs/generated/packages/angular/executors/ng-packagr-lite.json @@ -0,0 +1,52 @@ +{ + "name": "ng-packagr-lite", + "implementation": "/packages/angular/src/executors/ng-packagr-lite/ng-packagr-lite.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "title": "ng-packagr Target", + "description": "Builds a library with support for incremental builds.\n\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nx/angular:package` executor but with some key differences:\n- For supported Angular versions lower than v16, it doesn't run `ngcc` automatically (`ngcc` is no longer available from Angular v16 onwards, for lower versions, it needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2022 bundles (ESM2020 for supported Angular versions lower than v16).", + "cli": "nx", + "type": "object", + "presets": [ + { + "name": "Buildable Library with Tailwind", + "keys": ["project", "tailwindConfig"] + }, + { + "name": "Updating Project Dependencies for Buildable Library", + "keys": ["project"] + } + ], + "properties": { + "project": { + "type": "string", + "description": "The file path for the ng-packagr configuration file, relative to the workspace root." + }, + "tsConfig": { + "type": "string", + "description": "The full path for the TypeScript configuration file, relative to the workspace root.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "watch": { + "type": "boolean", + "description": "Whether to run a build when any file changes.", + "default": false + }, + "tailwindConfig": { + "type": "string", + "description": "The full path for the Tailwind configuration file, relative to the workspace root. If not provided and a `tailwind.config.js` file exists in the project or workspace root, it will be used. Otherwise, Tailwind will not be configured." + } + }, + "additionalProperties": false, + "required": ["project"] + }, + "description": "Builds a library with support for incremental builds.\nThis executor is meant to be used with buildable libraries in an incremental build scenario. It is similar to the `@nrwl/angular:package` executor but with some key differences:\n- It doesn't run `ngcc` automatically (`ngcc` needs to be run separately beforehand if needed, this can be done in a `postinstall` hook on `package.json`).\n- It only produces ESM2020 bundles.\n- It doesn't generate package exports in the `package.json`.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/ng-packagr-lite/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/package.json b/docs/generated/packages/angular/executors/package.json new file mode 100644 index 0000000000000..ec1861b1f4ac2 --- /dev/null +++ b/docs/generated/packages/angular/executors/package.json @@ -0,0 +1,61 @@ +{ + "name": "package", + "implementation": "/packages/angular/src/executors/package/package.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "title": "ng-packagr Target", + "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\n\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", + "cli": "nx", + "type": "object", + "presets": [ + { + "name": "Publishable Library with Tailwind", + "keys": [ + "project", + "tailwindConfig" + ] + }, + { + "name": "Updating Project Dependencies for Publishable Library", + "keys": [ + "project" + ] + } + ], + "properties": { + "project": { + "type": "string", + "description": "The file path for the ng-packagr configuration file, relative to the workspace root." + }, + "tsConfig": { + "type": "string", + "description": "The full path for the TypeScript configuration file, relative to the workspace root.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "watch": { + "type": "boolean", + "description": "Whether to run a build when any file changes.", + "default": false + }, + "tailwindConfig": { + "type": "string", + "description": "The full path for the Tailwind configuration file, relative to the workspace root. If not provided and a `tailwind.config.js` file exists in the project or workspace root, it will be used. Otherwise, Tailwind will not be configured. _Note: starting with Angular v17, this option is no longer used and the configuration will be picked up if exists at the project or workspace root_.", + "x-completion-type": "file", + "x-completion-glob": "tailwind.config@(.js|.cjs|.mjs|.ts)" + } + }, + "additionalProperties": false, + "required": [ + "project" + ] + }, + "description": "Builds and packages an Angular library producing an output following the Angular Package Format (APF) to be distributed as an NPM package.\nThis executor is similar to the `@angular-devkit/build-angular:ng-packagr` with additional support for incremental builds.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/executors/package/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/webpack-browser.json b/docs/generated/packages/angular/executors/webpack-browser.json new file mode 100644 index 0000000000000..a40c5755854c0 --- /dev/null +++ b/docs/generated/packages/angular/executors/webpack-browser.json @@ -0,0 +1,698 @@ +{ + "name": "webpack-browser", + "implementation": "/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Webpack Browser", + "description": "The webpack-browser executor is very similar to the standard browser builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", + "examplesFile": "##### Using a custom webpack configuration\n\nThe executor supports providing a path to a custom webpack configuration. This allows you to customize how your Angular application is built. It currently supports the following types of webpack configurations:\n\n- `object`\n- `Function`\n- `Promise`\n\nThe executor will merge the provided configuration with the webpack configuration that Angular Devkit uses. The merge order is:\n\n- Angular Devkit Configuration\n- Provided Configuration\n\nTo use a custom webpack configuration when building your Angular application, change the `build` target in your `project.json` to match the following:\n\n```typescript\n\"build\": {\n \"executor\": \"@nx/angular:webpack-browser\",\n \"options\": {\n ...\n \"customWebpackConfig\": {\n \"path\": \"apps/appName/webpack.config.js\"\n }\n }\n}\n```\n\n##### Incrementally Building your Application\n\nThe executor supports incrementally building your Angular application by building the workspace libraries it depends on _(that have been marked as buildable)_ and then building your application using the built source of the libraries.\n\nThis can improve build time as the building of the workspace libraries can be cached, meaning they only have to be rebuilt if they have changed.\n\n> Note: There may be some additional overhead in the linking of the built libraries' sources which may reduce the overall improvement in build time. Therefore this approach only benefits large applications and would likely have a negative impact on small and medium applications. \n> You can read more about when to use incremental builds [here](/concepts/more-concepts/incremental-builds#when-should-i-use-incremental-builds).\n\nTo allow your Angular application to take advantage of incremental building, change the `build` target in your `project.json` to match the following:\n\n```typescript\n\"build\": {\n \"executor\": \"@nx/angular:webpack-browser\",\n \"options\": {\n ...\n \"buildLibsFromSource\": false\n }\n}\n```\n", + "type": "object", + "presets": [ + { + "name": "Custom Webpack Configuration", + "keys": [ + "outputs", + "outputPath", + "index", + "main", + "polyfills", + "tsConfig", + "assets", + "styles", + "scripts", + "customWebpackConfig" + ] + } + ], + "properties": { + "assets": { + "type": "array", + "description": "List of static application assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "main": { + "type": "string", + "description": "The full path for the main entry point to the app, relative to the current workspace." + }, + "polyfills": { + "description": "Polyfills to be included in the build.", + "oneOf": [ + { + "type": "array", + "description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.", + "items": { "type": "string", "uniqueItems": true }, + "default": [] + }, + { + "type": "string", + "description": "The full path for the polyfills file, relative to the current workspace or a module specifier. Example: 'zone.js'." + } + ] + }, + "tsConfig": { + "type": "string", + "description": "The full path for the TypeScript configuration file, relative to the current workspace." + }, + "scripts": { + "description": "Global scripts to be included in the build.", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "pattern": "\\.[cm]?jsx?$" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "pattern": "\\.[cm]?jsx?$" + } + ] + } + }, + "styles": { + "description": "Global styles to be included in the build.", + "type": "array", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "pattern": "\\.(?:css|scss|sass|less)$" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "pattern": "\\.(?:css|scss|sass|less)$" + } + ] + }, + "x-priority": "important" + }, + "inlineStyleLanguage": { + "description": "The stylesheet language to use for the application's inline component styles.", + "type": "string", + "default": "css", + "enum": ["css", "less", "sass", "scss"] + }, + "stylePreprocessorOptions": { + "description": "Options to pass to style preprocessors.", + "type": "object", + "properties": { + "includePaths": { + "description": "Paths to include. Paths will be resolved to project root.", + "type": "array", + "items": { "type": "string" }, + "default": [] + } + }, + "additionalProperties": false + }, + "optimization": { + "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", + "x-user-analytics": 16, + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Enables optimization of the scripts output.", + "default": true + }, + "styles": { + "description": "Enables optimization of the styles output.", + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "minify": { + "type": "boolean", + "description": "Minify CSS definitions by removing extraneous whitespace and comments, merging identifiers and minimizing values.", + "default": true + }, + "inlineCritical": { + "type": "boolean", + "description": "Extract and inline critical CSS definitions to improve first paint time.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "fonts": { + "description": "Enables optimization for fonts. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", + "default": true, + "oneOf": [ + { + "type": "object", + "properties": { + "inline": { + "type": "boolean", + "description": "Reduce render blocking requests by inlining external Google Fonts and Adobe Fonts CSS definitions in the application's HTML index file. This option requires internet access. `HTTPS_PROXY` environment variable can be used to specify a proxy server.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "fileReplacements": { + "description": "Replace compilation source files with other compilation source files in the build.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "src": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "replaceWith": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["src", "replaceWith"] + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["replace", "with"] + } + ] + }, + "default": [] + }, + "outputPath": { + "type": "string", + "description": "The full path for the new output directory, relative to the current workspace." + }, + "resourcesOutputPath": { + "type": "string", + "description": "The path where style resources will be placed, relative to outputPath.", + "default": "" + }, + "aot": { + "type": "boolean", + "description": "Build using Ahead of Time compilation.", + "x-user-analytics": 13, + "default": true + }, + "sourceMap": { + "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", + "default": false, + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Output source maps for all scripts.", + "default": true + }, + "styles": { + "type": "boolean", + "description": "Output source maps for all styles.", + "default": true + }, + "hidden": { + "type": "boolean", + "description": "Output source maps used for error reporting tools.", + "default": false + }, + "vendor": { + "type": "boolean", + "description": "Resolve vendor packages source maps.", + "default": false + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "vendorChunk": { + "type": "boolean", + "description": "Generate a separate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time.", + "default": false + }, + "commonChunk": { + "type": "boolean", + "description": "Generate a separate bundle containing code used across multiple bundles.", + "default": true + }, + "baseHref": { + "type": "string", + "description": "Base url for the application being built." + }, + "deployUrl": { + "type": "string", + "description": "URL where files will be deployed.", + "x-deprecated": "Use `baseHref` option, `APP_BASE_HREF` DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url." + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging.", + "default": false + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console while building.", + "default": true + }, + "i18nMissingTranslation": { + "type": "string", + "description": "How to handle missing translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "i18nDuplicateTranslation": { + "type": "string", + "description": "How to handle duplicate translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "localize": { + "description": "Translate the bundles in one or more locales.", + "oneOf": [ + { "type": "boolean", "description": "Translate all locales." }, + { + "type": "array", + "description": "List of locales ID's to translate.", + "minItems": 1, + "items": { + "type": "string", + "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" + } + } + ] + }, + "watch": { + "type": "boolean", + "description": "Run build when files change.", + "default": false + }, + "outputHashing": { + "type": "string", + "description": "Define the output filename cache-busting hashing mode.", + "default": "none", + "enum": ["none", "all", "media", "bundles"] + }, + "poll": { + "type": "number", + "description": "Enable and define the file watching poll time period in milliseconds." + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Delete the output path before building.", + "default": true + }, + "preserveSymlinks": { + "type": "boolean", + "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." + }, + "extractLicenses": { + "type": "boolean", + "description": "Extract all licenses in a separate file.", + "default": true + }, + "buildOptimizer": { + "type": "boolean", + "description": "Enables advanced build optimizations when using the 'aot' option.", + "default": true + }, + "namedChunks": { + "type": "boolean", + "description": "Use file name for lazy loaded chunks.", + "default": false + }, + "subresourceIntegrity": { + "type": "boolean", + "description": "Enables the use of subresource integrity validation.", + "default": false + }, + "serviceWorker": { + "type": "boolean", + "description": "Generates a service worker config for production builds.", + "default": false + }, + "ngswConfigPath": { + "type": "string", + "description": "Path to ngsw-config.json." + }, + "index": { + "description": "Configures the generation of the application's HTML index.", + "oneOf": [ + { + "type": "string", + "description": "The path of a file to use for the application's HTML index. The filename of the specified path will be used for the generated file and will be created in the root of the application's configured output path." + }, + { + "type": "object", + "description": "", + "properties": { + "input": { + "type": "string", + "minLength": 1, + "description": "The path of a file to use for the application's generated HTML index." + }, + "output": { + "type": "string", + "minLength": 1, + "default": "index.html", + "description": "The output path of the application's generated HTML index file. The full provided path will be used and will be considered relative to the application's configured output path." + } + }, + "required": ["input"] + } + ] + }, + "statsJson": { + "type": "boolean", + "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.", + "default": false + }, + "budgets": { + "description": "Budget thresholds to ensure parts of your application stay within boundaries which you set.", + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of budget.", + "enum": [ + "all", + "allScript", + "any", + "anyScript", + "anyComponentStyle", + "bundle", + "initial" + ] + }, + "name": { + "type": "string", + "description": "The name of the bundle." + }, + "baseline": { + "type": "string", + "description": "The baseline size for comparison." + }, + "maximumWarning": { + "type": "string", + "description": "The maximum threshold for warning relative to the baseline." + }, + "maximumError": { + "type": "string", + "description": "The maximum threshold for error relative to the baseline." + }, + "minimumWarning": { + "type": "string", + "description": "The minimum threshold for warning relative to the baseline." + }, + "minimumError": { + "type": "string", + "description": "The minimum threshold for error relative to the baseline." + }, + "warning": { + "type": "string", + "description": "The threshold for warning relative to the baseline (min & max)." + }, + "error": { + "type": "string", + "description": "The threshold for error relative to the baseline (min & max)." + } + }, + "additionalProperties": false, + "required": ["type"] + }, + "default": [] + }, + "webWorkerTsConfig": { + "type": "string", + "description": "TypeScript configuration for Web Worker modules." + }, + "crossOrigin": { + "type": "string", + "description": "Define the crossorigin attribute setting of elements that provide CORS support.", + "default": "none", + "enum": ["none", "anonymous", "use-credentials"] + }, + "allowedCommonJsDependencies": { + "description": "A list of CommonJS or AMD packages that are allowed to be used without a build time warning. Use `'*'` to allow all.", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "customWebpackConfig": { + "description": "Options for additional webpack configurations.", + "type": "object", + "properties": { + "path": { + "description": "Path to additional webpack configuration, relative to the workspace root.", + "type": "string" + } + }, + "x-priority": "important", + "additionalProperties": false + }, + "indexHtmlTransformer": { + "description": "Path to transformer function to transform the index.html", + "type": "string", + "alias": "indexFileTransformer" + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + } + }, + "additionalProperties": false, + "required": ["outputPath", "index", "main", "tsConfig"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + }, + "fileReplacement": { + "oneOf": [ + { + "type": "object", + "properties": { + "src": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "replaceWith": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["src", "replaceWith"] + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["replace", "with"] + } + ] + }, + "budget": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of budget.", + "enum": [ + "all", + "allScript", + "any", + "anyScript", + "anyComponentStyle", + "bundle", + "initial" + ] + }, + "name": { + "type": "string", + "description": "The name of the bundle." + }, + "baseline": { + "type": "string", + "description": "The baseline size for comparison." + }, + "maximumWarning": { + "type": "string", + "description": "The maximum threshold for warning relative to the baseline." + }, + "maximumError": { + "type": "string", + "description": "The maximum threshold for error relative to the baseline." + }, + "minimumWarning": { + "type": "string", + "description": "The minimum threshold for warning relative to the baseline." + }, + "minimumError": { + "type": "string", + "description": "The minimum threshold for error relative to the baseline." + }, + "warning": { + "type": "string", + "description": "The threshold for warning relative to the baseline (min & max)." + }, + "error": { + "type": "string", + "description": "The threshold for error relative to the baseline (min & max)." + } + }, + "additionalProperties": false, + "required": ["type"] + } + } + }, + "description": "The `webpack-browser` executor is very similar to the standard `browser` builder provided by the Angular Devkit. It allows you to build your Angular application to a build artifact that can be hosted online. There are some key differences: \n- Supports Custom Webpack Configurations \n- Supports Incremental Building", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/builders/webpack-browser/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/executors/webpack-server.json b/docs/generated/packages/angular/executors/webpack-server.json new file mode 100644 index 0000000000000..6456956baaef1 --- /dev/null +++ b/docs/generated/packages/angular/executors/webpack-server.json @@ -0,0 +1,378 @@ +{ + "name": "webpack-server", + "implementation": "/packages/angular/src/builders/webpack-server/webpack-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "http://json-schema.org/draft-07/schema", + "title": "Schema for Webpack Server", + "description": "The webpack-server executor is very similar to the standard server builder provided by the Angular Devkit. It is usually used in tandem with `@nx/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", + "type": "object", + "properties": { + "assets": { + "type": "array", + "description": "List of static application assets. _Note: only supported in Angular versions >= 15.1.0_", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "main": { + "type": "string", + "description": "The full path for the main entry point to the server app, relative to the current workspace." + }, + "tsConfig": { + "type": "string", + "default": "tsconfig.app.json", + "description": "The full path for the TypeScript configuration file, relative to the current workspace." + }, + "inlineStyleLanguage": { + "description": "The stylesheet language to use for the application's inline component styles.", + "type": "string", + "default": "css", + "enum": ["css", "less", "sass", "scss"] + }, + "stylePreprocessorOptions": { + "description": "Options to pass to style preprocessors", + "type": "object", + "properties": { + "includePaths": { + "description": "Paths to include. Paths will be resolved to project root.", + "type": "array", + "items": { "type": "string" }, + "default": [] + } + }, + "additionalProperties": false + }, + "optimization": { + "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking and dead-code elimination. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.", + "default": true, + "x-user-analytics": "ep.ng_optimization", + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Enables optimization of the scripts output.", + "default": true + }, + "styles": { + "type": "boolean", + "description": "Enables optimization of the styles output.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "fileReplacements": { + "description": "Replace compilation source files with other compilation source files in the build.", + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "src": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "replaceWith": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["src", "replaceWith"] + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["replace", "with"] + } + ] + }, + "default": [] + }, + "outputPath": { + "type": "string", + "description": "The full path for the new output directory, relative to the current workspace.\n\nBy default, writes output to a folder named dist/ in the current project." + }, + "resourcesOutputPath": { + "type": "string", + "description": "The path where style resources will be placed, relative to outputPath." + }, + "sourceMap": { + "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.", + "default": false, + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Output source maps for all scripts.", + "default": true + }, + "styles": { + "type": "boolean", + "description": "Output source maps for all styles.", + "default": true + }, + "hidden": { + "type": "boolean", + "description": "Output source maps used for error reporting tools.", + "default": false + }, + "vendor": { + "type": "boolean", + "description": "Resolve vendor packages source maps.", + "default": false + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "deployUrl": { + "type": "string", + "description": "URL where files will be deployed.", + "x-deprecated": "Use \"baseHref\" browser builder option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url." + }, + "vendorChunk": { + "type": "boolean", + "description": "Generate a separate bundle containing only vendor libraries. This option should only be used for development to reduce the incremental compilation time. _Note: supported in Angular versions >= 15.1.0_", + "default": false + }, + "verbose": { + "type": "boolean", + "description": "Adds more details to output logging.", + "default": false + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console while building.", + "default": true + }, + "i18nMissingTranslation": { + "type": "string", + "description": "How to handle missing translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "i18nDuplicateTranslation": { + "type": "string", + "description": "How to handle duplicate translations for i18n.", + "enum": ["warning", "error", "ignore"], + "default": "warning" + }, + "localize": { + "description": "Translate the bundles in one or more locales.", + "oneOf": [ + { "type": "boolean", "description": "Translate all locales." }, + { + "type": "array", + "description": "List of locales ID's to translate.", + "minItems": 1, + "items": { + "type": "string", + "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$" + } + } + ] + }, + "outputHashing": { + "type": "string", + "description": "Define the output filename cache-busting hashing mode.", + "default": "none", + "enum": ["none", "all", "media", "bundles"] + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Delete the output path before building.", + "default": true + }, + "preserveSymlinks": { + "type": "boolean", + "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set." + }, + "extractLicenses": { + "type": "boolean", + "description": "Extract all licenses in a separate file, in the case of production builds only.", + "default": true + }, + "buildOptimizer": { + "type": "boolean", + "description": "Enables advanced build optimizations. _Note: only supported in Angular versions >= 16.0.0_.", + "default": true + }, + "namedChunks": { + "type": "boolean", + "description": "Use file name for lazy loaded chunks.", + "default": false + }, + "externalDependencies": { + "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "statsJson": { + "type": "boolean", + "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.", + "default": false + }, + "watch": { + "type": "boolean", + "description": "Run build when files change.", + "default": false + }, + "poll": { + "type": "number", + "description": "Enable and define the file watching poll time period in milliseconds." + }, + "customWebpackConfig": { + "description": "Options for additional webpack configurations.", + "type": "object", + "properties": { + "path": { + "description": "Path to additional webpack configuration, relative to the workspace root.", + "type": "string" + } + }, + "x-priority": "important", + "additionalProperties": false + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true, + "x-priority": "important" + } + }, + "additionalProperties": false, + "required": ["outputPath", "main", "tsConfig"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "followSymlinks": { + "type": "boolean", + "default": false, + "description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched." + }, + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + }, + "fileReplacement": { + "oneOf": [ + { + "type": "object", + "properties": { + "src": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "replaceWith": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["src", "replaceWith"] + }, + { + "type": "object", + "properties": { + "replace": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + }, + "with": { + "type": "string", + "pattern": "\\.(([cm]?j|t)sx?|json)$" + } + }, + "additionalProperties": false, + "required": ["replace", "with"] + } + ] + } + }, + "presets": [] + }, + "description": "The `webpack-server` executor is very similar to the standard `server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration and NgUniversal for SSR.", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/builders/webpack-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/angular/generators/add-linting.json b/docs/generated/packages/angular/generators/add-linting.json new file mode 100644 index 0000000000000..23e2fa808dec0 --- /dev/null +++ b/docs/generated/packages/angular/generators/add-linting.json @@ -0,0 +1,62 @@ +{ + "name": "add-linting", + "factory": "./src/generators/add-linting/add-linting", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularAddLintingGenerator", + "title": "Add linting to an Angular project.", + "description": "Adds linting configuration to an Angular project.", + "cli": "nx", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:add-linting --prefix=cool --projectName=cool-lib --projectRoot=libs/cool-lib", + "description": "Adds ESLint with Angular-specific rules for an existing project named `cool-lib` with the [prefix](https://angular.io/guide/styleguide#style-02-07) `cool`" + } + ], + "properties": { + "prefix": { + "type": "string", + "format": "html-selector", + "description": "The prefix to apply to generated selectors.", + "x-priority": "important" + }, + "projectName": { + "type": "string", + "description": "The name of the project.", + "x-priority": "important" + }, + "projectRoot": { + "type": "string", + "description": "The path to the root of the selected project.", + "x-priority": "important" + }, + "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 + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": ["prefix", "projectName", "projectRoot"], + "presets": [] + }, + "description": "Adds linting configuration to an Angular project.", + "hidden": true, + "implementation": "/packages/angular/src/generators/add-linting/add-linting.ts", + "aliases": [], + "path": "/packages/angular/src/generators/add-linting/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/application.json b/docs/generated/packages/angular/generators/application.json new file mode 100644 index 0000000000000..6123da361f897 --- /dev/null +++ b/docs/generated/packages/angular/generators/application.json @@ -0,0 +1,198 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorNxApp", + "title": "Creates an Angular application.", + "description": "Creates an Angular application.", + "type": "object", + "cli": "nx", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "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 ]" + } + ] + } + }, + "routing": { + "type": "boolean", + "description": "Enable routing for the application.", + "default": true, + "x-priority": "important" + }, + "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.", + "default": "app", + "alias": "p" + }, + "skipTests": { + "description": "Skip creating spec files.", + "type": "boolean", + "default": false, + "alias": "S" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "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 + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "port": { + "type": "number", + "description": "The port at which the remote application should be served." + }, + "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 + }, + "standalone": { + "description": "Generate an application that is setup to use standalone components.", + "type": "boolean", + "default": true, + "x-priority": "important" + }, + "rootProject": { + "description": "Create an application at the root of the workspace.", + "type": "boolean", + "default": false, + "hidden": true, + "x-priority": "internal" + }, + "minimal": { + "description": "Generate a Angular app with a minimal setup.", + "type": "boolean", + "default": false + }, + "bundler": { + "description": "Bundler to use to build the application. It defaults to `esbuild` for Angular versions >= 17.0.0. Otherwise, it defaults to `webpack`. _Note: The `esbuild` bundler is only considered stable from Angular v17._", + "type": "string", + "enum": ["webpack", "esbuild"], + "x-prompt": "Which bundler do you want to use to build the application?", + "x-priority": "important" + }, + "ssr": { + "description": "Creates an application with Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) enabled.", + "type": "boolean", + "x-prompt": "Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)?", + "default": false + } + }, + "additionalProperties": false, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/angular:application my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Specify directory and style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/angular:app my-app --directory=my-dir/my-app --style=scss\n```\n\n{% /tab %}\n\n{% tab label=\"Single File Components application\" %}\n\nCreate an application with Single File Components (inline styles and inline templates):\n\n```bash\nnx g @nx/angular:app my-app --inlineStyle --inlineTemplate\n```\n\n{% /tab %}\n\n{% tab label=\"Set custom prefix and tags\" %}\n\nSet the prefix to apply to generated selectors and add tags to the application (used for linting).\n\n```bash\nnx g @nx/angular:app my-app --prefix=admin --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Creates an Angular application.", + "implementation": "/packages/angular/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/angular/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/component-cypress-spec.json b/docs/generated/packages/angular/generators/component-cypress-spec.json new file mode 100644 index 0000000000000..dadc9cd563742 --- /dev/null +++ b/docs/generated/packages/angular/generators/component-cypress-spec.json @@ -0,0 +1,74 @@ +{ + "name": "component-cypress-spec", + "factory": "./src/generators/component-cypress-spec/component-cypress-spec", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularComponentCypressSpecGenerator", + "type": "object", + "cli": "nx", + "description": "Creates a Cypress spec for a UI component that has a story.", + "properties": { + "projectName": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "examples": ["ui-samples"], + "x-priority": "important" + }, + "projectPath": { + "type": "string", + "description": "Path to the project.", + "examples": ["libs/ui-samples"], + "x-priority": "important" + }, + "componentName": { + "type": "string", + "description": "Class name of the component.", + "examples": ["AwesomeComponent"], + "x-priority": "important" + }, + "componentPath": { + "type": "string", + "description": "Relative path to the component file from the project root.", + "examples": ["awesome"], + "x-priority": "important" + }, + "componentFileName": { + "type": "string", + "description": "Component file name without the `.ts` extension.", + "examples": ["awesome.component"], + "x-priority": "important" + }, + "cypressProject": { + "type": "string", + "description": "The Cypress project to generate the stories under. By default, inferred from `projectName`." + }, + "specDirectory": { + "type": "string", + "description": "Directory where to place the generated spec file. By default matches the value of the `componentPath` option." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": [ + "projectName", + "projectPath", + "componentName", + "componentPath", + "componentFileName" + ], + "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\nCreate a cypress spec for a component that is set up with Storybook.\n\n```bash\nnx g @nx/angular:component-cypress-spec --componentName=MyButtonComponent --componentPath=libs/ui/src/lib/button/button.component.ts --componentFileName=button.component --projectName=ui --projectPath=libs/ui\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Creates a Cypress spec for a UI component that has a story.", + "hidden": true, + "implementation": "/packages/angular/src/generators/component-cypress-spec/component-cypress-spec.ts", + "aliases": [], + "path": "/packages/angular/src/generators/component-cypress-spec/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/component-story.json b/docs/generated/packages/angular/generators/component-story.json new file mode 100644 index 0000000000000..9332a52382030 --- /dev/null +++ b/docs/generated/packages/angular/generators/component-story.json @@ -0,0 +1,64 @@ +{ + "name": "component-story", + "factory": "./src/generators/component-story/component-story", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularComponentStoryGenerator", + "type": "object", + "cli": "nx", + "description": "Creates a `stories.ts` file for an Angular component.", + "properties": { + "projectPath": { + "type": "string", + "description": "Path to the project.", + "examples": ["libs/ui-samples"], + "x-priority": "important" + }, + "componentName": { + "type": "string", + "description": "Class name of the component.", + "examples": ["AwesomeComponent"], + "x-priority": "important" + }, + "componentPath": { + "type": "string", + "description": "Relative path to the component file from the project root.", + "examples": ["awesome"], + "x-priority": "important" + }, + "componentFileName": { + "type": "string", + "description": "Component file name without the `.ts` extension.", + "examples": ["awesome.component"], + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "default": true + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": [ + "projectPath", + "componentName", + "componentPath", + "componentFileName" + ], + "presets": [] + }, + "description": "Creates a stories.ts file for a component.", + "hidden": true, + "implementation": "/packages/angular/src/generators/component-story/component-story.ts", + "aliases": [], + "path": "/packages/angular/src/generators/component-story/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/component-test.json b/docs/generated/packages/angular/generators/component-test.json new file mode 100644 index 0000000000000..7a3a016ed9c0e --- /dev/null +++ b/docs/generated/packages/angular/generators/component-test.json @@ -0,0 +1,63 @@ +{ + "name": "component-test", + "factory": "./src/generators/component-test/component-test", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularComponentTestGenerator", + "type": "object", + "cli": "nx", + "description": "Create a `*.cy.ts` file for Cypress component testing for an Angular component.", + "properties": { + "project": { + "type": "string", + "description": "The name of the project where the component is located.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-prompt": "What project is the component located in?", + "x-priority": "important" + }, + "componentName": { + "type": "string", + "description": "Class name of the component to create a test for.", + "examples": ["MyFancyButtonComponent"], + "x-prompt": "What is the class name of the component to create a test for?", + "x-priority": "important" + }, + "componentDir": { + "type": "string", + "description": "Relative path to the folder that contains the component from the project root.", + "examples": ["src/lib/my-fancy-button"], + "x-prompt": "What is the path to the component directory from the project root?", + "x-priority": "important" + }, + "componentFileName": { + "type": "string", + "description": "File name that contains the component without the `.ts` extension.", + "examples": ["my-fancy-button.component"], + "x-prompt": "What is the file name that contains the component?", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": [ + "project", + "componentName", + "componentDir", + "componentFileName" + ], + "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nAngular component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you're wanting to create Cypress tests for a Storybook story, then check out the [component-cypress-spec generator docs](/packages/angular/generators/component-cypress-spec)\n\nIf you're wanting to create Storybook stories for a component, then check out the [stories generator docs](/packages/angular/generators/stories) or [component-story generator docs](/packages/angular/generators/component-cypress-spec)\n{% /callout %}\n\nThis generator is used to create a Cypress component test file for a given Angular component.\n\n```shell\nnx g @nx/angular:component-test --project=my-cool-angular-project --componentName=CoolBtnComponent --componentDir=src/cool-btn --componentFileName=cool-btn.component\n```\n\nTest file are generated with the `.cy.ts` suffix. this is to prevent colliding with any existing `.spec.` files contained in the project.\n\nIt's currently expected the generated `.cy.ts` file will live side by side with the component. It is also assumed the project is already setup for component testing. If it isn't, then you can run the [cypress-component-project generator](/packages/angular/generators/cypress-component-configuration) to set up the project for component testing.\n", + "presets": [] + }, + "description": "Creates a cypress component test file for a component.", + "implementation": "/packages/angular/src/generators/component-test/component-test.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/component-test/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/component.json b/docs/generated/packages/angular/generators/component.json new file mode 100644 index 0000000000000..fd3f9f376d951 --- /dev/null +++ b/docs/generated/packages/angular/generators/component.json @@ -0,0 +1,144 @@ +{ + "name": "component", + "factory": "./src/generators/component/component#componentGeneratorInternal", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "SchematicsAngularComponent", + "title": "Angular Component Schema", + "cli": "nx", + "type": "object", + "description": "Creates a new Angular component.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir", "path"], + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "prefix": { + "type": "string", + "description": "The prefix to apply to the generated component selector.", + "alias": "p" + }, + "displayBlock": { + "description": "Specifies if the style will contain `:host { display: block; }`.", + "type": "boolean", + "default": false, + "alias": "b" + }, + "inlineStyle": { + "description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.", + "type": "boolean", + "default": false, + "alias": "s" + }, + "inlineTemplate": { + "description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.", + "type": "boolean", + "default": false, + "alias": "t" + }, + "standalone": { + "description": "Whether the generated component is standalone.", + "type": "boolean", + "default": true, + "x-priority": "important" + }, + "viewEncapsulation": { + "description": "The view encapsulation strategy to use in the new component.", + "enum": ["Emulated", "None", "ShadowDom"], + "type": "string", + "alias": "v" + }, + "changeDetection": { + "description": "The change detection strategy to use in the new component.", + "enum": ["Default", "OnPush"], + "type": "string", + "default": "Default", + "alias": "c" + }, + "module": { + "type": "string", + "description": "The filename or path to the NgModule that will declare this component.", + "alias": "m" + }, + "style": { + "description": "The file extension or preprocessor to use for style files, or `none` to skip generating the style file.", + "type": "string", + "default": "css", + "enum": ["css", "scss", "sass", "less", "none"] + }, + "skipTests": { + "type": "boolean", + "description": "Do not create `spec.ts` test files for the new component.", + "default": false + }, + "flat": { + "type": "boolean", + "description": "Create the new files at the top level of the current project.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "skipImport": { + "type": "boolean", + "description": "Do not import this component into the owning NgModule.", + "default": false + }, + "selector": { + "type": "string", + "format": "html-selector", + "description": "The HTML selector to use for this component." + }, + "skipSelector": { + "type": "boolean", + "default": false, + "description": "Specifies if the component should have a selector or not." + }, + "type": { + "type": "string", + "description": "Adds a developer-defined type to the filename, in the format `name.type.ts`.", + "default": "component" + }, + "export": { + "type": "boolean", + "description": "Specifies if the component should be exported in the declaring `NgModule`. Additionally, if the project is a library, the component will be exported from the project's entry point (normally `index.ts`) if the module it belongs to is also exported or if the component is standalone.", + "default": false, + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Component\" %}\n\nCreate a component named `my-component`:\n\n```bash\nnx g @nx/angular:component my-component\n```\n\n{% /tab %}\n\n{% tab label=\"Single File Component\" %}\n\nCreate a component named `my-component` with inline styles and inline template:\n\n```bash\nnx g @nx/angular:component my-component --inlineStyle --inlineTemplate\n```\n\n{% /tab %}\n\n{% tab label=\"Component with OnPush Change Detection Strategy\" %}\n\nCreate a component named `my-component` with OnPush Change Detection Strategy:\n\n```bash\nnx g @nx/angular:component my-component --changeDetection=OnPush\n```\n\n{% /tab %}\n", + "presets": [] + }, + "aliases": ["c"], + "description": "Generate an Angular Component.", + "implementation": "/packages/angular/src/generators/component/component#componentGeneratorInternal.ts", + "hidden": false, + "path": "/packages/angular/src/generators/component/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/convert-to-application-executor.json b/docs/generated/packages/angular/generators/convert-to-application-executor.json new file mode 100644 index 0000000000000..f394734b7eb98 --- /dev/null +++ b/docs/generated/packages/angular/generators/convert-to-application-executor.json @@ -0,0 +1,34 @@ +{ + "name": "convert-to-application-executor", + "factory": "./src/generators/convert-to-application-executor/convert-to-application-executor", + "schema": { + "$schema": "http://json-schema.org/schema", + "$id": "NxAngularConvertToApplicationExecutorGenerator", + "cli": "nx", + "title": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", + "description": "Converts a project or all projects using one of the `@angular-devkit/build-angular:browser`, `@angular-devkit/build-angular:browser-esbuild`, `@nx/angular:browser` and `@nx/angular:browser-esbuild` executors to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. If the converted target is using one of the `@nx/angular` executors, the `@nx/angular:application` executor will be used. Otherwise, the `@angular-devkit/build-angular:application` builder will be used.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "Name of the Angular application project to convert. It has to contain a target using one of the `@angular-devkit/build-angular:browser`, `@angular-devkit/build-angular:browser-esbuild`, `@nx/angular:browser` and `@nx/angular:browser-esbuild` executors. If not specified, all projects with such targets will be converted.", + "$default": { "$source": "argv", "index": 0 }, + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "presets": [] + }, + "description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.", + "implementation": "/packages/angular/src/generators/convert-to-application-executor/convert-to-application-executor.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/convert-to-application-executor/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/convert-to-with-mf.json b/docs/generated/packages/angular/generators/convert-to-with-mf.json new file mode 100644 index 0000000000000..0c2375af875f6 --- /dev/null +++ b/docs/generated/packages/angular/generators/convert-to-with-mf.json @@ -0,0 +1,41 @@ +{ + "name": "convert-to-with-mf", + "factory": "./src/generators/convert-to-with-mf/convert-to-with-mf", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "ConvertToWithMFGenerator", + "cli": "nx", + "title": "Convert to withModuleFederation Generator Options Schema", + "type": "object", + "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}.", + "additionalProperties": false, + "examples": [ + { + "command": "nx g @nx/angular:convert-to-with-mf --project mf-app", + "description": "Convert a Module Federation Project using legacy webpack config to use the `withModuleFederation` helper." + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the micro frontend project to migrate.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What micro frontend project would you like to migrate?", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "presets": [] + }, + "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n{% callout type=\"warning\" title=\"Overrides\" %}This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!{% /callout %}", + "implementation": "/packages/angular/src/generators/convert-to-with-mf/convert-to-with-mf.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/convert-to-with-mf/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/cypress-component-configuration.json b/docs/generated/packages/angular/generators/cypress-component-configuration.json new file mode 100644 index 0000000000000..581d200181ac4 --- /dev/null +++ b/docs/generated/packages/angular/generators/cypress-component-configuration.json @@ -0,0 +1,49 @@ +{ + "name": "cypress-component-configuration", + "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularCypressComponentConfigurationGenerator", + "type": "object", + "cli": "nx", + "title": "Add Cypress component testing", + "description": "Add a Cypress component testing configuration to an existing project. Cypress v10.7.0 or higher is required.", + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add cypress component testing configuration to", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-prompt": "What project should we add Cypress component testing to?", + "x-priority": "important" + }, + "generateTests": { + "type": "boolean", + "description": "Generate default component tests for existing components in the project", + "x-prompt": "Automatically generate tests for components declared in this project?", + "default": false + }, + "buildTarget": { + "type": "string", + "description": "A build target used to configure Cypress component testing in the format of `project:target[:configuration]`. The build target should be an angular app. If not provided we will try to infer it from your projects usage.", + "pattern": "^[^:\\s]+:[^:\\s]+(:\\S+)?$", + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nAngular component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you want to test components via Storybook with Cypress, then check out the [storybook-configuration generator docs](/nx-api/angular/generators/storybook-configuration). However, this functionality is deprecated, and will be removed on Nx version 18.\n{% /callout %}\n\nThis generator is designed to get your Angular project up and running with Cypress Component Testing.\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project\n```\n\nRunning this generator, adds the required files to the specified project with a preconfigured `cypress.config.ts` designed for Nx workspaces.\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/angular/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename),\n});\n```\n\nHere is an example on how to add custom options to the configuration\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/angular/plugins/component-testing';\n\nexport default defineConfig({\n component: {\n ...nxComponentTestingPreset(__filename),\n // extra options here\n },\n});\n```\n\n## Specifying a Build Target\n\nComponent testing requires a _build target_ to correctly run the component test dev server. This option can be manually specified with `--build-target=some-angular-app:build`, but Nx will infer this usage from the [project graph](/concepts/mental-model#the-project-graph) if one isn't provided.\n\nFor Angular projects, the build target needs to be using the `@nx/angular:webpack-browser` or\n`@angular-devkit/build-angular:browser` executor.\nThe generator will throw an error if a build target can't be found and suggest passing one in manually.\n\nLetting Nx infer the build target by default\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project\n```\n\nManually specifying the build target\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project --build-target:some-angular-app:build --generate-tests\n```\n\n{% callout type=\"note\" title=\"Build Target with Configuration\" %}\nIf you're wanting to use a build target with a specific configuration. i.e. `my-app:build:production`,\nthen manually providing `--build-target=my-app:build:production` is the best way to do that.\n{% /callout %}\n\n## Auto Generating Tests\n\nYou can optionally use the `--generate-tests` flag to generate a test file for each component in your project.\n\n```shell\nnx g @nx/angular:cypress-component-configuration --project=my-cool-angular-project --generate-tests\n```\n\n## Running Component Tests\n\nA new `component-test` target will be added to the specified project to run your component tests.\n\n```shell\nnx g component-test my-cool-angular-project\n```\n\nHere is an example of the project configuration that is generated. The `--build-target` option is added as the `devServerTarget` which can be changed as needed.\n\n```json {% fileName=\"project.json\" %}\n{\n \"targets\" {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"/cypress.config.ts\",\n \"testingType\": \"component\",\n \"devServerTarget\": \"some-angular-app:build\",\n \"skipServe\": true\n }\n }\n }\n}\n```\n\n## What is bundled\n\nWhen the project being tested is a dependent of the specified `--build-target`, then **assets, scripts, and styles** are applied to the component being tested. You can determine if the project is dependent by using the [project graph](/features/explore-graph). If there is no link between the two projects, then the **assets, scripts, and styles** won't be included in the build; therefore, they will not be applied to the component. To have a link between projects, you can import from the project being tested into the specified `--build-target` project, or set the `--build-target` project to [implicitly depend](/reference/project-configuration#implicitdependencies) on the project being tested.\n\nNx also supports [React component testing](/packages/angular/generators/cypress-component-configuration).\n", + "presets": [] + }, + "description": "Setup Cypress component testing for a project.", + "implementation": "/packages/angular/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/cypress-component-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/directive.json b/docs/generated/packages/angular/generators/directive.json new file mode 100644 index 0000000000000..234d9330de356 --- /dev/null +++ b/docs/generated/packages/angular/generators/directive.json @@ -0,0 +1,97 @@ +{ + "name": "directive", + "factory": "./src/generators/directive/directive", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "GeneratorAngularDirective", + "cli": "nx", + "title": "Nx Angular Directive Options Schema", + "type": "object", + "description": "Creates a new Angular directive.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the new directive.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the directive?" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the directive file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir", "path"], + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the directive in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "prefix": { + "type": "string", + "description": "A prefix to apply to generated selectors.", + "alias": "p", + "oneOf": [ + { "maxLength": 0 }, + { "minLength": 1, "format": "html-selector" } + ] + }, + "skipTests": { + "type": "boolean", + "description": "Do not create \"spec.ts\" test files for the new class.", + "default": false + }, + "skipImport": { + "type": "boolean", + "description": "Do not import this directive into the owning NgModule.", + "default": false + }, + "selector": { + "type": "string", + "format": "html-selector", + "description": "The HTML selector to use for this directive." + }, + "standalone": { + "description": "Whether the generated directive is standalone.", + "type": "boolean", + "default": true + }, + "flat": { + "type": "boolean", + "description": "When true (the default), creates the new files at the top level of the current project.", + "default": true, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "module": { + "type": "string", + "description": "The filename of the declaring NgModule.", + "alias": "m" + }, + "export": { + "type": "boolean", + "default": false, + "description": "The declaring NgModule exports this directive." + }, + "skipFormat": { + "type": "boolean", + "default": false, + "description": "Skip formatting of files." + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["d"], + "description": "Generate an Angular directive.", + "implementation": "/packages/angular/src/generators/directive/directive.ts", + "hidden": false, + "path": "/packages/angular/src/generators/directive/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/federate-module.json b/docs/generated/packages/angular/generators/federate-module.json new file mode 100644 index 0000000000000..73e1c917dc77a --- /dev/null +++ b/docs/generated/packages/angular/generators/federate-module.json @@ -0,0 +1,90 @@ +{ + "name": "federate-module", + "factory": "./src/generators/federate-module/federate-module", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactFederateModule", + "title": "Federate Module", + "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", + "examples": [ + { + "command": "nx g federate-module MyModule --path=./src/component/my-cmp.ts --remote=my-remote-app --remoteDirectory=apps/my-remote-app", + "description": "Create a federated module from my-remote-app, that exposes my-cmp from ./src/component/my-cmp.ts as MyModule." + } + ], + "type": "object", + "properties": { + "path": { + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "description": "The path to locate the federated module.", + "x-prompt": "What is the path to the module to be federated?" + }, + "name": { + "description": "The name of the module.", + "type": "string", + "x-prompt": "What name would you like to use for the module?", + "pattern": "^[a-zA-Z][^:]*$", + "x-priority": "important" + }, + "remote": { + "type": "string", + "description": "The name of the remote.", + "x-prompt": "What is/should the remote be named?" + }, + "remoteDirectory": { + "description": "The directory of the new remote application if one needs to be created.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files for the remote if one needs to be created.", + "type": "string", + "default": "css", + "enum": ["css", "scss", "sass", "less"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests of the remote if it needs to be created.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "none"], + "description": "Test runner to use for end to end (e2e) tests of the remote if it needs to be created.", + "default": "cypress" + }, + "standalone": { + "description": "Whether to generate the remote application with standalone components if it needs to be created.", + "type": "boolean", + "default": true + }, + "host": { + "type": "string", + "description": "The host / shell application for this remote." + } + }, + "required": ["name", "path", "remote"], + "additionalProperties": false, + "presets": [] + }, + "x-type": "application", + "description": "Create a federated module, which is exposed by a remote and can be subsequently loaded by a host.", + "implementation": "/packages/angular/src/generators/federate-module/federate-module.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/federate-module/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/host.json b/docs/generated/packages/angular/generators/host.json new file mode 100644 index 0000000000000..d08cd5d8894ec --- /dev/null +++ b/docs/generated/packages/angular/generators/host.json @@ -0,0 +1,191 @@ +{ + "name": "host", + "factory": "./src/generators/host/host#hostInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxMFHost", + "cli": "nx", + "title": "Nx Module Federation Host Application", + "description": "Create an Angular 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 remote application to this application's configuration" + } + ], + "properties": { + "name": { + "type": "string", + "description": "The name to give to the host Angular application.", + "$default": { "$source": "argv", "index": 0 }, + "pattern": "^[a-zA-Z][^:]*$" + }, + "remotes": { + "type": "array", + "description": "The names of the remote applications to add to the host.", + "x-priority": "important" + }, + "dynamic": { + "type": "boolean", + "description": "Should the host application use dynamic federation?", + "default": false + }, + "directory": { + "description": "The directory of the new application.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "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", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "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 + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "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 host application that uses standalone components.", + "default": true + }, + "ssr": { + "description": "Whether to configure SSR for the host application", + "type": "boolean", + "default": false, + "x-priority": "important" + }, + "typescriptConfiguration": { + "type": "boolean", + "description": "Whether the module federation configuration and webpack configuration files should use TS.", + "default": true + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "x-type": "application", + "description": "Generate a Host Angular Module Federation Application.", + "implementation": "/packages/angular/src/generators/host/host#hostInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/host/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/init.json b/docs/generated/packages/angular/generators/init.json new file mode 100644 index 0000000000000..907b02eae182b --- /dev/null +++ b/docs/generated/packages/angular/generators/init.json @@ -0,0 +1,45 @@ +{ + "name": "init", + "factory": "./src/generators/init/init", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "SchematicsAngularModuleInit", + "cli": "nx", + "title": "Init Angular Plugin", + "description": "Initializes the `@nx/angular` plugin. NOTE: Does not work in the `--dry-run` mode.", + "type": "object", + "properties": { + "skipInstall": { + "type": "boolean", + "description": "Skip installing after adding `@nx/workspace`.", + "default": false, + "x-priority": "internal" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "presets": [] + }, + "description": "Initializes the `@nrwl/angular` plugin.", + "hidden": true, + "implementation": "/packages/angular/src/generators/init/init.ts", + "aliases": [], + "path": "/packages/angular/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/library-secondary-entry-point.json b/docs/generated/packages/angular/generators/library-secondary-entry-point.json new file mode 100644 index 0000000000000..7160908feb00e --- /dev/null +++ b/docs/generated/packages/angular/generators/library-secondary-entry-point.json @@ -0,0 +1,51 @@ +{ + "name": "library-secondary-entry-point", + "factory": "./src/generators/library-secondary-entry-point/library-secondary-entry-point", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularLibrarySecondaryEntryPoint", + "title": "Creates a secondary entry point for a library", + "description": "Creates a secondary entry point for an Angular publishable library.", + "type": "object", + "cli": "nx", + "properties": { + "name": { + "type": "string", + "description": "The name of the secondary entry point.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the secondary entry point?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*(?:\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*)+|^[a-zA-Z][^:]*)$", + "x-priority": "important" + }, + "library": { + "type": "string", + "description": "The name of the library to create the secondary entry point for.", + "x-prompt": "What library would you like to create the secondary entry point for?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", + "x-dropdown": "projects", + "x-priority": "important" + }, + "skipModule": { + "type": "boolean", + "description": "Skip generating a module for the secondary entry point.", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": ["name", "library"], + "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\nCreate a secondary entrypoint named `button` in the `ui` library.\n\n```bash\nnx g @nx/angular:library-secondary-entry-point --library=ui --name=button\n```\n\n{% /tab %}\n\n{% tab label=\"Skip generating module\" %}\nCreate a secondary entrypoint named `button` in the `ui` library but skip creating an NgModule.\n\n```bash\nnx g @nx/angular:library-secondary-entry-point --library=ui --name=button --skipModule\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["secondary-entry-point", "entry-point"], + "description": "Creates a secondary entry point for an Angular publishable library.", + "implementation": "/packages/angular/src/generators/library-secondary-entry-point/library-secondary-entry-point.ts", + "hidden": false, + "path": "/packages/angular/src/generators/library-secondary-entry-point/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/library.json b/docs/generated/packages/angular/generators/library.json new file mode 100644 index 0000000000000..5a138291d4a84 --- /dev/null +++ b/docs/generated/packages/angular/generators/library.json @@ -0,0 +1,217 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorAngularLibrary", + "title": "Create a library", + "description": "Creates an Angular library.", + "type": "object", + "cli": "nx", + "properties": { + "name": { + "type": "string", + "description": "The name of the library.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the library is placed.", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "publishable": { + "type": "boolean", + "default": false, + "description": "Generate a publishable library.", + "x-priority": "important" + }, + "buildable": { + "type": "boolean", + "default": false, + "description": "Generate a buildable library.", + "x-priority": "important" + }, + "prefix": { + "type": "string", + "format": "html-selector", + "description": "The prefix to apply to generated selectors.", + "alias": "p" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "simpleName": { + "description": "Don't include the directory in the name of the module or standalone component entry of the library.", + "type": "boolean", + "default": false + }, + "addModuleSpec": { + "description": "Add a module spec file.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update `tsconfig.json` for development experience." + }, + "routing": { + "type": "boolean", + "default": false, + "description": "Add router configuration. See `lazy` for more information.", + "x-priority": "important" + }, + "lazy": { + "type": "boolean", + "default": false, + "description": "Add `RouterModule.forChild` when set to true, and a simple array of routes when set to false.", + "x-priority": "important" + }, + "parent": { + "type": "string", + "description": "Path to the parent route configuration using `loadChildren` or `children`, depending on what `lazy` is set to.", + "x-priority": "important" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting)." + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`. Must be a valid npm name." + }, + "strict": { + "type": "boolean", + "description": "Create a library with stricter type checking and build optimization options.", + "default": true + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "compilationMode": { + "description": "Specifies the compilation mode to use. If not specified, it will default to `partial` for publishable libraries and to `full` for buildable libraries. The `full` value can not be used for publishable libraries.", + "type": "string", + "enum": ["full", "partial"] + }, + "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. It can only be used with buildable and publishable libraries. Non-buildable libraries will use the application's Tailwind configuration.", + "default": false + }, + "skipModule": { + "type": "boolean", + "description": "Whether to skip the creation of a default module when generating the library.", + "default": false + }, + "standalone": { + "type": "boolean", + "description": "Generate a library that uses a standalone component instead of a module as the entry point.", + "default": true + }, + "displayBlock": { + "description": "Specifies if the component generated style will contain `:host { display: block; }`. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "type": "boolean", + "default": false, + "alias": "b" + }, + "inlineStyle": { + "description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "type": "boolean", + "default": false, + "alias": "s" + }, + "inlineTemplate": { + "description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "type": "boolean", + "default": false, + "alias": "t" + }, + "viewEncapsulation": { + "description": "The view encapsulation strategy to use in the new component. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "enum": ["Emulated", "None", "ShadowDom"], + "type": "string", + "alias": "v" + }, + "changeDetection": { + "description": "The change detection strategy to use in the new component. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "enum": ["Default", "OnPush"], + "type": "string", + "default": "Default", + "alias": "c" + }, + "style": { + "description": "The file extension or preprocessor to use for style files, or `none` to skip generating the style file. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "type": "string", + "default": "css", + "enum": ["css", "scss", "sass", "less", "none"] + }, + "skipTests": { + "type": "boolean", + "description": "Do not create `spec.ts` test files for the new component. Disclaimer: This option is only valid when `--standalone` is set to `true`.", + "default": false + }, + "selector": { + "type": "string", + "format": "html-selector", + "description": "The HTML selector to use for this component. Disclaimer: This option is only valid when `--standalone` is set to `true`." + }, + "skipSelector": { + "type": "boolean", + "default": false, + "description": "Specifies if the component should have a selector or not. Disclaimer: This option is only valid when `--standalone` is set to `true`." + }, + "flat": { + "type": "boolean", + "default": false, + "description": "Ensure the generated standalone component is not placed in a subdirectory. Disclaimer: This option is only valid when `--standalone` is set to `true`." + } + }, + "additionalProperties": false, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Library\" %}\n\nCreates the `my-ui-lib` library with an `ui` tag:\n\n```bash\nnx g @nx/angular:library my-ui-lib --tags=ui\n```\n\n{% /tab %}\n\n{% tab label=\"Publishable Library\" %}\n\nCreates the `my-lib` library that can be built producing an output following the Angular Package Format (APF) to be distributed as an NPM package:\n\n```bash\nnx g @nx/angular:library my-lib --publishable --import-path=@my-org/my-lib\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable Library\" %}\n\nCreates the `my-lib` library with support for incremental builds:\n\n```bash\nnx g @nx/angular:library my-lib --buildable\n```\n\n{% /tab %}\n\n{% tab label=\"Nested Folder & Import\"%}\nCreates the `my-lib` library in the `nested` directory and sets the import path to `@myorg/nested/my-lib`:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=nested`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/angular:library --directory=libs/nested/my-lib --importPath=@myorg/nested/my-lib my-lib\n```\n\n{% /tab %}\n", + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Creates an Angular library.", + "implementation": "/packages/angular/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/angular/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/move.json b/docs/generated/packages/angular/generators/move.json new file mode 100644 index 0000000000000..73c57a3b8566e --- /dev/null +++ b/docs/generated/packages/angular/generators/move.json @@ -0,0 +1,70 @@ +{ + "name": "move", + "factory": "./src/generators/move/move#angularMoveGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularMove", + "cli": "nx", + "title": "Nx Angular Move", + "description": "Move an Angular project to another folder in the workspace.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:move --project my-feature-lib --destination shared/my-feature-lib", + "description": "Move libs/my-feature-lib to libs/shared/my-feature-lib." + } + ], + "properties": { + "projectName": { + "type": "string", + "alias": "project", + "description": "The name of the Angular project to move.", + "x-dropdown": "projects", + "x-priority": "important" + }, + "newProjectName": { + "type": "string", + "alias": "project", + "description": "The new name of the project after the move.", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", + "x-priority": "important" + }, + "destination": { + "type": "string", + "description": "The folder to move the Angular project into.", + "$default": { "$source": "argv", "index": 0 }, + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the new project name and destination as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "importPath": { + "type": "string", + "description": "The new import path to use in the `tsconfig.base.json`." + }, + "updateImportPath": { + "type": "boolean", + "description": "Update the import path to reflect the new location.", + "default": true + }, + "skipFormat": { + "type": "boolean", + "aliases": ["skip-format"], + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["projectName", "destination"], + "presets": [] + }, + "aliases": ["mv"], + "description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.", + "x-deprecated": "Use the `@nx/workspace:move` generator instead. This generator will be removed in Nx v19.", + "implementation": "/packages/angular/src/generators/move/move#angularMoveGeneratorInternal.ts", + "hidden": false, + "path": "/packages/angular/src/generators/move/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/ng-add.json b/docs/generated/packages/angular/generators/ng-add.json new file mode 100644 index 0000000000000..51763939ddb6f --- /dev/null +++ b/docs/generated/packages/angular/generators/ng-add.json @@ -0,0 +1,76 @@ +{ + "name": "ng-add", + "factory": "./src/generators/ng-add/ng-add", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularNgAddGenerator", + "title": "Angular plugin initialization", + "cli": "nx", + "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace. NOTE: Does not work in the `--dry-run` mode.", + "type": "object", + "properties": { + "defaultBase": { + "type": "string", + "description": "Default base branch for affected. NOTE: only used if running the generator in an Angular CLI workspace.", + "x-priority": "important" + }, + "skipInstall": { + "type": "boolean", + "description": "Skip installing added packages.", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["karma", "jest", "none"], + "description": "Test runner to use for unit tests. NOTE: only used if running the generator in an Nx workspace.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["protractor", "cypress", "none"], + "description": "Test runner to use for end to end (e2e) tests. NOTE: only used if running the generator in an Nx workspace.", + "default": "cypress" + }, + "skipFormat": { + "description": "Skip formatting files. NOTE: only used if running the generator in an Nx workspace.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "linter": { + "description": "The tool to use for running lint checks. NOTE: only used if running the generator in an Nx workspace.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "style": { + "description": "The file extension to be used for style files. NOTE: only used if running the generator in an Nx workspace.", + "type": "string", + "default": "css", + "enum": ["css", "scss", "sass", "less"] + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`. NOTE: only used if running the generator in an Nx workspace.", + "x-priority": "internal" + }, + "skipPostInstall": { + "type": "boolean", + "default": false, + "description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`. NOTE: only used if running the generator in an Nx workspace.", + "x-priority": "internal" + } + }, + "additionalProperties": false, + "examplesFile": "## Information\n\nThis generator is usually used as part of the process of migrating from an Angular CLI Workspace to an [Nx Integrated Workspace](/concepts/integrated-vs-package-based#integrated-repos) using `npx nx@latest init --integrated`.\n\nYou can read more about [migrating from Angular CLI to Nx here](/recipes/adopting-nx-angular).\n", + "presets": [] + }, + "description": "Migrates an Angular CLI workspace to Nx or adds the Angular plugin to an Nx workspace.", + "hidden": true, + "implementation": "/packages/angular/src/generators/ng-add/ng-add.ts", + "aliases": [], + "path": "/packages/angular/src/generators/ng-add/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/ngrx-feature-store.json b/docs/generated/packages/angular/generators/ngrx-feature-store.json new file mode 100644 index 0000000000000..20d05813ef0d1 --- /dev/null +++ b/docs/generated/packages/angular/generators/ngrx-feature-store.json @@ -0,0 +1,80 @@ +{ + "name": "ngrx-feature-store", + "factory": "./src/generators/ngrx-feature-store/ngrx-feature-store", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNgrxFeatureStoreGenerator", + "title": "NgRx Feature Store Generator", + "description": "Add an NgRx Feature Store to an application or library.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the NgRx feature state, such as `products` or `users`. Recommended to use the plural form of the name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the NgRx feature state? An example would be `users`.", + "x-priority": "important" + }, + "parent": { + "type": "string", + "description": "The path to the file where the state will be registered. For NgModule usage, this will be your Feature Module. For Standalone API usage, this will be your Routes definition file for your feature state. The host directory will create/use the new state directory.", + "x-prompt": "What is the path to the module or Routes definition where this NgRx state should be registered?", + "x-priority": "important" + }, + "route": { + "type": "string", + "description": "The route that the Standalone NgRx Providers should be added to.", + "default": "''" + }, + "minimal": { + "type": "boolean", + "default": false, + "description": "Only register the feature state.", + "x-priority": "important" + }, + "directory": { + "type": "string", + "default": "+state", + "description": "The name of the folder used to contain/group the generated NgRx files." + }, + "facade": { + "type": "boolean", + "default": false, + "description": "Create a Facade class for the the feature.", + "x-prompt": "Would you like to use a Facade with your NgRx state?" + }, + "skipImport": { + "type": "boolean", + "default": false, + "description": "Generate NgRx feature files without registering the feature in the NgModule." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not update the `package.json` with NgRx dependencies.", + "x-priority": "internal" + }, + "barrels": { + "type": "boolean", + "default": false, + "description": "Use barrels to re-export actions, state and selectors." + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Adds an NgRx Feature Store to an application or library.", + "implementation": "/packages/angular/src/generators/ngrx-feature-store/ngrx-feature-store.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/ngrx-feature-store/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/ngrx-root-store.json b/docs/generated/packages/angular/generators/ngrx-root-store.json new file mode 100644 index 0000000000000..cdfc26ebd2cee --- /dev/null +++ b/docs/generated/packages/angular/generators/ngrx-root-store.json @@ -0,0 +1,79 @@ +{ + "name": "ngrx-root-store", + "factory": "./src/generators/ngrx-root-store/ngrx-root-store", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNgrxRootStoreGenerator", + "title": "Add NgRx support to an application.", + "description": "Adds NgRx support to an application.", + "cli": "nx", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the application to generate the NgRx configuration for.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What app would you like to generate a NgRx configuration for?", + "x-dropdown": "projects" + }, + "minimal": { + "type": "boolean", + "default": true, + "description": "Only register the root state management setup or also generate a global feature state.", + "x-priority": "important" + }, + "name": { + "type": "string", + "description": "Name of the NgRx state, such as `products` or `users`. Recommended to use the plural form of the name.", + "x-priority": "important" + }, + "route": { + "type": "string", + "description": "The route that the Standalone NgRx Providers should be added to.", + "default": "''" + }, + "directory": { + "type": "string", + "default": "+state", + "description": "The name of the folder used to contain/group the generated NgRx files." + }, + "facade": { + "type": "boolean", + "default": false, + "description": "Create a Facade class for the the feature.", + "x-prompt": "Would you like to use a Facade with your NgRx state?" + }, + "addDevTools": { + "type": "boolean", + "default": false, + "description": "Instrument the Store Devtools." + }, + "skipImport": { + "type": "boolean", + "default": false, + "description": "Generate NgRx feature files without registering the feature in the NgModule." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not update the `package.json` with NgRx dependencies.", + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": ["project"], + "presets": [] + }, + "description": "Adds an NgRx Root Store to an application.", + "implementation": "/packages/angular/src/generators/ngrx-root-store/ngrx-root-store.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/ngrx-root-store/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/ngrx.json b/docs/generated/packages/angular/generators/ngrx.json new file mode 100644 index 0000000000000..a53e8e5ebde54 --- /dev/null +++ b/docs/generated/packages/angular/generators/ngrx.json @@ -0,0 +1,111 @@ +{ + "name": "ngrx", + "factory": "./src/generators/ngrx/ngrx", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNgrxGenerator", + "title": "Add NgRx support to an application or library.", + "description": "Adds NgRx support to an application or library.", + "x-deprecated": "This generator is deprecated and will be removed in a future version of Nx. Use the 'ngrx-root-store' and 'ngrx-feature-store' generators instead.", + "cli": "nx", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:ngrx --root --parent=apps/my-app/src/app/app.module.ts --facade=false placeholder", + "description": "Add root ngrx configration to the `my-app` application" + }, + { + "command": "nx g @nx/angular:ngrx --parent=libs/my-lib/src/lib/my-lib.module.ts --facade=true --root=false users", + "description": "Add a `users` state with a facade to the `my-lib` library. It will be tracked under the default `+state` folder in the lib" + }, + { + "command": "nx g @nx/angular:ngrx --parent=apps/my-app/src/app/app.config.ts --root", + "description": "Add a root state configuration to `my-app` when `my-app` uses Standalone APIs" + }, + { + "command": "nx g @nx/angular:ngrx --parent=libs/my-lib/src/lib.routes.ts users", + "description": "Add a `users` feature state to the Route definition of a library using Standalone APIs" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the NgRx feature state, such as `products` or `users`. Recommended to use the plural form of the name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the NgRx feature state? An example would be `users`.", + "x-priority": "important" + }, + "module": { + "type": "string", + "description": "The path to the `NgModule` where the feature state will be registered. The host directory will create/use the new state directory.", + "x-deprecated": "This option will be removed in a future version of Nx. Please switch to using --parent instead." + }, + "parent": { + "type": "string", + "description": "The path to the file where the state will be registered. For NgModule usage, this will be your `app.module.ts` for your root state, or your Feature Module for feature state. For Standalone API usage, this will be your `app.config.ts` file for your root state, or the Routes definition file for your feature state. The host directory will create/use the new state directory.", + "x-prompt": "What is the path to the module or Routes definition where this NgRx state should be registered?", + "x-priority": "important" + }, + "route": { + "type": "string", + "description": "The route that the Standalone NgRx Providers should be added to.", + "default": "''" + }, + "directory": { + "type": "string", + "default": "+state", + "description": "The name of the folder used to contain/group the generated NgRx files." + }, + "root": { + "type": "boolean", + "default": false, + "description": "Setup root or feature state management with NgRx.", + "x-prompt": "Is this the root state of the application?", + "x-priority": "important" + }, + "facade": { + "type": "boolean", + "default": false, + "description": "Create a Facade class for the the feature.", + "x-prompt": "Would you like to use a Facade with your NgRx state?" + }, + "skipImport": { + "type": "boolean", + "default": false, + "description": "Generate NgRx feature files without registering the feature in the NgModule." + }, + "minimal": { + "type": "boolean", + "default": true, + "description": "Only register the root state management setup or feature state." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not update the `package.json` with NgRx dependencies.", + "x-priority": "internal" + }, + "barrels": { + "type": "boolean", + "default": false, + "description": "Use barrels to re-export actions, state and selectors." + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Adds NgRx support to an application or library.", + "x-deprecated": "This generator is deprecated and will be removed in a future version of Nx. Use the 'ngrx-root-store' and 'ngrx-feature-store' generators instead.", + "implementation": "/packages/angular/src/generators/ngrx/ngrx.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/ngrx/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/pipe.json b/docs/generated/packages/angular/generators/pipe.json new file mode 100644 index 0000000000000..2fe55e13a3df7 --- /dev/null +++ b/docs/generated/packages/angular/generators/pipe.json @@ -0,0 +1,83 @@ +{ + "name": "pipe", + "factory": "./src/generators/pipe/pipe", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "SchematicsAngularPipe", + "title": "Angular Pipe Options Schema", + "type": "object", + "cli": "nx", + "additionalProperties": false, + "description": "Creates an Angular pipe.", + "properties": { + "name": { + "type": "string", + "description": "The name of the pipe.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the pipe?" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the pipe file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir", "path"], + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the pipe in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "flat": { + "type": "boolean", + "default": true, + "description": "When true (the default) creates files at the top level of the project.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "skipTests": { + "type": "boolean", + "description": "Do not create \"spec.ts\" test files for the new pipe.", + "default": false + }, + "skipImport": { + "type": "boolean", + "default": false, + "description": "Do not import this pipe into the owning NgModule." + }, + "standalone": { + "description": "Whether the generated pipe is standalone.", + "type": "boolean", + "default": true + }, + "module": { + "type": "string", + "description": "The filename of the declaring NgModule.", + "alias": "m" + }, + "export": { + "type": "boolean", + "default": false, + "description": "The declaring NgModule exports this pipe." + }, + "skipFormat": { + "type": "boolean", + "default": false, + "description": "Skip formatting of files." + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Generate an Angular Pipe", + "aliases": ["p"], + "implementation": "/packages/angular/src/generators/pipe/pipe.ts", + "hidden": false, + "path": "/packages/angular/src/generators/pipe/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/remote.json b/docs/generated/packages/angular/generators/remote.json new file mode 100644 index 0000000000000..2b044acf2418d --- /dev/null +++ b/docs/generated/packages/angular/generators/remote.json @@ -0,0 +1,184 @@ +{ + "name": "remote", + "factory": "./src/generators/remote/remote#remoteInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxMFRemote", + "cli": "nx", + "title": "Nx Module Federation Remote App", + "description": "Create an Angular Remote Module Federation Application.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:remote appName --host=host --port=4201", + "description": "Create an Angular app with configuration in place for Module Federation. If host is provided, attach this remote app to host app's configuration." + } + ], + "properties": { + "name": { + "type": "string", + "description": "The name to give to the remote Angular app.", + "$default": { "$source": "argv", "index": 0 }, + "pattern": "^[a-zA-Z][^:]*$" + }, + "host": { + "type": "string", + "description": "The name of the host app to attach this remote app to.", + "x-dropdown": "projects", + "x-priority": "important" + }, + "port": { + "type": "number", + "description": "The port on which this app should be served." + }, + "directory": { + "description": "The directory of the new application.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "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" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "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 + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "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": { + "description": "Whether to generate a remote application with standalone components.", + "type": "boolean", + "default": true + }, + "ssr": { + "description": "Whether to configure SSR for the remote application to be consumed by a host application using SSR.", + "type": "boolean", + "default": false + }, + "typescriptConfiguration": { + "type": "boolean", + "description": "Whether the module federation configuration and webpack configuration files should use TS.", + "default": true + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "x-type": "application", + "description": "Generate a Remote Angular Module Federation Application.", + "implementation": "/packages/angular/src/generators/remote/remote#remoteInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/remote/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/scam-directive.json b/docs/generated/packages/angular/generators/scam-directive.json new file mode 100644 index 0000000000000..2e29de5b397ee --- /dev/null +++ b/docs/generated/packages/angular/generators/scam-directive.json @@ -0,0 +1,97 @@ +{ + "name": "scam-directive", + "factory": "./src/generators/scam-directive/scam-directive", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "SCAMDirectiveGenerator", + "cli": "nx", + "title": "SCAM Directive Generator Options Schema", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:scam-directive my-sample --directory=my-lib/src/lib/my-sample", + "description": "Generate a `MySampleDirective` directive in a `my-sample` folder in the `my-lib` library" + } + ], + "description": "Creates a new, generic Angular directive definition in the given or default project.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the directive.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the directive?", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the SCAM Directive files. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir", "path"], + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "skipTests": { + "type": "boolean", + "description": "Do not create `spec.ts` test files for the new directive.", + "default": false + }, + "inlineScam": { + "type": "boolean", + "description": "Create the `NgModule` in the same file as the Directive.", + "default": true, + "x-priority": "important" + }, + "flat": { + "type": "boolean", + "description": "Create the new files at the top level of the current project.", + "default": true, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "selector": { + "type": "string", + "format": "html-selector", + "description": "The `HTML` selector to use for this directive." + }, + "prefix": { + "type": "string", + "description": "The prefix to apply to the generated directive selector.", + "alias": "p", + "oneOf": [ + { "maxLength": 0 }, + { "minLength": 1, "format": "html-selector" } + ] + }, + "export": { + "type": "boolean", + "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.", + "default": true, + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Generate a directive with an accompanying Single Component Angular Module (SCAM).", + "implementation": "/packages/angular/src/generators/scam-directive/scam-directive.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/scam-directive/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/scam-pipe.json b/docs/generated/packages/angular/generators/scam-pipe.json new file mode 100644 index 0000000000000..eb01bddbefcc7 --- /dev/null +++ b/docs/generated/packages/angular/generators/scam-pipe.json @@ -0,0 +1,83 @@ +{ + "name": "scam-pipe", + "factory": "./src/generators/scam-pipe/scam-pipe", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "SCAMPipeGenerator", + "cli": "nx", + "title": "SCAM Pipe Generator Options Schema", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:scam-pipe --project=my-lib --flat=false my-transformation", + "description": "Generates a `MyTransformationPipe` in a `my-transformation` folder in the `my-lib` project" + } + ], + "description": "Creates a new, generic Angular pipe definition in the given or default project.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the pipe.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the pipe?", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir", "path"], + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "skipTests": { + "type": "boolean", + "description": "Do not create `spec.ts` test files for the new pipe.", + "default": false + }, + "inlineScam": { + "type": "boolean", + "description": "Create the NgModule in the same file as the Pipe.", + "default": true, + "x-priority": "important" + }, + "flat": { + "type": "boolean", + "description": "Create the new files at the top level of the current project.", + "default": true, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "export": { + "type": "boolean", + "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.", + "default": true, + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Generate a pipe with an accompanying Single Component Angular Module (SCAM).", + "implementation": "/packages/angular/src/generators/scam-pipe/scam-pipe.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/scam-pipe/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/scam-to-standalone.json b/docs/generated/packages/angular/generators/scam-to-standalone.json new file mode 100644 index 0000000000000..b0dff90b7aa7b --- /dev/null +++ b/docs/generated/packages/angular/generators/scam-to-standalone.json @@ -0,0 +1,40 @@ +{ + "name": "scam-to-standalone", + "factory": "./src/generators/scam-to-standalone/scam-to-standalone", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorAngularScamToStandalone", + "cli": "nx", + "title": "Convert an Inline SCAM to Standalone Component", + "description": "Convert an Inline SCAM to a Standalone Component.", + "type": "object", + "properties": { + "component": { + "type": "string", + "description": "The path to the SCAM component file, relative to the root of the project containing the SCAM.", + "$default": { "$source": "argv", "index": 0 }, + "x-priority": "important" + }, + "project": { + "type": "string", + "description": "The project containing the SCAM.", + "x-prompt": "What project contains the SCAM?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting the workspace after the generator completes.", + "x-priority": "internal" + } + }, + "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\nThis generator allows you to convert an Inline SCAM to a Standalone Component. It's important that the SCAM you wish to convert has it's NgModule within the same file for the generator to be able to correctly convert the component to Standalone.\n\n```bash\n\nnx g @nx/angular:scam-to-standalone --component=libs/mylib/src/lib/myscam/myscam.component.ts --project=mylib\n\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Convert an existing Single Component Angular Module (SCAM) to a Standalone Component.", + "implementation": "/packages/angular/src/generators/scam-to-standalone/scam-to-standalone.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/scam-to-standalone/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/scam.json b/docs/generated/packages/angular/generators/scam.json new file mode 100644 index 0000000000000..5e810c9c326dc --- /dev/null +++ b/docs/generated/packages/angular/generators/scam.json @@ -0,0 +1,143 @@ +{ + "name": "scam", + "factory": "./src/generators/scam/scam", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "SCAMGenerator", + "cli": "nx", + "title": "SCAM Generator Options Schema", + "type": "object", + "examples": [ + { + "command": "nx g @nx/angular:scam my-sample --directory=my-lib/src/lib/my-sample", + "description": "Generate a `MySampleComponent` component in the `my-lib` library." + } + ], + "description": "Creates a new Angular SCAM.", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the SCAM files. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir", "path"], + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the SCAM in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "displayBlock": { + "description": "Specifies if the style will contain `:host { display: block; }`.", + "type": "boolean", + "default": false, + "alias": "b" + }, + "inlineStyle": { + "description": "Include styles inline in the `component.ts` file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the `component.ts` file.", + "type": "boolean", + "default": false, + "alias": "s" + }, + "inlineTemplate": { + "description": "Include template inline in the `component.ts` file. By default, an external template file is created and referenced in the `component.ts` file.", + "type": "boolean", + "default": false, + "alias": "t" + }, + "viewEncapsulation": { + "description": "The view encapsulation strategy to use in the new component.", + "enum": ["Emulated", "None", "ShadowDom"], + "type": "string", + "alias": "v" + }, + "changeDetection": { + "description": "The change detection strategy to use in the new component.", + "enum": ["Default", "OnPush"], + "type": "string", + "default": "Default", + "alias": "c" + }, + "style": { + "description": "The file extension or preprocessor to use for style files, or 'none' to skip generating the style file.", + "type": "string", + "default": "css", + "enum": ["css", "scss", "sass", "less", "none"] + }, + "skipTests": { + "type": "boolean", + "description": "Do not create `spec.ts` test files for the new component.", + "default": false + }, + "inlineScam": { + "type": "boolean", + "description": "Create the `NgModule` in the same file as the component.", + "default": true, + "x-priority": "important" + }, + "flat": { + "type": "boolean", + "description": "Create the new files at the top level of the current project.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "selector": { + "type": "string", + "format": "html-selector", + "description": "The `HTML` selector to use for this component." + }, + "skipSelector": { + "type": "boolean", + "default": false, + "description": "Specifies if the component should have a selector or not." + }, + "type": { + "type": "string", + "description": "Adds a developer-defined type to the filename, in the format `name.type.ts`.", + "default": "component" + }, + "prefix": { + "type": "string", + "description": "The prefix to apply to the generated component selector.", + "alias": "p", + "oneOf": [ + { "maxLength": 0 }, + { "minLength": 1, "format": "html-selector" } + ] + }, + "export": { + "type": "boolean", + "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.", + "default": true, + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Generate a component with an accompanying Single Component Angular Module (SCAM).", + "implementation": "/packages/angular/src/generators/scam/scam.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/scam/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/setup-mf.json b/docs/generated/packages/angular/generators/setup-mf.json new file mode 100644 index 0000000000000..2df78438f737b --- /dev/null +++ b/docs/generated/packages/angular/generators/setup-mf.json @@ -0,0 +1,99 @@ +{ + "name": "setup-mf", + "factory": "./src/generators/setup-mf/setup-mf", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorAngularMFSetup", + "cli": "nx", + "title": "Generate Module Federation Setup for Angular App", + "description": "Create Module Federation configuration files for given Angular Application.", + "type": "object", + "properties": { + "appName": { + "type": "string", + "description": "The name of the application to generate the Module Federation configuration for.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What app would you like to generate a Module Federation configuration for?", + "x-dropdown": "projects" + }, + "mfType": { + "type": "string", + "enum": ["host", "remote"], + "description": "Type of application to generate the Module Federation configuration for.", + "default": "remote" + }, + "federationType": { + "type": "string", + "enum": ["static", "dynamic"], + "description": "Use either Static or Dynamic Module Federation pattern for the application.", + "default": "static" + }, + "port": { + "type": "number", + "description": "The port at which the remote application should be served." + }, + "remotes": { + "type": "array", + "description": "A list of remote application names that the host application should consume." + }, + "host": { + "type": "string", + "description": "The name of the host application that the remote application will be consumed by." + }, + "routing": { + "type": "boolean", + "description": "Generate a routing setup to allow a host application to route to the remote application.", + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting the workspace after the generator completes.", + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "skipE2E": { + "type": "boolean", + "default": false, + "description": "Do not set up E2E related config." + }, + "e2eProjectName": { + "type": "string", + "description": "The project name of the associated E2E project for the application. This is only required for Cypress E2E projects that do not follow the naming convention `-e2e`." + }, + "prefix": { + "type": "string", + "description": "The prefix to use for any generated component." + }, + "standalone": { + "type": "boolean", + "description": "Whether the application is a standalone application.", + "default": true + }, + "typescriptConfiguration": { + "type": "boolean", + "description": "Whether the module federation configuration and webpack configuration files should use TS.", + "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 + } + }, + "required": ["appName", "mfType"], + "additionalProperties": false, + "examplesFile": "## Examples\n\nThe `setup-mf` generator is used to add Module Federation support to existing applications.\n\n{% tabs %}\n\n{% tab label=\"Convert to Host\" %}\nTo convert an existing application to a host application, run the following\n\n```bash\nnx g setup-mf myapp --mfType=host --routing=true\n```\n\n{% /tab %}\n\n{% tab label=\"Convert to Remote\" %}\nTo convert an existing application to a remote application, run the following\n\n```bash\nnx g setup-mf myapp --mfType=remote --routing=true\n```\n\n{% /tab %}\n\n{% tab label=\"Convert to Remote and attach to a host application\" %}\nTo convert an existing application to a remote application and attach it to an existing host application name `myhostapp`, run the following\n\n```bash\nnx g setup-mf myapp --mfType=remote --routing=true --host=myhostapp\n```\n\n{% /tab %}\n\n{% tab label=\"Convert to Host and attach to existing remote applications\" %}\nTo convert an existing application to a host application and attaching existing remote applications named `remote1` and `remote2`, run the following\n\n```bash\nnx g setup-mf myapp --mfType=host --routing=true --remotes=remote1,remote2\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Generate a Module Federation configuration for a given Angular application.", + "implementation": "/packages/angular/src/generators/setup-mf/setup-mf.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/setup-mf/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/setup-ssr.json b/docs/generated/packages/angular/generators/setup-ssr.json new file mode 100644 index 0000000000000..d4a94b5a1225b --- /dev/null +++ b/docs/generated/packages/angular/generators/setup-ssr.json @@ -0,0 +1,76 @@ +{ + "name": "setup-ssr", + "factory": "./src/generators/setup-ssr/setup-ssr", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorAngularUniversalSetup", + "cli": "nx", + "title": "Generate Angular Universal (SSR) setup for an Angular App", + "description": "Create the additional configuration required to enable SSR via Angular Universal for an Angular application.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the application to generate the Angular Universal configuration for.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What app would you like to generate an Angular Universal configuration for?", + "x-dropdown": "projects" + }, + "appId": { + "type": "string", + "format": "html-selector", + "description": "The `appId` to use with `withServerTransition`. _Note: This is only used in Angular versions <16.0.0. It's deprecated since Angular 16 and not supported since Angular 17._", + "default": "serverApp" + }, + "main": { + "type": "string", + "format": "path", + "description": "The name of the main entry-point file.", + "default": "main.server.ts" + }, + "serverFileName": { + "type": "string", + "default": "server.ts", + "description": "The name of the Express server file." + }, + "serverPort": { + "type": "number", + "default": 4000, + "description": "The port for the Express server." + }, + "rootModuleFileName": { + "type": "string", + "format": "path", + "description": "The name of the root module file", + "default": "app.server.module.ts" + }, + "rootModuleClassName": { + "type": "string", + "description": "The name of the root module class.", + "default": "AppServerModule" + }, + "standalone": { + "type": "boolean", + "description": "Use Standalone Components to bootstrap SSR." + }, + "hydration": { + "type": "boolean", + "description": "Set up Hydration for the SSR application. It defaults to `true` for Angular versions >= 17.0.0. Otherwise, it defaults to `false`. _Note: This is only supported in Angular versions >= 16.0.0_." + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting the workspace after the generator completes.", + "x-priority": "internal" + } + }, + "required": ["project"], + "additionalProperties": false, + "presets": [] + }, + "description": "Generate Angular Universal (SSR) setup for an Angular application.", + "implementation": "/packages/angular/src/generators/setup-ssr/setup-ssr.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/setup-ssr/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/setup-tailwind.json b/docs/generated/packages/angular/generators/setup-tailwind.json new file mode 100644 index 0000000000000..134bbd75359c3 --- /dev/null +++ b/docs/generated/packages/angular/generators/setup-tailwind.json @@ -0,0 +1,50 @@ +{ + "name": "setup-tailwind", + "factory": "./src/generators/setup-tailwind/setup-tailwind", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularTailwindSetupGenerator", + "cli": "nx", + "title": "Configures Tailwind CSS for an application or a buildable/publishable library.", + "description": "Adds the Tailwind CSS configuration files for a given Angular project and installs, if needed, the packages required for Tailwind CSS to work.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add the Tailwind CSS setup for.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What project would you like to add the Tailwind CSS setup?" + }, + "buildTarget": { + "type": "string", + "description": "The name of the target used to build the project. This option only applies to buildable/publishable libraries.", + "default": "build" + }, + "skipFormat": { + "type": "boolean", + "description": "Skips formatting the workspace after the generator completes.", + "x-priority": "internal" + }, + "stylesEntryPoint": { + "type": "string", + "description": "Path to the styles entry point relative to the workspace root. If not provided the generator will do its best to find it and it will error if it can't. This option only applies to applications." + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": ["project"], + "examplesFile": "## Examples\n\nThe `setup-tailwind` generator can be used to add [Tailwind](https://tailwindcss.com) configuration to apps and publishable libraries.\n\n{% tabs %}\n\n{% tab label=\"Standard Setup\" %}\n\nTo generate a standard Tailwind setup, just run the following command.\n\n```bash\nnx g @nx/angular:setup-tailwind myapp\n```\n\n{% /tab %}\n\n{% tab label=\"Specifying the Styles Entrypoint\" %}\n\nTo specify the styles file that should be used as the entrypoint for Tailwind, simply pass the `--stylesEntryPoint` flag, relative to workspace root.\n\n```bash\nnx g @nx/angular:setup-tailwind myapp --stylesEntryPoint=apps/myapp/src/styles.css\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Configures Tailwind CSS for an application or a buildable/publishable library.", + "implementation": "/packages/angular/src/generators/setup-tailwind/setup-tailwind.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/setup-tailwind/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/stories.json b/docs/generated/packages/angular/generators/stories.json new file mode 100644 index 0000000000000..2c550cfdd9282 --- /dev/null +++ b/docs/generated/packages/angular/generators/stories.json @@ -0,0 +1,69 @@ +{ + "name": "stories", + "factory": "./src/generators/stories/stories", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularStorybookStoriesGenerator", + "title": "Create Storybook stories/specs", + "description": "Creates Storybook stories/specs for all Angular components declared in a project.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "type": "string", + "aliases": ["project", "projectName"], + "description": "Project for which to generate stories.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What's the name of the project for which you want to generate stories?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "default": true + }, + "generateCypressSpecs": { + "type": "boolean", + "description": "Specifies whether to automatically generate `*.spec.ts` files in the Cypress e2e app generated by the `cypress-configure` generator." + }, + "cypressProject": { + "type": "string", + "description": "The Cypress project to generate the stories under. This is inferred from `name` by default." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + } + }, + "additionalProperties": false, + "required": ["name"], + "examplesFile": "This generator will generate stories for all your components in your project. The stories will be generated using [Component Story Format 3 (CSF3)](https://storybook.js.org/blog/storybook-csf3-is-here/).\n\n```bash\nnx g @nx/angular:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Angular overview page](/recipes/storybook/overview-angular#auto-generate-stories).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests).\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/angular:stories ui --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*\n```\n\nThis will generate stories for all the components in the `ui` project, except for the ones in the `libs/ui/src/not-stories` directory, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n", + "presets": [] + }, + "description": "Creates stories/specs for all components declared in a project.", + "implementation": "/packages/angular/src/generators/stories/stories.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/stories/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/storybook-configuration.json b/docs/generated/packages/angular/generators/storybook-configuration.json new file mode 100644 index 0000000000000..46b3b0c423b1a --- /dev/null +++ b/docs/generated/packages/angular/generators/storybook-configuration.json @@ -0,0 +1,103 @@ +{ + "name": "storybook-configuration", + "factory": "./src/generators/storybook-configuration/storybook-configuration", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxAngularStorybookConfigurationGenerator", + "title": "Adds Storybook configuration to a project.", + "description": "Adds Storybook configuration to a project to be able to use and create stories.", + "cli": "nx", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "alias": ["configureTestRunner"], + "x-priority": "important", + "default": true + }, + "configureCypress": { + "type": "boolean", + "description": "Specifies whether to configure Cypress or not.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "generateStories": { + "type": "boolean", + "description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.", + "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", + "default": true, + "x-priority": "important" + }, + "generateCypressSpecs": { + "type": "boolean", + "description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "configureStaticServe": { + "type": "boolean", + "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", + "x-prompt": "Configure a static file server for the storybook instance?", + "default": true, + "x-priority": "important" + }, + "cypressDirectory": { + "type": "string", + "description": "A directory where the Cypress project will be placed. Placed at the root by default.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": true, + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + } + }, + "additionalProperties": false, + "required": ["project"], + "examplesFile": "This generator will set up Storybook for your **Angular** project. By default, starting Nx 16, Storybook v7 is used.\n\n```bash\nnx g @nx/angular:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Angular overview page](/recipes/storybook/overview-angular#generate-storybook-configuration-for-an-angular-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/angular/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests).\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/angular:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/angular:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/angular:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", + "presets": [] + }, + "description": "Adds Storybook configuration to a project.", + "implementation": "/packages/angular/src/generators/storybook-configuration/storybook-configuration.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/storybook-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/angular/generators/web-worker.json b/docs/generated/packages/angular/generators/web-worker.json new file mode 100644 index 0000000000000..34551b6f15c26 --- /dev/null +++ b/docs/generated/packages/angular/generators/web-worker.json @@ -0,0 +1,54 @@ +{ + "name": "web-worker", + "factory": "./src/generators/web-worker/web-worker", + "schema": { + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "NxAngularWebWorkerGenerator", + "title": "Angular Web Worker Options Schema", + "description": "Creates a new, generic web worker definition in the given or default project.", + "cli": "nx", + "type": "object", + "properties": { + "path": { + "type": "string", + "format": "path", + "description": "The path at which to create the worker file, relative to the current workspace." + }, + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-dropdown": "projects", + "x-priority": "important" + }, + "name": { + "type": "string", + "description": "The name of the worker.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the worker?", + "x-priority": "important" + }, + "snippet": { + "type": "boolean", + "default": true, + "description": "Add a worker creation snippet in a sibling file of the same name." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": ["name", "project"], + "examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Simple Usage\" %}\n\nThe basic usage of the `web-worker` generator is defined below. You must provide a name for the web worker and the project to assign it to.\n\n```bash\nnx g @nx/angular:web-worker myWebWorker --project=myapp\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Creates a Web Worker.", + "implementation": "/packages/angular/src/generators/web-worker/web-worker.ts", + "aliases": [], + "hidden": false, + "path": "/packages/angular/src/generators/web-worker/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/cypress/documents/overview.md b/docs/generated/packages/cypress/documents/overview.md new file mode 100644 index 0000000000000..fac5081f52a8a --- /dev/null +++ b/docs/generated/packages/cypress/documents/overview.md @@ -0,0 +1,217 @@ +--- +title: Overview of the Nx Cypress Plugin +description: The Nx Plugin for Cypress contains executors and generators that support e2e testing with Cypress. This page also explains how to configure Cypress on your Nx workspace. +--- + +Cypress is a test runner built for the modern web. It has a lot of great features: + +- Time travel +- Real-time reloads +- Automatic waiting +- Spies, stubs, and clocks +- Network traffic control +- Screenshots and videos + +## Setting Up @nx/cypress + +> Info about [Cypress Component Testing can be found here](/recipes/cypress/cypress-component-testing) +> +> Info about [using Cypress and Storybook can be found here](/recipes/storybook/overview-react#cypress-tests-for-storiesbook) + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/cypress` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/cypress` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/cypress +``` + +This will install the correct version of `@nx/cypress`. + +### How @nx/cypress Infers Tasks + +The `@nx/cypress` plugin will create a task for any project that has a Cypress configuration file present. Any of the following files will be recognized as a Cypress configuration file: + +- `cypress.config.js` +- `cypress.config.ts` +- `cypress.config.mjs` +- `cypress.config.mts` +- `cypress.config.cjs` +- `cypress.config.cts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/cypress Configuration + +The `@nx/cypress/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/cypress/plugin", + "options": { + "ciTargetName": "e2e-ci", + "targetName": "e2e", + "componentTestingTargetName": "component-test" + } + } + ] +} +``` + +- The `targetName`, `ciTargetName` and `componentTestingTargetName` options control the namea of the inferred Cypress tasks. The default names are `e2e`, `e2e-ci` and `component-test`. + +### Splitting E2E tasks by file + +The `@nx/cypress/plugin` will automatically split your e2e tasks by file. You can read more about this feature [here](/ci/features/split-e2e-tasks). + +To enable e2e task splitting, make sure there is a `ciWebServerCommand` property set in your `cypress.config.ts` file. It will look something like this: + +```ts {% fileName="apps/my-project-e2e/cypress.config.ts" highlightLines=[13] %} +import { defineConfig } from 'cypress'; +import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__filename, { + cypressDir: 'src', + bundler: 'vite', + webServerCommands: { + default: 'nx run my-project:serve', + production: 'nx run my-project:preview', + }, + ciWebServerCommand: 'nx run my-project:serve-static', + }), + baseUrl: 'http://localhost:4200', + }, +}); +``` + +{% callout type="note" title="Using setupNodeEvents function" %} +If you use the `setupNodeEvents` function in your Cypress configuration, make sure to invoke the same function that is returned by `nxE2EPreset`. See the recipe on [using `setupNodeEvents` with Cypress preset](/recipes/cypress/cypress-setup-node-events) for more details. +{% /callout %} + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/cypress` package with your package manager. + +```shell +npm add -D @nx/cypress +``` + +{% /tab %} +{% /tabs %} + +## E2E Testing + +By default, when creating a new frontend application, Nx will use Cypress to create the e2e tests project. + +```shell +nx g @nx/web:app frontend +``` + +### Configure Cypress for an existing project + +To configure Cypress for an existing project, run the following generator + +```shell +nx g @nx/cypress:configuration --project=your-app-name +``` + +Optionally, you can use the `--baseUrl` option if you don't want the Cypress plugin to serve `your-app-name`. + +```shell +nx g @nx/cypress:configuration --project=your-app-name --baseUrl=http://localhost:4200 +``` + +Replace `your-app-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json`. + +### Testing Applications + +Run `nx e2e frontend-e2e` to execute e2e tests with Cypress. + +You can run your e2e test against a production build by using the `production` [configuration](https://nx.dev/concepts/executors-and-configurations#use-task-configurations) + +```shell +nx e2e frontend-e2e --configuration=production +``` + +{% callout type="note" title="Selecting Specific Specs" %} + +You can use the `--spec` flag to glob for test files + +```bash +# run the tests in the smoke/ directory +nx e2e frontend-e2e --spec=**smoke/** + +# run the tests in smoke/ directory and with dashboard in the file name +nx e2e frontend-e2e --spec=**smoke/**,**dashboard.cy** +``` + +{% /callout %} + +By default, Cypress will run in headless mode. You will have the result of all the tests and errors (if any) in your +terminal. Screenshots and videos will be accessible in `dist/cypress/apps/frontend/screenshots` and `dist/cypress/apps/frontend/videos`. + +### Watching for Changes (Headed Mode) + +With, `nx e2e frontend-e2e --watch` Cypress will start in headed mode where you can see your application being tested. + +Running Cypress with `--watch` is a great way to enhance dev workflow - you can build up test files with the application +running and Cypress will re-run those tests as you enhance and add to the suite. + +```shell +nx e2e frontend-e2e --watch +``` + +### Specifying a Custom Url to Test + +The `baseUrl` property provides you the ability to test an application hosted on a specific domain. + +```shell +nx e2e frontend-e2e --baseUrl=https://frontend.com +``` + +> If no `baseUrl` and no `devServerTarget` are provided, Cypress will expect to have the `baseUrl` property in +> the cypress config file, or will error. + +## Using cypress.config.ts + +If you need to fine tune your Cypress setup, you can do so by modifying `cypress.config.ts` in the project root. For +instance, +you can easily add your `projectId` to save all the screenshots and videos into your Cypress dashboard. The complete +configuration is documented +on [the official website](https://docs.cypress.io/guides/references/configuration.html#Options). + +For adding more dynamic configurations to your cypress configuration, you can look into using [setupNodeEvents](https://docs.cypress.io/api/plugins/browser-launch-api#Syntax) configuration option. + +## Environment Variables + +If you're needing to pass a variable to cypress that you wish to not commit to your repository, i.e. API keys, or dynamic values based on configurations, i.e. API Urls. This is where [Cypress environment variables](https://docs.cypress.io/guides/guides/environment-variables) can be used. + +There are a handful of ways to pass environment variables to Cypress, but the most common is going to be via the [`cypress.env.json` file](https://docs.cypress.io/guides/guides/environment-variables#Option-1-configuration-file), the [env executor option for cypress](/nx-api/cypress/executors/cypress#env) or the commandline. + +Create a `cypress.env.json` file in the projects root i.e. `apps/my-cool-app-e2e/cypress.env.json`. Cypress will automatically pick up this file. This method is helpful for configurations that you want to not commit. Just don't forget to add the file to the `.gitignore` and add documentation so people in your repo know what values to popluate in their local copy of the `cypress.env.json` file. + +Using [@nx/cypress:cypress](/nx-api/cypress/executors/cypress) env executor option is a good way to add values you want to define that you don't mine commit to the repository, such as a base API url. You can leverage [target configurations](/reference/project-configuration#targets) to define different values as well. + +Optionally, you can pass environment variables via the commandline with the `--env` flag. + +{% callout type="warning" title="Executor options and --env" %} +When using the `--env` flag, this will not be merged with any values used in the `env` executor option. +{% /callout %} + +```shell +nx e2e frontend-e2e --env.API_URL="https://api.my-nx-website.com" --env.API_KEY="abc-123" +``` diff --git a/docs/generated/packages/cypress/executors/cypress.json b/docs/generated/packages/cypress/executors/cypress.json new file mode 100644 index 0000000000000..39a8227cbadd7 --- /dev/null +++ b/docs/generated/packages/cypress/executors/cypress.json @@ -0,0 +1,166 @@ +{ + "name": "cypress", + "implementation": "/packages/cypress/src/executors/cypress/cypress.impl.ts", + "schema": { + "version": 2, + "title": "Cypress Target", + "description": "Run Cypress for e2e, integration and component testing.", + "type": "object", + "outputCapture": "pipe", + "cli": "nx", + "presets": [ + { + "name": "Starting Dev Server", + "keys": ["cypressConfig", "devServerTarget"] + }, + { "name": "Custom Base Url", "keys": ["cypressConfig", "baseUrl"] }, + { + "name": "Component Testing", + "keys": ["cypressConfig", "devServerTarget", "testingType", "skipServe"] + } + ], + "properties": { + "cypressConfig": { + "type": "string", + "description": "The path of the Cypress configuration json file.", + "x-completion-type": "file", + "x-completion-glob": "cypress?(*)@(.js|.ts|.json)" + }, + "watch": { + "type": "boolean", + "description": "Recompile and run tests when files change.", + "default": false + }, + "tsConfig": { + "x-deprecated": "This option no longer has any effect. Cypress supports typescript out of the box. Add any options directly to /tsconfig.json or /cypress/tsconfig.json", + "type": "string", + "description": "The path of the Cypress tsconfig configuration json file.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json" + }, + "devServerTarget": { + "type": "string", + "description": "Dev server target to run tests against." + }, + "headed": { + "type": "boolean", + "description": "Displays the browser instead of running headlessly. Set this to `true` if your run depends on a Chrome extension being loaded.", + "default": false + }, + "headless": { + "type": "boolean", + "description": "Hide the browser instead of running headed.", + "default": false, + "x-deprecated": "Cypress runs headless by default. Use the --watch flag to control head/headless behavior instead." + }, + "exit": { + "type": "boolean", + "description": "Whether or not the Cypress Test Runner will stay open after running tests in a spec file.", + "default": true + }, + "key": { + "type": "string", + "description": "The key cypress should use to run tests in parallel/record the run (CI only)." + }, + "record": { + "type": "boolean", + "description": "Whether or not Cypress should record the results of the tests.", + "default": false + }, + "parallel": { + "aliases": ["p"], + "type": "boolean", + "description": "Whether or not Cypress should run its tests in parallel (CI only).", + "default": false + }, + "baseUrl": { + "type": "string", + "description": "The address (with the port) which your application is running on.", + "x-priority": "important" + }, + "browser": { + "type": "string", + "description": "The browser to run tests in." + }, + "env": { + "type": "object", + "description": "A key-value Pair of environment variables to pass to Cypress runner." + }, + "spec": { + "type": "string", + "description": "A comma delimited glob string that is provided to the Cypress runner to specify which spec files to run. i.e. `**examples/**,**actions.spec**`." + }, + "copyFiles": { + "type": "string", + "description": "A regex string that is used to choose what additional integration files to copy to the dist folder.", + "x-deprecated": "No longer used since cypress supports typescript out of the box. If specified, it will be ignored.", + "x-priority": "internal" + }, + "ciBuildId": { + "oneOf": [{ "type": "string" }, { "type": "number" }], + "description": "A unique identifier for a run to enable grouping or parallelization." + }, + "group": { + "type": "string", + "description": "A named group for recorded runs in the Cypress dashboard." + }, + "ignoreTestFiles": { + "aliases": ["excludeSpecPattern"], + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ], + "description": "A String or Array of glob patterns used to ignore test files that would otherwise be shown in your list of tests. Cypress uses minimatch with the options: `{dot: true, matchBase: true}`. We suggest using https://globster.xyz to test what files would match." + }, + "reporter": { + "type": "string", + "description": "The reporter used during cypress run." + }, + "reporterOptions": { + "oneOf": [{ "type": "string" }, { "type": "object" }], + "description": "The reporter options used. Supported options depend on the reporter. https://docs.cypress.io/guides/tooling/reporters#Reporter-Options" + }, + "skipServe": { + "type": "boolean", + "description": "Skip dev-server build.", + "default": false + }, + "testingType": { + "type": "string", + "description": "Specify the type of tests to execute.", + "enum": ["component", "e2e"], + "default": "e2e" + }, + "tag": { + "type": "string", + "description": "A comma delimited list to identify a run with.", + "aliases": ["t"] + }, + "port": { + "oneOf": [ + { "type": "string", "enum": ["cypress-auto"] }, + { "type": "number" } + ], + "description": "Pass a specified port value to the devServerTarget, if the value is 'cypress-auto' a free port will automatically be picked for the devServerTarget." + }, + "quiet": { + "aliases": ["q"], + "type": "boolean", + "description": "If passed, Cypress output will not be printed to stdout. Only output from the configured Mocha reporter will print.", + "default": false + }, + "runnerUi": { + "type": "boolean", + "description": "Displays the Cypress Runner UI. Useful for when Test Replay is enabled and you would still like the Cypress Runner UI to be displayed for screenshots and video." + } + }, + "additionalProperties": true, + "required": ["cypressConfig"], + "examplesFile": "Depending on your testing type, the Cypress executor is configured in different ways. The following are sample configurations that are created via the [configuration](/packages/cypress/generators/configuration) and [cypress-component-configuration](/packages/cypress/generators/cypress-component-configuration) generators.\n\n{% tabs %}\n{% tab label=\"E2E Testing\" %}\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"apps/app-e2e/cypres.config.ts\",\n \"devServerTarget\": \"my-react-app:serve\",\n \"testingType\": \"e2e\"\n }\n }\n}\n```\n\n{% callout type=\"note\" title=\"API Testing\" %}\nAPI testing with Cypress is the same setup as e2e testing. Just change which `devServerTarget` is used!\n{% /callout %}\n\n### Providing a Base URL\n\nIf `devServerTarget` is provided, the url returned from started the dev server will be passed to cypress as the `baseUrl` option.\n\nDefining a `baseUrl` in the executor options will override the inferred `baseUrl` from the `devServerTarget`.\n\nThe `baseUrl` defined in the Cypress config file is the last value used if no url is found in the `devServerTarget` or executor options.\n\n### Static Serving\n\nWhen running in CI it doesn't make sense to start up a dev server since there aren't changes to watch for.\n\nYou can use [`@nx/web:file-server`](/packages/web/executors/file-server) to serve the pre-built static files of your frontend project.\n\nIn some _frontend_ application, add a 'static-serve' target.\n\n```json\n\"serve-static\": {\n \"executor\": \"@nx/web:file-server\",\n \"options\":{\n \"buildTarget\": \"frontend:build\"\n }\n}\n```\n\nIn the _e2e_ application add a configuration to change `devServerTarget` to point to the `static-serve` from the _frontend_ application\n\n```json\n\"e2e\": {\n //...\n \"configurations\": {\n \"ci\": {\n \"devServerTarget\": \"frontend:serve-static\"\n }\n }\n}\n```\n\n{% callout type=\"note\" title=\"What about Node projects?\" %}\nThe same can be done for backend node apps with [`@nx/js:node` executor](/packages/js/executors/node)\n{% /callout %}\n\n```bash\nnx e2e my-app-e2e\n```\n\n{% /tab %}\n{% tab label=\"Component Testing\" %}\n\n{% callout type=\"note\" title=\"Cypress Component Testing\" %}\nWhen adding component testing to a project, it's best to use the framework specific generator, instead `cypress-component-project` directly.\n\n- [React component testing](/packages/react/generators/cypress-component-configuration)\n- [Angular component testing](/packages/angular/generators/cypress-component-configuration)\n\n{% /callout %}\n\n```json\n\"targets\": {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"apps/app/cypres.config.ts\",\n \"devServerTarget\": \"my-react-app:build\",\n \"testingType\": \"component\",\n \"skipServe\": true\n }\n }\n}\n```\n\nIt's important `skipServe` is set to true. Nx doesn't need to run the `devServerTarget`, Cypress creates its own dev server for component testing.\nInstead, Nx needs to know what build target to create the correct configuration to pass to Cypress, which is why it's still used in component testing.\n\n{% /tab %}\n{% /tabs %}\n\n### Environment Variables\n\nUsing [executor configurations](recipes/executors/use-executor-configurations#use-executor-configurations) offers flexibility to set environment variables\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"apps/app-e2e/cypres.config.ts\",\n \"devServerTarget\": \"my-react-app:serve\",\n \"testingType\": \"e2e\"\n },\n \"configurations\": {\n \"qa\": {\n \"env\": {\n \"API_URL\": \"https://api.qa.company.com\"\n }\n },\n \"dev\": {\n \"env\": {\n \"API_URL\": \"http://localhost:3333/api\"\n }\n }\n }\n }\n}\n```\n\nRead more on different ways to use [environment variables for cypress executor](/packages/cypress#environment-variables)\n" + }, + "description": "Run Cypress E2E tests.", + "aliases": [], + "hidden": false, + "path": "/packages/cypress/src/executors/cypress/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/cypress/generators/component-configuration.json b/docs/generated/packages/cypress/generators/component-configuration.json new file mode 100644 index 0000000000000..e089357ceeb68 --- /dev/null +++ b/docs/generated/packages/cypress/generators/component-configuration.json @@ -0,0 +1,52 @@ +{ + "name": "component-configuration", + "aliases": ["cypress-component-configuration"], + "factory": "./src/generators/component-configuration/component-configuration#componentConfigurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxCypressComponentConfiguration", + "cli": "nx", + "title": "Set up Cypress component testing for a project", + "description": "Set up Cypress component test for a project.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/cypress:component-configuration --project=my-cool-lib ", + "description": "Add cypress component testing to an existing project named my-cool-lib" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add cypress component testing to", + "$default": { "$source": "projectName" }, + "x-prompt": "What project should we add Cypress component testing to?" + }, + "bundler": { + "description": "The Cypress bundler to use.", + "type": "string", + "enum": ["vite", "webpack"], + "x-prompt": "Which Cypress bundler do you want to use for the dev-server?", + "default": "webpack" + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed relative from the project root", + "default": "cypress" + }, + "jsx": { + "description": "Whether or not this project uses JSX.", + "type": "boolean", + "default": true + } + }, + "required": ["project"], + "examplesFile": "This is a framework-agnostic generator for adding component testing to a project.\n\n```bash\nnx g cypress-component-configuration --project=my-cool-project\n```\n\nRunning this generator, adds the required files to the specified project without any configurations for Cypress. It's best to use the framework specific generator, instead `cypress-component-configuration` directly\n\n- [React component testing](/packages/react/generators/cypress-component-configuration)\n- [Angular component testing](/packages/angular/generators/cypress-component-configuration)\n\nA new `component-test` target will be added to the specified project.\n\n```bash\nnx g component-test my-cool-project\n```\n\nRead more about [Cypress Component Testing](/cypress/cypress-component-testing)\n", + "presets": [] + }, + "description": "Set up Cypress Component Test for a project", + "hidden": true, + "implementation": "/packages/cypress/src/generators/component-configuration/component-configuration#componentConfigurationGeneratorInternal.ts", + "path": "/packages/cypress/src/generators/component-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/cypress/generators/configuration.json b/docs/generated/packages/cypress/generators/configuration.json new file mode 100644 index 0000000000000..4925f64b63b00 --- /dev/null +++ b/docs/generated/packages/cypress/generators/configuration.json @@ -0,0 +1,100 @@ +{ + "name": "configuration", + "aliases": ["cypress-e2e-configuration", "e2e", "e2e-config"], + "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxCypressE2EConfigGenerator", + "cli": "nx", + "title": "Add a Cypress Configuration.", + "description": "Add a Cypress configuration to an existing project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The project to add a Cypress configuration to", + "$default": { "$source": "projectName" }, + "x-priority": "important", + "x-prompt": "What project do you want to add Cypress to?" + }, + "devServerTarget": { + "type": "string", + "description": "A devServerTarget,':[:], that will be used to run tests against. This is usually the app this project will be used in. Pass --baseUrl if you wish to not use a devServerTarget.", + "x-priority": "important" + }, + "port": { + "oneOf": [ + { "type": "string", "enum": ["cypress-auto"] }, + { "type": "number" } + ], + "description": "Set the 'port' option on the e2e target. It's recommend to set a different port so you can run tests e2e targets in parallel. Most dev servers support using '0' to automatically find a free port. The value 'cypress-auto' can be used if the underlying dev server does not support automatically finding a free port.", + "x-priority": "important" + }, + "baseUrl": { + "type": "string", + "description": "The address (with the port) which your application is running on. If you wish to start your application when running the e2e target, then use --devServerTarget instead." + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed relative from the project root", + "x-priority": "important", + "default": "cypress" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "js": { + "description": "Generate JavaScript files rather than TypeScript files.", + "type": "boolean", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "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 + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "rootProject": { + "description": "Create a application at the root of the workspace", + "type": "boolean", + "default": false, + "hidden": true, + "x-priority": "internal" + }, + "bundler": { + "description": "The Cypress bundler to use.", + "type": "string", + "enum": ["vite", "webpack", "none"], + "x-prompt": "Which Cypress bundler do you want to use?", + "default": "webpack" + }, + "jsx": { + "description": "Whether or not this project uses JSX.", + "type": "boolean", + "default": true + } + }, + "required": ["project"], + "examplesFile": "This is a generator to add a cypress e2e configuration to an existing project.\n\n```bash\nnx g @nx/cypress:configuration --project=my-cool-project --devServerTarget=some-app:serve\n```\n\nRunning this generator, adds the required files to run cypress tests for a project,\nMainly a `cypress.config.ts` file and default files in the `/cypress/` directory.\nTests will be located in `/cypress/e2e/*` by default.\n\nYou can customize the directory used via the `--directory` flag, the value is relative to the project root.\n\nFor example if you wanted to place the files inside an `e2e` folder\n\n```bash\nnx g @nx/cypress:configuration --project=my-cool-project --devServerTarget=some-app:serve --directory=e2e\n```\n\nProviding a `--devServerTarget` is optional if you provide a `--baseUrl` or the project you're adding the configuration to has a `serve` target already.\nOtherwise, a `--devServerTarget` is recommend for the `@nx/cypress:cypress` executor to spin up the dev server for you automatically when needed.\n\n## Feature Based Testing\n\nThis generator helps in creating feature based e2e/integration testing setups where you can place the feature tests in the same project as the feature library.\nThis differs from creating a separate e2e project that contained all tests for an application which can easily cause more tests to run than is strictly necessary.\n\nTake the following workspace where the `feature-cart` project is affected.\n\n{% graph height=\"450px\" %}\n\n```json\n{\n \"projects\": [\n {\n \"type\": \"app\",\n \"name\": \"fancy-app\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"app\",\n \"name\": \"fancy-app-e2e\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"lib\",\n \"name\": \"feature-user\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"lib\",\n \"name\": \"feature-dashboard\",\n \"data\": {\n \"tags\": []\n }\n },\n {\n \"type\": \"lib\",\n \"name\": \"feature-cart\",\n \"data\": {\n \"tags\": []\n }\n }\n ],\n \"groupByFolder\": false,\n \"workspaceLayout\": {\n \"appsDir\": \"apps\",\n \"libsDir\": \"libs\"\n },\n \"dependencies\": {\n \"fancy-app\": [\n {\n \"target\": \"feature-user\",\n \"source\": \"fancy-app\",\n \"type\": \"static\"\n },\n {\n \"target\": \"feature-cart\",\n \"source\": \"fancy-app\",\n \"type\": \"static\"\n }\n ],\n \"fancy-app-e2e\": [\n {\n \"target\": \"fancy-app\",\n \"source\": \"fancy-app-e2e\",\n \"type\": \"implicit\"\n }\n ],\n \"feature-user\": [\n {\n \"target\": \"feature-dashboard\",\n \"source\": \"feature-user\",\n \"type\": \"direct\"\n }\n ],\n \"feature-cart\": [],\n \"feature-dashboard\": []\n },\n \"affectedProjectIds\": [\"feature-cart\", \"fancy-app\", \"fancy-app-e2e\"]\n}\n```\n\n{% /graph %}\n\nIn this case, if tests for the all the `feature-*` projects where contained in the `fancy-app-e2e` project, then all of those features will be tested in the app, when only the `feature-cart` tests need to run.\n\nRunning these e2e/integration tests more often than they should results in longer CI times.\n\nBrining those e2e test closer to each feature can result is lowering CI times since we don't need to test those features if they did not change.\n\nBuilding this way leaves the `fancy-app-e2e` for mostly smoke type testing instead of more in-depth feature testing.\n\nUsing the `@nx/cypress:configuration` generator can help you accomplish this in your workspace.\n\n```bash\nnx g @nx/cypress:configuration --project=feature-cart --devServerTarget=fancy-app:serve\nnx g @nx/cypress:configuration --project=feature-user --devServerTarget=fancy-app:serve\nnx g @nx/cypress:configuration --project=feature-dashboard --devServerTarget=fancy-app:serve\n```\n\nEach project will now get their own `e2e` target, where the feature project is only concerned with itself. This allows for more focused tests without worrying about forcing unrelated tests to also run.\n\nIt's important to remember that these feature tests are still going to be leveraging the same app to run the tests against so if you plan to run in parallel, you can leverage using a file server and the ability for `@nx/cypress:cypress` executor to pass through a port or find a free port to allow running tests in parallel. Read more [about the --port flag](/packages/cypress/executors/cypress#port)\n", + "presets": [] + }, + "description": "Add a Cypress E2E Configuration to an existing project.", + "implementation": "/packages/cypress/src/generators/configuration/configuration#configurationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/cypress/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/cypress/generators/cypress-project.json b/docs/generated/packages/cypress/generators/cypress-project.json new file mode 100644 index 0000000000000..42b1e98c836ef --- /dev/null +++ b/docs/generated/packages/cypress/generators/cypress-project.json @@ -0,0 +1,84 @@ +{ + "name": "cypress-project", + "factory": "./src/generators/cypress-project/cypress-project#cypressProjectGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxCypressProjectGeneratorSchema", + "cli": "nx", + "title": "Create Cypress Configuration for the workspace", + "description": "Create Cypress Configuration for the workspace.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the frontend project to test.", + "$default": { "$source": "projectName" }, + "x-priority": "important" + }, + "baseUrl": { + "type": "string", + "description": "The address (with the port) which your application is running on." + }, + "name": { + "type": "string", + "description": "Name of the E2E Project.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the e2e project?" + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed.", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "js": { + "description": "Generate JavaScript files rather than TypeScript files.", + "type": "boolean", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "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 + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "bundler": { + "description": "The Cypress bundler to use.", + "type": "string", + "enum": ["vite", "webpack", "none"], + "x-prompt": "Which Cypress bundler do you want to use?", + "default": "webpack" + } + }, + "required": ["name"], + "examplesFile": "Adding Cypress to an existing application requires two options. The name of the e2e app to create and what project that e2e app is for.\n\n```bash\nnx g configuration --name=my-app-e2e --project=my-app\n```\n\nWhen providing `--project` option, the generator will look for the `serve` target in that given project. This allows the [cypress executor](/packages/cypress/executors/cypress) to spin up the project and start the cypress runner.\n\nIf you prefer to not have the project served automatically, you can provide a `--base-url` argument in place of `--project`\n\n```bash\nnx g configuration --name=my-app-e2e --base-url=http://localhost:1234\n```\n\n{% callout type=\"note\" title=\"What about API Projects?\" %}\nYou can also run the `configuration` generator against API projects like a [Nest API](/packages/nest/generators/application#@nx/nest:application).\nIf there is a URL to visit then you can test it with Cypress!\n{% /callout %}\n\n## Using Cypress with Vite.js\n\nNow, you can generate your Cypress project with Vite.js as the bundler:\n\n```bash\nnx g configuration --name=my-app-e2e --project=my-app --bundler=vite\n```\n\nThis generator will pass the `bundler` information (`bundler: 'vite'`) to our `nxE2EPreset`, in your project's `cypress.config.ts` file (eg. `my-app-e2e/cypress.config.ts`).\n\n### Customizing the Vite.js configuration\n\nThe `nxE2EPreset` will then use the `bundler` information to generate the correct settings for your Cypress project to use Vite.js. In the background, the way this works is that it's using a custom Vite preprocessor for your files, that's called on the `file:preprocessor` event. If you want to customize this behaviour, you can do so like this in your project's `cypress.config.ts` file:\n\n```ts\nimport { defineConfig } from 'cypress';\nimport { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset';\n\nconst config = nxE2EPreset(__filename, { bundler: 'vite' });\nexport default defineConfig({\n e2e: {\n ...config,\n async setupNodeEvents(on, config) {\n // Ensure that `@nx/cypress` events are set up.\n await config.setupNodeEvents(on, config);\n\n // Your settings here\n },\n },\n});\n```\n", + "presets": [] + }, + "description": "Add a Cypress E2E Project.", + "hidden": true, + "implementation": "/packages/cypress/src/generators/cypress-project/cypress-project#cypressProjectGeneratorInternal.ts", + "aliases": [], + "path": "/packages/cypress/src/generators/cypress-project/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/cypress/generators/init.json b/docs/generated/packages/cypress/generators/init.json new file mode 100644 index 0000000000000..7a383e52da298 --- /dev/null +++ b/docs/generated/packages/cypress/generators/init.json @@ -0,0 +1,45 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#cypressInitGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxCypressInit", + "cli": "nx", + "title": "Add Cypress Configuration to the workspace", + "description": "Add Cypress Configuration to the workspace.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "presets": [] + }, + "description": "Initialize the `@nrwl/cypress` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/cypress/src/generators/init/init#cypressInitGeneratorInternal.ts", + "path": "/packages/cypress/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/cypress/generators/migrate-to-cypress-11.json b/docs/generated/packages/cypress/generators/migrate-to-cypress-11.json new file mode 100644 index 0000000000000..79704fcfe0d0d --- /dev/null +++ b/docs/generated/packages/cypress/generators/migrate-to-cypress-11.json @@ -0,0 +1,26 @@ +{ + "name": "migrate-to-cypress-11", + "factory": "./src/generators/migrate-to-cypress-11/migrate-to-cypress-11#migrateCypressProject", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxCypressMigrateTo11", + "cli": "nx", + "title": "Migrate e2e project to Cypress 11", + "description": "Migrate Cypress e2e project from v8/v9 to Cypress v11.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/cypress:migrate-to-cypress-11", + "description": "Migrate existing cypress projects to Cypress v11" + } + ], + "properties": {}, + "presets": [] + }, + "description": "Migrate existing Cypress e2e projects to Cypress v11", + "implementation": "/packages/cypress/src/generators/migrate-to-cypress-11/migrate-to-cypress-11#migrateCypressProject.ts", + "aliases": [], + "hidden": false, + "path": "/packages/cypress/src/generators/migrate-to-cypress-11/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/detox/documents/overview.md b/docs/generated/packages/detox/documents/overview.md new file mode 100644 index 0000000000000..051f8d646d709 --- /dev/null +++ b/docs/generated/packages/detox/documents/overview.md @@ -0,0 +1,135 @@ +Detox is gray box end-to-end testing and automation library for mobile apps. It has a lot of great features: + +- Cross Platform +- Runs on Devices +- Automatically Synchronized +- Test Runner Independent +- Debuggable + +## Setting Up Detox + +### Setup Environment + +#### Install applesimutils (Mac only) + +[applesimutils](https://github.com/wix/AppleSimulatorUtils) is a collection of utils for Apple simulators. + +```sh +brew tap wix/brew +brew install applesimutils +``` + +#### Install Jest Globally + +```sh +npm install -g jest +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/detox` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/detox` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/detox +``` + +This will install the correct version of `@nx/detox`. + +### How @nx/detox Infers Tasks + +The `@nx/detox` plugin will create a task for any project that has an ESLint configuration file present. Any of the following files will be recognized as an ESLint configuration file: + +- `.detoxrc.js` +- `.detoxrc.json` +- `detox.config.js` +- `detox.config.json` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/detox Configuration + +The `@nx/detox/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/detox/plugin", + "options": { + "buildTargetName": "build", + "startTargetName": "start", + "testTargetName": "test" + } + } + ] +} +``` + +Once a Detox configuration file has been identified, the targets are created with the name you specify under `buildTargetName`, `startTargetName` or `testTargetName` in the `nx.json` `plugins` array. The default names for the inferred targets are `build` and `test`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/detox` package with your package manager. + +```shell +npm add -D @nx/detox +``` + +### Generating Applications + +By default, when creating a mobile application, Nx will use Detox to create the e2e tests project. + +```shell +nx g @nx/react-native:app frontend --e2eTestRunner=deotx +nx g @nx/expo:app frontend --e2eTestRunner=detox +``` + +## Using Detox + +### Testing Applications + +- Run `nx test-ios frontend-e2e` to build the iOS app and execute e2e tests with Detox for iOS (Mac only) +- Run `nx test-android frontend-e2e` to build the Android app and execute e2e tests with Detox for Android + +You can run below commands: + +- `nx build-ios frontend-e2e`: build the iOS app (Mac only) +- `nx build-android frontend-e2e`: build the Android app + +### Testing against Prod Build + +You can run your e2e test against a production build: + +- `nx test-ios frontend-e2e --prod`: to build the iOS app and execute e2e tests with Detox for iOS with Release configuration (Mac only) +- `nx test-android frontend-e2e --prod`: to build the Android app and execute e2e tests with Detox for Android with release build type +- `nx build-ios frontend-e2e --prod`: build the iOS app using Release configuration (Mac only) +- `nx build-android frontend-e2e --prod`: build the Android app using release build type + +## Configuration + +### Using .detoxrc.json + +If you need to fine tune your Detox setup, you can do so by modifying `.detoxrc.json` in the e2e project. + +#### Change Testing Simulator/Emulator + +For iOS, in terminal, run `xcrun simctl list devices available` to view a list of simulators on your Mac. To open your active simulator, `run open -a simulator`. In `frontend-e2e/.detoxrc.json`, you could change the simulator under `devices.simulator.device`. + +For Android, in terminal, run `emulator -list-avds` to view a list of emulators installed. To open your emulator, run `emulator -avd `. In `frontend-e2e/.detoxrc.json`, you could change the simulator under `devices.emulator.device`. + +In addition, to override the device name specified in a configuration, you could use `--device-name` option: `nx test-ios --device-name "iPhone 11"`. The `device-name` property provides you the ability to test an application run on specific device. + +```shell +nx test-ios frontend-e2e --device-name "iPhone 11" +nx test-android frontend-e2e --device-name "Pixel_4a_API_30" +``` diff --git a/docs/generated/packages/detox/executors/build.json b/docs/generated/packages/detox/executors/build.json new file mode 100644 index 0000000000000..ac5e12d0abd3f --- /dev/null +++ b/docs/generated/packages/detox/executors/build.json @@ -0,0 +1,33 @@ +{ + "name": "build", + "implementation": "/packages/detox/src/executors/build/build.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Run detox build", + "description": "Run detox build options.", + "type": "object", + "cli": "nx", + "properties": { + "detoxConfiguration": { + "type": "string", + "description": "Select a device configuration from your defined configurations, if not supplied, and there's only one configuration, detox will default to it.", + "alias": "C" + }, + "configPath": { + "type": "string", + "description": "Specify Detox config file path. If not supplied, detox searches for `.detoxrc[.js]` or `detox` section in `package.json`.", + "alias": "cp", + "x-completion-type": "file", + "x-completion-glob": ".detoxrc?(.js)" + } + }, + "required": [], + "presets": [] + }, + "description": "Run the command defined in build property of the specified configuration.", + "aliases": [], + "hidden": false, + "path": "/packages/detox/src/executors/build/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/detox/executors/test.json b/docs/generated/packages/detox/executors/test.json new file mode 100644 index 0000000000000..f05398a1baf26 --- /dev/null +++ b/docs/generated/packages/detox/executors/test.json @@ -0,0 +1,167 @@ +{ + "name": "test", + "implementation": "/packages/detox/src/executors/test/test.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Run detox test", + "description": "Run detox test options.", + "type": "object", + "cli": "nx", + "presets": [ + { "name": "Test a Detox Configuration", "keys": ["detoxConfiguration"] }, + { "name": "Reuse Existing Installed App", "keys": ["reuse"] }, + { "name": "Set Log Level", "keys": ["loglevel"] } + ], + "properties": { + "detoxConfiguration": { + "type": "string", + "description": "Select a device configuration from your defined configurations, if not supplied, and there's only one configuration, detox will default to it.", + "alias": "C", + "examples": [ + "ios.sim.debug", + "ios.sim.release", + "android.emu.debug", + "android.emu.release" + ] + }, + "buildTarget": { + "type": "string", + "description": "Target which builds the application." + }, + "configPath": { + "type": "string", + "description": "Specify Detox config file path. If not supplied, detox searches for `.detoxrc[.js]` or `detox` section in package.json.", + "alias": "cp", + "x-completion-type": "file", + "x-completion-glob": ".detoxrc?(.js)", + "x-priority": "important" + }, + "loglevel": { + "type": "string", + "enum": ["fatal", "error", "warn", "info", "verbose", "trace"], + "description": "Log level: `fatal`, `error`, `warn`, `info`, `verbose`, `trace`.", + "alias": "l" + }, + "retries": { + "type": "number", + "description": "[Jest Circus Only] Re-spawn the test runner for individual failing suite files until they pass, or `` times at least." + }, + "reuse": { + "type": "boolean", + "description": "Reuse existing installed app (do not delete + reinstall) for a faster run.", + "default": false + }, + "cleanup": { + "type": "boolean", + "description": "Shutdown simulator when test is over, useful for CI scripts, to make sure detox exists cleanly with no residue", + "alias": "u" + }, + "debugSynchronization": { + "type": "boolean", + "description": "Customize how long an action/expectation can take to complete before Detox starts querying the app why it is busy. By default, the app status will be printed if the action takes more than 10s to complete.", + "alias": "d" + }, + "artifactsLocation": { + "type": "string", + "description": "Artifacts (logs, screenshots, etc) root directory.", + "alias": "a" + }, + "recordLogs": { + "type": "string", + "enum": ["failing", "all", "none"], + "description": "Save logs during each test to artifacts directory. Pass `failing` to save logs of failing tests only." + }, + "takeScreenshots": { + "type": "string", + "enum": ["manual", "failing", "all", "none"], + "description": "Save screenshots before and after each test to artifacts directory. Pass `failing` to save screenshots of failing tests only. " + }, + "recordVideos": { + "type": "string", + "enum": ["failing", "all", "none"], + "description": "Save screen recordings of each test to artifacts directory. Pass `failing` to save recordings of failing tests only." + }, + "recordPerformance": { + "type": "string", + "enum": ["all", "none"], + "description": "[iOS Only] Save Detox Instruments performance recordings of each test to artifacts directory." + }, + "captureViewHierarchy": { + "type": "string", + "enum": ["enabled", "disabled"], + "description": "[iOS Only] Capture `*.uihierarchy` snapshots on view action errors and `device.captureViewHierarchy()` calls." + }, + "jestReportSpecs": { + "type": "boolean", + "description": "[Jest Only] Whether to output logs per each running spec, in real-time. By default, disabled with multiple workers." + }, + "headless": { + "type": "boolean", + "description": "Android Only] Launch Emulator in headless mode. Useful when running on CI." + }, + "gpu": { + "type": "boolean", + "description": "[Android Only] Launch Emulator with the specific `-gpu [gpu mode]` parameter." + }, + "keepLockFile": { + "type": "boolean", + "description": "Keep the device lock file when running Detox tests." + }, + "deviceName": { + "type": "string", + "description": "Override the device name specified in a configuration. Useful for running a single build configuration on multiple devices.", + "alias": "n" + }, + "deviceBootArgs": { + "type": "string", + "description": "Custom arguments to pass (through) onto the device (emulator/simulator) binary when booted." + }, + "appLaunchArgs": { + "type": "number", + "description": "Custom arguments to pass (through) onto the app every time it is launched." + }, + "useCustomLogger": { + "type": "boolean", + "description": "Use Detox' custom console-logging implementation, for logging Detox (non-device) logs. Disabling will fallback to Node.js / test-runner's implementation (e.g. Jest / Mocha)." + }, + "forceAdbInstall": { + "type": "boolean", + "description": "Due to problems with the adb install command on Android, Detox resorts to a different scheme for install APK's. Setting true will disable that and force usage of `adb install`, instead." + }, + "inspectBrk": { + "type": "boolean", + "description": "Uses node's `--inspect-brk` flag to let users debug the jest/mocha test runner" + }, + "color": { "type": "boolean", "description": "Colors in log output" }, + "runnerConfig": { + "type": "string", + "description": "Test runner config file, defaults to `e2e/mocha.opts` for mocha and `e2e/config.json` for Jest.", + "alias": "o", + "x-deprecated": "Deprecated in Detox 20. It is default to jest.config.json. It could be specified in .detoxrc.json" + }, + "recordTimeline": { + "type": "string", + "enum": ["all", "none"], + "description": "[Jest Only] Record tests and events timeline, for visual display on the `chrome://tracing` tool.", + "x-deprecated": "Deprecated in Detox 20." + }, + "workers": { + "type": "number", + "description": "Specifies number of workers the test runner should spawn, requires a test runner with parallel execution support (Detox CLI currently supports Jest).", + "x-deprecated": "Deprecated in Detox 20." + }, + "deviceLaunchArgs": { + "type": "string", + "description": "A list of passthrough-arguments to use when (if) devices (Android emulator / iOS simulator) are launched by Detox.", + "x-deprecated": "Deprecated in Detox 20. Use `deviceBootArgs` instead." + } + }, + "required": ["detoxConfiguration"] + }, + "description": "Initiating your detox test suite.", + "aliases": [], + "hidden": false, + "path": "/packages/detox/src/executors/test/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/detox/generators/application.json b/docs/generated/packages/detox/generators/application.json new file mode 100644 index 0000000000000..5b7611478117b --- /dev/null +++ b/docs/generated/packages/detox/generators/application.json @@ -0,0 +1,79 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#detoxApplicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "title": "Create Detox Configuration for the workspace", + "description": "Create Detox Configuration for the workspace.", + "type": "object", + "properties": { + "appProject": { + "type": "string", + "description": "Name of the frontend project to be tested.", + "$default": { "$source": "projectName" }, + "x-prompt": "What is the name of the frontend project to test?" + }, + "e2eName": { + "type": "string", + "description": "Name of the E2E Project.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the E2E project?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "appName": { + "type": "string", + "description": "Name of the app to be tested if different from appProject" + }, + "appDisplayName": { + "type": "string", + "description": "Display name of the app to be tested if different from appProject" + }, + "framework": { + "type": "string", + "description": "App framework to test", + "enum": ["react-native", "expo"], + "x-prompt": "What app framework should detox test?" + }, + "e2eDirectory": { + "type": "string", + "description": "A directory where the project is placed relative to apps directory." + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "js": { + "description": "Generate JavaScript files rather than TypeScript files.", + "type": "boolean", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "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 + } + }, + "required": ["e2eName", "appProject", "framework"], + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create a Detox application.", + "implementation": "/packages/detox/src/generators/application/application#detoxApplicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/detox/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/detox/generators/init.json b/docs/generated/packages/detox/generators/init.json new file mode 100644 index 0000000000000..8387f89511496 --- /dev/null +++ b/docs/generated/packages/detox/generators/init.json @@ -0,0 +1,44 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#detoxInitGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "title": "Add Detox Schematics", + "description": "Add Detox Schematics.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/detox` plugin.", + "hidden": true, + "implementation": "/packages/detox/src/generators/init/init#detoxInitGeneratorInternal.ts", + "aliases": [], + "path": "/packages/detox/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/devkit/documents/ngcli_adapter.md b/docs/generated/packages/devkit/documents/ngcli_adapter.md new file mode 100644 index 0000000000000..9bfb21f93f376 --- /dev/null +++ b/docs/generated/packages/devkit/documents/ngcli_adapter.md @@ -0,0 +1,12 @@ +# @nx/devkit + +## Table of contents + +### Classes + +- [NxScopedHost](../../devkit/documents/ngcli_adapter/NxScopedHost) + +### Functions + +- [mockSchematicsForTesting](../../devkit/documents/ngcli_adapter/mockSchematicsForTesting) +- [wrapAngularDevkitSchematic](../../devkit/documents/ngcli_adapter/wrapAngularDevkitSchematic) diff --git a/docs/generated/packages/devkit/documents/nx_devkit.md b/docs/generated/packages/devkit/documents/nx_devkit.md new file mode 100644 index 0000000000000..25f19c02c7193 --- /dev/null +++ b/docs/generated/packages/devkit/documents/nx_devkit.md @@ -0,0 +1,158 @@ +# @nx/devkit + +The Nx Devkit is the underlying technology used to customize Nx to support +different technologies and custom use-cases. It contains many utility +functions for reading and writing files, updating configuration, +working with Abstract Syntax Trees(ASTs), and more. + +As with most things in Nx, the core of Nx Devkit is very simple. +It only uses language primitives and immutable objects +(the tree being the only exception). + +## Table of contents + +### Enumerations + +- [ChangeType](../../devkit/documents/ChangeType) +- [DependencyType](../../devkit/documents/DependencyType) + +### Classes + +- [ProjectGraphBuilder](../../devkit/documents/ProjectGraphBuilder) +- [Workspaces](../../devkit/documents/Workspaces) + +### Interfaces + +- [CreateDependenciesContext](../../devkit/documents/CreateDependenciesContext) +- [CreateNodesContext](../../devkit/documents/CreateNodesContext) +- [CreateNodesResult](../../devkit/documents/CreateNodesResult) +- [DefaultTasksRunnerOptions](../../devkit/documents/DefaultTasksRunnerOptions) +- [ExecutorContext](../../devkit/documents/ExecutorContext) +- [ExecutorsJson](../../devkit/documents/ExecutorsJson) +- [FileChange](../../devkit/documents/FileChange) +- [FileData](../../devkit/documents/FileData) +- [FileMap](../../devkit/documents/FileMap) +- [GeneratorsJson](../../devkit/documents/GeneratorsJson) +- [Hash](../../devkit/documents/Hash) +- [HasherContext](../../devkit/documents/HasherContext) +- [ImplicitJsonSubsetDependency](../../devkit/documents/ImplicitJsonSubsetDependency) +- [JsonParseOptions](../../devkit/documents/JsonParseOptions) +- [JsonSerializeOptions](../../devkit/documents/JsonSerializeOptions) +- [MigrationsJson](../../devkit/documents/MigrationsJson) +- [NxAffectedConfig](../../devkit/documents/NxAffectedConfig) +- [NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration) +- [ProjectConfiguration](../../devkit/documents/ProjectConfiguration) +- [ProjectFileMap](../../devkit/documents/ProjectFileMap) +- [ProjectGraph](../../devkit/documents/ProjectGraph) +- [ProjectGraphDependency](../../devkit/documents/ProjectGraphDependency) +- [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) +- [ProjectGraphProcessorContext](../../devkit/documents/ProjectGraphProcessorContext) +- [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) +- [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations) +- [RemoteCache](../../devkit/documents/RemoteCache) +- [StringDeletion](../../devkit/documents/StringDeletion) +- [StringInsertion](../../devkit/documents/StringInsertion) +- [Target](../../devkit/documents/Target) +- [TargetConfiguration](../../devkit/documents/TargetConfiguration) +- [TargetDependencyConfig](../../devkit/documents/TargetDependencyConfig) +- [Task](../../devkit/documents/Task) +- [TaskGraph](../../devkit/documents/TaskGraph) +- [TaskHasher](../../devkit/documents/TaskHasher) +- [Tree](../../devkit/documents/Tree) +- [Workspace](../../devkit/documents/Workspace) + +### Type Aliases + +- [CreateDependencies](../../devkit/documents/CreateDependencies) +- [CreateNodes](../../devkit/documents/CreateNodes) +- [CreateNodesFunction](../../devkit/documents/CreateNodesFunction) +- [CustomHasher](../../devkit/documents/CustomHasher) +- [DynamicDependency](../../devkit/documents/DynamicDependency) +- [Executor](../../devkit/documents/Executor) +- [Generator](../../devkit/documents/Generator) +- [GeneratorCallback](../../devkit/documents/GeneratorCallback) +- [Hasher](../../devkit/documents/Hasher) +- [ImplicitDependency](../../devkit/documents/ImplicitDependency) +- [ImplicitDependencyEntry](../../devkit/documents/ImplicitDependencyEntry) +- [NxPlugin](../../devkit/documents/NxPlugin) +- [NxPluginV1](../../devkit/documents/NxPluginV1) +- [NxPluginV2](../../devkit/documents/NxPluginV2) +- [PackageManager](../../devkit/documents/PackageManager) +- [PluginConfiguration](../../devkit/documents/PluginConfiguration) +- [ProjectGraphNode](../../devkit/documents/ProjectGraphNode) +- [ProjectTargetConfigurator](../../devkit/documents/ProjectTargetConfigurator) +- [ProjectType](../../devkit/documents/ProjectType) +- [RawProjectGraphDependency](../../devkit/documents/RawProjectGraphDependency) +- [StaticDependency](../../devkit/documents/StaticDependency) +- [StringChange](../../devkit/documents/StringChange) +- [TargetDefaults](../../devkit/documents/TargetDefaults) +- [TaskGraphExecutor](../../devkit/documents/TaskGraphExecutor) +- [ToJSOptions](../../devkit/documents/ToJSOptions) +- [WorkspaceJsonConfiguration](../../devkit/documents/WorkspaceJsonConfiguration) + +### Variables + +- [NX_VERSION](../../devkit/documents/NX_VERSION): string +- [appRootPath](../../devkit/documents/appRootPath): string +- [cacheDir](../../devkit/documents/cacheDir): string +- [logger](../../devkit/documents/logger): Object +- [output](../../devkit/documents/output): CLIOutput +- [workspaceRoot](../../devkit/documents/workspaceRoot): string + +### Functions + +- [addDependenciesToPackageJson](../../devkit/documents/addDependenciesToPackageJson) +- [addProjectConfiguration](../../devkit/documents/addProjectConfiguration) +- [applyChangesToString](../../devkit/documents/applyChangesToString) +- [convertNxExecutor](../../devkit/documents/convertNxExecutor) +- [convertNxGenerator](../../devkit/documents/convertNxGenerator) +- [createProjectFileMapUsingProjectGraph](../../devkit/documents/createProjectFileMapUsingProjectGraph) +- [createProjectGraphAsync](../../devkit/documents/createProjectGraphAsync) +- [defaultTasksRunner](../../devkit/documents/defaultTasksRunner) +- [detectPackageManager](../../devkit/documents/detectPackageManager) +- [ensurePackage](../../devkit/documents/ensurePackage) +- [extractLayoutDirectory](../../devkit/documents/extractLayoutDirectory) +- [formatFiles](../../devkit/documents/formatFiles) +- [generateFiles](../../devkit/documents/generateFiles) +- [getOutputsForTargetAndConfiguration](../../devkit/documents/getOutputsForTargetAndConfiguration) +- [getPackageManagerCommand](../../devkit/documents/getPackageManagerCommand) +- [getPackageManagerVersion](../../devkit/documents/getPackageManagerVersion) +- [getProjects](../../devkit/documents/getProjects) +- [getWorkspaceLayout](../../devkit/documents/getWorkspaceLayout) +- [glob](../../devkit/documents/glob) +- [hashArray](../../devkit/documents/hashArray) +- [installPackagesTask](../../devkit/documents/installPackagesTask) +- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled) +- [joinPathFragments](../../devkit/documents/joinPathFragments) +- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory) +- [names](../../devkit/documents/names) +- [normalizePath](../../devkit/documents/normalizePath) +- [offsetFromRoot](../../devkit/documents/offsetFromRoot) +- [parseJson](../../devkit/documents/parseJson) +- [parseTargetString](../../devkit/documents/parseTargetString) +- [readCachedProjectGraph](../../devkit/documents/readCachedProjectGraph) +- [readJson](../../devkit/documents/readJson) +- [readJsonFile](../../devkit/documents/readJsonFile) +- [readNxJson](../../devkit/documents/readNxJson) +- [readProjectConfiguration](../../devkit/documents/readProjectConfiguration) +- [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph) +- [readTargetOptions](../../devkit/documents/readTargetOptions) +- [removeDependenciesFromPackageJson](../../devkit/documents/removeDependenciesFromPackageJson) +- [removeProjectConfiguration](../../devkit/documents/removeProjectConfiguration) +- [reverse](../../devkit/documents/reverse) +- [runExecutor](../../devkit/documents/runExecutor) +- [runTasksInSerial](../../devkit/documents/runTasksInSerial) +- [serializeJson](../../devkit/documents/serializeJson) +- [stripIndents](../../devkit/documents/stripIndents) +- [stripJsonComments](../../devkit/documents/stripJsonComments) +- [targetToTargetString](../../devkit/documents/targetToTargetString) +- [toJS](../../devkit/documents/toJS) +- [updateJson](../../devkit/documents/updateJson) +- [updateNxJson](../../devkit/documents/updateNxJson) +- [updateProjectConfiguration](../../devkit/documents/updateProjectConfiguration) +- [updateTsConfigsToJs](../../devkit/documents/updateTsConfigsToJs) +- [validateDependency](../../devkit/documents/validateDependency) +- [visitNotIgnoredFiles](../../devkit/documents/visitNotIgnoredFiles) +- [workspaceLayout](../../devkit/documents/workspaceLayout) +- [writeJson](../../devkit/documents/writeJson) +- [writeJsonFile](../../devkit/documents/writeJsonFile) diff --git a/docs/generated/packages/esbuild/documents/overview.md b/docs/generated/packages/esbuild/documents/overview.md new file mode 100644 index 0000000000000..b734692982faf --- /dev/null +++ b/docs/generated/packages/esbuild/documents/overview.md @@ -0,0 +1,155 @@ +--- +title: Overview of the Nx esbuild Plugin +description: The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild. This page also explains how to configure esbuild on your Nx workspace. +--- + +The Nx Plugin for [esbuild](https://esbuild.github.io/api/), an extremely fast JavaScript bundler. + +Why should you use this plugin? + +- _Fast_ builds using esbuild. +- Type-checking using TypeScript, which esbuild does not handle. +- Intelligent `package.json` output. +- Additional [assets](/nx-api/esbuild/executors/esbuild#assets) for the output. + +## Setting Up @nx/esbuild + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/esbuild` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/esbuild` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/esbuild +``` + +This will install the correct version of `@nx/esbuild`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/esbuild` package with your package manager. + +```shell +npm add -D @nx/esbuild +``` + +{% /tab %} +{% /tabs %} + +## Using the @nx/esbuild Plugin + +### Creating a new JS library + +{% callout type="note" title="Directory Flag Behavior Changes" %} +The command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, omit the `--directory` flag. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details. +{% /callout %} + +You can add a new library that builds using esbuild with: + +```shell +nx g @nx/js:lib mylib --directory=libs/mylib --bundler=esbuild +``` + +This command will install the esbuild plugin if needed, and set `@nx/esbuild:esbuild` executor for the `build` target. + +### Adding esbuild target to existing libraries + +If you already have a JS project that you want to use esbuild for, run this command: + +```shell +nx g @nx/esbuild:configuration mylib +``` + +This generator validates there isn't an existing `build` target. If you want to overwrite the existing target you can pass the `--skipValidation` option. + +```shell +nx g @nx/esbuild:configuration mylib --skipValidation +``` + +## Using esbuild + +You can run builds with: + +```shell +nx build mylib +``` + +Replace `mylib` with the name or your project. This command works for both applications and libraries. + +### Copying assets + +Assets are non-JS and non-TS files, such as images, CSS, etc. You can add them to the project configuration as follows. + +```jsonc +"build": { + "executor": "@nx/esbuild:esbuild", + "options": { + //... + "assets": [ + { "input": "libs/mylib", "glob": "README.md", "output": "/" }, + { "input": "libs/mylib", "glob": "logo.png", "output": "/" }, + { "input": "libs/mylib", "glob": "docs/**/*.md", "output": "/docs" }, + //... + ] + } +} +``` + +Running `nx build mylib` outputs something like this. + +```text +dist/libs/mylib/ +├── README.md +├── docs +│ ├── CONTRIBUTING.md +│ └── TESTING.md +├── index.js +├── logo.png +└── package.json +``` + +### Generating a metafile + +A metafile can be generated by passing the `--metafile` option. This file contains information about the build that can be analyzed by other tools, such as [bundle buddy](https://www.bundle-buddy.com/esbuild). + +```shell +nx build mylib --metafile +``` + +This command will generate a `meta.json` file in the output directory. + +```text +dist/libs/mylib/ +├── README.md +├── index.js +├── meta.json +└── package.json +``` + +### Custom esbuild options + +Extra API options for esbuild can be passed in the `esbuildOptions` object for your project configuration. + +```jsonc +"build": { + "executor": "@nx/esbuild:esbuild", + "options": { + //... + "esbuildOptions": { + "banner": { ".js": "// banner" }, + "footer": { ".js": "// footer" } + } + } +} +``` + +## More Documentation + +- [Using JS](/nx-api/js) diff --git a/docs/generated/packages/esbuild/executors/esbuild.json b/docs/generated/packages/esbuild/executors/esbuild.json new file mode 100644 index 0000000000000..a90f1d4f4642f --- /dev/null +++ b/docs/generated/packages/esbuild/executors/esbuild.json @@ -0,0 +1,211 @@ +{ + "name": "esbuild", + "implementation": "/packages/esbuild/src/executors/esbuild/esbuild.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "esbuild (experimental)", + "description": "Bundle a package for different platforms. Note: declaration (*.d.ts) file are not currently generated.", + "cli": "nx", + "type": "object", + "properties": { + "main": { + "type": "string", + "description": "The path to the entry file, relative to project.", + "alias": "entryFile", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.js|.ts)", + "x-priority": "important" + }, + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "outputFileName": { + "type": "string", + "description": "Name of the main output file. Defaults same basename as 'main' file." + }, + "tsConfig": { + "type": "string", + "description": "The path to tsconfig file.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "additionalEntryPoints": { + "type": "array", + "description": "List of additional entry points.", + "items": { "type": "string" }, + "default": [] + }, + "bundle": { + "type": "boolean", + "description": "Whether to bundle the main entry point and additional entry points. Set to false to keep individual output files.", + "default": true + }, + "format": { + "type": "array", + "description": "List of module formats to output. Defaults to matching format from tsconfig (e.g. CJS for CommonJS, and ESM otherwise).", + "alias": "f", + "items": { "type": "string", "enum": ["esm", "cjs"] }, + "default": ["esm"] + }, + "watch": { + "type": "boolean", + "description": "Enable re-building when files change.", + "default": false + }, + "assets": { + "type": "array", + "description": "List of static assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply `glob`. Defaults to the project root." + }, + "output": { + "type": "string", + "description": "Relative path within the output folder." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Remove previous output before build.", + "alias": "clean", + "default": true + }, + "external": { + "type": "array", + "description": "Mark one or more module as external. Can use * wildcards, such as '*.png'.", + "items": { "type": "string" } + }, + "outputHashing": { + "type": "string", + "description": "Define the output filename cache-busting hashing mode.", + "default": "none", + "enum": ["none", "all"] + }, + "metafile": { + "type": "boolean", + "description": "Generate a meta.json file in the output folder that includes metadata about the build. This file can be analyzed by other tools.", + "default": false + }, + "sourcemap": { + "oneOf": [ + { + "type": "string", + "enum": ["linked", "inline", "external", "both"] + }, + { "type": "boolean" } + ], + "alias": "sourceMap", + "description": "Generate sourcemap." + }, + "minify": { + "type": "boolean", + "description": "Minifies outputs.", + "default": false + }, + "platform": { + "type": "string", + "description": "Platform target for outputs.", + "enum": ["browser", "node", "neutral"], + "default": "node" + }, + "target": { + "type": "string", + "description": "The environment target for outputs.", + "default": "esnext" + }, + "skipTypeCheck": { + "type": "boolean", + "description": "Skip type-checking via TypeScript. Skipping type-checking speeds up the build but type errors are not caught.", + "default": false, + "x-priority": "internal" + }, + "generatePackageJson": { + "type": "boolean", + "description": "Generates a `package.json` and pruned lock file with the project's `node_module` dependencies populated for installing in a container. If a `package.json` exists in the project's directory, it will be reused with dependencies populated.", + "default": false + }, + "thirdParty": { + "type": "boolean", + "description": "Includes third-party packages in the bundle (i.e. npm packages)." + }, + "esbuildOptions": { + "type": "object", + "description": "Additional options to pass to esbuild. See https://esbuild.github.io/api/. Cannot be used with 'esbuildConfig' option.", + "additionalProperties": true, + "x-priority": "important" + }, + "esbuildConfig": { + "type": "string", + "description": "Path to a esbuild configuration file. See https://esbuild.github.io/api/. Cannot be used with 'esbuildOptions' option.", + "x-priority": "important" + } + }, + "required": ["tsConfig", "main", "outputPath"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply `glob`. Defaults to the project root." + }, + "output": { + "type": "string", + "description": "Relative path within the output folder." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "additionalProperties": true, + "examplesFile": "`/project.json`:\n\n```jsonc\n{\n //...\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\"\n }\n }\n }\n}\n```\n\n```bash\nnx build \n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"CommonJS output\" %}\n\nThe CommonJS format is required in some environments, such as Electron applications. By default, `esbuild` will use the ESM format, which is recommended for Web and Node applications. You may also output to multiple formats.\n\n```bash\nnx build --format=cjs\nnx build --format=esm,cjs\nnx build # defaults to es# defaults to esm\n```\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"format\": [\"esm\", \"cjs\"]\n}\n```\n\n{% /tab %}\n{% tab label=\"External packages\" %}\n\nYou can avoid packages from being bundled by providing the `external` option with a list of packages to skip.\n\nYou can also use `*` wildcard to match assets.\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"external\": [\"lodash\", \"*.png\"]\n}\n```\n\n{% /tab %}\n{% tab label=\"Skip type checking\" %}\n\nType checking is the slowest part of the build. You may want to skip type checking during build and run it as another job in CI.\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"skipTypeCheck\": true\n}\n```\n\n{% /tab %}\n{% tab label=\"Additional esbuild options\" %}\n\nAdditional [esbuild options](https://esbuild.github.io/api/) can be passed using `esbuildOptions` in your project configuration.\n\n```json\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"\",\n \"tsConfig\": \"/tsconfig.app.json\",\n \"outputPath\": \"dist/\",\n \"esbuildOptions\": {\n \"legalComments\": \"inline\"\n \"banner\": {\n \".js\": \"// banner\"\n },\n \"footer\": {\n \".js\": \"// footer\"\n }\n }\n}\n```\n\n{% /tab %}\n{% tabs %}\n", + "presets": [] + }, + "description": "Bundle a package using EsBuild.", + "aliases": [], + "hidden": false, + "path": "/packages/esbuild/src/executors/esbuild/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/esbuild/generators/configuration.json b/docs/generated/packages/esbuild/generators/configuration.json new file mode 100644 index 0000000000000..6df248a749c24 --- /dev/null +++ b/docs/generated/packages/esbuild/generators/configuration.json @@ -0,0 +1,75 @@ +{ + "name": "configuration", + "aliases": ["esbuild-project"], + "factory": "./src/generators/configuration/configuration", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxEsBuildProject", + "cli": "nx", + "title": "Add esbuild configuration to a project", + "description": "Add esbuild configuration to a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "project", + "x-prompt": "What is the name of the project to set up a esbuild for?", + "x-priority": "important" + }, + "main": { + "type": "string", + "description": "Path relative to the workspace root for the main entry file. Defaults to `/src/main.ts` or `src/index.ts`, whichever is found.", + "alias": "entryFile", + "x-priority": "important" + }, + "tsConfig": { + "type": "string", + "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to `/tsconfig.app.json` or `/tsconfig.lib.json`, whichever is found.", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "skipValidation": { + "type": "boolean", + "default": false, + "description": "Do not perform any validation on existing project.", + "x-priority": "internal" + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`." + }, + "platform": { + "type": "string", + "description": "Platform target for outputs.", + "enum": ["browser", "node", "neutral"], + "default": "node" + }, + "buildTarget": { + "description": "The build target to add.", + "type": "string", + "default": "build" + } + }, + "required": [], + "examplesFile": "```bash\nnx g @nx/esbuild:configuration my-package\n```\n\n{% callout type=\"note\" title=\"Overwriting existing build option\" %}\nThe `configuration` generator validates that an existing `build` target isn't already defined for the project. If you are adding esbuild to a project with an existing `build` target, pass the `--skipValidation` option.\n{% /callout %}\n\nYou may also provide a custom main entry file, or a custom tsconfig file if the defaults don't work. By default, the generator will look for a main file matching `src/index.ts` or `src/main.ts`, and a tsconfig file matching `tsconfig.app.json` or `tsconfig.lib.json`.\n\n```bash\nnx g @nx/esbuild:configuration my-package \\\n--main=packages/my-package/src/entry.ts \\\n--tsConfig=packages/my-package/tsconfig.custom.json\n```\n", + "presets": [] + }, + "description": "Add esbuild configuration to a project.", + "implementation": "/packages/esbuild/src/generators/configuration/configuration.ts", + "hidden": false, + "path": "/packages/esbuild/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/esbuild/generators/init.json b/docs/generated/packages/esbuild/generators/init.json new file mode 100644 index 0000000000000..e272a800b360d --- /dev/null +++ b/docs/generated/packages/esbuild/generators/init.json @@ -0,0 +1,38 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#esbuildInitGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxEsbuildInit", + "cli": "nx", + "title": "Init Esbuild Plugin", + "description": "Init Esbuild Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/esbuild` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/esbuild/src/generators/init/init#esbuildInitGenerator.ts", + "path": "/packages/esbuild/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/eslint-plugin/documents/dependency-checks.md b/docs/generated/packages/eslint-plugin/documents/dependency-checks.md new file mode 100644 index 0000000000000..1a571d8a4dd5d --- /dev/null +++ b/docs/generated/packages/eslint-plugin/documents/dependency-checks.md @@ -0,0 +1,85 @@ +# Dependency Checks rule + +The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project depends on. If your project is using, for example, the `axios`, but the `package.json` does not specify it as a dependency, your library might not work correctly. This rule helps catch these problems before your users do. + +The rule uses the project graph to collect all the dependencies of your project, based on the input of your `build` target. It will filter out all the dependencies marked as `devDependencies` in your root `package.json` to ensure dependencies of your compilation pipelines (e.g. dependencies of `webpack.config` or `vite.config`) or test setups are not included in the expected list. + +We use the version numbers of the installed packages when checking whether the version specifier in `package.json` is correct. We do this because this is the only version for which we can "guarantee" that things work and were tested. If you specify a range outside of that version, that would mean that you are shipping potentially untested code. + +## Usage + +Library generators from `@nx` packages will configure this rule automatically when you opt-in for bundler/build setup. This rule is intended for publishable/buildable libraries, so it will only run if a `build` target is detected in the configuration (this name can be modified - see [options](#options)). + +### Manual setup + +To set it up manually for existing libraries, you need to add the `dependency-checks` rule to your project's ESLint configuration: + +```jsonc {% fileName="/.eslintrc.json" %} +{ + // ... more ESLint config here + "overrides": [ + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": "error" + } + } + // ... more ESLint overrides here + ] +} +``` + +Additionally, you need to adjust your `lintFilePatterns` to include the project's `package.json` file:: + +```jsonc {% fileName="/project.json" %} +{ + // ... project.json config + "targets": { + // ... more targets + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": [ + "libs/my-lib/**/*.{ts,tsx,js,jsx}", + "libs/my-lib/package.json" // add this line + ] + } + } + } +} +``` + +### Overriding defaults + +Sometimes we intentionally want to add or remove a dependency from our `package.json` despite what the rule suggests. We can use the rule's options to override default behavior: + +```jsonc {% fileName=".eslintrc.json" %} +{ + "@nx/dependency-checks": [ + "error", + { + "buildTargets": ["build", "custom-build"], // add non standard build target names + "ignoredDependencies": ["lodash"], // these libs will be omitted from checks + "includeTransitiveDependencies": true, // collect dependencies transitively from children + "ignoredFiles": ["webpack.config.js", "eslint.config.js"], // list of files that should be skipped for check + "checkMissingDependencies": true, // toggle to disable + "checkObsoleteDependencies": true, // toggle to disable + "checkVersionMismatches": true // toggle to disable + } + ] +} +``` + +## Options + +| Property | Type | Default | Description | +| ----------------------------- | --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| buildTargets | _Array_ | _["build"]_ | List of build target names | +| ignoredDependencies | _Array_ | _[]_ | List of dependencies to ignore for checks | +| includeTransitiveDependencies | _boolean_ | _false_ | Enable to collect dependencies of children projects | +| ignoredFiles | _Array_ | N/A | List of files to ignore when collecting dependencies. The default value will be set based on the selected executor during the generation. | +| checkMissingDependencies | _boolean_ | _true_ | Disable to skip checking for missing dependencies | +| checkObsoleteDependencies | _boolean_ | _true_ | Disable to skip checking for unused dependencies | +| checkVersionMismatches | _boolean_ | _true_ | Disable to skip checking if version specifier matches installed version | diff --git a/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md b/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md new file mode 100644 index 0000000000000..0c2d127ad7383 --- /dev/null +++ b/docs/generated/packages/eslint-plugin/documents/enforce-module-boundaries.md @@ -0,0 +1,61 @@ +# Enforce module boundaries rule + +The `@nx/enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps to prevent unplanned cross-dependencies. + +## Usage + +You can use the `enforce-module-boundaries` rule by adding it to your ESLint rules configuration: + +```jsonc +{ + // ... more ESLint config here + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": { + "@nx/enforce-module-boundaries": [ + "error", + { + // ...rule specific configuration + } + ] + } + } + // ... more ESLint overrides here + ] +} +``` + +## Options + +| Property | Type | Default | Description | +| ---------------------------------- | --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| allow | _Array_ | _[]_ | List of imports that should be allowed without any checks | +| allowCircularSelfDependency | _boolean_ | _false_ | Disable check for self circular dependency when project imports from itself via alias path | +| banTransitiveDependencies | _boolean_ | _false_ | Ban import of dependencies that were not specified in the root or project's `package.json` | +| checkDynamicDependenciesExceptions | _Array_ | _[]_ | List of imports that should be skipped for `Imports of lazy-loaded libraries forbidden` checks. E.g. `['@myorg/lazy-project/component/*', '@myorg/other-project']` | +| checkNestedExternalImports | _boolean_ | _false_ | Enable to enforce the check for banned external imports in the nested packages. Check [Dependency constraits](#dependency-constraits) for more information | +| enforceBuildableLibDependency | _boolean_ | _false_ | Enable to restrict the buildable libs from importing non-buildable libraries | +| depConstraints | _Array_ | _[]_ | List of dependency constraints between projects | + +### Dependency constraints + +The `depConstraints` is an array of objects representing the constraints defined between source and target projects. A constraint must include `sourceTag` or `allSourceTags`. The constraints are applied with **AND** logical operation - for given `source` project the resulting constraints would be **all** that match its tags. + +| Property | Type | Description | +| ------------------------ | --------------- | ---------------------------------------------------------------------------------- | +| sourceTag | _string_ | Tag that source project must contain to match the constraint | +| allSourceTags | _Array_ | List of tags the source project must contain to match the constraint | +| onlyDependOnLibsWithTags | _Array_ | The source **can depend only** on projects that contain at least one of these tags | +| notDependOnLibsWithTags | _Array_ | The source **can not depend** on projects that contain at least one of these tags | +| allowedExternalImports | _Array_ | Exclusive list of external (npm) packages that are allowed to be imported | +| bannedExternalImports | _Array_ | List of external (npm) packages that are banned from importing | + +Read more about the proper usage of this rule: + +- [Enforce Module Boundaries](/features/enforce-module-boundaries) +- [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags) +- [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions) +- [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports) +- [Tags Allow List](/recipes/enforce-module-boundaries/tags-allow-list) +- [Taming Code Organization with Module Boundaries in Nx](https://blog.nrwl.io/mastering-the-project-boundaries-in-nx-f095852f5bf4) diff --git a/docs/generated/packages/eslint-plugin/documents/overview.md b/docs/generated/packages/eslint-plugin/documents/overview.md new file mode 100644 index 0000000000000..297855bec6aad --- /dev/null +++ b/docs/generated/packages/eslint-plugin/documents/overview.md @@ -0,0 +1,72 @@ +The `@nx/eslint-plugin` package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as the following Nx-specific ESLint rules: + +- [enforce-module-boundaries](#enforce-module-boundaries-rule) +- [dependency-checks](#dependency-checks-rule) + +## Setting Up ESLint Plugin + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/eslint-plugin` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/eslint-plugin` by running the following commands if the package is not already installed: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/eslint-plugin +``` + +This will install the correct version of `@nx/eslint-plugin`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/eslint-plugin` package with your package manager. + +```shell +npm add -D @nx/eslint-plugin +``` + +{% /tab %} +{% /tabs %} + +## Included plugins + +The plugin contains the following rule configurations divided into sub-plugins. + +### JavaScript + +The `@nx/javascript` ESLint plugin contains best practices when using JavaScript. + +### TypeScript + +The `@nx/typescript` ESLint plugin contains best practices when using TypeScript. + +### Angular + +Contains configurations matching best practices when using Angular framework: + +- `@nx/angular` +- `@nx/angular-template` + +### React + +Contains configurations matching best practices when using React framework: + +- `@nx/react-base` +- `@nx/react-jsx` +- `@nx/react-typescript` + +You can also use `@nx/react` which includes all three `@nx/react-*` plugins + +### Enforce Module Boundaries rule + +The `enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps prevent unplanned cross-dependencies. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/enforce-module-boundaries). + +### Dependency Checks rule + +The `@nx/dependency-checks` ESLint rule enables you to discover mismatches between dependencies specified in a project's `package.json` and the dependencies that your project actually depends on. Read more about it on a [dedicated page](/nx-api/eslint-plugin/documents/dependency-checks). diff --git a/docs/generated/packages/eslint/documents/overview.md b/docs/generated/packages/eslint/documents/overview.md new file mode 100644 index 0000000000000..f4795264c37b6 --- /dev/null +++ b/docs/generated/packages/eslint/documents/overview.md @@ -0,0 +1,94 @@ +The ESLint plugin integrates [ESLint](https://eslint.org/) with Nx. It allows you to run ESLint through Nx with caching enabled. It also includes code generators to help you set up ESLint in your workspace. + +## Setting Up @nx/eslint + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/eslint` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/eslint` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/eslint +``` + +This will install the correct version of `@nx/eslint`. + +### How @nx/eslint Infers Tasks + +The `@nx/eslint` plugin will create a task for any project that has an ESLint configuration file present. Any of the following files will be recognized as an ESLint configuration file: + +- `.eslintrc` +- `.eslintrc.js` +- `.eslintrc.cjs` +- `.eslintrc.yaml` +- `.eslintrc.yml` +- `.eslintrc.json` +- `eslint.config.js` + +Because ESLint applies configuration files to all subdirectories, the `@nx/eslint` plugin will also infer tasks for projects in subdirectories. So, if there is an ESLint configuration file in the root of the repository, every project will have an inferred ESLint task. + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/eslint Configuration + +The `@nx/eslint/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/eslint/plugin", + "options": { + "targetName": "lint" + } + } + ] +} +``` + +- The `targetName` option controls the name of the inferred ESLint tasks. The default name is `lint`. + +{% /tab %} +{% tab label="Nx 17" %} + +Install the `@nx/eslint` package with your package manager. + +```shell {% skipRescope=true %} +npm add -D @nx/eslint +``` + +{% /tab %} +{% tab label="Nx < 17" %} + +Install the `@nx/linter` package with your package manager. + +```shell +npm add -D @nx/linter +``` + +{% /tab %} +{% /tabs %} + +## Lint + +You can lint an application or a library with the following command: + +```shell +nx lint my-project +``` + +## Utils + +- [convert-to-flat-config](/nx-api/eslint/generators/convert-to-flat-config) - Converts the workspace's [ESLint](https://eslint.org/) configs to the new [Flat Config](https://eslint.org/blog/2022/08/new-config-system-part-2) + +## ESLint plugin + +Read about our dedicated ESLint plugin - [eslint-plugin-nx](/nx-api/eslint-plugin/documents/overview). diff --git a/docs/generated/packages/eslint/executors/lint.json b/docs/generated/packages/eslint/executors/lint.json new file mode 100644 index 0000000000000..f07d5e02f618f --- /dev/null +++ b/docs/generated/packages/eslint/executors/lint.json @@ -0,0 +1,152 @@ +{ + "name": "lint", + "implementation": "/packages/eslint/src/executors/lint/lint.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "title": "ESLint Lint Target", + "description": "ESLint Lint Target.", + "cli": "nx", + "type": "object", + "properties": { + "eslintConfig": { + "type": "string", + "description": "The name of the ESLint configuration file.", + "x-completion-type": "file", + "x-completion-glob": ".eslintrc?(.json)", + "x-priority": "important" + }, + "lintFilePatterns": { + "type": "array", + "description": "One or more files/dirs/globs to pass directly to ESLint's `lintFiles()` method.", + "default": ["{projectRoot}"], + "items": { "type": "string" } + }, + "format": { + "type": "string", + "description": "ESLint Output formatter (https://eslint.org/docs/user-guide/formatters).", + "default": "stylish", + "anyOf": [ + { + "enum": [ + "stylish", + "compact", + "codeframe", + "unix", + "visualstudio", + "table", + "checkstyle", + "html", + "jslint-xml", + "json", + "json-with-metadata", + "junit", + "tap" + ] + }, + { "minLength": 1 } + ], + "x-priority": "important" + }, + "force": { + "type": "boolean", + "description": "Succeeds even if there was linting errors.", + "default": false + }, + "silent": { + "type": "boolean", + "description": "Hide output text.", + "default": false + }, + "fix": { + "type": "boolean", + "description": "Fixes linting errors (may overwrite linted files).", + "default": false, + "x-priority": "important" + }, + "cache": { + "type": "boolean", + "description": "Only check changed files.", + "default": false + }, + "cacheLocation": { + "type": "string", + "description": "Path to the cache file or directory.", + "x-completion-type": "directory", + "x-completion-glob": "tsconfig.*.json" + }, + "outputFile": { + "type": "string", + "description": "File to write report to.", + "x-completion-type": "file" + }, + "maxWarnings": { + "type": "number", + "description": "Number of warnings to trigger nonzero exit code - default: `-1`.", + "default": -1 + }, + "quiet": { + "type": "boolean", + "description": "Report errors only - default: `false`.", + "default": false, + "x-priority": "important" + }, + "ignorePath": { + "type": "string", + "description": "The path of the `.eslintignore` file. Not supported for Flat Config.", + "x-completion-type": "file", + "x-completion-glob": ".eslintignore" + }, + "noEslintrc": { + "type": "boolean", + "description": "The equivalent of the `--no-eslintrc` flag on the ESLint CLI, it is `false` by default.", + "default": false + }, + "hasTypeAwareRules": { + "type": "boolean", + "description": "When set to `true`, the linter will invalidate its cache when any of its dependencies changes." + }, + "cacheStrategy": { + "type": "string", + "description": "Strategy to use for detecting changed files in the cache.", + "default": "metadata", + "enum": ["metadata", "content"] + }, + "rulesdir": { + "type": "array", + "description": "The equivalent of the `--rulesdir` flag on the ESLint CLI.", + "default": [], + "items": { "type": "string", "x-completion-type": "directory" } + }, + "resolvePluginsRelativeTo": { + "type": "string", + "description": "The equivalent of the `--resolve-plugins-relative-to` flag on the ESLint CLI. Not supported for Flat Config.", + "x-completion-type": "directory" + }, + "reportUnusedDisableDirectives": { + "type": "string", + "enum": ["off", "warn", "error"], + "description": "The equivalent of the `--report-unused-disable-directives` flag on the ESLint CLI." + }, + "printConfig": { + "type": "string", + "description": "The equivalent of the `--print-config` flag on the ESLint CLI.", + "x-completion-type": "file" + }, + "errorOnUnmatchedPattern": { + "type": "boolean", + "description": "When set to false, equivalent of the `--no-error-on-unmatched-pattern` flag on the ESLint CLI.", + "default": true + } + }, + "examplesFile": "Linter can be configured in multiple ways. The basic way is to provide only `lintFilePatterns`, which is a mandatory property. This tells us where to look for files to lint.\n\n`project.json`:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"]\n }\n}\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Fixing linter issues\" %}\n\nLinter provides an automated way of fixing known issues. To ensure that those changes are properly cached, we need to add an `outputs` property to the `lint` target. Omitting the `outputs` property would produce an invalid cache record. Both of these properties are set by default when scaffolding a new project.\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"]\n }\n}\n```\n\nWith these settings, we can run the command with a `--fix` flag:\n\n```bash\nnx run frontend:lint --fix\n```\n\nWe can also set this flag via project configuration to always fix files when running lint:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"fix\": true\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Custom output format\" %}\n\nESLint executor uses the `stylish` output format by default. You can change this by specifying the `format` property:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"format\": \"compact\"\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Silence warnings\" %}\n\nMigrated or legacy projects tend to have an overwhelming amount of lint errors. We might want to change those temporarily to be warnings so they don't block the development. But they would still clutter the report. We can run the command with `--quiet` to hide warning (errors would still break the lint):\n\n```bash\nnx run frontend:lint --quiet\n```\n\nWe can also set this via project configuration as a default option.\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"quiet\": true\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Flat Config file\" %}\n\n`ESLint` provides several ways of specifying the configuration. The default one is using `.eslintrc.json` but you can override it by setting the `eslintConfig` flag. The new `Flat Config` is now also supported:\n\n```json\n\"lint\": {\n \"executor\": \"@nx/eslint:lint\",\n \"outputs\": [\"{options.outputFile}\"],\n \"options\": {\n \"lintFilePatterns\": [\"apps/frontend/**/*.ts\"],\n \"eslintConfig\": \"eslint.config.js\"\n }\n}\n```\n\n**Note:** In contrast to other configuration formats, the `Flat Config` requires that all configuration files are converted to `eslint.config.js`. Built-in migrations and generators support only `.eslintrc.json` at the moment.\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "hasher": "./src/executors/lint/hasher", + "description": "Run ESLint on a project.", + "aliases": [], + "hidden": false, + "path": "/packages/eslint/src/executors/lint/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/eslint/generators/convert-to-flat-config.json b/docs/generated/packages/eslint/generators/convert-to-flat-config.json new file mode 100644 index 0000000000000..03ad486e88255 --- /dev/null +++ b/docs/generated/packages/eslint/generators/convert-to-flat-config.json @@ -0,0 +1,28 @@ +{ + "name": "convert-to-flat-config", + "factory": "./src/generators/convert-to-flat-config/generator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "ConvertToFlatConfig", + "cli": "nx", + "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", + "type": "object", + "properties": { + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": [], + "presets": [] + }, + "description": "Convert an Nx workspace's ESLint configs to use Flat Config.", + "implementation": "/packages/eslint/src/generators/convert-to-flat-config/generator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/eslint/src/generators/convert-to-flat-config/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/eslint/generators/init.json b/docs/generated/packages/eslint/generators/init.json new file mode 100644 index 0000000000000..28e2fd64100e0 --- /dev/null +++ b/docs/generated/packages/eslint/generators/init.json @@ -0,0 +1,39 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#initEsLint", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxESLintInit", + "title": "Initialize ESLint Plugin", + "description": "Set up the ESLint plugin.", + "type": "object", + "properties": { + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Set up the ESLint plugin.", + "hidden": true, + "implementation": "/packages/eslint/src/generators/init/init#initEsLint.ts", + "aliases": [], + "path": "/packages/eslint/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/eslint/generators/workspace-rule.json b/docs/generated/packages/eslint/generators/workspace-rule.json new file mode 100644 index 0000000000000..3ad8134f13d37 --- /dev/null +++ b/docs/generated/packages/eslint/generators/workspace-rule.json @@ -0,0 +1,34 @@ +{ + "name": "workspace-rule", + "factory": "./src/generators/workspace-rule/workspace-rule#lintWorkspaceRuleGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceRule", + "cli": "nx", + "title": "Create a new Workspace Lint Rule", + "description": "Create a new Workspace Lint Rule.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the new rule.", + "$default": { "$source": "argv", "index": 0 } + }, + "directory": { + "type": "string", + "description": "Create the rule under this directory within `tools/eslint-rules/` (can be nested).", + "alias": "dir", + "default": "rules" + } + }, + "required": ["name", "directory"], + "examplesFile": "{% tabs %}\n{% tab label=\"Create rule\" %}\n\nThis command will generate a new workspace lint rule called `my-custom-rule`. The new rule will be generated in `tools/eslint-rules/rules` folder:\n\n```shell\nnx g @nx/eslint:workspace-rule my-custom-rule\n```\n\n{% /tab %}\n{% tab label=\"Custom sub-folder\" %}\n\nWe can change the default sub-folder from `rules` and specify a custom one:\n\n```shell\nnx g @nx/eslint:workspace-rule --name=my-custom-rule --directory=my/custom/path\n```\n\nThe command above will generate the rule in `tools/eslint-rules/my/custom/path` folder.\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "description": "Create a new Workspace ESLint rule.", + "implementation": "/packages/eslint/src/generators/workspace-rule/workspace-rule#lintWorkspaceRuleGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/eslint/src/generators/workspace-rule/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/eslint/generators/workspace-rules-project.json b/docs/generated/packages/eslint/generators/workspace-rules-project.json new file mode 100644 index 0000000000000..5d9d133e6a9d2 --- /dev/null +++ b/docs/generated/packages/eslint/generators/workspace-rules-project.json @@ -0,0 +1,34 @@ +{ + "name": "workspace-rules-project", + "factory": "./src/generators/workspace-rules-project/workspace-rules-project#lintWorkspaceRulesProjectGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceRulesProject", + "cli": "nx", + "title": "Create the Workspace Lint Rules Project", + "description": "Create the Workspace Lint Rules Project.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/eslint:workspace-rules-project", + "description": "Create the Workspace Lint Rules Project" + } + ], + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": [], + "presets": [] + }, + "description": "Create the Workspace Lint Rules Project.", + "hidden": true, + "implementation": "/packages/eslint/src/generators/workspace-rules-project/workspace-rules-project#lintWorkspaceRulesProjectGenerator.ts", + "aliases": [], + "path": "/packages/eslint/src/generators/workspace-rules-project/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/expo/documents/overview.md b/docs/generated/packages/expo/documents/overview.md new file mode 100644 index 0000000000000..1d758055c640b --- /dev/null +++ b/docs/generated/packages/expo/documents/overview.md @@ -0,0 +1,354 @@ +Expo is an open-source framework for apps that run natively on Android, iOS, and the web. Expo brings together the best of mobile and the web and enables many important features for building and scaling an app. + +Expo is a set of tools built on top of React Native. The Nx Plugin for Expo contains generators for managing Expo applications and libraries within an Nx workspace. + +## Setting Up Expo + +To create a new workspace with Expo, run the following command: + +```shell + npx create-nx-workspace@latest --preset=expo --appName=your-app-name +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/expo` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/expo` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/expo +``` + +This will install the correct version of `@nx/expo`. + +### How @nx/expo Infers Tasks + +The `@nx/expo` plugin will create a task for any project that has an app configuration file present. Any of the following files will be recognized as an app configuration file: + +- `app.config.js` +- `app.json` + +In the app config file, it needs to have key `expo`: + +```json +{ + "expo": { + "name": "MyProject", + "slug": "my-project" + } +} +``` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/expo Configuration + +The `@nx/expo/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/expo/plugin", + "options": { + "startTargetName": "start", + "serveTargetName": "serve", + "runIosTargetName": "run-ios", + "runAndroidTargetName": "run-android", + "exportTargetName": "export", + "prebuildTargetName": "prebuild", + "installTargetName": "install", + "buildTargetName": "build", + "submitTargetName": "submit" + } + } + ] +} +``` + +Once a Expo configuration file has been identified, the targets are created with the name you specify under `startTargetName`, `serveTargetName`, `runIosTargetName`, `runAndroidTargetname`, `exportTargetName`, `prebuildTargetName`, `installTargetName`, `buildTargetName` or `submitTargetName` in the `nx.json` `plugins` array. The default names for the inferred targets are `start`, `serve`, `run-ios`, `run-anroid`, `export`, `prebuild`, `install`, `build` and `submit`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/expo` package with your package manager. + +```shell +npm add -D @nx/expo +``` + +### Creating Applications + +Add a new application to your workspace with the following command: + +```shell +nx g @nx/expo:app my-app +``` + +Start the application by running: + +```shell +nx start my-app +``` + +### Generating Libraries + +To generate a new library run: + +```shell +npx nx g @nx/expo:lib your-lib-name +``` + +### Generating Components + +To generate a new component inside library run: + +```shell +npx nx g @nx/expo:component your-component-name --project=your-lib-name --export +``` + +Replace `your-lib-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json` + +## Using Expo + +### Start a Development Server + +You can start a development server by running: + +```shell +nx start +``` + +### Compile App Locally + +You can compile your app locally with `run-ios` and `run-android` commands: + +{% tabs %} +{%tab label="iOS"%} + +Compile for iOS: + +```shell +nx run-ios +``` + +{% /tab %} +{%tab label="Android"%} + +Compile for Android: + +```shell +nx run-android +``` + +{% /tab %} +{% /tabs %} + +To run these commands, you need to have your development environment setup. To run an iOS app,it can only be run on a Mac, and Xcode must be installed. Similarly, to run an Android app, it requires Android Studio and Java to be installed and configured on your computer. Setup steps: https://reactnative.dev/docs/environment-setup. + +### Compile Web Assets + +You can build your JavaScript bundle using Metro bundler by running: + +```shell +nx export +``` + +{% tabs %} +{%tab label="All Platforms"%} + +Compile for all platforms: + +```shell +nx export --platform=all +``` + +{% /tab %} +{%tab label="iOS"%} + +Compile for iOS: + +```shell +nx export --platform=ios +``` + +{% /tab %} +{%tab label="Android"%} + +Compile for Android: + +```shell +nx export --platform=android +``` + +{% /tab %} +{%tab label="Web"%} + +Compile for Web: + +```shell +nx export --platform=web +``` + +{% /tab %} +{% /tabs %} + +### Generate Native Code + +To generate native code, run: + +```shell +nx prebuild +``` + +{% tabs %} +{%tab label="All Platforms"%} + +Generate for all platforms: + +```shell +nx prebuild --platform=all +``` + +{% /tab %} +{%tab label="iOS"%} + +Generate for iOS: + +```shell +nx prebuild --platform=ios +``` + +{% /tab %} +{%tab label="Android"%} + +Generate for Android: + +```shell +nx prebuild --platform=android +``` + +{% /tab %} +{% /tabs %} + +### Install Compatible NPM Packages + +To install packages that is compatible with current version of Expo, run: + +```shell +nx install +``` + +Unlike npm's `install` command, this `install` command will install the exact right version for currently installed copy of Expo. + +To install a specify NPM package, run: + +```shell +nx install --packages= +nx install --packages=,, +``` + +To check and fix package versions, run: + +{% tabs %} +{%tab label="check"%} + +Check which packages needed to be updated: + +```shell +nx install --check +``` + +{% /tab %} +{%tab label="fix"%} + +Automatically update invalid packages versions: + +```shell +nx install --fix +``` + +{% /tab %} +{% /tabs %} + +### Run an EAS Build + +Expo Application Services (EAS) are deeply integrated cloud services for Expo and React Native apps. EAS Build is a hosted service for building app binaries for your Expo and React Native projects. + +To run an EAS build: + +```shell +nx build +``` + +If you are not signed into an EAS account, run the following command to log in: + +```shell +npx eas login +``` + +To check the details of your build status, run: + +```shell +nx build-list +``` + +### Submit an EAS Build + +EAS Submit is a hosted service for uploading and submitting your app binaries to the app stores. Since it's a hosted service, you can submit your app to both stores as long as you can run EAS CLI on your machine. + +To submit an EAS build: + +```shell +nx submit +``` + +### Update an EAS Build + +EAS Update is a hosted service that serves updates for projects using the `expo-updates` library. + +EAS Update makes fixing small bugs and pushing quick fixes a snap in between app store submissions. It accomplishes this by allowing an end-user's app to swap out the non-native parts of their app (for example, JS, styling, and image changes) with a new update that contains bug fixes and other updates. + +To update an EAS build: + +```shell +nx update +``` + +### Testing Projects + +You can run unit tests with: + +```shell +nx test +``` + +## Expo Commands + +Below table is a map between expo commands and Nx commands: + +| Expo Commands | Nx Commands | +| ------------------ | --------------------------- | +| `expo start` | `nx start ` | +| `expo run:ios` | `nx run-ios ` | +| `expo run:android` | `nx run-android ` | +| `expo export` | `nx export ` | +| `expo prebuild` | `nx prebuild ` | +| `expo install` | `nx install ` | +| `eas build` | `nx build ` | +| `eas build:list` | `nx build-list ` | +| `eas update` | `nx update ` | +| `eas submit` | `nx submit ` | + +## More Documentation + +- [Using Detox](/nx-api/detox) +- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/expo/executors/build-list.json b/docs/generated/packages/expo/executors/build-list.json new file mode 100644 index 0000000000000..e7978f3eff451 --- /dev/null +++ b/docs/generated/packages/expo/executors/build-list.json @@ -0,0 +1,86 @@ +{ + "name": "build-list", + "implementation": "/packages/expo/src/executors/build-list/build-list.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "$id": "NxExpoEasBuildList", + "cli": "nx", + "title": "Expo EAS Build List executor", + "description": "List all Expo Application Services (EAS) builds for your Expo project.", + "type": "object", + "properties": { + "platform": { + "enum": ["ios", "android", "all"], + "alias": "p", + "description": "The platform to build the app.", + "x-priority": "important" + }, + "json": { + "type": "boolean", + "description": "Enable JSON output, non-JSON messages will be printed to stderr" + }, + "interactive": { + "type": "boolean", + "description": "Run the command in interactive mode." + }, + "status": { + "enum": [ + "new", + "in-queue", + "in-progress", + "errored", + "finished", + "canceled" + ], + "description": "Status of EAS build" + }, + "distribution": { + "enum": ["store", "internal", "simulator"], + "description": "Distribution of EAS build" + }, + "channel": { "type": "string", "description": "Channel of EAS build" }, + "appVersion": { + "type": "string", + "description": "App version of EAS build" + }, + "appBuildVersion": { + "type": "string", + "description": "App build version of EAS build" + }, + "sdkVersion": { + "type": "string", + "description": "SDK version of EAS build" + }, + "runtimeVersion": { + "type": "string", + "description": "Runtime version of EAS build" + }, + "appIdentifier": { + "type": "string", + "description": "App identifier of EAS build" + }, + "buildProfile": { + "type": "string", + "description": "Build profile of EAS build" + }, + "gitCommitHash": { + "type": "string", + "description": "Git commit hash of EAS build" + }, + "limit": { + "type": "number", + "description": "Limit of numbers to list EAS builds" + } + }, + "required": [], + "examplesFile": "The `build-list` command allows to check the details of your Expo Application Services (EAS) build status.\n\n`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {}\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:build-list\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Get Status of Different Platforms\" %}\nThe `platform` option allows you to check build status of different platform (e.g. android, ios, all):\n\n```json\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {\n \"platform\": \"ios\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Get Status Interactively\" %}\n\nThe `interactive` option allows you to specify whether to use interactive mode:\n\n```json\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {\n \"interactive\": true\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Get Status in JSON Format\" %}\n\nThe `json` option allows you to print the output in JSON format:\n\n```json\n \"build-list\": {\n \"executor\": \"@nx/expo:build-list\",\n \"options\": {\n \"interactive\": false,\n \"json\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "description": "List all EAS builds for your Expo project", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/build-list/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/build.json b/docs/generated/packages/expo/executors/build.json new file mode 100644 index 0000000000000..c6083f36c73b6 --- /dev/null +++ b/docs/generated/packages/expo/executors/build.json @@ -0,0 +1,80 @@ +{ + "name": "build", + "implementation": "/packages/expo/src/executors/build/build.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "$id": "NxExpoEasBuild", + "cli": "nx", + "title": "Expo EAS Build executor", + "description": "Start an EAS build for your expo project.", + "type": "object", + "presets": [ + { "name": "Build for a specific platform", "keys": ["platform"] }, + { "name": "Build using a specific profile", "keys": ["profile"] }, + { "name": "Run build locally", "keys": ["local"] }, + { "name": "Clear cache before the build", "keys": ["clearCache"] } + ], + "properties": { + "platform": { + "enum": ["ios", "android", "all"], + "alias": "p", + "description": "The platform to build the app, exaple values: ios, android, all.", + "x-priority": "important" + }, + "json": { + "type": "boolean", + "description": "Enable JSON output, non-JSON messages will be printed to stderr", + "default": false + }, + "profile": { + "type": "string", + "description": "Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.", + "examples": ["production", "development", "preview"], + "x-priority": "important" + }, + "interactive": { + "type": "boolean", + "description": "Run command in interactive mode", + "default": true + }, + "local": { + "type": "boolean", + "description": "Run build locally [experimental]", + "default": false + }, + "output": { + "type": "string", + "description": "Output path for local build", + "examples": ["../../dist/MyApp.tar.gz", "../../dist"] + }, + "wait": { + "type": "boolean", + "description": "Wait for build(s) to complete", + "default": true + }, + "clearCache": { + "type": "boolean", + "description": "Clear cache before the build", + "default": false + }, + "autoSubmit": { + "type": "boolean", + "description": "Submit on build complete using the submit profile with the same name as the build profile", + "default": false + }, + "autoSubmitWithProfile": { + "type": "string", + "description": "Submit on build complete using the submit profile with provided name", + "examples": ["production", "development", "preview"] + } + }, + "required": [] + }, + "description": "Start an EAS build for your expo project", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/build/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/ensure-symlink.json b/docs/generated/packages/expo/executors/ensure-symlink.json new file mode 100644 index 0000000000000..7046b2a0a6cb5 --- /dev/null +++ b/docs/generated/packages/expo/executors/ensure-symlink.json @@ -0,0 +1,21 @@ +{ + "name": "ensure-symlink", + "implementation": "/packages/expo/src/executors/ensure-symlink/ensure-symlink.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxExpoEnsureSymlink", + "$schema": "https://json-schema.org/schema", + "title": "Ensure Symlink for Expo", + "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", + "type": "object", + "properties": {}, + "presets": [] + }, + "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/ensure-symlink/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/export.json b/docs/generated/packages/expo/executors/export.json new file mode 100644 index 0000000000000..4faa4f3f7423e --- /dev/null +++ b/docs/generated/packages/expo/executors/export.json @@ -0,0 +1,56 @@ +{ + "name": "export", + "implementation": "/packages/expo/src/executors/export/export.impl.ts", + "schema": { + "cli": "nx", + "version": 2, + "outputCapture": "direct-nodejs", + "$id": "NxExpoExport", + "$schema": "https://json-schema.org/schema", + "title": "Expo Export", + "description": "Export the JavaScript and assets for your app using Metro/webpack bundler.", + "type": "object", + "properties": { + "platform": { + "description": "Choose the platform to compile for", + "enum": ["ios", "android", "all", "web"], + "default": "all", + "alias": "p", + "x-priority": "important" + }, + "dev": { + "type": "boolean", + "description": "Configure static files for developing locally using a non-https server" + }, + "clear": { + "type": "boolean", + "description": "Clear the bundler cache before exporting" + }, + "minify": { "type": "boolean", "description": "Minify source" }, + "outputDir": { + "type": "string", + "description": "Relative to workspace root, the directory to export the static files to. Default: dist" + }, + "maxWorkers": { + "type": "number", + "description": "When bundler is metro, the maximum number of tasks to allow the bundler to spawn" + }, + "dumpAssetmap": { + "type": "boolean", + "description": "When bundler is metro, whether to dump the asset map for further processing" + }, + "sourceMaps": { + "type": "boolean", + "description": "When bundler is metro, whether to emit JavaScript source maps" + } + }, + "required": ["platform"], + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"options\": {\n \"outputs\": [\"{options.outputDir}\"],\n \"platform\": \"all\",\n \"outputDir\": \"dist/apps/mobile\"\n },\n \"dependsOn\": [\"sync-deps\"]\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:export\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Specify outputDir\" %}\nThe `outputDir` option allows you to specify the output directory of your bundle:\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"all\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/mobile\"\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command: `nx run mobile:export --outputDir=dist/apps/mobile`.\n\n{% /tab %}\n{% tab label=\"Specify the platform\" %}\nThe `platform` option allows you to specify the platform to compile with metro bundler: \"ios\", \"android\", \"all\", and \"web\".\n\nFor example, to bundle for web:\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"web\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/dogs\"\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command `nx export mobile --platform=web`.\n\n{% /tab %}\n{% tab label=\"Bundle for development\" %}\n\nThe `dev` option allows you to bundle for development environments.\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"web\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/dogs\",\n \"dev\": true\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command `nx export mobile --dev`.\n\n{% /tab %}\n{% tab label=\"Clear bundle cache\" %}\n\nThe `clear` option allows you to clear bundle cache.\n\n```json\n \"export\": {\n \"executor\": \"@nx/expo:export\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"platform\": \"web\",\n \"bundler\": \"metro\",\n \"outputDir\": \"dist/apps/dogs\",\n \"clear\": true\n },\n \"dependsOn\": [\"sync-deps\"]\n },\n```\n\nor run command `nx export mobile --clear`.\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "description": "Export the JavaScript and assets for your app using Metro/webpack bundler", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/export/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/install.json b/docs/generated/packages/expo/executors/install.json new file mode 100644 index 0000000000000..1c583fa41666a --- /dev/null +++ b/docs/generated/packages/expo/executors/install.json @@ -0,0 +1,39 @@ +{ + "name": "install", + "implementation": "/packages/expo/src/executors/install/install.impl.ts", + "schema": { + "cli": "nx", + "version": 2, + "outputCapture": "direct-nodejs", + "$id": "NxExpoInstall", + "$schema": "https://json-schema.org/schema", + "title": "Expo Install", + "description": "Install a module or other package to a project.", + "type": "object", + "properties": { + "packages": { + "type": "array", + "items": { "type": "string" }, + "default": [], + "description": "The names of packages to install", + "$default": { "$source": "argv", "index": 0 } + }, + "check": { + "type": "boolean", + "description": "Check which installed packages need to be updated", + "default": false + }, + "fix": { + "type": "boolean", + "description": "Automatically update any invalid package versions", + "default": false + } + }, + "presets": [] + }, + "description": "Install a module or other package to a project.", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/install/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/prebuild.json b/docs/generated/packages/expo/executors/prebuild.json new file mode 100644 index 0000000000000..0f82cb5085006 --- /dev/null +++ b/docs/generated/packages/expo/executors/prebuild.json @@ -0,0 +1,46 @@ +{ + "name": "prebuild", + "implementation": "/packages/expo/src/executors/prebuild/prebuild.impl.ts", + "schema": { + "cli": "nx", + "version": 2, + "outputCapture": "direct-nodejs", + "$id": "NxExpoPrebuild", + "$schema": "https://json-schema.org/schema", + "title": "Expo Prebuild", + "description": "Create native iOS and Android project files for building natively.", + "type": "object", + "properties": { + "clean": { + "type": "boolean", + "description": "Delete the native folders and regenerate them before applying changes", + "default": false + }, + "install": { + "type": "boolean", + "description": "Installing npm packages and CocoaPods.", + "default": true, + "x-priority": "internal" + }, + "platform": { + "description": "Platforms to sync", + "default": "all", + "enum": ["ios", "android", "all"], + "alias": "p", + "x-priority": "important" + }, + "template": { + "type": "string", + "description": "Project template to clone from. File path pointing to a local tar file or a github repo" + } + }, + "required": ["platform"], + "examplesFile": "The `prebuild` command generates native code before a native app can compile.\n\n`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {}\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:prebuild\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Generate Native Code for Different Platforms\" %}\nThe `platform` option allows you to specify the platform to generate native code for (e.g. android, ios, all).\n\n```json\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {\n \"platform\": \"android\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Regenerate Native Code\" %}\n\nThe `clean` option allows you to delete the native folders and regenerate them before apply changes.\n\n```json\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {\n \"clean\": true\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Install NPM Packages and CocoaPods\" %}\n\nThe `install` option allows you to install NPM Packages and CocoaPods.\n\n```json\n \"prebuild\": {\n \"executor\": \"@nx/expo:prebuild\",\n \"options\": {\n \"install\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "description": "Create native iOS and Android project files for building natively.", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/prebuild/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/run.json b/docs/generated/packages/expo/executors/run.json new file mode 100644 index 0000000000000..64e9dd74423a6 --- /dev/null +++ b/docs/generated/packages/expo/executors/run.json @@ -0,0 +1,75 @@ +{ + "name": "run", + "implementation": "/packages/expo/src/executors/run/run.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxExpoRun", + "$schema": "https://json-schema.org/schema", + "title": "Run iOS or Android application", + "description": "Run Expo target options.", + "type": "object", + "properties": { + "platform": { + "description": "Platform to run for (ios, android).", + "enum": ["ios", "android"], + "default": "ios", + "alias": "p" + }, + "xcodeConfiguration": { + "type": "string", + "description": "(iOS) Xcode configuration to use. Debug or Release", + "default": "Debug", + "x-priority": "important" + }, + "scheme": { + "type": "string", + "description": "(iOS) Explicitly set the Xcode scheme to use" + }, + "variant": { + "type": "string", + "description": "(Android) Specify your app's build variant (e.g. debug, release).", + "default": "debug", + "x-priority": "important" + }, + "device": { + "type": "string", + "description": "Device name or UDID to build the app on. The value is not required if you have a single device connected.", + "alias": "d" + }, + "port": { + "type": "number", + "description": "Port to start the Metro bundler on", + "default": 8081, + "alias": "p" + }, + "bundler": { + "type": "boolean", + "description": "Whether to skip starting the Metro bundler. True to start it, false to skip it." + }, + "install": { + "type": "boolean", + "description": "Installing npm packages and CocoaPods before building.", + "default": true + }, + "buildCache": { + "type": "boolean", + "description": "Should use derived data for builds." + }, + "clean": { + "type": "boolean", + "description": "Delete the native folders and regenerate them before applying changes", + "default": false + } + }, + "required": ["platform"], + "examplesFile": "The `run` command allows you to compile your app locally.\n\n`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-ios\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"ios\"\n }\n },\n \"run-android\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"android\"\n }\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:run-ios\nnx run mobile:run-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Compile Android with Different Variants\" %}\nThe `variant` option allows you to specify the compile Android app with variants defined in `build.gradle` file (e.g. debug, release).\n\n```json\n \"run-android\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"android\",\n \"variant\": \"release\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Compile iOS with Different Configurations\" %}\n\nThe `xcodeConfiguration` option allows you to specify Xcode configuration to use (e.g. Debug or Release).\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"ios\",\n \"xcodeConfiguration\": \"Release\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Run on a device\" %}\n\nThe `device` option allows you to launch your app in a specific device name or UDID.\nTo see all your iOS simulators: run `xcrun simctl list devices available`.\nTo see all your Android emulators, run: `emulator -list-avds`.\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"ios\",\n \"device\": \"iPhone 14\"\n }\n },\n \"run-android\": {\n \"executor\": \"@nx/expo:run\",\n \"options\": {\n \"platform\": \"android\",\n \"device\": \"Pixel_XL_API_Tiramisu\"\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "description": "Run the Android app binary locally or run the iOS app binary locally", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/run/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/serve.json b/docs/generated/packages/expo/executors/serve.json new file mode 100644 index 0000000000000..87d39cc148869 --- /dev/null +++ b/docs/generated/packages/expo/executors/serve.json @@ -0,0 +1,45 @@ +{ + "name": "serve", + "implementation": "/packages/expo/src/executors/serve/serve.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxExpoServe", + "$schema": "http://json-schema.org/schema", + "title": "Serve web app for Expo", + "description": "Packager Server target options.", + "type": "object", + "properties": { + "port": { + "type": "number", + "description": "Port to start the native Metro bundler on (does not apply to web or tunnel)", + "default": 4200, + "alias": "p" + }, + "clear": { + "type": "boolean", + "description": "Clear the Metro bundler cache", + "alias": "c" + }, + "maxWorkers": { + "type": "number", + "description": "Maximum number of tasks to allow Metro to spawn" + }, + "dev": { + "type": "boolean", + "description": "Turn development mode on or off" + }, + "minify": { + "type": "boolean", + "description": "Whether or not to minify code" + } + }, + "presets": [] + }, + "description": "Serve up the Expo web app locally", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/serve/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/start.json b/docs/generated/packages/expo/executors/start.json new file mode 100644 index 0000000000000..693bd4f1f35d6 --- /dev/null +++ b/docs/generated/packages/expo/executors/start.json @@ -0,0 +1,97 @@ +{ + "name": "start", + "implementation": "/packages/expo/src/executors/start/start.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxExpoStart", + "$schema": "https://json-schema.org/schema", + "title": "Packager Server for Expo", + "description": "Packager Server target options.", + "type": "object", + "properties": { + "forceManifestType": { + "type": "string", + "description": "Override auto detection of manifest type.", + "enum": ["expo-updates", "classic"] + }, + "privateKeyPath": { + "type": "string", + "description": "Path to private key for code signing. Default: 'private-key.pem' in the same directory as the certificate specified by the expo-updates configuration in app.json." + }, + "port": { + "type": "number", + "description": "Port to start the native Metro bundler on (does not apply to web or tunnel)", + "default": 19000, + "alias": "p" + }, + "clear": { + "type": "boolean", + "description": "Clear the Metro bundler cache", + "alias": "c" + }, + "maxWorkers": { + "type": "number", + "description": "Maximum number of tasks to allow Metro to spawn" + }, + "dev": { + "type": "boolean", + "description": "Turn development mode on or off" + }, + "devClient": { + "type": "boolean", + "description": "Experimental: Starts the bundler for use with the expo-development-client" + }, + "minify": { + "type": "boolean", + "description": "Whether or not to minify code" + }, + "https": { + "type": "boolean", + "description": "To start webpack with https or http protocol" + }, + "scheme": { + "type": "string", + "description": "Custom URI protocol to use with a development build" + }, + "android": { + "type": "boolean", + "description": "Opens your app in Expo Go on a connected Android device", + "alias": "a" + }, + "ios": { + "type": "boolean", + "description": "Opens your app in Expo Go in a currently running iOS simulator on your computer", + "alias": "i" + }, + "web": { + "type": "boolean", + "description": " Opens your app in a web browser", + "alias": "w" + }, + "host": { + "type": "string", + "description": "lan (default), tunnel, localhost. Type of host to use. lan uses the local network; tunnel ues any network by tunnel through ngrok; localhost connects to the dev server over localhost.", + "enum": ["localhost", "lan", "tunnel"] + }, + "tunnel": { "type": "boolean", "description": "Same as --host tunnel" }, + "lan": { "type": "boolean", "description": "Same as --host lan" }, + "localhost": { + "type": "boolean", + "description": "Same as --host localhost" + }, + "offline": { + "type": "boolean", + "description": "Allows this command to run while offline" + } + }, + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081\n }\n }\n //...\n }\n}\n```\n\n```shell\nnx run mobile:start\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Specify starting on platform\" %}\nThe `ios`, `android` and `web` option allows you to start the server on different platforms.\n\nOpens your app in Expo Go in a currently running iOS simulator on your computer:\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"ios\": true\n }\n }\n```\n\nor run command `nx start --ios`.\n\nOpens your app in Expo Go on a connected Android device\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"android\": true\n }\n }\n```\n\nor run command `nx start --android`.\n\nOpens your app in a web browser:\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"web\": true\n }\n }\n```\n\nor run command `nx start --web`.\n\n{% /tab %}\n{% tab label=\"Specify the host\" %}\nThe `host` option allows you to specify the type of host to use. `lan` uses the local network; `tunnel` ues any network by tunnel through ngrok; `localhost` connects to the dev server over localhost.\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"host\": \"localhost\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Starts the server with cache reset\" %}\n\nThe `clear` option allows you to remove Metro bundler cache.\n\n```json\n \"start\": {\n \"executor\": \"@nx/expo:start\",\n \"options\": {\n \"port\": 8081,\n \"clear\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "description": "Start a local dev server for the app or start a Webpack dev server for the web app", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/start/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/submit.json b/docs/generated/packages/expo/executors/submit.json new file mode 100644 index 0000000000000..a9cfcb38bb9f1 --- /dev/null +++ b/docs/generated/packages/expo/executors/submit.json @@ -0,0 +1,57 @@ +{ + "name": "submit", + "implementation": "/packages/expo/src/executors/submit/submit.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "title": "EXPO EAS Submit Executor", + "description": "Submit app binary to App Store and/or Play Store.", + "type": "object", + "presets": [ + { "name": "Submit for a specific platform", "keys": ["platform"] }, + { "name": "Submit using a specific profile", "keys": ["profile"] } + ], + "properties": { + "profile": { + "type": "string", + "description": "Name of the build profile from eas.json. Defaults to \"production\" if defined in eas.json.", + "examples": ["production", "development", "preview"], + "x-priority": "important" + }, + "platform": { + "enum": ["ios", "android", "all"], + "alias": "p", + "description": "The platform to build the app, example values: ios, android, all.", + "x-priority": "important" + }, + "id": { "type": "string", "description": "Build ID to submit" }, + "path": { + "type": "string", + "description": "Path to the .apk/.aab/.ipa file" + }, + "url": { + "type": "string", + "description": "URL to the .apk/.aab/.ipa file, app archive url" + }, + "latest": { + "type": "boolean", + "description": "Submit the latest build for specified platform" + }, + "interactive": { + "type": "boolean", + "description": "Run command in interactive mode", + "default": true + }, + "wait": { + "type": "boolean", + "description": "Wait for build(s) to complete", + "default": true + } + } + }, + "description": "Submit app binary to App Store and/or Play Store", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/submit/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/sync-deps.json b/docs/generated/packages/expo/executors/sync-deps.json new file mode 100644 index 0000000000000..cbb07b21ae2c0 --- /dev/null +++ b/docs/generated/packages/expo/executors/sync-deps.json @@ -0,0 +1,39 @@ +{ + "name": "sync-deps", + "implementation": "/packages/expo/src/executors/sync-deps/sync-deps.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxExpoSyncDeps", + "$schema": "https://json-schema.org/schema", + "title": "Sync Deps for Expo", + "description": "Updates package.json with project dependencies.", + "type": "object", + "properties": { + "include": { + "type": "array", + "items": { "type": "string" }, + "default": [], + "description": "An array of additional npm packages to include." + }, + "exclude": { + "type": "array", + "items": { "type": "string" }, + "default": [], + "description": "An array of npm packages to exclude." + }, + "all": { + "type": "boolean", + "description": "Copy all dependencies and devDependencies from the workspace root package.json.", + "default": false + } + }, + "presets": [] + }, + "description": "Syncs dependencies to package.json (required for autolinking).", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/sync-deps/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/executors/update.json b/docs/generated/packages/expo/executors/update.json new file mode 100644 index 0000000000000..07bdeb3c6a3a6 --- /dev/null +++ b/docs/generated/packages/expo/executors/update.json @@ -0,0 +1,72 @@ +{ + "name": "update", + "implementation": "/packages/expo/src/executors/update/update.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "$id": "NxExpoEasUpdate", + "cli": "nx", + "title": "Expo EAS Update executor", + "description": "Start an EAS update for your expo project.", + "type": "object", + "presets": [ + { "name": "Update for a specific platform", "keys": ["platform"] }, + { "name": "Update from a specific branch", "keys": ["branch"] } + ], + "properties": { + "branch": { + "type": "string", + "description": "Branch to publish the update group on" + }, + "message": { + "type": "string", + "description": "A short message describing the update" + }, + "republish": { + "type": "boolean", + "description": "Enable JSON output, non-JSON messages will be printed to stderr", + "default": false + }, + "group": { "type": "string", "description": "Update group to republish" }, + "inputDir": { "type": "string", "description": "Location of the bundle" }, + "skipBundler": { + "type": "boolean", + "description": "Skip running Expo CLI to bundle the app before publishing", + "default": false + }, + "platform": { + "enum": ["ios", "android", "all"], + "alias": "p", + "description": "The platform to build the app, example values: ios, android, all.", + "default": "all", + "x-priority": "important" + }, + "json": { + "type": "boolean", + "description": "Enable JSON output, non-JSON messages will be printed to stderr", + "default": false + }, + "auto": { + "type": "boolean", + "description": "Use the current git branch and commit message for the EAS branch and update message", + "default": false + }, + "privateKeyPath": { + "type": "string", + "description": "File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named \"private-key.pem\" in the certificate's directory." + }, + "interactive": { + "type": "boolean", + "description": "Run command in interactive mode", + "default": true + } + }, + "required": [] + }, + "description": "Start an EAS update for your expo project", + "aliases": [], + "hidden": false, + "path": "/packages/expo/src/executors/update/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/expo/generators/application.json b/docs/generated/packages/expo/generators/application.json new file mode 100644 index 0000000000000..6396844a116c1 --- /dev/null +++ b/docs/generated/packages/expo/generators/application.json @@ -0,0 +1,103 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#expoApplicationGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxExpoApplication", + "$schema": "https://json-schema.org/schema", + "description": "Create an Expo Application for Nx.", + "examples": [ + { + "command": "g @nx/expo:app myapp --directory=nested", + "description": "Generate apps/nested/myapp" + }, + { + "command": "g @nx/expo:app myapp --classComponent", + "description": "Use class components instead of functional components" + } + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "displayName": { + "description": "The display name to show in the application. Defaults to name.", + "type": "string" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting)", + "alias": "t" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files", + "default": false + }, + "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 + }, + "e2eTestRunner": { + "description": "Adds the specified e2e test runner", + "type": "string", + "enum": ["cypress", "playwright", "detox", "none"], + "default": "cypress" + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "skipPackageJson": { + "type": "boolean", + "description": "Do not add dependencies to `package.json`.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create an application", + "implementation": "/packages/expo/src/generators/application/application#expoApplicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/expo/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/expo/generators/component.json b/docs/generated/packages/expo/generators/component.json new file mode 100644 index 0000000000000..f5579ec90e702 --- /dev/null +++ b/docs/generated/packages/expo/generators/component.json @@ -0,0 +1,96 @@ +{ + "name": "component", + "factory": "./src/generators/component/component#expoComponentGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxExpoComponent", + "$schema": "https://json-schema.org/schema", + "description": "Create a Expo Component for Nx.", + "type": "object", + "examples": [ + { + "command": "g @nx/expo:component my-component --project=mylib", + "description": "Generate a component in the mylib library" + }, + { + "command": "g @nx/expo:component my-component --project=mylib --classComponent", + "description": "Generate a class component in the mylib library" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTests": { + "type": "boolean", + "description": "When true, does not create \"spec.ts\" test files for the new component.", + "default": false + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "flat": { + "type": "boolean", + "description": "Create component at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." + }, + "export": { + "type": "boolean", + "description": "When true, the component is exported from the project index.ts (if it exists).", + "alias": "e", + "default": false, + "x-prompt": "Should this component be exported in the project?" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. App.tsx).", + "alias": "P", + "default": false, + "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "classComponent": { + "type": "boolean", + "alias": "C", + "description": "Use class components instead of functional component.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Create a component", + "aliases": ["c"], + "implementation": "/packages/expo/src/generators/component/component#expoComponentGeneratorInternal.ts", + "hidden": false, + "path": "/packages/expo/src/generators/component/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/expo/generators/init.json b/docs/generated/packages/expo/generators/init.json new file mode 100644 index 0000000000000..f3449f388e75a --- /dev/null +++ b/docs/generated/packages/expo/generators/init.json @@ -0,0 +1,44 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#expoInitGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxExpoInit", + "$schema": "https://json-schema.org/schema", + "description": "Add Nx Expo Schematics.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`." + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the @nx/expo plugin", + "hidden": true, + "implementation": "/packages/expo/src/generators/init/init#expoInitGeneratorInternal.ts", + "aliases": [], + "path": "/packages/expo/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/expo/generators/library.json b/docs/generated/packages/expo/generators/library.json new file mode 100644 index 0000000000000..d807880e06404 --- /dev/null +++ b/docs/generated/packages/expo/generators/library.json @@ -0,0 +1,113 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#expoLibraryGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxExpoLibrary", + "$schema": "https://json-schema.org/schema", + "description": "Create a Expo Library for Nx.", + "type": "object", + "examples": [ + { + "command": "g @nx/expo:lib mylib --directory=myapp", + "description": "Generate libs/myapp/mylib" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update tsconfig.json for development experience.", + "x-priority": "internal" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. App.tsx).", + "alias": "P", + "default": false + }, + "publishable": { + "type": "boolean", + "description": "Create a publishable library." + }, + "buildable": { + "type": "boolean", + "default": false, + "description": "Generate a buildable library." + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like @myorg/my-awesome-lib" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "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 + }, + "skipPackageJson": { + "type": "boolean", + "description": "Do not add dependencies to `package.json`.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a library", + "implementation": "/packages/expo/src/generators/library/library#expoLibraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/expo/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/express/documents/overview.md b/docs/generated/packages/express/documents/overview.md new file mode 100644 index 0000000000000..5e2b837e7bd8a --- /dev/null +++ b/docs/generated/packages/express/documents/overview.md @@ -0,0 +1,47 @@ +[Express](https://expressjs.com/) is a mature, minimal, and an open source web framework for making web applications and +apis. + +## Create a New Workspace + +To create a new workspace with a pre-created Express app, run the following command: + +```shell + npx create-nx-workspace --preset=express +``` + +## Setting Up @nx/express + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/express` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/express` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/express +``` + +This will install the correct version of `@nx/express`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/express` package with your package manager. + +```shell +npm add -D @nx/express +``` + +{% /tab %} +{% /tabs %} + +## Recipes + +- [Add an Express Application to Your Workspace](/showcase/example-repos/add-express) +- [Set Up Application Proxies](/recipes/node/application-proxies) +- [Wait For Tasks To Finish](/recipes/node/wait-for-tasks) diff --git a/docs/generated/packages/express/generators/application.json b/docs/generated/packages/express/generators/application.json new file mode 100644 index 0000000000000..983f7fd1e499d --- /dev/null +++ b/docs/generated/packages/express/generators/application.json @@ -0,0 +1,102 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "SchematicsNxExpressApp", + "title": "Nx Application Options Schema", + "description": "Nx Application Options Schema.", + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the node application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`." + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting)." + }, + "frontendProject": { + "type": "string", + "description": "Frontend project that needs to access this application. This sets up proxy configuration." + }, + "swcJest": { + "type": "boolean", + "description": "Use `@swc/jest` instead `ts-jest` for faster test compilation.", + "default": false + }, + "babelJest": { + "type": "boolean", + "description": "Use `babel` instead `ts-jest`.", + "default": false, + "x-deprecated": "Use --swcJest instead for faster compilation" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case file names.", + "alias": "P", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "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 + } + }, + "required": [], + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create an Express application.", + "implementation": "/packages/express/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/express/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/express/generators/init.json b/docs/generated/packages/express/generators/init.json new file mode 100644 index 0000000000000..128e0c6329492 --- /dev/null +++ b/docs/generated/packages/express/generators/init.json @@ -0,0 +1,38 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#initGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxExpressInit", + "title": "Init Express Plugin", + "description": "Init Express Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`." + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/express` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/express/src/generators/init/init#initGenerator.ts", + "path": "/packages/express/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/jest/documents/overview.md b/docs/generated/packages/jest/documents/overview.md new file mode 100644 index 0000000000000..aeb413090e11e --- /dev/null +++ b/docs/generated/packages/jest/documents/overview.md @@ -0,0 +1,260 @@ +--- +title: Overview of the Nx Jest Plugin +description: The Nx Plugin for Jest contains executors and generators that support testing projects using Jest. This page also explains how to configure Jest on your Nx workspace. +--- + +[Jest](https://jestjs.io/) is an open source test runner created by Facebook. It has a lot of great features: + +- Immersive watch mode for providing near instant feedback when developing tests. +- Snapshot testing for validating features. +- Great built-in reporter for printing out test results. + +## Setting Up @nx/jest + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/jest` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/jest` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/jest +``` + +This will install the correct version of `@nx/jest`. + +### How @nx/jest Infers Tasks + +The `@nx/jest` plugin will create a task for any project that has an Jest configuration file present. Any of the following files will be recognized as an Jest configuration file: + +- `jest.config.js` +- `jest.config.ts` +- `jest.config.mjs` +- `jest.config.mts` +- `jest.config.cjs` +- `jest.config.cts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/jest Configuration + +The `@nx/jest/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/jest/plugin", + "options": { + "targetName": "test" + } + } + ] +} +``` + +- The `targetName` option controls the name of the inferred Jest tasks. The default name is `test`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/jest` package with your package manager. + +```shell +npm add -D @nx/jest +``` + +{% /tab %} +{% /tabs %} + +## Using Jest + +### Generate a new project set up with Jest + +By default, Nx will use Jest when creating applications and libraries. + +```shell +nx g @nx/web:app frontend +``` + +### Add Jest to a project + +Run the `configuration` generator + +```shell +nx g @nx/jest:configuration --project= +``` + +> Hint: You can use the `--dry-run` flag to see what will be generated. + +Replacing `` with the name of the project you're wanting to add Jest too. + +### Testing Applications + +The recommended way to run/debug Jest tests via an editor + +- [VSCode](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner) +- [Webstorm](https://blog.jetbrains.com/webstorm/2018/10/testing-with-jest-in-webstorm/) + +To run Jest tests via nx use + +```shell +nx test frontend +``` + +### Watching for Changes + +Using the `--watch` flag will run the tests whenever a file changes. + +```shell +nx test frontend --watch +``` + +### Snapshot Testing + +Jest has support for **Snapshot Testing**, a tool which simplifies validating data. Check out the [official Jest Documentation on Snapshot Testing](https://jestjs.io/docs/en/snapshot-testing). + +Example of using snapshots: + +```typescript +describe('SuperAwesomFunction', () => { + it('should return the correct data shape', () => { + const actual = superAwesomFunction(); + expect(actual).toMatchSnapshot(); + }); +}); +``` + +When using snapshots, you can update them with the `--updateSnapshot` flag, `-u` for short. + +> By default, snapshots will be generated when there are not existing snapshots for the associated test. + +```shell +nx test frontend -u +``` + +Snapshot files should be checked in with your code. + +### Performance in CI + +Typically, in CI it's recommended to use `nx affected -t test --parallel=[# CPUs] -- --runInBand` for the best performance. + +This is because each [jest process creates a workers based on system resources](https://jestjs.io/docs/cli#--maxworkersnumstring), running multiple projects via nx and using jest workers will create too many process overall causing the system to run slower than desired. Using the `--runInBand` flag tells jest to run in a single process. + +## Configurations + +### Jest + +Primary configurations for Jest will be via the `jest.config.ts` file that generated for your project. This file will extend the root `jest.preset.js` file. Learn more about [Jest configurations](https://jestjs.io/docs/configuration#options). + +The root level `jest.config.ts` file configures [Jest multi project support](https://jestjs.io/docs/configuration#projects-arraystring--projectconfig). +This configuration allows editor/IDE integrations to pick up individual project's configurations rather than the one at the root. + +The set of Jest projects within Nx workspaces tends to change. Instead of statically defining a list in `jest.config.ts`, Nx provides a utility function called `getJestProjects` which queries for Jest configurations defined for targets which use the `@nx/jest:jest` executor. + +You can add Jest projects which are not included in `getJestProjects()`, because they do not use the Nx Jest executor, by doing something like the following: + +```typescript {% fileName="jest.config.ts"} +import { getJestProjects } from '@nx/jest'; + +export default { + projects: [...getJestProjects(), '/path/to/jest.config.ts'], +}; +``` + +### Nx + +Nx Jest Plugin options can be configured via the [project config file](/reference/project-configuration) or via the [command line flags](/nx-api/jest). + +> Hint: Use `--help` to see all available options +> +> ```shell +> nx test --help +> ``` + +### Code Coverage + +Enable code coverage with the `--coverage` flag or by adding it to the executor options in the [project configuration file](/reference/project-configuration). + +By default, coverage reports will be generated in the `coverage/` directory under projects name. i.e. `coverage/apps/frontend`. Modify this directory with the `--coverageDirectory` flag. Coverage reporters can also be customized with the `--coverageReporters` flag. + +> `coverageDirectory` and `coverageReporters` are configurable via the project configuration file as well. + +### Global setup/teardown with nx libraries + +In order to use Jest's global setup/teardown functions that reference nx libraries, you'll need to register the TS path for jest to resolve the libraries. +Nx provides a helper function that you can import within your setup/teardown file. + +```typescript {% fileName="global-setup.ts" %} +import { registerTsProject } from '@nx/js/src/internal'; +const cleanupRegisteredPaths = registerTsProject('./tsconfig.base.json'); + +import { yourFancyFunction } from '@some-org/my-util-library'; +export default async function () { + yourFancyFunction(); +} +// make sure to run the clean up! +cleanupRegisteredPaths(); +``` + +{% callout type="note" title="@swc/jest & global scripts" %} +When using @swc/jest and a global setup/teardown file, +You have to set the `noInterop: false` and use dynamic imports within the setup function + +```typescript {% fileName="apps//jest.config.ts" %} +/* eslint-disable */ +import { readFileSync } from 'fs'; + +// Reading the SWC compilation config and remove the "exclude" +// for the test files to be compiled by SWC +const { exclude: _, ...swcJestConfig } = JSON.parse( + readFileSync(`${__dirname}/.swcrc`, 'utf-8') +); + +// disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves. +// If we do not disable this, SWC Core will read .swcrc and won't transform our test files due to "exclude" +if (swcJestConfig.swcrc === undefined) { + swcJestConfig.swcrc = false; +} + +// jest needs EsModule Interop to find the default exported function +swcJestConfig.module.noInterop = false; + +export default { + globalSetup: '/src/global-setup-swc.ts', + transform: { + '^.+\\.[tj]s$': ['@swc/jest', swcJestConfig], + }, + // other settings +}; +``` + +```typescript {% fileName="global-setup-swc.ts" %} +import { registerTsProject } from '@nx/js/src/internal'; +const cleanupRegisteredPaths = registerTsProject('./tsconfig.base.json'); + +export default async function () { + // swc will hoist all imports, and we need to make sure the register happens first + // so we import all nx project alias within the setup function first. + const { yourFancyFunction } = await import('@some-org/my-util-library'); + + yourFancyFunction(); + + // make sure to run the clean up! + cleanupRegisteredPaths(); +} +``` + +{% /callout %} + +## More Documentation + +- [Jest Docs](https://jestjs.io/) +- [@nx/jest options](/nx-api/jest) diff --git a/docs/generated/packages/jest/executors/jest.json b/docs/generated/packages/jest/executors/jest.json new file mode 100644 index 0000000000000..07818365c09ae --- /dev/null +++ b/docs/generated/packages/jest/executors/jest.json @@ -0,0 +1,208 @@ +{ + "name": "jest", + "implementation": "/packages/jest/src/executors/jest/jest.impl.ts", + "batchImplementation": "./src/executors/jest/jest.impl#batchJest", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Jest Builder", + "description": "Jest target options for Build Facade.", + "cli": "nx", + "type": "object", + "presets": [ + { + "name": "Pass Without Tests", + "keys": ["jestConfig", "passWithNoTests"] + }, + { "name": "Code Coverage", "keys": ["jestConfig", "coverageReporters"] }, + { "name": "Stop After 'n' Failed", "keys": ["jestConfig", "bail"] } + ], + "properties": { + "codeCoverage": { + "description": "Indicates that test coverage information should be collected and reported in the output. (https://jestjs.io/docs/cli#--coverageboolean)", + "type": "boolean", + "aliases": ["coverage"] + }, + "config": { + "description": "The path to a Jest config file specifying how to find and execute tests. If no `rootDir` is set in the config, the directory containing the config file is assumed to be the `rootDir` for the project. This can also be a JSON-encoded value which Jest will use as configuration.", + "type": "string" + }, + "clearCache": { + "description": "Deletes the Jest cache directory and then exits without running tests. Will delete Jest's default cache directory. _Note: clearing the cache will reduce performance_.", + "type": "boolean" + }, + "detectOpenHandles": { + "description": "Attempt to collect and print open handles preventing Jest from exiting cleanly (https://jestjs.io/docs/cli#--detectopenhandles)", + "type": "boolean" + }, + "logHeapUsage": { + "description": "Logs the heap usage after every test. Useful to debug memory leaks. Use together with --runInBand and --expose-gc in node.", + "type": "boolean" + }, + "detectLeaks": { + "description": "**EXPERIMENTAL**: Detect memory leaks in tests. After executing a test, it will try to garbage collect the global object used, and fail if it was leaked", + "type": "boolean" + }, + "jestConfig": { + "description": "The path of the Jest configuration. (https://jestjs.io/docs/en/configuration)", + "type": "string", + "x-completion-type": "file", + "x-completion-glob": "jest.config@(.js|.ts)" + }, + "testFile": { + "description": "The name of the file to test.", + "type": "string" + }, + "tsConfig": { + "description": "The name of the Typescript configuration file.", + "type": "string", + "x-deprecated": "Use the ts-jest configuration options in the jest config file instead." + }, + "setupFile": { + "description": "The name of a setup file used by Jest.", + "type": "string", + "x-deprecated": "Use the setupFilesAfterEnv option in the jest config file. https://jestjs.io/docs/en/configuration#setupfilesafterenv-array" + }, + "bail": { + "alias": "b", + "description": "Exit the test suite immediately after `n` number of failing tests. (https://jestjs.io/docs/cli#--bail)", + "oneOf": [{ "type": "number" }, { "type": "boolean" }] + }, + "ci": { + "description": "Whether to run Jest in continuous integration (CI) mode. This option is on by default in most popular CI environments. It will prevent snapshots from being written unless explicitly requested. (https://jestjs.io/docs/cli#--ci)", + "type": "boolean" + }, + "color": { + "alias": "colors", + "description": "Forces test results output color highlighting (even if `stdout` is not a TTY). Set to false if you would like to have no colors. (https://jestjs.io/docs/cli#--colors)", + "type": "boolean" + }, + "findRelatedTests": { + "description": "Find and run the tests that cover a comma separated list of source files that were passed in as arguments. (https://jestjs.io/docs/cli#--findrelatedtests-spaceseparatedlistofsourcefiles)", + "type": "string" + }, + "forceExit": { + "description": "Force Jest to exit after all tests have completed running. This is useful when resources set up by test code cannot be adequately cleaned up.This feature is an escape-hatch. If Jest doesn't exit at the end of a test run, it means external resources are still being held on to or timers are still pending in your code. It is advised to tear down external resources after each test to make sure Jest can shut down cleanly. You can use --detectOpenHandles to help track it down.", + "type": "boolean" + }, + "json": { + "description": "Prints the test results in `JSON`. This mode will send all other test output and user messages to `stderr`. (https://jestjs.io/docs/cli#--json)", + "type": "boolean" + }, + "maxWorkers": { + "alias": "w", + "description": "Specifies the maximum number of workers the worker-pool will spawn for running tests. This defaults to the number of the cores available on your machine. Useful for CI. (its usually best not to override this default) (https://jestjs.io/docs/cli#--maxworkersnumstring)", + "oneOf": [{ "type": "number" }, { "type": "string" }] + }, + "onlyChanged": { + "alias": "o", + "description": "Attempts to identify which tests to run based on which files have changed in the current repository. Only works if you're running tests in a `git` or `hg` repository at the moment. (https://jestjs.io/docs/cli#--onlychanged)", + "type": "boolean" + }, + "changedSince": { + "description": "Runs tests related to the changes since the provided branch or commit hash. If the current branch has diverged from the given branch, then only changes made locally will be tested. (https://jestjs.io/docs/cli#--changedsince)", + "type": "string" + }, + "outputFile": { + "description": "Write test results to a file when the `--json` option is also specified. (https://jestjs.io/docs/cli#--outputfilefilename)", + "type": "string" + }, + "passWithNoTests": { + "description": "Will not fail if no tests are found (for example while using `--testPathPattern`.) (https://jestjs.io/docs/cli#--passwithnotests)", + "type": "boolean" + }, + "randomize": { + "description": "Shuffle the order of the tests within a file. The shuffling is based on the seed. This option is only supported using the default jest-circus test runner.", + "type": "boolean" + }, + "runInBand": { + "alias": "i", + "description": "Run all tests serially in the current process (rather than creating a worker pool of child processes that run tests). This is sometimes useful for debugging, but such use cases are pretty rare. Useful for CI. (https://jestjs.io/docs/cli#--runinband)", + "type": "boolean" + }, + "showConfig": { + "description": "Print your Jest config and then exits. (https://jestjs.io/docs/en/cli#--showconfig)", + "type": "boolean" + }, + "silent": { + "description": "Prevent tests from printing messages through the console. (https://jestjs.io/docs/cli#--silent)", + "type": "boolean" + }, + "testNamePattern": { + "alias": "t", + "description": "Run only tests with a name that matches the regex pattern. (https://jestjs.io/docs/cli#--testnamepatternregex)", + "type": "string" + }, + "testPathIgnorePatterns": { + "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. Only run those tests with a path that does not match with the provided regexp expressions. (https://jestjs.io/docs/cli#--testpathignorepatternsregexarray)", + "type": "array", + "items": { "type": "string" } + }, + "testPathPattern": { + "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. (https://jestjs.io/docs/cli#--testpathpatternregex)", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "colors": { + "description": "Forces test results output highlighting even if stdout is not a TTY. (https://jestjs.io/docs/cli#--colors)", + "type": "boolean" + }, + "reporters": { + "description": "Run tests with specified reporters. Reporter options are not available via CLI. Example with multiple reporters: `jest --reporters=\"default\" --reporters=\"jest-junit\"`. (https://jestjs.io/docs/cli#--reporters)", + "type": "array", + "items": { "type": "string" } + }, + "verbose": { + "description": "Display individual test results with the test suite hierarchy. (https://jestjs.io/docs/cli#--verbose)", + "type": "boolean" + }, + "coverageReporters": { + "description": "A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter.", + "type": "array", + "items": { "type": "string" } + }, + "coverageDirectory": { + "description": "The directory where Jest should output its coverage files.", + "type": "string", + "x-completion-type": "directory" + }, + "testResultsProcessor": { + "description": "Node module that implements a custom results processor. (https://jestjs.io/docs/en/configuration#testresultsprocessor-string)", + "type": "string" + }, + "updateSnapshot": { + "alias": "u", + "description": "Use this flag to re-record snapshots. Can be used together with a test suite pattern or with `--testNamePattern` to re-record snapshot for test matching the pattern. (https://jestjs.io/docs/cli#--updatesnapshot)", + "type": "boolean" + }, + "useStderr": { + "description": "Divert all output to stderr.", + "type": "boolean" + }, + "watch": { + "description": "Watch files for changes and rerun tests related to changed files. If you want to re-run all tests when a file has changed, use the `--watchAll` option. (https://jestjs.io/docs/cli#--watch)", + "type": "boolean" + }, + "watchAll": { + "description": "Watch files for changes and rerun all tests when something changes. If you want to re-run only the tests that depend on the changed files, use the `--watch` option. (https://jestjs.io/docs/cli#--watchall)", + "type": "boolean" + }, + "testLocationInResults": { + "description": "Adds a location field to test results. Used to report location of a test in a reporter. { \"column\": 4, \"line\": 5 } (https://jestjs.io/docs/cli#--testlocationinresults)", + "type": "boolean" + }, + "testTimeout": { + "description": "Default timeout of a test in milliseconds. Default value: `5000`. (https://jestjs.io/docs/cli#--testtimeoutnumber)", + "type": "number" + } + }, + "required": ["jestConfig"], + "examplesFile": "Jest can be configured in many ways, but primarily you'll need to at least have the jestConfig options\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\"\n }\n}\n```\n\nIt is also helpful to have `passWithNoTests: true` set so your project doesn't fail testing while tests are still being added.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n }\n}\n```\n\n### Snapshots\n\nUpdate snapshots running with `--update-snapshot` or `-u` for short.\n\n```bash\nnx test my-project -u\n```\n\nOther times you might not want to allow updating snapshots such as in CI.\nAdding a _ci_ configuration is helpful for adding this behavior.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n },\n \"configurations\": {\n \"ci\": {\n \"ci\": true\n }\n }\n}\n```\n\n```bash\nnx affected --target=test\n```\n\nLearn more [about _affected_](/ci/features/affected)\n" + }, + "description": "Run Jest unit tests.", + "aliases": [], + "hidden": false, + "path": "/packages/jest/src/executors/jest/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/jest/generators/configuration.json b/docs/generated/packages/jest/generators/configuration.json new file mode 100644 index 0000000000000..9528f13bd989d --- /dev/null +++ b/docs/generated/packages/jest/generators/configuration.json @@ -0,0 +1,89 @@ +{ + "name": "configuration", + "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxJestProject", + "cli": "nx", + "title": "Add Jest Configuration to a project", + "description": "Add Jest Configuration to a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "projectName" }, + "x-priority": "important" + }, + "skipSetupFile": { + "type": "boolean", + "description": "Skips the setup file required for angular.", + "default": false, + "x-deprecated": "Use `--setup-file` instead." + }, + "setupFile": { + "type": "string", + "enum": ["none", "angular", "web-components"], + "description": "The setup file to be generated.", + "default": "none", + "x-priority": "important" + }, + "skipSerializers": { + "type": "boolean", + "description": "Skips the serializers required to snapshot angular templates.", + "default": false + }, + "supportTsx": { + "type": "boolean", + "description": "Setup `tsx` support.", + "default": false, + "x-priority": "important" + }, + "testEnvironment": { + "type": "string", + "enum": ["jsdom", "node", "none"], + "description": "The test environment for jest.", + "default": "jsdom", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "enum": ["tsc", "babel", "swc"], + "description": "The compiler to use for source and tests.", + "default": "tsc" + }, + "babelJest": { + "type": "boolean", + "alias": "babel-jest", + "description": "Use `babel-jest` instead of `ts-jest`.", + "x-deprecated": "Use `--compiler=babel` instead.", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "js": { + "type": "boolean", + "default": false, + "description": "Use JavaScript instead of TypeScript for config files" + } + }, + "required": [], + "presets": [] + }, + "description": "Add Jest configuration to a project.", + "hidden": true, + "implementation": "/packages/jest/src/generators/configuration/configuration#configurationGeneratorInternal.ts", + "aliases": [], + "path": "/packages/jest/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/jest/generators/init.json b/docs/generated/packages/jest/generators/init.json new file mode 100644 index 0000000000000..445a2a287750b --- /dev/null +++ b/docs/generated/packages/jest/generators/init.json @@ -0,0 +1,46 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#jestInitGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxJestInit", + "cli": "nx", + "title": "Jest init", + "description": "Add Jest Configuration to a workspace.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/jest` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/jest/src/generators/init/init#jestInitGeneratorInternal.ts", + "path": "/packages/jest/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/js/documents/overview.md b/docs/generated/packages/js/documents/overview.md new file mode 100644 index 0000000000000..c8b58a14937f1 --- /dev/null +++ b/docs/generated/packages/js/documents/overview.md @@ -0,0 +1,122 @@ +--- +title: Overview of the Nx JS Plugin +description: The Nx JS plugin contains executors and generators that are useful for JavaScript/TypeScript projects in an Nx workspace. +--- + +The JS plugin contains executors and generators that are useful for JavaScript/TypeScript projects in an Nx workspace. + +## Setting Up @nx/js + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/js` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/js` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/js +``` + +This will install the correct version of `@nx/js`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/js` package with your package manager. + +```shell +npm add -D @nx/js +``` + +{% /tab %} +{% /tabs %} + +### `ts` Preset + +When initializing a new Nx workspace, specifying `--preset=ts` will generate a workspace with `@nx/js` pre-installed. + +{% tabs %} +{%tab label="npm"%} + +```shell +npx create-nx-workspace my-org --preset=ts +``` + +{% /tab %} +{%tab label="yarn"%} + +```shell +yarn create nx-workspace my-org --preset=ts +``` + +{% /tab %} +{% /tabs %} + +## Create Libraries + +You can add a new JS/TS library with the following command: + +```shell +nx g @nx/js:lib my-lib +``` + +## Build + +You can `build` libraries that are generated with a bundler specified. + +```shell +nx g @nx/js:lib my-buildable-lib --bundler=rollup +``` + +Generating a library with `--bundler` specified will add a `build` target to the library's `project.json` file allows the library to be built. + +```shell +nx build my-buildable-lib +``` + +## Test + +You can test a library with the following command: + +```shell +nx test my-lib +``` + +## Lint + +You can lint a library with the following command: + +```shell +nx lint my-lib +``` + +## Compiler + +By default, `@nx/js` uses [TypeScript Compiler (TSC)](https://www.typescriptlang.org/docs/handbook/2/basic-types.html#tsc-the-typescript-compiler), via `@nx/js:tsc` executor, to compile your libraries. Optionally, you can switch `tsc` out for a different compiler with `--compiler` flag when executing the generators. + +Currently, `@nx/js` supports the following compilers: + +- [Speedy Web Compiler (SWC)](https://swc.rs) + +### SWC + +- Create a buildable library with `swc` + +```shell +nx g @nx/js:lib my-swc-lib --bundler=swc +``` + +- Convert a `tsc` library to use `swc` + +```shell +nx g @nx/js:convert-to-swc my-buildable-lib +``` + +Now the `build` command will use `@nx/js:swc` executor to compile your libraries. + +> The first time you generate a `swc` library or convert a `tsc` library over to `swc`, `@nx/js` will install the necessary dependencies to use `swc`. diff --git a/docs/generated/packages/js/executors/node.json b/docs/generated/packages/js/executors/node.json new file mode 100644 index 0000000000000..f69777deebb40 --- /dev/null +++ b/docs/generated/packages/js/executors/node.json @@ -0,0 +1,91 @@ +{ + "name": "node", + "implementation": "/packages/js/src/executors/node/node.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "title": "Node executor", + "description": "Execute Nodejs applications.", + "type": "object", + "properties": { + "buildTarget": { + "type": "string", + "description": "The target to run to build you the app." + }, + "buildTargetOptions": { + "type": "object", + "description": "Additional options to pass into the build target.", + "default": {} + }, + "waitUntilTargets": { + "type": "array", + "description": "The targets to run before starting the node app. Listed in the form :. The main target will run once all listed targets have output something to the console.", + "default": [], + "items": { "type": "string" } + }, + "host": { + "type": "string", + "default": "localhost", + "description": "The host to inspect the process on.", + "x-priority": "important" + }, + "port": { + "type": "number", + "default": 9229, + "description": "The port to inspect the process on. Setting port to 0 will assign random free ports to all forked processes.", + "x-priority": "important" + }, + "inspect": { + "oneOf": [ + { "type": "string", "enum": ["inspect", "inspect-brk"] }, + { "type": "boolean" } + ], + "description": "Ensures the app is starting with debugging.", + "default": "inspect", + "x-priority": "important" + }, + "runtimeArgs": { + "type": "array", + "description": "Extra args passed to the node process.", + "default": [], + "items": { "type": "string" }, + "x-priority": "important" + }, + "args": { + "type": "array", + "description": "Extra args when starting the app.", + "default": [], + "items": { "type": "string" }, + "x-priority": "important" + }, + "watch": { + "type": "boolean", + "description": "Enable re-building when files change.", + "default": true, + "x-priority": "important" + }, + "debounce": { + "type": "number", + "description": "Delay in milliseconds to wait before restarting. Useful to batch multiple file changes events together. Set to zero (0) to disable.", + "default": 500, + "x-priority": "important" + }, + "runBuildTargetDependencies": { + "type": "boolean", + "description": "Whether to run dependencies before running the build. Set this to true if the project does not build libraries from source (e.g. 'buildLibsFromSource: false').", + "default": false + } + }, + "additionalProperties": false, + "required": ["buildTarget"], + "examplesFile": "---\ntitle: JS Node executor examples\ndescription: This page contains examples for the @nx/js:node executor.\n---\n\nThe `@nx/js:node` executor runs the output of a build target. For example, an application uses esbuild ([`@nx/esbuild:esbuild`](/packages/esbuild/executors/esbuild)) to output the bundle to `dist/my-app` folder, which can then be executed by `@nx/js:node`.\n\n`project.json`:\n\n```json\n\"my-app\": {\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/js:node\",\n \"options\": {\n \"buildTarget\": \"my-app:build\"\n }\n },\n \"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n \"main\": \"my-app/src/main.ts\",\n \"output\": [\"dist/my-app\"],\n //...\n }\n },\n }\n}\n```\n\n```bash\nnpx nx serve my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Pass extra Node CLI arguments\" %}\n\nUsing `runtimeArgs`, you can pass arguments to the underlying `node` command. For example, if you want to set [`--no-warnings`](https://nodejs.org/api/cli.html#--no-warnings) to silence all Node warnings, then add the following to the `project.json` file.\n\n```json\n\"my-app\": {\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/js:node\",\n \"options\": {\n \"runtimeArgs\": [\"--no-warnings\"],\n //...\n },\n },\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Run all task dependencies\" %}\n\nIf your application build depends on other tasks, and you want those tasks to also be executed, then set the `runBuildTargetDependencies` to `true`. For example, a library may have a task to generate GraphQL schemas, which is consume by the application. In this case, you want to run the generate task before building and running the application.\n\nThis option is also useful when the build consumes a library from its output, not its source. For example, if an executor that supports `buildLibsFromSource` option has it set to `false` (e.g. [`@nx/webpack:webpack`](/packages/webpack/executors/webpack)).\n\nNote that this option will increase the build time, so use it only when necessary.\n\n```json\n\"my-app\": {\n \"targets\": {\n \"serve\": {\n \"executor\": \"@nx/js:node\",\n \"options\": {\n \"runBuildTargetDependencies\": true,\n //...\n },\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Execute a Node application.", + "aliases": [], + "hidden": false, + "path": "/packages/js/src/executors/node/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/js/executors/release-publish.json b/docs/generated/packages/js/executors/release-publish.json new file mode 100644 index 0000000000000..b6a36f4f33aa1 --- /dev/null +++ b/docs/generated/packages/js/executors/release-publish.json @@ -0,0 +1,36 @@ +{ + "name": "release-publish", + "implementation": "/packages/js/src/executors/release-publish/release-publish.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "title": "Implementation details of `nx release publish`", + "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", + "type": "object", + "properties": { + "packageRoot": { + "type": "string", + "description": "The root directory of the directory (containing a manifest file at its root) to publish. Defaults to the project root." + }, + "registry": { + "type": "string", + "description": "The registry to publish the package to." + }, + "tag": { + "type": "string", + "description": "The distribution tag to apply to the published package." + }, + "dryRun": { + "type": "boolean", + "description": "Whether to run the command without actually publishing the package to the registry." + } + }, + "required": [], + "presets": [] + }, + "description": "DO NOT INVOKE DIRECTLY WITH `nx run`. Use `nx release publish` instead.", + "hidden": true, + "aliases": [], + "path": "/packages/js/src/executors/release-publish/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/js/executors/swc.json b/docs/generated/packages/js/executors/swc.json new file mode 100644 index 0000000000000..2c5289db8ef55 --- /dev/null +++ b/docs/generated/packages/js/executors/swc.json @@ -0,0 +1,174 @@ +{ + "name": "swc", + "implementation": "/packages/js/src/executors/swc/swc.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "title": "Typescript Build Target", + "description": "Builds using SWC.", + "type": "object", + "properties": { + "main": { + "type": "string", + "description": "The name of the main entry-point file.", + "x-completion-type": "file", + "x-completion-glob": "main@(.js|.ts|.tsx)", + "x-priority": "important" + }, + "generateExportsField": { + "type": "boolean", + "alias": "exports", + "description": "Update the output package.json file's 'exports' field. This field is used by Node and bundles.", + "x-priority": "important", + "default": false + }, + "additionalEntryPoints": { + "type": "array", + "description": "Additional entry-points to add to exports field in the package.json file.", + "items": { "type": "string" }, + "x-priority": "important" + }, + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "tsConfig": { + "type": "string", + "description": "The path to the Typescript configuration file.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "swcrc": { + "type": "string", + "description": "The path to the SWC configuration file. Default: .swcrc", + "x-completion-type": "file", + "x-completion-glob": ".swcrc" + }, + "assets": { + "type": "array", + "description": "List of static assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "watch": { + "type": "boolean", + "description": "Enable re-building when files change.", + "default": false + }, + "clean": { + "type": "boolean", + "description": "Remove previous output before build.", + "default": true + }, + "skipTypeCheck": { + "type": "boolean", + "description": "Whether to skip TypeScript type checking.", + "default": false, + "x-priority": "important" + }, + "swcExclude": { + "type": "array", + "description": "List of SWC Glob/Regex to be excluded from compilation (https://swc.rs/docs/configuration/compilation#exclude).", + "default": [ + "./src/**/.*.spec.ts$", + "./**/.*.spec.ts$", + "./src/**/jest-setup.ts$", + "./**/jest-setup.ts$", + "./**/.*.js$" + ], + "hidden": true + }, + "external": { + "description": "A list projects to be treated as external. This feature is experimental", + "oneOf": [ + { "type": "string", "enum": ["all", "none"] }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "externalBuildTargets": { + "type": "array", + "items": { "type": "string" }, + "description": "List of target names that annotate a build target for a project", + "default": ["build"] + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["main", "outputPath", "tsConfig"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Inline libraries\" %}\n\n`@nx/js:swc` can inline non-buildable libraries by opt-in to **Inlining** mode with `external` option.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:swc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"all\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=all\n```\n\n`@nx/js:swc` can also inline buildable libraries by setting `external: 'none'`\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:swc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"none\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=none\n```\n\n{% /tab %}\n{% tab label=\"Custom swcrc\" %}\n\n`@nx/js:swc` can compile your code with a custom `.swcrc`\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:swc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"swcrc\": \"libs/ts-lib/.dev.swcrc\"\n },\n \"configurations\": {\n \"production\": {\n \"swcrc\": \"libs/ts-lib/.prod.swcrc\"\n }\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "description": "Build a project using SWC.", + "aliases": [], + "hidden": false, + "path": "/packages/js/src/executors/swc/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/js/executors/tsc.json b/docs/generated/packages/js/executors/tsc.json new file mode 100644 index 0000000000000..cd05d41f7d8e7 --- /dev/null +++ b/docs/generated/packages/js/executors/tsc.json @@ -0,0 +1,188 @@ +{ + "name": "tsc", + "implementation": "/packages/js/src/executors/tsc/tsc.impl.ts", + "batchImplementation": "./src/executors/tsc/tsc.batch-impl", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Typescript Build Target", + "description": "Builds using TypeScript.", + "cli": "nx", + "type": "object", + "properties": { + "main": { + "type": "string", + "description": "The name of the main entry-point file.", + "x-completion-type": "file", + "x-completion-glob": "main@(.js|.ts|.jsx|.tsx)", + "x-priority": "important" + }, + "generateExportsField": { + "type": "boolean", + "alias": "exports", + "description": "Update the output package.json file's 'exports' field. This field is used by Node and bundles.", + "default": false, + "x-priority": "important" + }, + "additionalEntryPoints": { + "type": "array", + "description": "Additional entry-points to add to exports field in the package.json file.", + "items": { "type": "string" }, + "x-priority": "important" + }, + "rootDir": { + "type": "string", + "description": "Sets the rootDir for TypeScript compilation. When not defined, it uses the root of project." + }, + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "tsConfig": { + "type": "string", + "description": "The path to the Typescript configuration file.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "assets": { + "type": "array", + "description": "List of static assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "watch": { + "type": "boolean", + "description": "Enable re-building when files change.", + "default": false + }, + "clean": { + "type": "boolean", + "description": "Remove previous output before build.", + "default": true + }, + "transformers": { + "type": "array", + "description": "List of TypeScript Transformer Plugins.", + "default": [], + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "name": { "type": "string" }, + "options": { "type": "object", "additionalProperties": true } + }, + "additionalProperties": false, + "required": ["name"] + } + ] + }, + "x-priority": "important" + }, + "external": { + "description": "A list projects to be treated as external. This feature is experimental", + "oneOf": [ + { "type": "string", "enum": ["all", "none"] }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "externalBuildTargets": { + "type": "array", + "items": { "type": "string" }, + "description": "List of target names that annotate a build target for a project", + "default": ["build"] + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["main", "outputPath", "tsConfig"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + }, + "transformerPattern": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "name": { "type": "string" }, + "options": { "type": "object", "additionalProperties": true } + }, + "additionalProperties": false, + "required": ["name"] + } + ] + } + }, + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Using TypeScript Transformer Plugins\" %}\n\n`@nx/js:tsc` can run the [TypeScript Transformers](https://github.com/madou/typescript-transformer-handbook) by using the `transformers` option.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"transformers\": [\n \"@nestjs/swagger/plugin\",\n {\n \"name\": \"@automapper/classes/transformer-plugin\",\n \"options\": {}\n }\n ]\n }\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Inline libraries\" %}\n\n`@nx/js:tsc` can inline non-buildable libraries by opt-in to **Inlining** mode with `external` option.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"all\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=all\n```\n\n`@nx/js:tsc` can also inline buildable libraries by setting `external: 'none'`\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"external\": \"none\"\n }\n }\n}\n```\n\n```shell\nnpx nx build ts-lib --external=none\n```\n\n{% /tab %}\n{% tab label=\"Batch mode execution\" %}\n\n{% callout type=\"check\" title=\"Available since Nx 16.6.0\" %}\nThe `@nx/js:tsc` batch implementation was introduced in Nx **16.6.0**.\n{% /callout %}\n\nThe `@nx/js:tsc` executor supports running multiple tasks in a single process. When running in batch mode, the executor uses the [TypeScript APIs for incremental builds](https://www.typescriptlang.org/docs/handbook/project-references.html#build-mode-for-typescript). This results in a much faster build time when compared to the default implementation (the bigger the task graph to run, the more the performance improvements).\n\n{% callout type=\"warning\" title=\"Experimental feature\" %}\nExecuting tasks in batch mode is an experimental feature.\n{% /callout %}\n\n{% callout type=\"info\" title=\"Requirements\" %}\nBuilding a project with the `@nx/js:tsc` executor in batch mode requires all dependent projects to be buildable and built using the `@nx/js:tsc` executor.\n{% /callout %}\n\nTo run your builds using the batch implementation, pass in `--batch` flag:\n\n```shell\nnx build ts-lib --batch\n```\n\nFor optimal performance, you could set the `clean` option to `false`. Otherwise, the executor cleans the output folder before running the build, which results in the loss of the [`.tsbuildinfo` file](https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile) and, consequently, the loss of important optimizations performed by TypeScript. This is not a requirement. Even if the `clean` option is not set to `false` there are other important optimizations that are performed by the batch implementation.\n\n```json {% fileName=\"libs/ts-lib/project.json\" %}\n{\n \"build\": {\n \"executor\": \"@nx/js:tsc\",\n \"options\": {\n \"outputPath\": \"dist/libs/ts-lib\",\n \"main\": \"libs/ts-lib/src/index.ts\",\n \"tsConfig\": \"libs/ts-lib/tsconfig.lib.json\",\n \"assets\": [\"libs/ts-lib/*.md\"],\n \"clean\": false\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "description": "Build a project using TypeScript.", + "aliases": [], + "hidden": false, + "path": "/packages/js/src/executors/tsc/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/js/executors/verdaccio.json b/docs/generated/packages/js/executors/verdaccio.json new file mode 100644 index 0000000000000..324f3fd9602c9 --- /dev/null +++ b/docs/generated/packages/js/executors/verdaccio.json @@ -0,0 +1,45 @@ +{ + "name": "verdaccio", + "implementation": "/packages/js/src/executors/verdaccio/verdaccio.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "title": "Verdaccio Local Registry", + "description": "Start a local registry with Verdaccio.", + "cli": "nx", + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Location option for npm config", + "default": "user", + "enum": ["global", "user", "project", "none"] + }, + "storage": { + "type": "string", + "description": "Path to the custom storage directory for Verdaccio" + }, + "port": { + "type": "number", + "description": "Port of local registry that Verdaccio should listen to", + "default": 4873 + }, + "config": { + "type": "string", + "description": "Path to the custom Verdaccio config file" + }, + "clear": { + "type": "boolean", + "description": "Clear local registry storage before starting Verdaccio", + "default": true + } + }, + "required": ["port"], + "presets": [] + }, + "description": "Start local registry with verdaccio", + "aliases": [], + "hidden": false, + "path": "/packages/js/src/executors/verdaccio/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/js/generators/convert-to-swc.json b/docs/generated/packages/js/generators/convert-to-swc.json new file mode 100644 index 0000000000000..232a80e8524a3 --- /dev/null +++ b/docs/generated/packages/js/generators/convert-to-swc.json @@ -0,0 +1,42 @@ +{ + "name": "convert-to-swc", + "factory": "./src/generators/convert-to-swc/convert-to-swc#convertToSwcGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxTypescriptLibrary", + "cli": "nx", + "title": "Convert a TSC library to SWC", + "description": "Convert a TSC library to SWC.", + "type": "object", + "examples": [ + { + "command": "nx g swc mylib", + "description": "Convert `libs/myapp/mylib` to SWC." + } + ], + "properties": { + "project": { + "type": "string", + "description": "Library name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "^[a-zA-Z].*$" + }, + "targets": { + "type": "array", + "description": "List of targets to convert.", + "items": { "type": "string", "description": "Target to convert." }, + "default": ["build"] + } + }, + "required": ["project"], + "presets": [] + }, + "aliases": ["swc"], + "x-type": "library", + "description": "Convert a TypeScript library to compile with SWC.", + "implementation": "/packages/js/src/generators/convert-to-swc/convert-to-swc#convertToSwcGenerator.ts", + "hidden": false, + "path": "/packages/js/src/generators/convert-to-swc/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/js/generators/init.json b/docs/generated/packages/js/generators/init.json new file mode 100644 index 0000000000000..9e796004bd42c --- /dev/null +++ b/docs/generated/packages/js/generators/init.json @@ -0,0 +1,48 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#initGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxTypescriptInit", + "cli": "nx", + "title": "Init nx/js", + "description": "Init generator placeholder for nx/js.", + "properties": { + "js": { + "type": "boolean", + "default": false, + "description": "Use JavaScript instead of TypeScript" + }, + "skipFormat": { + "type": "boolean", + "aliases": ["skip-format"], + "description": "Skip formatting files.", + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "description": "Skip adding package.json dependencies", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "tsConfigName": { + "type": "string", + "description": "Customize the generated tsconfig file name.", + "x-priority": "internal" + } + }, + "presets": [] + }, + "aliases": ["lib"], + "x-type": "init", + "description": "Initialize a TS/JS workspace.", + "hidden": true, + "implementation": "/packages/js/src/generators/init/init#initGenerator.ts", + "path": "/packages/js/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/js/generators/library.json b/docs/generated/packages/js/generators/library.json new file mode 100644 index 0000000000000..779da183bc076 --- /dev/null +++ b/docs/generated/packages/js/generators/library.json @@ -0,0 +1,160 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxTypescriptLibrary", + "cli": "nx", + "title": "Create a TypeScript Library", + "description": "Create a TypeScript Library.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Library name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "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?" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting)." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "description": "Do not update tsconfig.json for development experience.", + "default": false, + "x-priority": "internal" + }, + "includeBabelRc": { + "type": "boolean", + "description": "Include a .babelrc configuration to compile TypeScript files" + }, + "testEnvironment": { + "type": "string", + "enum": ["jsdom", "node"], + "description": "The test environment to use if unitTestRunner is set to jest or vitest.", + "default": "node" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case file names.", + "alias": "P", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "default": true + }, + "publishable": { + "type": "boolean", + "default": false, + "description": "Configure the library ready for use with `nx release` (https://nx.dev/core-features/manage-releases).", + "x-priority": "important" + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like @myorg/my-awesome-lib. Required for publishable library.", + "x-priority": "important" + }, + "buildable": { + "type": "boolean", + "default": true, + "description": "Generate a buildable library.", + "x-deprecated": "Use the `bundler` option for greater control (swc, tsc, rollup, vite, esbuild, none)." + }, + "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 + }, + "config": { + "type": "string", + "enum": ["workspace", "project", "npm-scripts"], + "default": "project", + "description": "Determines whether the project's executors should be configured in `workspace.json`, `project.json` or as npm scripts.", + "x-priority": "internal" + }, + "compiler": { + "type": "string", + "enum": ["tsc", "swc"], + "default": "tsc", + "description": "The compiler used by the build and test targets", + "x-deprecated": "Use the `bundler` option for greater control (swc, tsc, rollup, vite, esbuild, none)." + }, + "bundler": { + "description": "The bundler to use. Choosing 'none' means this library is not buildable.", + "type": "string", + "enum": ["swc", "tsc", "rollup", "vite", "esbuild", "none"], + "default": "tsc", + "x-prompt": "Which bundler would you like to use to build the library? Choose 'none' to skip build setup.", + "x-priority": "important" + }, + "skipTypeCheck": { + "type": "boolean", + "description": "Whether to skip TypeScript type checking for SWC compiler.", + "default": false + }, + "minimal": { + "type": "boolean", + "description": "Generate a library with a minimal setup. No README.md generated.", + "default": false + }, + "simpleName": { + "description": "Don't include the directory in the generated file name.", + "type": "boolean", + "default": false + } + }, + "required": ["name"], + "examplesFile": "---\ntitle: JS library generator examples\ndescription: This page contains examples for the @nx/js:lib generator.\n---\n\nThe `@nx/js:lib` generator will generate a library for you, and it will configure it according to the options you provide.\n\n```bash\nnpx nx g @nx/js:lib mylib\n```\n\nBy default, the library that is generated when you use this executor without passing any options, like the example above, will be a buildable library, using the `@nx/js:tsc` executor as a builder.\n\nYou may configure the tools you want to use to build your library, or bundle it too, by passing the `--bundler` flag. The `--bundler` flag controls the compiler and/or the bundler that will be used to build your library. If you choose `tsc` or `swc`, the result will be a buildable library using either `tsc` or `swc` as the compiler. If you choose `rollup` or `vite`, the result will be a buildable library using `rollup` or `vite` as the bundler. In the case of `rollup`, it will default to the `tsc` compiler. If you choose `esbuild`, you may use the [`esbuildOptions` property](https://esbuild.github.io/api/) in your `project.json` under the `build` target options to specify whether you wish to bundle your library or not.\n\n## Examples\n\n{% tabs %}\n\n{% tab label=\"Buildable with default compiler (tsc)\" %}\n\nGenerate a buildable library using the `@nx/js:tsc` executor. This uses `tsc` as the compiler.\n\n```bash\nnpx nx g @nx/js:lib mylib\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable with SWC compiler\" %}\n\nGenerate a buildable library using [SWC](https://swc.rs) as the compiler. This will use the `@nx/js:swc` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=swc\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable with tsc\" %}\n\nGenerate a buildable library using tsc as the compiler. This will use the `@nx/js:tsc` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=tsc\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable, with Rollup as a bundler\" %}\n\nGenerate a buildable library using [Rollup](https://rollupjs.org) as the bundler. This will use the `@nx/rollup:rollup` executor. It will also use [SWC](https://swc.rs) as the compiler.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=rollup\n```\n\nIf you do not want to use `swc` as the compiler, and want to use the default `babel` compiler, you can do so in your `project.json` under the `build` target options, using the [`compiler` property](https://nx.dev/packages/rollup/executors/rollup#compiler):\n\n```jsonc {% fileName=\"libs/mylib/project.json\" %}\n\"build\": {\n \"executor\": \"@nx/rollup:rollup\",\n \"options\": {\n //...\n \"compiler\": \"babel\"\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Buildable, with Vite as a bundler\" %}\n\nGenerate a buildable library using [Vite](https://vitejs.dev/) as the bundler. This will use the `@nx/vite:build` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=vite\n```\n\n{% /tab %}\n\n{% tab label=\"Using ESBuild\" %}\n\nGenerate a buildable library using [ESBuild](https://esbuild.github.io/) as the bundler. This will use the `@nx/esbuild:esbuild` executor.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=esbuild\n```\n\nIf you want to specify whether you want to bundle your library or not, you can do so in your `project.json` under the `build` target options, using the [`esbuildOptions` property](https://esbuild.github.io/api/):\n\n```jsonc {% fileName=\"libs/mylib/project.json\" %}\n\"build\": {\n \"executor\": \"@nx/esbuild:esbuild\",\n \"options\": {\n //...\n \"esbuildOptions\": {\n \"bundle\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Minimal publishing target\" %}\n\nGenerate a **publishable** library with a minimal publishing target. The result will be a buildable library using the `@nx/js:tsc` executor, using `tsc` as the compiler. You can change the compiler or the bundler by passing the `--bundler` flag.\n\n```bash\nnpx nx g lib mylib --publishable\n```\n\n{% /tab %}\n\n{% tab label=\"Using directory flag\" %}\n\nGenerate a library named `mylib` and put it under a directory named `myapp` (`libs/myapp/mylib`)\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=myapp`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnpx nx g lib mylib --directory=libs/myapp/mylib\n```\n\n{% /tab %}\n\n{% tab label=\"Non-buildable library\" %}\n\nGenerate a non-buildable library.\n\n```bash\nnpx nx g @nx/js:lib mylib --bundler=none\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a library", + "implementation": "/packages/js/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/js/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/js/generators/release-version.json b/docs/generated/packages/js/generators/release-version.json new file mode 100644 index 0000000000000..f58617582f713 --- /dev/null +++ b/docs/generated/packages/js/generators/release-version.json @@ -0,0 +1,76 @@ +{ + "name": "release-version", + "factory": "./src/generators/release-version/release-version#releaseVersionGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxJSReleaseVersionGenerator", + "cli": "nx", + "title": "Implementation details of `nx release version`", + "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", + "type": "object", + "properties": { + "projects": { + "type": "array", + "description": "The ProjectGraphProjectNodes being versioned in the current execution.", + "items": { "type": "object" } + }, + "projectGraph": { + "type": "object", + "description": "ProjectGraph instance" + }, + "specifier": { + "type": "string", + "description": "Exact version or semver keyword to apply to the selected release group. Overrides specifierSource." + }, + "releaseGroup": { + "type": "object", + "description": "The resolved release group configuration, including name, relevant to all projects in the current execution." + }, + "specifierSource": { + "type": "string", + "default": "prompt", + "description": "Which approach to use to determine the semver specifier used to bump the version of the project.", + "enum": ["prompt", "conventional-commits"] + }, + "preid": { + "type": "string", + "description": "The optional prerelease identifier to apply to the version, in the case that specifier has been set to prerelease." + }, + "packageRoot": { + "type": "string", + "description": "The root directory of the directory (containing a manifest file at its root) to publish. Defaults to the project root" + }, + "currentVersionResolver": { + "type": "string", + "default": "disk", + "description": "Which approach to use to determine the current version of the project.", + "enum": ["registry", "disk", "git-tag"] + }, + "currentVersionResolverMetadata": { + "type": "object", + "description": "Additional metadata to pass to the current version resolver.", + "default": {} + }, + "skipLockFileUpdate": { + "type": "boolean", + "description": "Whether to skip updating the lock file after updating the version." + }, + "installArgs": { + "type": "string", + "description": "Additional arguments to pass to the package manager when updating the lock file with an install command." + }, + "installIgnoreScripts": { + "type": "boolean", + "description": "Whether to ignore install lifecycle scripts when updating the lock file with an install command." + } + }, + "required": ["projects", "projectGraph", "releaseGroup"], + "presets": [] + }, + "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.", + "hidden": true, + "implementation": "/packages/js/src/generators/release-version/release-version#releaseVersionGenerator.ts", + "aliases": [], + "path": "/packages/js/src/generators/release-version/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/js/generators/setup-build.json b/docs/generated/packages/js/generators/setup-build.json new file mode 100644 index 0000000000000..06209946b7517 --- /dev/null +++ b/docs/generated/packages/js/generators/setup-build.json @@ -0,0 +1,51 @@ +{ + "name": "setup-build", + "factory": "./src/generators/setup-build/generator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "SetupBuild", + "title": "Setup Build", + "description": "Sets up build target for a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "Project to add the build target to.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "Which project do you want to add build to?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "bundler": { + "description": "The bundler to use to build the project.", + "type": "string", + "enum": ["tsc", "swc", "rollup", "vite", "esbuild"], + "default": "tsc", + "x-prompt": "Which bundler would you like to use to build the project?", + "x-priority": "important" + }, + "main": { + "description": "The path to the main entry file, relative to workspace root. Defaults to /src/index.ts or /src/main.ts.", + "type": "string" + }, + "tsConfig": { + "description": "The path to the tsConfig file, relative to workspace root. Defaults to /tsconfig.lib.json or /tsconfig.app.json depending on project type.", + "type": "string" + }, + "buildTarget": { + "description": "The build target to add.", + "type": "string", + "default": "build" + } + }, + "required": ["project", "bundler"], + "presets": [] + }, + "alias": ["build"], + "description": "setup-build generator", + "implementation": "/packages/js/src/generators/setup-build/generator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/js/src/generators/setup-build/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/js/generators/setup-verdaccio.json b/docs/generated/packages/js/generators/setup-verdaccio.json new file mode 100644 index 0000000000000..7e66804e74074 --- /dev/null +++ b/docs/generated/packages/js/generators/setup-verdaccio.json @@ -0,0 +1,28 @@ +{ + "name": "setup-verdaccio", + "factory": "./src/generators/setup-verdaccio/generator#setupVerdaccio", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "SetupVerdaccio", + "title": "Setup Verdaccio", + "description": "Setup Verdaccio local-registry.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": [], + "presets": [] + }, + "alias": ["verdaccio"], + "description": "Setup Verdaccio for local package management.", + "implementation": "/packages/js/src/generators/setup-verdaccio/generator#setupVerdaccio.ts", + "aliases": [], + "hidden": false, + "path": "/packages/js/src/generators/setup-verdaccio/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/documents/overview.md b/docs/generated/packages/nest/documents/overview.md new file mode 100644 index 0000000000000..bcf3bef876b8d --- /dev/null +++ b/docs/generated/packages/nest/documents/overview.md @@ -0,0 +1,169 @@ +Nest.js is a framework designed for building scalable server-side applications. In many ways, Nest is familiar to Angular developers: + +- It has excellent TypeScript support. +- Its dependency injection system is similar to the one in Angular. +- It emphasises testability. +- Its configuration APIs are similar to Angular as well. + +Many conventions and best practices used in Angular applications can be also be used in Nest. + +## Setting Up @nx/nest + +### Generating a new workspace + +To create a new workspace with Nest, run the following command: + +```shell +npx create-nx-workspace my-workspace --preset=nest +``` + +Yarn users can use the following command instead: + +```shell +yarn create nx-workspace my-workspace --preset=nest +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/nest` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/nest` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/nest +``` + +This will install the correct version of `@nx/nest`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/nest` package with your package manager. + +```shell +npm add -D @nx/nest +``` + +{% /tab %} +{% /tabs %} + +### Create Applications + +You can add a new Nest application with the following command: + +```shell +nx g @nx/nest:app my-nest-app +``` + +#### Application Proxies + +Generating Nest applications has an option to configure other projects in the workspace to proxy API requests. This can be done by passing the `--frontendProject` with the project name you wish to enable proxy support for. + +```shell +nx g @nx/nest:app my-nest-app --frontendProject my-angular-app +``` + +### Create Libraries + +You can add a new Nest library with the following command: + +```shell +nx g @nx/nest:lib my-nest-lib +``` + +To make the library `buildable`, use the following command: + +```shell +nx g @nx/nest:lib my-nest-lib --buildable +``` + +To make the library `publishable`, use the following command: + +```shell +nx g @nx/nest:lib my-nest-lib --publishable --importPath=@my-workspace/my-nest-lib +``` + +> Read more about [building and publishing libraries here](/concepts/more-concepts/buildable-and-publishable-libraries). + +### Nest Generators + +The Nest plugin for Nx extends the generators provided by Nest. Any commands that can be used with the Nest CLI can also be used with the `nx` command. The `--project` flag should be used for all Nest generators. + +> `--project` is used to infer the root of the project where the generators will generate the files. + +## Using Nest + +### Build + +You can build an application with the following command: + +```shell +nx build my-nest-app +``` + +This applies to `buildable` libraries as well + +```shell +nx build my-nest-lib +``` + +#### Waiting for other builds + +Setting the `waitUntilTargets` option with an array of projects (with the following format: `"project:target"`) will execute those commands before serving the Nest application. + +### Serve + +You can serve an application with the following command: + +```shell +nx serve my-nest-app +``` + +The `serve` command runs the `build` target, and executes the application. + +By default, the serve command will run in `watch` mode. This allows code to be changed, and the Nest application to be rebuilt automatically. + +#### Debugging + +Nest applications also have the `inspect` flag set, so you can attach your debugger to the running instance. + +Debugging is set to use a random port that is available on the system. The port can be changed by setting the port option in the `serve` target in the `project.json`. Or by running the serve command with `--port `. + +For additional information on how to debug Node applications, see the [Node.js debugging getting started guide](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients). + +### Lint + +You can lint an application with the following command: + +```shell +nx lint my-nest-app +``` + +You can lint a library with the following command: + +```shell +nx lint my-nest-lib +``` + +### Unit Test + +You can run unit test for an application with the following command: + +```shell +nx test my-nest-app +``` + +You can run unit test for a library with the following command: + +```shell +nx test my-nest-lib +``` + +## More Documentation + +- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/nest/generators/application.json b/docs/generated/packages/nest/generators/application.json new file mode 100644 index 0000000000000..304141f665d42 --- /dev/null +++ b/docs/generated/packages/nest/generators/application.json @@ -0,0 +1,95 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestApplicationGenerator", + "title": "Nx Application Options Schema", + "description": "Nx Application Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the node application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for end to end (e2e) tests", + "default": "jest" + }, + "tags": { + "description": "Add tags to the application (used for linting).", + "type": "string" + }, + "frontendProject": { + "description": "Frontend project that needs to access this application. This sets up proxy configuration.", + "type": "string", + "x-priority": "important" + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "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 + }, + "strict": { + "type": "boolean", + "description": "Adds strictNullChecks, noImplicitAny, strictBindCallApply, forceConsistentCasingInFileNames and noFallthroughCasesInSwitch to tsconfig.", + "default": false + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create a NestJS application.", + "implementation": "/packages/nest/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/nest/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/class.json b/docs/generated/packages/nest/generators/class.json new file mode 100644 index 0000000000000..54794b04e55a0 --- /dev/null +++ b/docs/generated/packages/nest/generators/class.json @@ -0,0 +1,69 @@ +{ + "name": "class", + "factory": "./src/generators/class/class#classGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestClassGenerator", + "title": "Nest Class Options Schema", + "description": "Nest Class Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the class.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest class language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `class` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/class/class#classGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/class/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/controller.json b/docs/generated/packages/nest/generators/controller.json new file mode 100644 index 0000000000000..2f2de5ae7f8fe --- /dev/null +++ b/docs/generated/packages/nest/generators/controller.json @@ -0,0 +1,78 @@ +{ + "name": "controller", + "factory": "./src/generators/controller/controller#controllerGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestControllerGenerator", + "title": "Nest Controller Options Schema", + "description": "Nest Controller Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the controller.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": false + }, + "language": { + "description": "Nest controller language.", + "type": "string", + "enum": ["js", "ts"] + }, + "skipImport": { + "description": "Flag to skip the module import.", + "type": "boolean", + "default": false + }, + "module": { + "description": "Allows specification of the declaring module.", + "type": "string" + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `controller` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/controller/controller#controllerGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/controller/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/decorator.json b/docs/generated/packages/nest/generators/decorator.json new file mode 100644 index 0000000000000..2b8a41af5421c --- /dev/null +++ b/docs/generated/packages/nest/generators/decorator.json @@ -0,0 +1,63 @@ +{ + "name": "decorator", + "factory": "./src/generators/decorator/decorator#decoratorGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestDecoratorGenerator", + "title": "Nest Decorator Options Schema", + "description": "Nest Decorator Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the decorator.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest decorator language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `decorator` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/decorator/decorator#decoratorGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/decorator/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/filter.json b/docs/generated/packages/nest/generators/filter.json new file mode 100644 index 0000000000000..cd4bb4d3fc52e --- /dev/null +++ b/docs/generated/packages/nest/generators/filter.json @@ -0,0 +1,69 @@ +{ + "name": "filter", + "factory": "./src/generators/filter/filter#filterGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestFilterGenerator", + "title": "Nest Filter Options Schema", + "description": "Nest Filter Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the filter.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest filter language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `filter` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/filter/filter#filterGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/filter/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/gateway.json b/docs/generated/packages/nest/generators/gateway.json new file mode 100644 index 0000000000000..2bfc26fb702aa --- /dev/null +++ b/docs/generated/packages/nest/generators/gateway.json @@ -0,0 +1,69 @@ +{ + "name": "gateway", + "factory": "./src/generators/gateway/gateway#gatewayGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestGatewayGenerator", + "title": "Nest Gateway Options Schema", + "description": "Nest Gateway Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the gateway.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest gateway language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `gateway` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/gateway/gateway#gatewayGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/gateway/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/guard.json b/docs/generated/packages/nest/generators/guard.json new file mode 100644 index 0000000000000..de1b34351e3bd --- /dev/null +++ b/docs/generated/packages/nest/generators/guard.json @@ -0,0 +1,69 @@ +{ + "name": "guard", + "factory": "./src/generators/guard/guard#guardGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestGuardGenerator", + "title": "Nest Guard Options Schema", + "description": "Nest Guard Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the guard.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest guard language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `guard` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/guard/guard#guardGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/guard/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/init.json b/docs/generated/packages/nest/generators/init.json new file mode 100644 index 0000000000000..7add673fa13e0 --- /dev/null +++ b/docs/generated/packages/nest/generators/init.json @@ -0,0 +1,39 @@ +{ + "name": "init", + "factory": "./src/generators/init/init", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestInitGenerator", + "title": "Init Nest Plugin", + "description": "Init Nest Plugin.", + "cli": "nx", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/nest` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/nest/src/generators/init/init.ts", + "path": "/packages/nest/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/interceptor.json b/docs/generated/packages/nest/generators/interceptor.json new file mode 100644 index 0000000000000..7c1283c450442 --- /dev/null +++ b/docs/generated/packages/nest/generators/interceptor.json @@ -0,0 +1,69 @@ +{ + "name": "interceptor", + "factory": "./src/generators/interceptor/interceptor#interceptorGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestInterceptorGenerator", + "title": "Nest Interceptor Options Schema", + "description": "Nest Interceptor Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the interceptor.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest interceptor language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `interceptor` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/interceptor/interceptor#interceptorGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/interceptor/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/interface.json b/docs/generated/packages/nest/generators/interface.json new file mode 100644 index 0000000000000..77ff955953ae6 --- /dev/null +++ b/docs/generated/packages/nest/generators/interface.json @@ -0,0 +1,58 @@ +{ + "name": "interface", + "factory": "./src/generators/interface/interface#interfaceGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestInterfaceGenerator", + "title": "Nest Interface Options Schema", + "description": "Nest Interface Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the interface.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `interface` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/interface/interface#interfaceGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/interface/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/library.json b/docs/generated/packages/nest/generators/library.json new file mode 100644 index 0000000000000..6fcfb0e1c44de --- /dev/null +++ b/docs/generated/packages/nest/generators/library.json @@ -0,0 +1,156 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestLibraryGenerator", + "title": "Create a NestJS Library for Nx", + "description": "Create a NestJS Library for Nx.", + "cli": "nx", + "type": "object", + "examples": [ + { + "command": "nx g lib mylib --directory=myapp", + "description": "Generate libs/myapp/mylib" + } + ], + "properties": { + "name": { + "description": "Library name.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "description": "A directory where the library is placed.", + "type": "string", + "alias": "dir" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "tags": { + "description": "Add tags to the library (used for linting).", + "type": "string", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "description": "Do not update tsconfig.base.json for development experience.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "publishable": { + "description": "Create a publishable library.", + "type": "boolean", + "x-priority": "important" + }, + "buildable": { + "description": "Generate a buildable library.", + "type": "boolean", + "default": false, + "x-priority": "important" + }, + "importPath": { + "description": "The library name used to import it, like @myorg/my-awesome-lib. Must be a valid npm name.", + "type": "string" + }, + "global": { + "description": "Add the Global decorator to the generated module.", + "type": "boolean", + "default": false + }, + "service": { + "description": "Include a service with the library.", + "type": "boolean", + "default": false + }, + "controller": { + "description": "Include a controller with the library.", + "type": "boolean", + "default": false + }, + "testEnvironment": { + "description": "The test environment for jest, for node applications this should stay as node unless doing DOM testing.", + "type": "string", + "enum": ["jsdom", "node"], + "default": "node" + }, + "target": { + "description": "The ES target, Nest suggest using es2021 or higher.", + "type": "string", + "default": "es2021", + "enum": [ + "es5", + "es6", + "esnext", + "es2015", + "es2016", + "es2017", + "es2018", + "es2019", + "es2020", + "es2021" + ] + }, + "strict": { + "description": "Whether to enable tsconfig strict mode or not.", + "type": "boolean", + "default": true + }, + "standaloneConfig": { + "description": "Split the project configuration into /project.json rather than including it inside workspace.json", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "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 + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "simpleName": { + "description": "Don't include the directory in the name of the module of the library.", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a new NestJS library.", + "implementation": "/packages/nest/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/nest/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/middleware.json b/docs/generated/packages/nest/generators/middleware.json new file mode 100644 index 0000000000000..62cd735ec5851 --- /dev/null +++ b/docs/generated/packages/nest/generators/middleware.json @@ -0,0 +1,69 @@ +{ + "name": "middleware", + "factory": "./src/generators/middleware/middleware#middlewareGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestMiddlewareGenerator", + "title": "Nest Middleware Options Schema", + "description": "Nest Middleware Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the middleware.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest middleware language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `middleware` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/middleware/middleware#middlewareGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/middleware/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/module.json b/docs/generated/packages/nest/generators/module.json new file mode 100644 index 0000000000000..058349d4878c7 --- /dev/null +++ b/docs/generated/packages/nest/generators/module.json @@ -0,0 +1,73 @@ +{ + "name": "module", + "factory": "./src/generators/module/module#moduleGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestModuleGenerator", + "title": "Nest Module Options Schema", + "description": "Nest Module Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the module.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": false + }, + "language": { + "description": "Nest module language.", + "type": "string", + "enum": ["js", "ts"] + }, + "module": { + "description": "The path to import the module.", + "type": "string", + "format": "path" + }, + "skipImport": { + "description": "Flag to skip the module import.", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `module` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/module/module#moduleGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/module/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/pipe.json b/docs/generated/packages/nest/generators/pipe.json new file mode 100644 index 0000000000000..985d377cd9310 --- /dev/null +++ b/docs/generated/packages/nest/generators/pipe.json @@ -0,0 +1,69 @@ +{ + "name": "pipe", + "factory": "./src/generators/pipe/pipe#pipeGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestPipeGenerator", + "title": "Nest Pipe Options Schema", + "description": "Nest Pipe Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the pipe.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest pipe language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `pipe` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/pipe/pipe#pipeGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/pipe/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/provider.json b/docs/generated/packages/nest/generators/provider.json new file mode 100644 index 0000000000000..7d7f7e17e9119 --- /dev/null +++ b/docs/generated/packages/nest/generators/provider.json @@ -0,0 +1,69 @@ +{ + "name": "provider", + "factory": "./src/generators/provider/provider#providerGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestProviderGenerator", + "title": "Nest Provider Options Schema", + "description": "Nest Provider Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the provider.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": true + }, + "language": { + "description": "Nest provider language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `provider` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/provider/provider#providerGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/provider/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/resolver.json b/docs/generated/packages/nest/generators/resolver.json new file mode 100644 index 0000000000000..6b534e100f40e --- /dev/null +++ b/docs/generated/packages/nest/generators/resolver.json @@ -0,0 +1,64 @@ +{ + "name": "resolver", + "factory": "./src/generators/resolver/resolver#resolverGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestResolverGenerator", + "title": "Nest Resolver Options Schema", + "description": "Nest Resolver Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the resolver.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": false + }, + "language": { + "description": "Nest resolver language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `resolver` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/resolver/resolver#resolverGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/resolver/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/resource.json b/docs/generated/packages/nest/generators/resource.json new file mode 100644 index 0000000000000..c41094f06eedc --- /dev/null +++ b/docs/generated/packages/nest/generators/resource.json @@ -0,0 +1,104 @@ +{ + "name": "resource", + "factory": "./src/generators/resource/resource#resourceGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestResourceGenerator", + "title": "Nest Resource Options Schema", + "description": "Nest Resource Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for this resource (plural, e.g., `users`)?" + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": false + }, + "language": { + "description": "Nest class language.", + "type": "string", + "enum": ["js", "ts"] + }, + "type": { + "type": "string", + "description": "The transport layer.", + "default": "rest", + "enum": [ + "rest", + "graphql-code-first", + "graphql-schema-first", + "microservice", + "ws" + ], + "x-prompt": { + "message": "What transport layer do you use?", + "type": "list", + "items": [ + { "value": "rest", "label": "REST API" }, + { "value": "graphql-code-first", "label": "GraphQL (code first)" }, + { + "value": "graphql-schema-first", + "label": "GraphQL (schema first)" + }, + { "value": "microservice", "label": "Microservice (non-HTTP)" }, + { "value": "ws", "label": "WebSockets" } + ] + } + }, + "skipImport": { + "type": "boolean", + "description": "Flag to skip the module import.", + "default": false + }, + "crud": { + "type": "boolean", + "description": "When true, CRUD entry points are generated.", + "default": true, + "x-prompt": { + "message": "Would you like to generate CRUD entry points?", + "type": "confirmation" + } + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `resource` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/resource/resource#resourceGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/resource/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nest/generators/service.json b/docs/generated/packages/nest/generators/service.json new file mode 100644 index 0000000000000..7a9152fb5cd40 --- /dev/null +++ b/docs/generated/packages/nest/generators/service.json @@ -0,0 +1,69 @@ +{ + "name": "service", + "factory": "./src/generators/service/service#serviceGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNestServiceGenerator", + "title": "Nest Service Options Schema", + "description": "Nest Service Options Schema.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "description": "The name of the service.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use?" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "description": "The Nest project to target.", + "type": "string", + "$default": { "$source": "projectName" }, + "alias": "p", + "x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. it will be removed in nx v19." + }, + "directory": { + "description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.", + "type": "string", + "aliases": ["dir", "path"] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "description": "Test runner to use for unit tests.", + "type": "string", + "enum": ["jest", "none"], + "default": "jest" + }, + "flat": { + "description": "Flag to indicate if a directory is created.", + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.", + "type": "boolean", + "default": false + }, + "language": { + "description": "Nest service language.", + "type": "string", + "enum": ["js", "ts"] + } + }, + "additionalProperties": false, + "required": ["name"], + "presets": [] + }, + "description": "Run the `service` NestJS generator with Nx project support.", + "implementation": "/packages/nest/src/generators/service/service#serviceGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nest/src/generators/service/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/documents/overview.md b/docs/generated/packages/next/documents/overview.md new file mode 100644 index 0000000000000..085fccc987b99 --- /dev/null +++ b/docs/generated/packages/next/documents/overview.md @@ -0,0 +1,307 @@ +--- +title: Overview of the Nx Next.js Plugin +description: The Nx Next.js plugin contains executors and generators for managing Next.js applications and libraries within an Nx workspace. This page also explains how to configure Next.js on your Nx workspace. +--- + +When using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work. + +The Next.js plugin contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides: + +- Scaffolding for creating, building, serving, linting, and testing Next.js applications. +- Integration with building, serving, and exporting a Next.js application. +- Integration with React libraries within the workspace. + +## Setting up @nx/next + +To create a new Nx workspace with Next.js, run: + +```shell +npx create-nx-workspace@latest --preset=next +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/next` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any workspace, you can install `@nx/next` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/next +``` + +This will install the correct version of `@nx/next`. + +### How @nx/next Infers Tasks + +The `@nx/next` plugin will create tasks for any project that has a Next.js configuration file preset. Any of the following files will be recognized as a Next.js configuration file: + +- `next.config.js` +- `next.config.cjs` +- `next.config.mjs` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project --web` in your command line. + +### @nx/next Configuration + +The `@nx/next/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/next/plugin", + "options": { + "buildTargetName": "build", + "devTargetName": "dev", + "startTargetName": "start", + "serveStaticTargetName": "serve-static" + } + } + ] +} +``` + +- The `buildTargetName` option controls the name of Next.js' compilation task which compiles the application for production deployment. The default name is `build`. +- The `devTargetName` option controls the name of Next.js' development serve task which starts the application in development mode. The default name is `dev`. +- The `startTargetName` option controls the name of Next.js' production serve task which starts the application in production mode. The default name is `start`. +- The `serveStaticTargetName` option controls the name of Next.js' static export task which exports the application to static HTML files. The default name is `serve-static`. + +{% /tab %} + +{% tab label="Nx < 18" %} + +Install the `@nx/next` package with your package manager. + +```shell +npm add -D @nx/next +``` + +{% /tab %} +{% /tabs %} + +## Using @nx/next + +### Creating Applications + +You can add a new application with the following: + +```shell +nx g @nx/next:app my-new-app +``` + +### Generating Libraries + +Nx allows you to create libraries with just one command. Some reasons you might want to create a library include: + +- Share code between applications +- Publish a package to be used outside the monorepo +- Better visualize the architecture using `nx graph` + +For more information on Nx libraries, see our documentation on [Creating Libraries](/concepts/more-concepts/creating-libraries) +and [Library Types](/concepts/more-concepts/library-types). + +To generate a new library run: + +```shell +nx g @nx/next:lib my-new-lib +``` + +### Generating Pages and Components + +Nx also provides commands to quickly generate new pages and components for your application. + +```shell +nx g @nx/next:page my-new-page --project=my-new-app + +nx g @nx/next:component my-new-component --project=my-new-app +``` + +Above commands will add a new page `my-new-page` and a component `my-new-component` to `my-new-app` project respectively. + +Nx generates components with tests by default. For pages, you can pass the `--withTests` option to generate tests under the `specs` folder. + +## Using Next.js + +### Serving Next.js Applications + +{% tabs %} + +{% tab label="Nx 18+" %} + +You can serve a Next.js application `my-new-app` for development: + +```shell +nx dev my-new-app +``` + +To serve a Next.js application for production: + +```shell +nx start my-new-app +``` + +This will start the server at by default. + +{% /tab %} +{% tab label="Nx < 18" %} + +You can run `nx serve my-new-app` to serve a Next.js application called `my-new-app` for development. This will start the dev server at . + +To serve a Next.js application for production, add the `--prod` flag to the serve command: + +```shell +nx serve my-new-app --prod +``` + +{% /tab %} +{% /tabs %} + +### Using an Nx Library in your Application + +You can import a library called `my-new-lib` in your application as follows. + +```typescript jsx {% fileName="apps/my-next-app/pages/index.tsx" %} +import { MyNewLib } from '@/my-new-lib'; + +export function Index() { + return ( + +

The main content

+
+ ); +} + +export default Index; +``` + +There is no need to build the library prior to using it. When you update your library, the Next.js application will automatically pick up the changes. + +### Publishable libraries + +For libraries intended to be built and published to a registry (e.g. npm) you can use the `--publishable` and `--importPath` options. + +```shell +nx g @nx/next:lib my-new-lib --publishable --importPath=@happynrwl/ui-components +``` + +### Testing Projects + +You can run unit tests with: + +```shell +nx test my-new-app +nx test my-new-lib +``` + +Replace `my-new-app` and `my-new-lib` with the name or the project you want to test. This command works for both applications and libraries. + +You can also run E2E tests for applications: + +```shell +nx e2e my-new-app-e2e +``` + +Replace `my-new-app-e2e` with the name or your project with -e2e appended. + +### Linting Projects + +You can lint projects with: + +```shell +nx lint my-new-app +nx lint my-new-lib +``` + +Replace `my-new-app` and `my-new-lib` with the name or the project you want to test. This command works for both applications and libraries. + +### Building Projects + +Next.js applications can be build with: + +```shell +nx build my-new-app +``` + +And if you generated a library with --buildable, then you can build a library as well: + +```shell +nx build my-new-lib +``` + +After running a build, the output will be in the `dist` folder. You can customize the output folder by setting `outputPath` in the project's `project.json` file. + +The library in `dist` is publishable to npm or a private registry. + +### Static HTML Export + +Next.js applications can be statically exported by changing the output inside your Next.js configuration file. + +```js {% fileName="apps/my-next-app/next.config.js" %} +const nextConfig = { + output: 'export', + nx: { + svgr: false, + }, + output: 'export', +}; +``` + +After setting the output to `export`, you can run the `build` command to generate the static HTML files. + +```shell +nx build my-next-app +``` + +You can then check your project folder for the `out` folder which contains the static HTML files. + +```shell +├── index.d.ts +├── jest.config.ts +├── next-env.d.ts +├── next.config.js +├── out +├── project.json +├── public +├── specs +├── src +├── tsconfig.json +└── tsconfig.spec.json +``` + +#### E2E testing + +You can perform end-to-end (E2E) testing on static HTML files using a test runner like Cypress. When you create a Next.js application, Nx automatically creates a `serve-static` target. This target is designed to serve the static HTML files produced by the build command. + +This feature is particularly useful for testing in continuous integration (CI) pipelines, where resources may be constrained. Unlike the `dev` and `start` targets, `serve-static` does not require a Next.js server to operate, making it more efficient and faster by eliminating background processes, such as file change monitoring. + +To utilize the `serve-static` target for testing, run the following command: + +```shell +nx serve-static my-next-app-e2e +``` + +This command performs several actions: + +1. It will build the Next.js application and generate the static HTML files. +2. It will serve the static HTML files using a simple HTTP server. +3. It will run the Cypress tests against the served static HTML files. + +### Deploying Next.js Applications + +Once you are ready to deploy your Next.js application, you have absolute freedom to choose any hosting provider that fits your needs. + +You may know that the company behind Next.js, Vercel, has a great hosting platform offering that is developed in tandem with Next.js itself to offer a great overall developer and user experience. We have detailed [how to deploy your Next.js application to Vercel in a separate guide](/recipes/react/deploy-nextjs-to-vercel). + +## More Documentation + +Here are other resources that you may find useful to learn more about Next.js and Nx. + +- **Blog post:** [Building a blog with Next.js and Nx Series](https://blog.nrwl.io/create-a-next-js-web-app-with-nx-bcf2ab54613) by Juri Strumpflohner +- **Video tutorial:** [Typescript NX Monorepo with NextJS and Express](https://www.youtube.com/watch?v=WOfL5q2HznI) by Jack Herrington diff --git a/docs/generated/packages/next/executors/build.json b/docs/generated/packages/next/executors/build.json new file mode 100644 index 0000000000000..81911e84a576b --- /dev/null +++ b/docs/generated/packages/next/executors/build.json @@ -0,0 +1,86 @@ +{ + "name": "build", + "implementation": "/packages/next/src/executors/build/build.impl.ts", + "schema": { + "version": 2, + "outputCapture": "pipe", + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "title": "Next Build", + "description": "Build a Next.js app.", + "type": "object", + "properties": { + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "fileReplacements": { + "description": "Replace files with other files in the build.", + "type": "array", + "items": { + "type": "object", + "properties": { + "replace": { + "type": "string", + "description": "The file to be replaced.", + "x-completion-type": "file" + }, + "with": { + "type": "string", + "description": "The file to replace with.", + "x-completion-type": "file" + } + }, + "additionalProperties": false, + "required": ["replace", "with"] + }, + "default": [] + }, + "nextConfig": { + "description": "Path (relative to workspace root) to a function which takes phase, config, and builder options, and returns the resulting config. This is an advanced option and should not be used with a normal Next.js config file (i.e. `next.config.js`).", + "type": "string", + "x-completion-type": "file", + "x-completion-glob": "next?(*).js", + "x-priority": "important" + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + }, + "includeDevDependenciesInPackageJson": { + "type": "boolean", + "description": "Include `devDependencies` in the generated package.json file. By default only production `dependencies` are included.", + "default": false + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" + }, + "debug": { + "type": "boolean", + "description": "Enable Next.js debug build logging" + }, + "profile": { + "type": "boolean", + "description": "Used to enable React Production Profiling" + }, + "experimentalAppOnly": { + "type": "boolean", + "description": "Only build 'app' routes" + } + }, + "required": ["outputPath"], + "examplesFile": "---\ntitle: Next.js builder executor examples\ndescription: This page contains examples for the @nx/next:build executor.\n---\n\n`project.json`:\n\n```json\n//...\n{\n \"name\": \"acme\",\n \"$schema\": \"node_modules/nx/schemas/project-schema.json\",\n \"sourceRoot\": \".\",\n \"projectType\": \"application\",\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n }\n }\n //...\n }\n}\n```\n\n```bash\nnx run acme:build\n```\n\n## Examples\n\n### For Next.js Standalone projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Next.js standalone projects. Our `@nx/next:build` executor is integrated to use Next.js' CLI. You can read more about the build options at [Next.js CLI Options](https://nextjs.org/docs/app/api-reference/next-cli)\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\"\n },\n \"production\": {}\n }\n },\n```\n\n{% /tab %}\n{% tab label=\"Enable debug\" %}\n\nYou can create a debug build for more verbose output by:\n\nUsing the `--debug` flag\n\n```shell\nnx run acme:build:development --debug\n```\n\nUpdating the build options to include `debug`.\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\",\n \"debug\": true\n },\n \"production\": {}\n }\n },\n```\n\n```bash\nnx run acme:build:development\n```\n\n{% /tab %}\n\n{% tab label=\"Adding profiling\" %}\n\nYou can enable profiing for React by\n\nUsing the `--profile` flag\n\n```shell\nnx run acme:build:production --profile\n```\n\nUpdating the build options to include `profile`.\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\",\n },\n \"production\": {\n \"profile\": true\n }\n }\n },\n```\n\n```shell\nnx run acme:build:production\n```\n\n{% /tab %}\n\n{% tab label=\"Enable experimental app only\" %}\n\nSince Next.js 13 the `app/` directory it is reserved.\nYou can enable to build only `app/` routes by\n\nUsing the `--experimentalAppOnly` flag\n\n```shell\nnx run acme:build:production --experimentalAppOnly\n```\n\nUpdating the build options to include `experimentalAppOnly`.\n\n```json\n \"build\": {\n \"executor\": \"@nx/next:build\",\n \"outputs\": [\"{options.outputPath}\"],\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"outputPath\": \"dist/acme\"\n },\n \"configurations\": {\n \"development\": {\n \"outputPath\": \".\",\n \"experimentalAppOnly\": true\n },\n \"production\": {}\n }\n },\n```\n\n```shell\nnx run acme:build:production\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Build a Next.js application.", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/executors/build/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/next/executors/export.json b/docs/generated/packages/next/executors/export.json new file mode 100644 index 0000000000000..b824d665baf69 --- /dev/null +++ b/docs/generated/packages/next/executors/export.json @@ -0,0 +1,41 @@ +{ + "name": "export", + "implementation": "/packages/next/src/executors/export/export.impl.ts", + "schema": { + "version": 2, + "outputCapture": "pipe", + "cli": "nx", + "title": "Next Export", + "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", + "type": "object", + "properties": { + "buildTarget": { + "type": "string", + "description": "Target which builds the application", + "x-priority": "important" + }, + "silent": { + "type": "boolean", + "description": "Hide progress or not (default is `false`)", + "default": false + }, + "threads": { + "type": "number", + "description": "Number of worker threads to utilize (defaults to the number of CPUs)" + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + } + }, + "required": [], + "presets": [] + }, + "description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.", + "x-deprecated": "Use static exports in next.config.js instead. See: https://nextjs.org/docs/pages/building-your-application/deploying/static-exports.", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/executors/export/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/next/executors/server.json b/docs/generated/packages/next/executors/server.json new file mode 100644 index 0000000000000..6d932d1c0ada3 --- /dev/null +++ b/docs/generated/packages/next/executors/server.json @@ -0,0 +1,73 @@ +{ + "name": "server", + "implementation": "/packages/next/src/executors/server/server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "pipe", + "cli": "nx", + "title": "Next Serve", + "description": "Serve a Next.js app.", + "type": "object", + "properties": { + "dev": { + "type": "boolean", + "description": "Serve the application in the dev mode.", + "default": true + }, + "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" + }, + "staticMarkup": { + "type": "boolean", + "description": "Static markup.", + "default": false + }, + "quiet": { + "type": "boolean", + "description": "Hide error messages containing server information.", + "default": false + }, + "customServerTarget": { + "type": "string", + "description": "Target which builds the custom server." + }, + "hostname": { + "type": "string", + "description": "Hostname on which the application is served." + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + }, + "keepAliveTimeout": { + "type": "number", + "description": "Max milliseconds to wait before closing inactive connection." + }, + "turbo": { + "type": "boolean", + "description": "Activate the incremental bundler for Next.js, which is implemented in Rust. Please note, this feature is exclusively available in development mode." + }, + "experimentalHttps": { + "type": "boolean", + "description": "Enable HTTPS support for the Next.js development server." + } + }, + "required": ["buildTarget"], + "examplesFile": "---\ntitle: Next.js server executor examples\ndescription: This page contains examples for the @nx/next:serve executor.\n---\n\n`project.json`:\n\n```json\n//...\n{\n \"name\": \"acme\",\n \"$schema\": \"node_modules/nx/schemas/project-schema.json\",\n \"sourceRoot\": \".\",\n \"projectType\": \"application\",\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"production\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n }\n }\n //...\n }\n}\n```\n\n```bash\nnx run acme:serve\n```\n\n## Examples\n\n### For Next.js Standalone projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Next.js standalone projects. Our `@nx/next:server` executor is integrated to use Next.js' CLI. You can read more about the serve options at [Next.js CLI Options](https://nextjs.org/docs/app/api-reference/next-cli)\n\n```json\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n },\n \"configurations\": {\n \"development\": {\n \"buildTarget\": \"acme:build:development\",\n \"dev\": true\n },\n \"production\": {\n \"buildTarget\": \"acme:build:production\",\n \"dev\": false\n }\n }\n },\n```\n\n{% /tab %}\n{% tab label=\"Enable turbo\" %}\n\nTurbopack (beta) is a cutting-edge bundler designed for JavaScript and TypeScript. To read more about support features see [Next.js Turbopack Doucmentation](https://turbo.build/pack/docs/features)\n\nIn the context of Nx, you can utilize Turbopack within both the `pages` and `app` directories of Next.js to enhance local development speed. To activate Turbopack, simply:\n\nAppend the `--turbo` flag while executing the Nx development server.\n\n```shell\nnx run acme:serve --turbo\n```\n\nUpdating the build options to include `turbo`.\n\n```json\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n },\n \"configurations\": {\n \"development\": {\n \"buildTarget\": \"acme:build:development\",\n \"dev\": true,\n \"turbo\": true\n },\n //\n }\n }\n```\n\n```bash\nnx run acme:serve\n```\n\n{% /tab %}\n\n{% tab label=\"Adding keep alive timeout\" %}\n\nWhen using Nx with Next.js behind a downstream proxy, it's important to make sure that the `keep-alive timeouts` of Next.js' HTTP server are set to longer durations than the timeouts of the proxy. If you don't do this, Node.js will unexpectedly end TCP connections without notifying the proxy when the `keep-alive timeout` is reached. This can lead to a proxy error when the proxy tries to reuse a connection that Node.js has already terminated.\n\nTo configure timeout values (in milliseconds) you can:\n\nPass `--keepAliveTimeout`\n\n```shell\nnx run acme:serve --keepAliveTimeout 60000\n```\n\nUpdating the serve options to include `keepAliveTimeout`.\n\n```json\n \"serve\": {\n \"executor\": \"@nx/next:server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"acme:build\",\n \"dev\": true\n },\n \"configurations\": {\n \"development\": {\n \"buildTarget\": \"acme:build:development\",\n \"dev\": true,\n \"keepAliveTimeout\": 60000\n },\n //\n }\n }\n```\n\n```shell\nnx run acme:serve\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Serve a Next.js application.", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/executors/server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/next/generators/application.json b/docs/generated/packages/next/generators/application.json new file mode 100644 index 0000000000000..56a27c427b5c5 --- /dev/null +++ b/docs/generated/packages/next/generators/application.json @@ -0,0 +1,152 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNextApp", + "title": "Create a Next.js Application for Nx", + "description": "Create a Next.js Application for Nx.", + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$", + "x-priority": "important" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "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 + }, + "swc": { + "description": "Enable the Rust-based compiler SWC to compile JS/TS files.", + "type": "boolean", + "default": true + }, + "customServer": { + "description": "Use a custom Express server for the Next.js application.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "appDir": { + "type": "boolean", + "default": true, + "description": "Enable the App Router for this project.", + "x-prompt": "Would you like to use the App Router (recommended)?" + }, + "src": { + "type": "boolean", + "default": true, + "description": "Generate a `src` directory for the project.", + "x-prompt": "Would you like to use `src/` directory?" + }, + "rootProject": { + "description": "Create an application at the root of the workspace.", + "type": "boolean", + "default": false, + "hidden": true, + "x-priority": "internal" + } + }, + "required": [], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create app in a directory\" %}\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=nested`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g app myapp --directory=apps/nested/myapp\n```\n\n{% /tab %}\n{% tab label=\"Use a custom Express server\" %}\n\n```shell\nnx g app myapp --custom-server\n```\n\n{% /tab %}\n{% tab label=\"Use plain JavaScript (not TypeScript)\" %}\n\n```shell\nnx g app myapp --js\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create an application.", + "implementation": "/packages/next/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/next/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/generators/component.json b/docs/generated/packages/next/generators/component.json new file mode 100644 index 0000000000000..b2a5636b055d1 --- /dev/null +++ b/docs/generated/packages/next/generators/component.json @@ -0,0 +1,125 @@ +{ + "name": "component", + "factory": "./src/generators/component/component#componentGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNextReactComponent", + "title": "Create a React Component for Next", + "description": "Create a React Component for Next.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?", + "x-priority": "important" + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "alias": "s", + "default": "css", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "skipTests": { + "type": "boolean", + "description": "When true, does not create `spec.ts` test files for the new component.", + "default": false, + "x-priority": "internal" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "alias": "dir", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "export": { + "type": "boolean", + "description": "When true, the component is exported from the project index.ts (if it exists).", + "alias": "e", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "flat": { + "type": "boolean", + "description": "Create component at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false, + "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "pascalCaseDirectory": { + "type": "boolean", + "description": "Use pascal case directory name (e.g. `App/App.tsx`).", + "alias": "R", + "default": false, + "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create an app component\" %}\n\n```shell\nnx g component my-cmp --project=my-app\n```\n\n{% /tab %}\n{% tab label=\"Create a component without its own folder\" %}\n\nRunning the following will create a component under `apps/my-app/components/my-cmp.tsx` rather than `apps/my-app/components/my-cmp/my-cmp.tsx`.\n\n```shell\nnx g component my-cmp --flat --project=my-app\n```\n\n{% /tab %}\n{% tab label=\"Create component in a custom directory\" %}\n\nRunning the following will create a component under `apps/my-app/foo/my-cmp.tsx` rather than `apps/my-app/my-cmp/my-cmp.tsx`.\n\n```shell\nnx g component my-cmp --directory=foo --flat --project=my-app\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "description": "Create a component.", + "implementation": "/packages/next/src/generators/component/component#componentGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/generators/component/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/generators/custom-server.json b/docs/generated/packages/next/generators/custom-server.json new file mode 100644 index 0000000000000..c2b83da02a0b6 --- /dev/null +++ b/docs/generated/packages/next/generators/custom-server.json @@ -0,0 +1,38 @@ +{ + "name": "custom-server", + "factory": "./src/generators/custom-server/custom-server#customServerGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNextCustomServer", + "title": "Add custom server", + "description": "Add a custom server to existing Next.js application.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "project", + "x-prompt": "What is the name of the project to set up a custom server for?", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "enum": ["tsc", "swc"], + "default": "tsc", + "description": "The compiler used to build the custom server." + } + }, + "required": ["project"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Add a custom server to existing app\" %}\n\n```shell\nnx g custom-server my-app\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "description": "Set up a custom server.", + "implementation": "/packages/next/src/generators/custom-server/custom-server#customServerGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/generators/custom-server/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/generators/cypress-component-configuration.json b/docs/generated/packages/next/generators/cypress-component-configuration.json new file mode 100644 index 0000000000000..3b011608eeed5 --- /dev/null +++ b/docs/generated/packages/next/generators/cypress-component-configuration.json @@ -0,0 +1,53 @@ +{ + "name": "cypress-component-configuration", + "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "CypressComponentConfiguration", + "title": "NextJS Component Testing Configuration", + "description": "Add Cypress Componet Testing to an existing NextJS project.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/next:cypress-component-configuration --project=my-next-project", + "description": "Add component testing to your Next project" + }, + { + "command": "nx g @nx/next:cypress-component-configuration --project=my-next-project --generate-tests", + "description": "Add component testing to your Next project and generate component tests for your existing components" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add cypress component testing configuration to", + "x-dropdown": "projects", + "x-prompt": "What project should we add Cypress component testing to?", + "x-priority": "important" + }, + "generateTests": { + "type": "boolean", + "description": "Generate default component tests for existing components in the project", + "x-prompt": "Automatically generate tests for components declared in this project?", + "default": false, + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nNext component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-11 generator](/packages/cypress/generators/migrate-to-cypress-11).\n\nThis generator is for Cypress based component testing.\n\nIf you want to test components via Storybook with Cypress, then check out the [storybook-configuration generator docs](/nx-api/react/generators/storybook-configuration). However, this functionality is deprecated, and will be removed on Nx version 19.\n{% /callout %}\n\nThis generator is designed to get your Next project up and running with Cypress Component Testing.\n\n```shell\nnx g @nx/next:cypress-component-configuration --project=my-cool-next-project\n```\n\nRunning this generator, adds the required files to the specified project with a preconfigured `cypress.config.ts` designed for Nx workspaces.\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/next/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename),\n});\n```\n\nHere is an example on how to add custom options to the configuration\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/next/plugins/component-testing';\n\nexport default defineConfig({\n component: {\n ...nxComponentTestingPreset(__filename),\n // extra options here\n },\n});\n```\n\n```shell\nnx g @nx/next:cypress-component-project --project=my-cool-next-project\n```\n\n## Auto Generating Tests\n\nYou can optionally use the `--generate-tests` flag to generate a test file for each component in your project.\n\n```shell\nnx g @nx/next:cypress-component-configuration --project=my-cool-next-project --generate-tests\n```\n\n## Running Component Tests\n\nA new `component-test` target will be added to the specified project to run your component tests.\n\n```shell\nnx g component-test my-cool-next-project\n```\n\nHere is an example of the project configuration that is generated.\n\n```json {% fileName=\"project.json\" %}\n{\n \"targets\" {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"/cypress.config.ts\",\n \"testingType\": \"component\",\n \"skipServe\": true\n }\n }\n }\n}\n```\n\nNx also supports [Angular component testing](/packages/angular/generators/cypress-component-configuration).\n", + "presets": [] + }, + "description": "cypress-component-configuration generator", + "implementation": "/packages/next/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/generators/cypress-component-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/generators/init.json b/docs/generated/packages/next/generators/init.json new file mode 100644 index 0000000000000..9aec03f12b633 --- /dev/null +++ b/docs/generated/packages/next/generators/init.json @@ -0,0 +1,45 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#nextInitGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNextNgInit", + "title": "Init Next Plugin", + "description": "Init Next Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/next` plugin.", + "hidden": true, + "implementation": "/packages/next/src/generators/init/init#nextInitGeneratorInternal.ts", + "aliases": [], + "path": "/packages/next/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/generators/library.json b/docs/generated/packages/next/generators/library.json new file mode 100644 index 0000000000000..0e06738c98c6e --- /dev/null +++ b/docs/generated/packages/next/generators/library.json @@ -0,0 +1,162 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactLibrary", + "title": "Create a React Library for Nx", + "description": "Create a React Library for an Nx workspace.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "vitest", "none"], + "description": "Test runner to use for unit tests." + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update tsconfig.json for development experience." + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false + }, + "routing": { + "type": "boolean", + "description": "Generate library with routes." + }, + "appProject": { + "type": "string", + "description": "The application project to add the library route to.", + "alias": "a" + }, + "publishable": { + "type": "boolean", + "description": "Create a publishable library." + }, + "buildable": { + "type": "boolean", + "default": false, + "description": "Generate a buildable library." + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`." + }, + "component": { + "type": "boolean", + "description": "Generate a default component.", + "default": true + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "globalCss": { + "type": "boolean", + "description": "When true, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is `*.css` rather than `*.module.css`).", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "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 + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create a new lib\" %}\n\n```shell\nnx g lib my-lib\n```\n\n{% /tab %}\n{% tab label=\"Create a new lib under a directory\" %}\n\nThe following will create a library at `libs/shared/my-lib`.\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=shared`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g lib my-lib --directory=libs/shared/my-lib\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a library.", + "implementation": "/packages/next/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/next/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/next/generators/page.json b/docs/generated/packages/next/generators/page.json new file mode 100644 index 0000000000000..9f0eab986a575 --- /dev/null +++ b/docs/generated/packages/next/generators/page.json @@ -0,0 +1,111 @@ +{ + "name": "page", + "factory": "./src/generators/page/page#pageGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNextReactPage", + "title": "Create a Page for Next", + "description": "Create a Page for Next.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the page file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "alias": "dir", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "alias": "s", + "default": "css", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + }, + "x-priority": "important" + }, + "withTests": { + "type": "boolean", + "description": "When true, creates a `spec.ts` test file for the new page.", + "default": false + }, + "export": { + "type": "boolean", + "description": "When true, the component is exported from the project `index.ts` (if it exists).", + "alias": "e", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "flat": { + "type": "boolean", + "description": "Create component at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Create static page in an app\" %}\n\n```shell\nnx g page my-page --project=my-app\n```\n\n{% /tab %}\n{% tab label=\"Create dynamic page in an app\" %}\n\nThe following creates a page under `apps/my-app/pages/products/[id].tsx`.\n\n```shell\nnx g page \"[id]\" --project=my-app --directory=products\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Create a page.", + "implementation": "/packages/next/src/generators/page/page#pageGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/next/src/generators/page/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/node/documents/overview.md b/docs/generated/packages/node/documents/overview.md new file mode 100644 index 0000000000000..0a1feaae7b36e --- /dev/null +++ b/docs/generated/packages/node/documents/overview.md @@ -0,0 +1,107 @@ +The Node Plugin contains generators and executors to manage Node applications within an Nx workspace. It provides: + +## Setting Up @nx/node + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/node` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/node` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/node +``` + +This will install the correct version of `@nx/node`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/node` package with your package manager. + +```shell +npm add -D @nx/node +``` + +{% /tab %} +{% /tabs %} + +## Using the @nx/node Plugin + +### Creating Applications + +You can add a new application with the following: + +```shell +nx g @nx/node:application my-new-app +``` + +You can run your application with `nx serve my-new-app`, which starts it in watch mode. + +### Creating Libraries + +Node libraries are a good way to separate features within your organization. To create a Node library run the following command: + +```shell +nx g @nx/node:lib my-new-lib + +# If you want the library to be buildable or publishable to npm +nx g @nx/node:lib my-new-lib --buildable +nx g @nx/node:lib my-new-lib \ +--publishable \ +--importPath=@myorg/my-new-lib +``` + +## Using Node + +### Testing Projects + +You can run unit tests with: + +```shell +nx test my-new-app +nx test my-new-lib +``` + +Replace `my-new-app` with the name or your project. This command works for both applications and libraries. + +### Building Projects + +Node applications can be build with: + +```shell +nx build my-new-app +``` + +And if you generated a library with `--buildable`, then you can build a library as well: + +```shell +nx build my-new-lib +``` + +The output is in the `dist` folder. You can customize the output folder by setting `outputPath` in the project's `project.json` file. + +### Application Proxies + +Generating Node applications has an option to configure other projects in the workspace to proxy API requests. This can be done by passing the `--frontendProject` with the project name you wish to enable proxy support for. + +```shell +nx g @nx/node:application my-new-app \ +--frontendProject my-react-app +``` + +### Debugging + +Debugging is set to use a random port that is available on the system. The port can be changed by setting the port option in the `serve` target in the project.json. Or by running the serve command with `--port `. + +For additional information on how to debug Node applications, see the [Node.js debugging getting started guide](https://nodejs.org/en/docs/guides/debugging-getting-started/#inspector-clients). + +## More Documentation + +- [Using Cypress](/nx-api/cypress) +- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/node/generators/application.json b/docs/generated/packages/node/generators/application.json new file mode 100644 index 0000000000000..b4b9a029d7c3c --- /dev/null +++ b/docs/generated/packages/node/generators/application.json @@ -0,0 +1,145 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "SchematicsNxNodeApp", + "title": "Nx Application Options Schema", + "description": "Nx Application Options Schema.", + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the node application?", + "x-priority": "important", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting)." + }, + "frontendProject": { + "type": "string", + "description": "Frontend project that needs to access this application. This sets up proxy configuration.", + "x-priority": "important", + "x-dropdown": "projects" + }, + "swcJest": { + "type": "boolean", + "description": "Use `@swc/jest` instead `ts-jest` for faster test compilation.", + "default": false + }, + "babelJest": { + "type": "boolean", + "description": "Use `babel` instead `ts-jest`.", + "default": false, + "x-deprecated": "Use --swcJest instead for faster compilation" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case file names.", + "alias": "P", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "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 + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "bundler": { + "description": "Bundler which is used to package the application", + "type": "string", + "enum": ["esbuild", "webpack"], + "default": "esbuild", + "x-priority": "important" + }, + "framework": { + "description": "Generate the node application using a framework", + "type": "string", + "enum": ["express", "fastify", "koa", "nest", "none"], + "default": "none", + "x-prompt": "Which framework do you want to use?", + "x-priority": "important" + }, + "port": { + "description": "The port which the server will be run on", + "type": "number", + "default": 3000 + }, + "rootProject": { + "description": "Create node application at the root of the workspace", + "type": "boolean", + "default": false, + "hidden": true, + "x-priority": "internal" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for end to end (e2e) tests", + "default": "jest" + }, + "docker": { + "type": "boolean", + "description": "Add a docker build target" + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create a node application.", + "implementation": "/packages/node/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/node/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/node/generators/init.json b/docs/generated/packages/node/generators/init.json new file mode 100644 index 0000000000000..9a5a388e37428 --- /dev/null +++ b/docs/generated/packages/node/generators/init.json @@ -0,0 +1,38 @@ +{ + "name": "init", + "factory": "./src/generators/init/init", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNodeInit", + "title": "Init Node Plugin", + "description": "Init Node Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/node` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/node/src/generators/init/init.ts", + "path": "/packages/node/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/node/generators/library.json b/docs/generated/packages/node/generators/library.json new file mode 100644 index 0000000000000..30aecd057ad48 --- /dev/null +++ b/docs/generated/packages/node/generators/library.json @@ -0,0 +1,145 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNodeLibrary", + "title": "Create a Node Library for Nx", + "description": "Create a Node Library for an Nx workspace.", + "type": "object", + "examples": [ + { + "command": "nx g lib mylib --directory=myapp", + "description": "Generate `libs/myapp/mylib`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "simpleModuleName": { + "description": "Keep the module name simple (when using `--directory`).", + "type": "boolean", + "default": false + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update `tsconfig.base.json` for development experience.", + "x-priority": "internal" + }, + "publishable": { + "type": "boolean", + "description": "Create a publishable library.", + "x-priority": "important" + }, + "buildable": { + "type": "boolean", + "default": false, + "description": "Generate a buildable library.", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "enum": ["tsc", "swc"], + "default": "tsc", + "description": "The compiler used by the build and test targets.", + "x-priority": "important" + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`. Must be a valid npm name." + }, + "rootDir": { + "type": "string", + "description": "Sets the `rootDir` for TypeScript compilation. When not defined, it uses the project's root property, or `srcRootForCompilationRoot` if it is defined." + }, + "testEnvironment": { + "type": "string", + "enum": ["jsdom", "node"], + "description": "The test environment to use if `unitTestRunner` is set to `jest`.", + "default": "jsdom" + }, + "babelJest": { + "type": "boolean", + "description": "Use `babel` instead of `ts-jest`.", + "default": false + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case file names.", + "alias": "P", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "default": false + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "setParserOptionsProject": { + "type": "boolean", + "description": "Whether or not to configure the ESLint `parserOptions.project`. We do not do this by default for lint performance reasons.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a node library.", + "implementation": "/packages/node/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/node/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/node/generators/setup-docker.json b/docs/generated/packages/node/generators/setup-docker.json new file mode 100644 index 0000000000000..aace4f77586d9 --- /dev/null +++ b/docs/generated/packages/node/generators/setup-docker.json @@ -0,0 +1,38 @@ +{ + "name": "setup-docker", + "factory": "./src/generators/setup-docker/setup-docker", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "SchematicsNxSetupDocker", + "title": "Nx Node Docker Options Schema", + "description": "Nx Node Docker Options Schema.", + "type": "object", + "properties": { + "project": { + "description": "The name of the project", + "$default": { "$source": "projectName" }, + "type": "string", + "x-prompt": "What project would you like to add a Dockerfile to?", + "x-priority": "important" + }, + "targetName": { + "description": "The name of the target to create", + "type": "string", + "default": "docker-build" + }, + "buildTargetName": { + "description": "The name of the build target", + "type": "string", + "default": "build" + } + }, + "presets": [] + }, + "description": "Set up Docker configuration for a project.", + "hidden": false, + "implementation": "/packages/node/src/generators/setup-docker/setup-docker.ts", + "aliases": [], + "path": "/packages/node/src/generators/setup-docker/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nuxt/documents/overview.md b/docs/generated/packages/nuxt/documents/overview.md new file mode 100644 index 0000000000000..cbd16b1c6100d --- /dev/null +++ b/docs/generated/packages/nuxt/documents/overview.md @@ -0,0 +1,104 @@ +--- +title: Overview of the Nx Nuxt Plugin +description: The Nx Plugin for Nuxt contains generators for managing Nuxt applications within a Nx workspace. This page also explains how to configure Nuxt on your Nx workspace. +--- + +The Nx plugin for [Nuxt](https://nuxt.com/). + +## Setting up a new Nx workspace with @nx/nuxt + +You can create a new workspace that uses Nuxt with one of the following commands: + +- Generate a new monorepo with a Nuxt app + +```shell +npx create-nx-workspace@latest --preset=nuxt +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/nuxt` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/nuxt` by running the following command: + +```shell {% skipRescope=true %} +nx add @nx/nuxt +``` + +This will install the correct version of `@nx/nuxt`. + +### How @nx/nuxt Infers Tasks + +The `@nx/nuxt` plugin will create a task for any project that has an Nuxt configuration file present. Any of the following files will be recognized as an Nuxt configuration file: + +- `nuxt.config.js` +- `nuxt.config.ts` +- `nuxt.config.mjs` +- `nuxt.config.mts` +- `nuxt.config.cjs` +- `nuxt.config.cts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/nuxt Configuration + +The `@nx/nuxt/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/nuxt/plugin", + "options": { + "buildTargetName": "build", + "testTargetName": "test", + "serveTargetName": "serve", + "buildStaticTargetName": "build-static", + "serveStaticTargetName": "serve-static" + } + } + ] +} +``` + +The `buildTargetName`, `testTargetName` and `serveTargetName` options control the names of the inferred Nuxt tasks. The default names are `build`, `test` and `serve`. + +The `buildStaticTargetName` and `serveStaticTargetName` options control the names of the inferred Nuxt static tasks. The default names are `build-static` and `serve-static`. + +## Using Nuxt + +### Generate a new Nuxt app + +```shell +nx g @nx/nuxt:app my-app +``` + +### Deploy a Nuxt app + +Once you are ready to deploy your Nuxt application, you have absolute freedom to choose any hosting provider that fits your needs. + +We have detailed [how to deploy your Nuxt application to Vercel in a separate guide](/recipes/nuxt/deploy-nuxt-to-vercel). + +### E2E testing + +By default `nuxt` **does not** generate static HTML files when you run the `build` command. However, Nx provides a `build-static` target that you can use to generate static HTML files for your Nuxt application. Essentially, this target runs the `nuxt build --prerender` command to generate static HTML files. + +To perform end-to-end (E2E) testing on static HTML files using a test runner like Cypress. When you create a Nuxt application, Nx automatically creates a `serve-static` target. This target is designed to serve the static HTML files produced by the `build-static` command. + +This feature is particularly useful for testing in continuous integration (CI) pipelines, where resources may be constrained. Unlike the `serve` target, `serve-static` does not require a Nuxt's Nitro server to operate, making it more efficient and faster by eliminating background processes, such as file change monitoring. + +To utilize the `serve-static` target for testing, run the following command: + +```shell +nx serve-static my-nuxt-app-e2e +``` + +This command performs several actions: + +1. It will build the Nuxt application and generate the static HTML files. +2. It will serve the static HTML files using a simple HTTP server. +3. It will run the Cypress tests against the served static HTML files. diff --git a/docs/generated/packages/nuxt/generators/application.json b/docs/generated/packages/nuxt/generators/application.json new file mode 100644 index 0000000000000..fd7c1061369f1 --- /dev/null +++ b/docs/generated/packages/nuxt/generators/application.json @@ -0,0 +1,118 @@ +{ + "name": "application", + "factory": "./src/generators/application/application", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNuxtApp", + "title": "Create a Nuxt Application for Nx", + "description": "Create a Nuxt Application for Nx.", + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$", + "x-priority": "important" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["vitest", "none"], + "description": "Test runner to use for unit tests.", + "x-prompt": "Which unit test runner would you like to use?", + "default": "none" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "rootProject": { + "description": "Create an application at the root of the workspace.", + "type": "boolean", + "default": false, + "hidden": true, + "x-priority": "internal" + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "alias": "s", + "default": "css", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "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 + } + }, + "required": [], + "examplesFile": "---\ntitle: Nuxt application generator examples\ndescription: This page contains examples for the @nx/nuxt:app generator.\n---\n\nYour new Nuxt application will be generated with the following directory structure, following the suggested [directory structure](https://nuxt.com/docs/guide/directory-structure) for Nuxt applications:\n\n```text\nmy-nuxt-app\n├── nuxt.config.ts\n├── project.json\n├── src\n│   ├── app.vue\n│   ├── assets\n│   │   └── css\n│   │   └── styles.css\n│   ├── components\n│   │   └── NxWelcome.vue\n│   ├── pages\n│   │   ├── about.vue\n│   │   └── index.vue\n│   ├── public\n│   │   └── favicon.ico\n│   └── server\n│   ├── api\n│   │   └── greet.ts\n│   └── tsconfig.json\n├── tsconfig.app.json\n├── tsconfig.json\n├── tsconfig.spec.json\n└── vitest.config.ts\n```\n\nYour new app will contain the following:\n\n- Two pages (home and about) under `pages`\n- A component (`NxWelcome`) under `components`\n- A `greet` API endpoint that returns a JSON response under `/api/greet`\n- Configuration for `vitest`\n- Your app's entrypoint (`app.vue`) will contain the navigation links to the home and about pages, and the `nuxt-page` component to display the contents of your pages.\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Create app in a directory\" %}\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=nested`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g @nx/nuxt:app myapp --directory=apps/nested/myapp\n```\n\n{% /tab %}\n\n{% tab label=\"Create app with vitest configured\" %}\n\n```shell\nnx g @nx/nuxt:app myapp --directory=apps/nested/myapp --unitTestRunner=vitest\n```\n\n{% /tab %}\n\n{% tab label=\"Use plain JavaScript (not TypeScript)\" %}\n\n```shell\nnx g @nx/nuxt:app myapp --js\n```\n\n{% /tab %}\n{% /tabs %}\n\n## Generate pages and components\n\nYou can use the the [`@nx/vue:component` generator](/nx-api/vue/generators/component) to generate new pages and components for your application. You can read more on the [`@nx/vue:component` generator documentation page](/nx-api/vue/generators/component), but here are some examples:\n\n{% tabs %}\n{% tab label=\"New page\" %}\n\n```shell\nnx g @nx/nuxt:component --directory=my-app/src/pages --name=my-page\n```\n\n{% /tab %}\n\n{% tab label=\"New component\" %}\n\n```shell\nnx g @nx/nuxt:component --directory=my-app/src/components/my-cmp --name=my-cmp\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["app"], + "description": "Create a Nuxt application.", + "implementation": "/packages/nuxt/src/generators/application/application.ts", + "hidden": false, + "path": "/packages/nuxt/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nuxt/generators/init.json b/docs/generated/packages/nuxt/generators/init.json new file mode 100644 index 0000000000000..5553ce3f172bd --- /dev/null +++ b/docs/generated/packages/nuxt/generators/init.json @@ -0,0 +1,44 @@ +{ + "name": "init", + "factory": "./src/generators/init/init", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxNuxtInit", + "title": "Init Nuxt Plugin", + "description": "Initialize a Nuxt Plugin.", + "cli": "nx", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nx/nuxt` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/nuxt/src/generators/init/init.ts", + "path": "/packages/nuxt/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nuxt/generators/storybook-configuration.json b/docs/generated/packages/nuxt/generators/storybook-configuration.json new file mode 100644 index 0000000000000..c22a2a3b5dc81 --- /dev/null +++ b/docs/generated/packages/nuxt/generators/storybook-configuration.json @@ -0,0 +1,85 @@ +{ + "name": "storybook-configuration", + "factory": "./src/generators/storybook-configuration/configuration", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxNuxtStorybookConfigure", + "title": "Nuxt Storybook Configure", + "description": "Set up Storybook for a Nuxt project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "alias": ["configureTestRunner"], + "default": true + }, + "generateStories": { + "type": "boolean", + "description": "Automatically generate `*.stories.ts` files for components declared in this project?", + "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", + "default": true, + "x-priority": "important" + }, + "configureStaticServe": { + "type": "boolean", + "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", + "x-prompt": "Configure a static file server for the storybook instance?", + "default": true, + "x-priority": "important" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript story files rather than TypeScript story files.", + "default": false + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": true + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + } + }, + "required": ["project"], + "examplesFile": "---\ntitle: Storybook configuration generator examples\ndescription: This page contains examples for the @nx/nuxt:storybook-configuration generator.\n---\n\nThis generator calls the `@nx/vue:storybook-configuration` generator under the hood. It will set up Storybook for your **Nuxt** project.\n\n```bash\nnx g @nx/nuxt:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Vue overview page](/recipes/storybook/overview-vue#generate-storybook-configuration-for-a-vue-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/vue/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui --generateStories=true --ignorePaths=\"libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\"\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/nuxt:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", + "presets": [] + }, + "description": "Set up storybook for a Nuxt app.", + "hidden": false, + "implementation": "/packages/nuxt/src/generators/storybook-configuration/configuration.ts", + "aliases": [], + "path": "/packages/nuxt/src/generators/storybook-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/nx/documents/add.md b/docs/generated/packages/nx/documents/add.md new file mode 100644 index 0000000000000..40b53cd2e18c5 --- /dev/null +++ b/docs/generated/packages/nx/documents/add.md @@ -0,0 +1,68 @@ +--- +title: 'add - CLI command' +description: 'Install a plugin and initialize it.' +--- + +# add + +Install a plugin and initialize it. + +## Usage + +```shell +nx add +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Install the `@nx/react` package matching the installed version of the `nx` package and run its `@nx/react:init` generator: + +```shell + nx add @nx/react +``` + +Install the latest version of the `non-core-nx-plugin` package and run its `non-core-nx-plugin:init` generator if available: + +```shell + nx add non-core-nx-plugin +``` + +Install version `17.0.0` of the `@nx/react` package and run its `@nx/react:init` generator: + +```shell + nx add @nx/react@17.0.0 +``` + +## Options + +### help + +Type: `boolean` + +Show help + +### packageSpecifier + +Type: `string` + +The package name and optional version (e.g. `@nx/react` or `@nx/react@latest`) to install and initialize. If the version is not specified it will install the same version as the `nx` package for Nx core plugins or the latest version for other packages + +### updatePackageScripts + +Type: `boolean` + +Update `package.json` scripts with inferred targets. Defaults to `true` when the package is a core Nx plugin + +### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/affected-dep-graph.md b/docs/generated/packages/nx/documents/affected-dep-graph.md new file mode 100644 index 0000000000000..2a2dd1afc64a8 --- /dev/null +++ b/docs/generated/packages/nx/documents/affected-dep-graph.md @@ -0,0 +1,168 @@ +--- +title: 'affected:graph - CLI command' +description: 'Graph dependencies affected by changes' +--- + +# affected:graph + +**Deprecated:** Use `nx graph --affected`, or `nx affected --graph` instead depending on which best suits your use case. The `affected:graph` command will be removed in Nx 19. + +Graph dependencies affected by changes + +## Usage + +```shell +nx affected:graph +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Open the project graph of the workspace in the browser, and highlight the projects affected by changing the index.ts file: + +```shell + nx affected:graph --files=libs/mylib/src/index.ts +``` + +Open the project graph of the workspace in the browser, and highlight the projects affected by the changes between main and HEAD (e.g., PR): + +```shell + nx affected:graph --base=main --head=HEAD +``` + +Save the project graph of the workspace in a json file, and highlight the projects affected by the changes between main and HEAD (e.g., PR): + +```shell + nx affected:graph --base=main --head=HEAD --file=output.json +``` + +Generate a static website with project graph data in an html file, highlighting the projects affected by the changes between main and HEAD (e.g., PR): + +```shell + nx affected:graph --base=main --head=HEAD --file=output.html +``` + +Open the project graph of the workspace in the browser, and highlight the projects affected by the last commit on main: + +```shell + nx affected:graph --base=main~1 --head=main +``` + +Open the project graph of the workspace in the browser, highlight the projects affected, but exclude project-one and project-two: + +```shell + nx affected:graph --exclude=project-one,project-two +``` + +## Options + +### base + +Type: `string` + +Base of the current branch (usually main) + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### file + +Type: `string` + +Output file (e.g. --file=output.json or --file=dep-graph.html) + +### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +### focus + +Type: `string` + +Use to show the project graph for a particular project and every node that is either an ancestor or a descendant. + +### groupByFolder + +Type: `boolean` + +Group projects by folder in the project graph + +### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +### help + +Type: `boolean` + +Show help + +### host + +Type: `string` + +Bind the project graph server to a specific ip address. + +### open + +Type: `boolean` + +Default: `true` + +Open the project graph in the browser. + +### port + +Type: `number` + +Bind the project graph server to a specific port. + +### targets + +Type: `string` + +The target to show tasks for in the task graph + +### uncommitted + +Type: `boolean` + +Uncommitted changes + +### untracked + +Type: `boolean` + +Untracked changes + +### version + +Type: `boolean` + +Show version number + +### view + +Type: `string` + +Choices: [projects, tasks] + +Default: `projects` + +Choose whether to view the projects or task graph + +### watch + +Type: `boolean` + +Default: `false` + +Watch for changes to project graph and update in-browser diff --git a/docs/generated/packages/nx/documents/affected.md b/docs/generated/packages/nx/documents/affected.md new file mode 100644 index 0000000000000..f951984d55c29 --- /dev/null +++ b/docs/generated/packages/nx/documents/affected.md @@ -0,0 +1,198 @@ +--- +title: 'affected - CLI command' +description: 'Run target for affected projects' +--- + +# affected + +Run target for affected projects + +## Usage + +```shell +nx affected +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Run custom target for all affected projects: + +```shell + nx affected -t custom-target +``` + +Run tests in parallel: + +```shell + nx affected -t test --parallel=5 +``` + +Run lint, test, and build targets for affected projects. Requires Nx v15.4+: + +```shell + nx affected -t lint test build +``` + +Run tests for all the projects affected by changing the index.ts file: + +```shell + nx affected -t test --files=libs/mylib/src/index.ts +``` + +Run tests for all the projects affected by the changes between main and HEAD (e.g., PR): + +```shell + nx affected -t test --base=main --head=HEAD +``` + +Run tests for all the projects affected by the last commit on main: + +```shell + nx affected -t test --base=main~1 --head=main +``` + +Run build for only projects with the tag `dotnet`: + +```shell + nx affected -t=build --exclude='*,!tag:dotnet' +``` + +Use the currently executing project name in your command.: + +```shell + nx affected -t build --tag=$NX_TASK_TARGET_PROJECT:latest +``` + +## Options + +### ~~all~~ + +Type: `boolean` + +**Deprecated:** Use `nx run-many` instead + +### base + +Type: `string` + +Base of the current branch (usually main) + +### batch + +Type: `boolean` + +Default: `false` + +Run task(s) in batches for executors which support batches + +### configuration + +Type: `string` + +This is the configuration to use when performing tasks on projects + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +### graph + +Type: `string` + +Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. + +### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +### help + +Type: `boolean` + +Show help + +### nxBail + +Type: `boolean` + +Default: `false` + +Stop command execution after the first failed task + +### nxIgnoreCycles + +Type: `boolean` + +Default: `false` + +Ignore cycles in the task graph + +### output-style + +Type: `string` + +Choices: [dynamic, static, stream, stream-without-prefixes] + +Defines how Nx emits outputs tasks logs + +### parallel + +Type: `string` + +Max number of parallel processes [default is 3] + +### runner + +Type: `string` + +This is the name of the tasks runner configured in nx.json + +### skipNxCache + +Type: `boolean` + +Default: `false` + +Rerun the tasks even when the results are available in the cache + +### targets + +Type: `string` + +Tasks to run for affected projects + +### uncommitted + +Type: `boolean` + +Uncommitted changes + +### untracked + +Type: `boolean` + +Untracked changes + +### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/connect-to-nx-cloud.md b/docs/generated/packages/nx/documents/connect-to-nx-cloud.md new file mode 100644 index 0000000000000..247c3df195843 --- /dev/null +++ b/docs/generated/packages/nx/documents/connect-to-nx-cloud.md @@ -0,0 +1,30 @@ +--- +title: 'connect - CLI command' +description: 'Connect workspace to Nx Cloud' +--- + +# connect + +Connect workspace to Nx Cloud + +## Usage + +```shell +nx connect +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Options + +### help + +Type: `boolean` + +Show help + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/create-nx-workspace.md b/docs/generated/packages/nx/documents/create-nx-workspace.md new file mode 100644 index 0000000000000..4292def25a1e3 --- /dev/null +++ b/docs/generated/packages/nx/documents/create-nx-workspace.md @@ -0,0 +1,198 @@ +--- +title: 'create-nx-workspace - CLI command' +description: 'Create a new Nx workspace' +--- + +# create-nx-workspace + +Create a new Nx workspace + +## Usage + +```bash +create-nx-workspace [name] [options] +``` + +Install `create-nx-workspace` globally to invoke the command directly, or use `npx create-nx-workspace`, `yarn create nx-workspace`, or `pnpx create-nx-workspace`. + +## Options + +### allPrompts + +Type: `boolean` + +Default: `false` + +Show all prompts + +### appName + +Type: `string` + +The name of the app when using a monorepo with certain stacks + +### bundler + +Type: `string` + +Bundler to be used to build the app + +### commit.email + +Type: `string` + +E-mail of the committer + +### commit.message + +Type: `string` + +Default: `Initial commit` + +Commit message + +### commit.name + +Type: `string` + +Name of the committer + +### defaultBase + +Type: `string` + +Default: `main` + +Default base to use for new projects + +### docker + +Type: `boolean` + +Generate a Dockerfile for the Node API + +### e2eTestRunner + +Type: `string` + +Choices: [cypress, playwright, none] + +Test runner to use for end to end (E2E) tests. + +### framework + +Type: `string` + +Framework option to be used with certain stacks + +### help + +Type: `boolean` + +Show help + +### interactive + +Type: `boolean` + +Default: `true` + +Enable interactive mode with presets + +### name + +Type: `string` + +Workspace name (e.g. org name) + +### nextAppDir + +Type: `boolean` + +Enable the App Router for Next.js + +### nextSrcDir + +Type: `boolean` + +Generate a 'src/' directory for Next.js + +### nxCloud + +Type: `string` + +Choices: [yes, github, circleci, skip] + +Do you want Nx Cloud to make your CI fast? + +### packageManager + +Type: `string` + +Choices: [npm, pnpm, yarn] + +Default: `npm` + +Package manager to use + +### prefix + +Type: `string` + +Prefix to use for Angular component and directive selectors. + +### preset + +Type: `string` + +Customizes the initial content of your workspace. Default presets include: ["apps", "empty", "core", "npm", "ts", "web-components", "angular-monorepo", "angular-standalone", "react-monorepo", "react-standalone", "vue-monorepo", "vue-standalone", "nuxt", "nuxt-standalone", "next", "nextjs-standalone", "remix-monorepo", "remix-standalone", "react-native", "expo", "nest", "express", "react", "vue", "angular", "node-standalone", "node-monorepo", "ts-standalone"]. To build your own see https://nx.dev/extending-nx/recipes/create-preset + +### routing + +Type: `boolean` + +Default: `true` + +Add a routing setup for an Angular app + +### skipGit + +Type: `boolean` + +Default: `false` + +Skip initializing a git repository + +### ssr + +Type: `boolean` + +Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application + +### standaloneApi + +Type: `boolean` + +Default: `true` + +Use Standalone Components if generating an Angular app + +### style + +Type: `string` + +Stylesheet type to be used with certain stacks + +### version + +Type: `boolean` + +Show version number + +### workspaceType + +Type: `string` + +Choices: [integrated, package-based, standalone] + +The type of workspace to create diff --git a/docs/generated/packages/nx/documents/daemon.md b/docs/generated/packages/nx/documents/daemon.md new file mode 100644 index 0000000000000..d9f12325e5710 --- /dev/null +++ b/docs/generated/packages/nx/documents/daemon.md @@ -0,0 +1,42 @@ +--- +title: 'daemon - CLI command' +description: 'Prints information about the Nx Daemon process or starts a daemon process' +--- + +# daemon + +Prints information about the Nx Daemon process or starts a daemon process + +## Usage + +```shell +nx daemon +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Options + +### help + +Type: `boolean` + +Show help + +### start + +Type: `boolean` + +Default: `false` + +### stop + +Type: `boolean` + +Default: `false` + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/dep-graph.md b/docs/generated/packages/nx/documents/dep-graph.md new file mode 100644 index 0000000000000..4dd438d168784 --- /dev/null +++ b/docs/generated/packages/nx/documents/dep-graph.md @@ -0,0 +1,184 @@ +--- +title: 'graph - CLI command' +description: 'Graph dependencies within workspace' +--- + +# graph + +Graph dependencies within workspace + +## Usage + +```shell +nx graph +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Open the project graph of the workspace in the browser: + +```shell + nx graph +``` + +Save the project graph into a json file: + +```shell + nx graph --file=output.json +``` + +Generate a static website with project graph into an html file, accompanied by an asset folder called static: + +```shell + nx graph --file=output.html +``` + +Show the graph where every node is either an ancestor or a descendant of todos-feature-main: + +```shell + nx graph --focus=todos-feature-main +``` + +Include project-one and project-two in the project graph: + +```shell + nx graph --include=project-one,project-two +``` + +Exclude project-one and project-two from the project graph: + +```shell + nx graph --exclude=project-one,project-two +``` + +Show the graph where every node is either an ancestor or a descendant of todos-feature-main, but exclude project-one and project-two: + +```shell + nx graph --focus=todos-feature-main --exclude=project-one,project-two +``` + +Watch for changes to project graph and update in-browser: + +```shell + nx graph --watch +``` + +## Options + +### affected + +Type: `boolean` + +Highlight affected projects + +### base + +Type: `string` + +Base of the current branch (usually main) + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### file + +Type: `string` + +Output file (e.g. --file=output.json or --file=dep-graph.html) + +### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +### focus + +Type: `string` + +Use to show the project graph for a particular project and every node that is either an ancestor or a descendant. + +### groupByFolder + +Type: `boolean` + +Group projects by folder in the project graph + +### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +### help + +Type: `boolean` + +Show help + +### host + +Type: `string` + +Bind the project graph server to a specific ip address. + +### open + +Type: `boolean` + +Default: `true` + +Open the project graph in the browser. + +### port + +Type: `number` + +Bind the project graph server to a specific port. + +### targets + +Type: `string` + +The target to show tasks for in the task graph + +### uncommitted + +Type: `boolean` + +Uncommitted changes + +### untracked + +Type: `boolean` + +Untracked changes + +### version + +Type: `boolean` + +Show version number + +### view + +Type: `string` + +Choices: [projects, tasks] + +Default: `projects` + +Choose whether to view the projects or task graph + +### watch + +Type: `boolean` + +Default: `false` + +Watch for changes to project graph and update in-browser diff --git a/docs/generated/packages/nx/documents/exec.md b/docs/generated/packages/nx/documents/exec.md new file mode 100644 index 0000000000000..d74327714dfed --- /dev/null +++ b/docs/generated/packages/nx/documents/exec.md @@ -0,0 +1,152 @@ +--- +title: 'exec - CLI command' +description: 'Executes any command as if it was a target on the project' +--- + +# exec + +- Executes any command as if it was a target on the project +- Executes an arbitrary command in each package + +## Usage + +In package.json, adding a script with `nx exec` will run the command as if it is a target that project: + +```json +{ + "name": "myorg", + "version": "0.0.1", + "scripts": { + "build": "nx exec -- [..args]" + } +} +``` + +It will run the command for `myorg`. + +When run from the terminal, `nx exec` will run the command for all projects in the workspace: + +``` +nx exec -- [..args] # runs the command in all projects +nx exec -- tsc +nx exec -- echo \$NX_PROJECT_NAME +nx exec -- echo \$NX_PROJECT_ROOT_PATH +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Examples + +You can use `npm run ` for a project and leverage the caching by wrap your command with `nx exec`. + +For example, you can run `npm run docs` as a Nx target for `myorg`: + +``` +{ + "name": "myorg", + "nx": {}, + "scripts": { + "docs": "nx exec -- node ./scripts/some-script.js" + } +} +``` + +You may also run a script located in the project directory for all projects: + +``` +nx exec -- node ./scripts/some-script.js +``` + +The name of the current project is available through the environment variable $NX_PROJECT_NAME: + +``` +nx exec -- echo \$NX_PROJECT_NAME +``` + +The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH: + +``` +nx exec -- echo \$NX_PROJECT_ROOT_PATH +``` + +## Options + +### all + +Type: `boolean` + +Default: `true` + +[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required. + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### graph + +Type: `string` + +Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. + +### help + +Type: `boolean` + +Show help + +### nxBail + +Type: `boolean` + +Default: `false` + +Stop command execution after the first failed task + +### nxIgnoreCycles + +Type: `boolean` + +Default: `false` + +Ignore cycles in the task graph + +### parallel + +Type: `string` + +Max number of parallel processes [default is 3] + +### projects + +Type: `string` + +Projects to run. (comma/space delimited project names and/or patterns) + +### runner + +Type: `string` + +This is the name of the tasks runner configured in nx.json + +### skipNxCache + +Type: `boolean` + +Default: `false` + +Rerun the tasks even when the results are available in the cache + +### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/format-check.md b/docs/generated/packages/nx/documents/format-check.md new file mode 100644 index 0000000000000..66886623b640d --- /dev/null +++ b/docs/generated/packages/nx/documents/format-check.md @@ -0,0 +1,84 @@ +--- +title: 'format:check - CLI command' +description: 'Check for un-formatted files' +--- + +# format:check + +Check for un-formatted files + +## Usage + +```shell +nx format:check +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Options + +### all + +Type: `boolean` + +Format all projects + +### base + +Type: `string` + +Base of the current branch (usually main) + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +### help + +Type: `boolean` + +Show help + +### libs-and-apps + +Type: `boolean` + +Format only libraries and applications files. + +### projects + +Type: `string` + +Projects to format (comma/space delimited) + +### uncommitted + +Type: `boolean` + +Uncommitted changes + +### untracked + +Type: `boolean` + +Untracked changes + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/format-write.md b/docs/generated/packages/nx/documents/format-write.md new file mode 100644 index 0000000000000..c7bfcf03ef154 --- /dev/null +++ b/docs/generated/packages/nx/documents/format-write.md @@ -0,0 +1,84 @@ +--- +title: 'format:write - CLI command' +description: 'Overwrite un-formatted files' +--- + +# format:write + +Overwrite un-formatted files + +## Usage + +```shell +nx format:write +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Options + +### all + +Type: `boolean` + +Format all projects + +### base + +Type: `string` + +Base of the current branch (usually main) + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +### help + +Type: `boolean` + +Show help + +### libs-and-apps + +Type: `boolean` + +Format only libraries and applications files. + +### projects + +Type: `string` + +Projects to format (comma/space delimited) + +### uncommitted + +Type: `boolean` + +Uncommitted changes + +### untracked + +Type: `boolean` + +Untracked changes + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/generate.md b/docs/generated/packages/nx/documents/generate.md new file mode 100644 index 0000000000000..9f37d3dbea1c5 --- /dev/null +++ b/docs/generated/packages/nx/documents/generate.md @@ -0,0 +1,104 @@ +--- +title: 'generate - CLI command' +description: 'Runs a generator that creates and/or modifies files based on a generator from a collection.' +--- + +# generate + +Runs a generator that creates and/or modifies files based on a generator from a collection. + +## Usage + +```shell +nx generate +``` + +```shell +nx g +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`. + +### Examples + +Generate a new Angular application: + +```shell +nx generate @nx/angular:app myapp +``` + +Generate a new React application: + +```shell +nx generate @nx/react:app myapp +``` + +Generate a new web component application: + +```shell +nx generate @nx/web:app myapp +``` + +Generate a new Node application: + +```shell +nx generate @nx/node:app myapp +``` + +Generate a new Angular library application: + +```shell +nx generate @nx/angular:library mylibrary +``` + +Generate a new React library application: + +```shell +nx generate @nx/react:library mylibrary +``` + +Generate a new Node library application: + +```shell +nx generate @nx/node:library mylibrary +``` + +## Options + +### defaults + +Default: `false` + +When true, disables interactive input prompts for options with a default. + +### dryRun + +Default: `false` + +When true, preview the changes without updating files. + +### force + +Default: `false` + +When true, forces overwriting of existing files. + +### interactive + +Default: `true` + +When false, disables interactive input prompts. + +### help + +Show help and display available generators in the default collection. + +### quiet + +Default: `false` + +When true, disables Nx specific logging related to running the generator or its outputs. + +### version + +Show version number diff --git a/docs/generated/packages/nx/documents/init.md b/docs/generated/packages/nx/documents/init.md new file mode 100644 index 0000000000000..c56f35d275066 --- /dev/null +++ b/docs/generated/packages/nx/documents/init.md @@ -0,0 +1,52 @@ +--- +title: 'init - CLI command' +description: 'Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up remote caching. For more info, check https://nx.dev/recipes/adopting-nx.' +--- + +# init + +Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up remote caching. For more info, check https://nx.dev/recipes/adopting-nx. + +## Usage + +```shell +nx init +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Options + +### help + +Type: `boolean` + +Show help + +### interactive + +Type: `boolean` + +Default: `true` + +When false disables interactive input prompts for options. + +### nxCloud + +Type: `boolean` + +Set up distributed caching with Nx Cloud. + +### useDotNxInstallation + +Type: `boolean` + +Default: `false` + +Initialize an Nx workspace setup in the .nx directory of the current repository. + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/list.md b/docs/generated/packages/nx/documents/list.md new file mode 100644 index 0000000000000..3811bd9663fad --- /dev/null +++ b/docs/generated/packages/nx/documents/list.md @@ -0,0 +1,50 @@ +--- +title: 'list - CLI command' +description: 'Lists installed plugins, capabilities of installed plugins and other available plugins.' +--- + +# list + +Lists installed plugins, capabilities of installed plugins and other available plugins. + +## Usage + +```shell +nx list [plugin] +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +List the plugins installed in the current workspace: + +```shell + nx list +``` + +List the generators and executors available in the `@nx/web` plugin if it is installed (If the plugin is not installed `nx` will show advice on how to add it to your workspace): + +```shell + nx list @nx/web +``` + +## Options + +### help + +Type: `boolean` + +Show help + +### plugin + +Type: `string` + +The name of an installed plugin to query + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/migrate.md b/docs/generated/packages/nx/documents/migrate.md new file mode 100644 index 0000000000000..f4a2d0f50e973 --- /dev/null +++ b/docs/generated/packages/nx/documents/migrate.md @@ -0,0 +1,156 @@ +--- +title: 'migrate - CLI command' +description: + 'Creates a migrations file or runs migrations from the migrations file. + - Migrate packages and create migrations.json (e.g., nx migrate @nx/workspace@latest) + - Run migrations (e.g., nx migrate --run-migrations=migrations.json). Use flag --if-exists to run migrations only if the migrations file exists.' +--- + +# migrate + +Creates a migrations file or runs migrations from the migrations file. + +- Migrate packages and create migrations.json (e.g., nx migrate @nx/workspace@latest) +- Run migrations (e.g., nx migrate --run-migrations=migrations.json). Use flag --if-exists to run migrations only if the migrations file exists. + +## Usage + +```shell +nx migrate [packageAndVersion] +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Update all Nx plugins to "latest". This will generate migrations.json: + +```shell + nx migrate latest +``` + +Update all Nx plugins to "9.0.0". This will generate migrations.json: + +```shell + nx migrate 9.0.0 +``` + +Update @nx/workspace and generate the list of migrations starting with version 8.0.0 of @nx/workspace and @nx/node, regardless of what is installed locally: + +```shell + nx migrate @nx/workspace@9.0.0 --from="@nx/workspace@8.0.0,@nx/node@8.0.0" +``` + +Update @nx/workspace to "9.0.0". If it tries to update @nx/react or @nx/angular, use version "9.0.1": + +```shell + nx migrate @nx/workspace@9.0.0 --to="@nx/react@9.0.1,@nx/angular@9.0.1" +``` + +Update another-package to "12.0.0". This will update other packages and will generate migrations.json file: + +```shell + nx migrate another-package@12.0.0 +``` + +Collect package updates and migrations in interactive mode. In this mode, the user will be prompted whether to apply any optional package update and migration: + +```shell + nx migrate latest --interactive +``` + +Collect package updates and migrations starting with version 14.5.0 of "nx" (and Nx first-party plugins), regardless of what is installed locally, while excluding migrations that should have been applied on previous updates: + +```shell + nx migrate latest --from=nx@14.5.0 --exclude-applied-migrations +``` + +Run migrations from the provided migrations.json file. You can modify migrations.json and run this command many times: + +```shell + nx migrate --run-migrations=migrations.json +``` + +Create a dedicated commit for each successfully completed migration. You can customize the prefix used for each commit by additionally setting --commit-prefix="PREFIX_HERE ": + +```shell + nx migrate --run-migrations --create-commits +``` + +## Options + +### commitPrefix + +Type: `string` + +Default: `chore: [nx migration] ` + +Commit prefix to apply to the commit for each migration, when --create-commits is enabled + +### createCommits + +Type: `boolean` + +Default: `false` + +Automatically create a git commit after each migration runs + +### excludeAppliedMigrations + +Type: `boolean` + +Default: `false` + +Exclude migrations that should have been applied on previous updates. To be used with --from + +### from + +Type: `string` + +Use the provided versions for packages instead of the ones installed in node_modules (e.g., --from="@nx/react@16.0.0,@nx/js@16.0.0") + +### help + +Type: `boolean` + +Show help + +### ifExists + +Type: `boolean` + +Default: `false` + +Run migrations only if the migrations file exists, if not continues successfully + +### interactive + +Type: `boolean` + +Default: `false` + +Enable prompts to confirm whether to collect optional package updates and migrations + +### packageAndVersion + +Type: `string` + +The target package and version (e.g, @nx/workspace@16.0.0) + +### runMigrations + +Type: `string` + +Execute migrations from a file (when the file isn't provided, execute migrations from migrations.json) + +### to + +Type: `string` + +Use the provided versions for packages instead of the ones calculated by the migrator (e.g., --to="@nx/react@16.0.0,@nx/js@16.0.0") + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/print-affected.md b/docs/generated/packages/nx/documents/print-affected.md new file mode 100644 index 0000000000000..934bcea45fe5b --- /dev/null +++ b/docs/generated/packages/nx/documents/print-affected.md @@ -0,0 +1,126 @@ +--- +title: 'print-affected - CLI command' +description: 'Prints information about the projects and targets affected by changes' +--- + +# print-affected + +**Deprecated:** Use `nx show projects --affected`, `nx affected --graph -t build` or `nx graph --affected` depending on which best suits your use case. The `print-affected` command will be removed in Nx 19. + +Prints information about the projects and targets affected by changes + +## Usage + +```shell +nx print-affected +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Print information about affected projects and the project graph: + +```shell + nx print-affected +``` + +Print information about the projects affected by the changes between main and HEAD (e.g,. PR): + +```shell + nx print-affected --base=main --head=HEAD +``` + +Prints information about the affected projects and a list of tasks to test them: + +```shell + nx print-affected -t test +``` + +Prints the projects property from the print-affected output: + +```shell + nx print-affected -t build --select=projects +``` + +Prints the tasks.target.project property from the print-affected output: + +```shell + nx print-affected -t build --select=tasks.target.project +``` + +## Options + +### base + +Type: `string` + +Base of the current branch (usually main) + +### configuration + +Type: `string` + +This is the configuration to use when performing tasks on projects + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +### help + +Type: `boolean` + +Show help + +### select + +Type: `string` + +Select the subset of the returned json document (e.g., --select=projects) + +### targets + +Type: `string` + +Tasks to run for affected projects + +### type + +Type: `string` + +Choices: [app, lib] + +Select the type of projects to be returned (e.g., --type=app) + +### uncommitted + +Type: `boolean` + +Uncommitted changes + +### untracked + +Type: `boolean` + +Untracked changes + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/release.md b/docs/generated/packages/nx/documents/release.md new file mode 100644 index 0000000000000..d1920df0d442c --- /dev/null +++ b/docs/generated/packages/nx/documents/release.md @@ -0,0 +1,390 @@ +--- +title: 'release - CLI command' +description: 'Orchestrate versioning and publishing of applications and libraries' +--- + +# release + +Orchestrate versioning and publishing of applications and libraries + +## Usage + +```shell +nx release +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Shared Options + +### dry-run + +Type: `boolean` + +Default: `false` + +Preview the changes without updating files/creating releases + +### first-release + +Type: `boolean` + +Indicates that this is the first release for the selected release group. If the current version cannot be determined as usual, the version on disk will be used as a fallback. This is useful when using git or the registry to determine the current version of packages, since those sources are only available after the first release. Also indicates that changelog generation should not assume a previous git tag exists and that publishing should not check for the existence of the package before running. + +### groups + +Type: `string` + +One or more release groups to target with the current command. + +### help + +Type: `boolean` + +Show help + +### projects + +Type: `string` + +Projects to run. (comma/space delimited project names and/or patterns) + +### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +### version + +Type: `boolean` + +Show version number + +## Subcommands + +### Base Command Options + +Create a version and release for the workspace, generate a changelog, and optionally publish the packages + +```shell +nx release [specifier] +``` + +#### Options + +##### help + +Type: `boolean` + +Show help + +##### skip-publish + +Type: `boolean` + +Skip publishing by automatically answering no to the confirmation prompt for publishing + +##### specifier + +Type: `string` + +Exact version or semver keyword to apply to the selected release group. + +##### version + +Type: `boolean` + +Show version number + +##### yes + +Type: `boolean` + +Automatically answer yes to the confirmation prompt for publishing + +### version + +Create a version and release for one or more applications and libraries + +```shell +nx release version [specifier] +``` + +#### Options + +##### git-commit + +Type: `boolean` + +Whether or not to automatically commit the changes made by this command + +##### git-commit-args + +Type: `string` + +Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes + +##### git-commit-message + +Type: `string` + +Custom git commit message to use when committing the changes made by this command. {version} will be dynamically interpolated when performing fixed releases, interpolated tags will be appended to the commit body when performing independent releases. + +##### git-tag + +Type: `boolean` + +Whether or not to automatically tag the changes made by this command + +##### git-tag-args + +Type: `string` + +Additional arguments to pass to the `git tag` command invoked behind the scenes + +##### git-tag-message + +Type: `string` + +Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself. + +##### help + +Type: `boolean` + +Show help + +##### preid + +Type: `string` + +The optional prerelease identifier to apply to the version, in the case that specifier has been set to prerelease. + +##### specifier + +Type: `string` + +Exact version or semver keyword to apply to the selected release group. + +##### stage-changes + +Type: `boolean` + +Whether or not to stage the changes made by this command. Always treated as true if git-commit is true. + +##### version + +Type: `boolean` + +Show version number + +### changelog + +Generate a changelog for one or more projects, and optionally push to Github + +```shell +nx release changelog [version] +``` + +#### Options + +##### from + +Type: `string` + +The git reference to use as the start of the changelog. If not set it will attempt to resolve the latest tag and use that + +##### git-commit + +Type: `boolean` + +Whether or not to automatically commit the changes made by this command + +##### git-commit-args + +Type: `string` + +Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes + +##### git-commit-message + +Type: `string` + +Custom git commit message to use when committing the changes made by this command. {version} will be dynamically interpolated when performing fixed releases, interpolated tags will be appended to the commit body when performing independent releases. + +##### git-remote + +Type: `string` + +Default: `origin` + +Alternate git remote in the form {user}/{repo} on which to create the Github release (useful for testing) + +##### git-tag + +Type: `boolean` + +Whether or not to automatically tag the changes made by this command + +##### git-tag-args + +Type: `string` + +Additional arguments to pass to the `git tag` command invoked behind the scenes + +##### git-tag-message + +Type: `string` + +Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself. + +##### help + +Type: `boolean` + +Show help + +##### interactive + +Type: `string` + +Choices: [all, workspace, projects] + +Interactively modify changelog markdown contents in your code editor before applying the changes. You can set it to be interactive for all changelogs, or only the workspace level, or only the project level + +##### stage-changes + +Type: `boolean` + +Whether or not to stage the changes made by this command. Always treated as true if git-commit is true. + +##### to + +Type: `string` + +Default: `HEAD` + +The git reference to use as the end of the changelog + +##### version + +Type: `string` + +The version to create a Github release and changelog for + +### publish + +Publish a versioned project to a registry + +```shell +nx release publish +``` + +#### Options + +##### all + +Type: `boolean` + +Default: `true` + +[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required. + +##### exclude + +Type: `string` + +Exclude certain projects from being processed + +##### graph + +Type: `string` + +Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. + +##### help + +Type: `boolean` + +Show help + +##### nxBail + +Type: `boolean` + +Default: `false` + +Stop command execution after the first failed task + +##### nxIgnoreCycles + +Type: `boolean` + +Default: `false` + +Ignore cycles in the task graph + +##### otp + +Type: `number` + +A one-time password for publishing to a registry that requires 2FA + +##### output-style + +Type: `string` + +Choices: [dynamic, static, stream, stream-without-prefixes] + +Defines how Nx emits outputs tasks logs + +##### parallel + +Type: `string` + +Max number of parallel processes [default is 3] + +##### projects + +Type: `string` + +Projects to run. (comma/space delimited project names and/or patterns) + +##### registry + +Type: `string` + +The registry to publish to + +##### runner + +Type: `string` + +This is the name of the tasks runner configured in nx.json + +##### skipNxCache + +Type: `boolean` + +Default: `false` + +Rerun the tasks even when the results are available in the cache + +##### tag + +Type: `string` + +The distribution tag to apply to the published package + +##### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +##### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/repair.md b/docs/generated/packages/nx/documents/repair.md new file mode 100644 index 0000000000000..e022cc9a76ae6 --- /dev/null +++ b/docs/generated/packages/nx/documents/repair.md @@ -0,0 +1,53 @@ +--- +title: 'repair - CLI command' +description: 'Repair any configuration that is no longer supported by Nx. + + Specifically, this will run every migration within the `nx` package + against the current repository. Doing so should fix any configuration + details left behind if the repository was previously updated to a new + Nx version without using `nx migrate`. + + If your repository has only ever updated to newer versions of Nx with + `nx migrate`, running `nx repair` should do nothing. + ' +--- + +# repair + +Repair any configuration that is no longer supported by Nx. + + Specifically, this will run every migration within the `nx` package + against the current repository. Doing so should fix any configuration + details left behind if the repository was previously updated to a new + Nx version without using `nx migrate`. + + If your repository has only ever updated to newer versions of Nx with + `nx migrate`, running `nx repair` should do nothing. + +## Usage + +```shell +nx repair +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +## Options + +### help + +Type: `boolean` + +Show help + +### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/report.md b/docs/generated/packages/nx/documents/report.md new file mode 100644 index 0000000000000..6b7e88a2901a7 --- /dev/null +++ b/docs/generated/packages/nx/documents/report.md @@ -0,0 +1,16 @@ +--- +title: 'report - CLI command' +description: 'Reports useful version numbers to copy into the Nx issue template' +--- + +# report + +Reports useful version numbers to copy into the Nx issue template + +## Usage + +```shell +nx report +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. diff --git a/docs/generated/packages/nx/documents/reset.md b/docs/generated/packages/nx/documents/reset.md new file mode 100644 index 0000000000000..7f036bb07d82d --- /dev/null +++ b/docs/generated/packages/nx/documents/reset.md @@ -0,0 +1,16 @@ +--- +title: 'reset - CLI command' +description: 'Clears all the cached Nx artifacts and metadata about the workspace and shuts down the Nx Daemon.' +--- + +# reset + +Clears all the cached Nx artifacts and metadata about the workspace and shuts down the Nx Daemon. + +## Usage + +```shell +nx reset +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. diff --git a/docs/generated/packages/nx/documents/run-many.md b/docs/generated/packages/nx/documents/run-many.md new file mode 100644 index 0000000000000..7feac45a42b82 --- /dev/null +++ b/docs/generated/packages/nx/documents/run-many.md @@ -0,0 +1,182 @@ +--- +title: 'run-many - CLI command' +description: 'Run target for multiple listed projects' +--- + +# run-many + +Run target for multiple listed projects + +## Usage + +```shell +nx run-many +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Test all projects: + +```shell + nx run-many -t test +``` + +Test proj1 and proj2 in parallel: + +```shell + nx run-many -t test -p proj1 proj2 +``` + +Test proj1 and proj2 in parallel using 5 workers: + +```shell + nx run-many -t test -p proj1 proj2 --parallel=5 +``` + +Test proj1 and proj2 in sequence: + +```shell + nx run-many -t test -p proj1 proj2 --parallel=false +``` + +Test all projects ending with `*-app` except `excluded-app`. Note: your shell may require you to escape the `*` like this: `\*`: + +```shell + nx run-many -t test --projects=*-app --exclude excluded-app +``` + +Test all projects with tags starting with `api-`. Note: your shell may require you to escape the `*` like this: `\*`: + +```shell + nx run-many -t test --projects=tag:api-* +``` + +Test all projects with a `type:ui` tag: + +```shell + nx run-many -t test --projects=tag:type:ui +``` + +Test all projects with a `type:feature` or `type:ui` tag: + +```shell + nx run-many -t test --projects=tag:type:feature,tag:type:ui +``` + +Run lint, test, and build targets for all projects. Requires Nx v15.4+: + +```shell + nx run-many --targets=lint,test,build +``` + +## Options + +### all + +Type: `boolean` + +Default: `true` + +[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required. + +### batch + +Type: `boolean` + +Default: `false` + +Run task(s) in batches for executors which support batches + +### configuration + +Type: `string` + +This is the configuration to use when performing tasks on projects + +### exclude + +Type: `string` + +Exclude certain projects from being processed + +### graph + +Type: `string` + +Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser. + +### help + +Type: `boolean` + +Show help + +### nxBail + +Type: `boolean` + +Default: `false` + +Stop command execution after the first failed task + +### nxIgnoreCycles + +Type: `boolean` + +Default: `false` + +Ignore cycles in the task graph + +### output-style + +Type: `string` + +Choices: [dynamic, static, stream, stream-without-prefixes] + +Defines how Nx emits outputs tasks logs + +### parallel + +Type: `string` + +Max number of parallel processes [default is 3] + +### projects + +Type: `string` + +Projects to run. (comma/space delimited project names and/or patterns) + +### runner + +Type: `string` + +This is the name of the tasks runner configured in nx.json + +### skipNxCache + +Type: `boolean` + +Default: `false` + +Rerun the tasks even when the results are available in the cache + +### targets + +Type: `string` + +Tasks to run for affected projects + +### verbose + +Type: `boolean` + +Prints additional information about the commands (e.g., stack traces) + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/documents/run.md b/docs/generated/packages/nx/documents/run.md new file mode 100644 index 0000000000000..82c9688f27f4b --- /dev/null +++ b/docs/generated/packages/nx/documents/run.md @@ -0,0 +1,44 @@ +--- +title: 'run - CLI command' +description: 'Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file.' +--- + +# run + +Runs a target defined for your project. Target definitions can be found in the `scripts` property of the project `package.json`, or in the `targets` property of the project `project.json` file. + +## Usage + +```shell +nx run [options] +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpx nx`. + +### Examples + +Run the `build` target for the `myapp` : + +```shell +nx run myapp:build +``` + +Run the `build` target for the `myapp` project with a `production` configuration: + +```shell +nx run myapp:build:production +``` + +## Options + +### configuration (-c) + +A named builder configuration, defined in the "configurations" section of the workspace configuration file. The builder uses the named configuration to run the given target. + +### help + +Show help + +### version + +Show version number diff --git a/docs/generated/packages/nx/documents/show.md b/docs/generated/packages/nx/documents/show.md new file mode 100644 index 0000000000000..c321d452b2bd0 --- /dev/null +++ b/docs/generated/packages/nx/documents/show.md @@ -0,0 +1,212 @@ +--- +title: 'show - CLI command' +description: 'Show information about the workspace (e.g., list of projects)' +--- + +# show + +Show information about the workspace (e.g., list of projects) + +## Usage + +```shell +nx show +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Show all projects in the workspace: + +```shell + nx show projects +``` + +Show all projects with names starting with "api-". The "projects" option is useful to see which projects would be selected by run-many.: + +```shell + nx show projects --projects api-* +``` + +Show all projects with a serve target: + +```shell + nx show projects --with-target serve +``` + +Show affected projects in the workspace: + +```shell + nx show projects --affected +``` + +Show affected apps in the workspace: + +```shell + nx show projects --affected --type app +``` + +Show affected projects in the workspace, excluding end-to-end projects: + +```shell + nx show projects --affected --exclude=*-e2e +``` + +Show detailed information about "my-app" in a json format.: + +```shell + nx show project my-app +``` + +Show information about "my-app" in a human readable format.: + +```shell + nx show project my-app --json false +``` + +Opens a web browser to explore the configuration of "my-app": + +```shell + nx show project my-app --web +``` + +## Shared Options + +### help + +Type: `boolean` + +Show help + +### json + +Type: `boolean` + +Output JSON + +### version + +Type: `boolean` + +Show version number + +## Subcommands + +### projects + +Show a list of projects in the workspace + +```shell +nx show projects +``` + +#### Options + +##### affected + +Type: `boolean` + +Show only affected projects + +##### base + +Type: `string` + +Base of the current branch (usually main) + +##### exclude + +Type: `string` + +Exclude certain projects from being processed + +##### files + +Type: `string` + +Change the way Nx is calculating the affected command by providing directly changed files, list of files delimited by commas or spaces + +##### head + +Type: `string` + +Latest commit of the current branch (usually HEAD) + +##### help + +Type: `boolean` + +Show help + +##### projects + +Type: `string` + +Show only projects that match a given pattern. + +##### type + +Type: `string` + +Choices: [app, lib, e2e] + +Select only projects of the given type + +##### uncommitted + +Type: `boolean` + +Uncommitted changes + +##### untracked + +Type: `boolean` + +Untracked changes + +##### version + +Type: `boolean` + +Show version number + +##### withTarget + +Type: `string` + +Show only projects that have a specific target + +### project + +Shows resolved project configuration for a given project. + +```shell +nx show project +``` + +#### Options + +##### help + +Type: `boolean` + +Show help + +##### projectName + +Type: `string` + +Which project should be viewed? + +##### version + +Type: `boolean` + +Show version number + +##### web + +Type: `boolean` + +Show project details in the browser diff --git a/docs/generated/packages/nx/documents/view-logs.md b/docs/generated/packages/nx/documents/view-logs.md new file mode 100644 index 0000000000000..0975edec251ed --- /dev/null +++ b/docs/generated/packages/nx/documents/view-logs.md @@ -0,0 +1,16 @@ +--- +title: 'view-logs - CLI command' +description: 'Enables you to view and interact with the logs via the advanced analytic UI from Nx Cloud to help you debug your issue. To do this, Nx needs to connect your workspace to Nx Cloud and upload the most recent run details. Only the metrics are uploaded, not the artefacts.' +--- + +# view-logs + +Enables you to view and interact with the logs via the advanced analytic UI from Nx Cloud to help you debug your issue. To do this, Nx needs to connect your workspace to Nx Cloud and upload the most recent run details. Only the metrics are uploaded, not the artefacts. + +## Usage + +```shell +nx view-logs +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. diff --git a/docs/generated/packages/nx/documents/watch.md b/docs/generated/packages/nx/documents/watch.md new file mode 100644 index 0000000000000..5fb31bdeb6a8b --- /dev/null +++ b/docs/generated/packages/nx/documents/watch.md @@ -0,0 +1,74 @@ +--- +title: 'watch - CLI command' +description: 'Watch for changes within projects, and execute commands' +--- + +# watch + +Watch for changes within projects, and execute commands + +## Usage + +```shell +nx watch +``` + +Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`. + +### Examples + +Watch the "app" project and echo the project name and the files that changed: + +```shell + nx watch --projects=app -- echo \$NX_PROJECT_NAME \$NX_FILE_CHANGES +``` + +Watch "app1" and "app2" and echo the project name whenever a specified project or its dependencies change: + +```shell + nx watch --projects=app1,app2 --includeDependentProjects -- echo \$NX_PROJECT_NAME +``` + +Watch all projects (including newly created projects) in the workspace: + +```shell + nx watch --all -- echo \$NX_PROJECT_NAME +``` + +## Options + +### all + +Type: `boolean` + +Watch all projects. + +### help + +Type: `boolean` + +Show help + +### includeDependentProjects + +Type: `boolean` + +When watching selected projects, include dependent projects as well. + +### projects + +Type: `string` + +Projects to watch (comma/space delimited). + +### verbose + +Type: `boolean` + +Run watch mode in verbose mode, where commands are logged before execution. + +### version + +Type: `boolean` + +Show version number diff --git a/docs/generated/packages/nx/executors/noop.json b/docs/generated/packages/nx/executors/noop.json new file mode 100644 index 0000000000000..767dddbcf9146 --- /dev/null +++ b/docs/generated/packages/nx/executors/noop.json @@ -0,0 +1,20 @@ +{ + "name": "noop", + "implementation": "/packages/nx/src/executors/noop/noop.impl.ts", + "schema": { + "version": 2, + "title": "Noop", + "description": "An executor that does nothing.", + "type": "object", + "cli": "nx", + "outputCapture": "pipe", + "properties": {}, + "additionalProperties": true, + "presets": [] + }, + "description": "An executor that does nothing", + "aliases": [], + "hidden": false, + "path": "/packages/nx/src/executors/noop/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/nx/executors/run-commands.json b/docs/generated/packages/nx/executors/run-commands.json new file mode 100644 index 0000000000000..b4717441fd944 --- /dev/null +++ b/docs/generated/packages/nx/executors/run-commands.json @@ -0,0 +1,135 @@ +{ + "name": "run-commands", + "implementation": "/packages/nx/src/executors/run-commands/run-commands.impl.ts", + "schema": { + "version": 2, + "title": "Run Commands", + "description": "Run any custom commands with Nx.", + "type": "object", + "cli": "nx", + "outputCapture": "pipe", + "presets": [ + { "name": "Arguments forwarding", "keys": ["commands"] }, + { "name": "Custom done conditions", "keys": ["commands", "readyWhen"] }, + { "name": "Setting the cwd", "keys": ["commands", "cwd"] } + ], + "properties": { + "commands": { + "type": "array", + "description": "Commands to run in child process.", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "command": { + "type": "string", + "description": "Command to run in child process." + }, + "forwardAllArgs": { + "type": "boolean", + "description": "Whether arguments should be forwarded when interpolation is not present." + }, + "prefix": { + "type": "string", + "description": "Prefix in front of every line out of the output" + }, + "color": { + "type": "string", + "description": "Color of the output", + "enum": [ + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white" + ] + }, + "bgColor": { + "type": "string", + "description": "Background color of the output", + "enum": [ + "bgBlack", + "bgRed", + "bgGreen", + "bgYellow", + "bgBlue", + "bgMagenta", + "bgCyan", + "bgWhite" + ] + }, + "description": { + "type": "string", + "description": "An optional description useful for inline documentation purposes. It is not used as part of the execution of the command." + } + }, + "additionalProperties": false, + "required": ["command"] + }, + { "type": "string" } + ] + }, + "x-priority": "important" + }, + "command": { + "type": "string", + "description": "Command to run in child process.", + "x-priority": "important" + }, + "parallel": { + "type": "boolean", + "description": "Run commands in parallel.", + "default": true, + "x-priority": "important" + }, + "readyWhen": { + "type": "string", + "description": "String to appear in `stdout` or `stderr` that indicates that the task is done. When running multiple commands, this option can only be used when `parallel` is set to `true`. If not specified, the task is done when all the child processes complete." + }, + "args": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Extra arguments. You can pass them as follows: nx run project:target --args='--wait=100'. You can then use {args.wait} syntax to interpolate them in the workspace config file. See example [above](#chaining-commands-interpolating-args-and-setting-the-cwd)" + }, + "envFile": { + "type": "string", + "description": "You may specify a custom .env file path." + }, + "color": { + "type": "boolean", + "description": "Use colors when showing output of command.", + "default": false + }, + "cwd": { + "type": "string", + "description": "Current working directory of the commands. If it's not specified the commands will run in the workspace root, if a relative path is specified the commands will run in that path relative to the workspace root and if it's an absolute path the commands will run in that path." + }, + "env": { + "type": "object", + "description": "Environment variables that will be made available to the commands. This property has priority over the `.env` files.", + "additionalProperties": { "type": "string" } + }, + "__unparsed__": { + "hidden": true, + "type": "array", + "items": { "type": "string" }, + "$default": { "$source": "unparsed" }, + "x-priority": "internal" + } + }, + "additionalProperties": true, + "oneOf": [{ "required": ["commands"] }, { "required": ["command"] }], + "examplesFile": "`project.json`:\n\n```json\n{\n // ...\n \"targets\": {\n //...\n \"ls-project-root\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"ls apps/frontend/src\"\n }\n }\n }\n}\n```\n\n```bash\nnx run frontend:ls-project-root\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Chaining commands\" %}\n\nThe `commands` option accepts as many commands as you want. By default, they all run in parallel.\nYou can run them sequentially by setting `parallel: false`:\n\n```json\n\"create-script\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"commands\": [\n \"mkdir -p apps/frontend/scripts\",\n \"touch apps/frontend/scripts/my-script.sh\",\n \"chmod +x apps/frontend/scripts/my-script.sh\"\n ],\n \"parallel\": false\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Setting the cwd\" %}\n\nBy setting the `cwd` option, each command will run in the `apps/frontend` folder.\n\n```json\n\"create-script\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"cwd\": \"apps/frontend\",\n \"commands\": [\n \"mkdir -p scripts\",\n \"touch scripts/my-script.sh\",\n \"chmod +x scripts/my-script.sh\"\n ],\n \"parallel\": false\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Interpolating Args\" %}\n\nYou can use custom arguments in your scripts with `{args.[someFlag]}`:\n\n```json\n\"create-script\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"cwd\": \"apps/frontend\",\n \"commands\": [\n \"mkdir -p scripts\",\n \"touch scripts/{args.name}.sh\",\n \"chmod +x scripts/{args.name}.sh\"\n ],\n \"parallel\": false\n }\n}\n```\n\nWe run the above with:\n\n```bash\nnx run frontend:create-script --args=\"--name=example\"\n```\n\nor simply with:\n\n```bash\nnx run frontend:create-script --name=example\n```\n\n{% /tab %}\n{% tab label=\"Arguments forwarding\" %}\nWhen interpolation is not present in the command, all arguments are forwarded to the command by default.\n\nThis is useful when you need to pass raw argument strings to your command.\n\nFor example, when you run:\n\n```bash\nnx run frontend:webpack --args=\"--config=example.config.js\"\n```\n\n```json\n\"webpack\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"webpack\"\n }\n}\n```\n\nThe above command will execute: `webpack --config=example.config.js`\n\nThis functionality can be disabled by using `commands` and expanding each `command` into an object\nthat sets the `forwardAllArgs` option to `false` as shown below:\n\n```json\n\"webpack\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"commands\": [\n {\n \"command\": \"webpack\",\n \"forwardAllArgs\": false\n }\n ]\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Shorthand\" %}\nWhen you only need to run a single command, you can use a shorthand for nx:run-commands:\n\n```json\n\"webpack\": {\n \"command\": \"webpack\"\n}\n```\n\n{% /tab %}\n{% tab label=\"Custom done conditions\" %}\n\nNormally, `run-commands` considers the commands done when all of them have finished running. If you don't need to wait until they're all done, you can set a special string that considers the commands finished the moment the string appears in `stdout` or `stderr`:\n\n```json\n\"finish-when-ready\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"commands\": [\n \"sleep 5 && echo 'FINISHED'\",\n \"echo 'READY'\"\n ],\n \"readyWhen\": \"READY\",\n \"parallel\": true\n }\n}\n```\n\n```bash\nnx run frontend:finish-when-ready\n```\n\nThe above commands will finish immediately, instead of waiting for 5 seconds.\n{% /tab %}\n{% tab label=\"Nx Affected\" %}\n\nThe true power of `run-commands` comes from the fact that it runs through `nx`, which knows about your project graph. So you can run **custom commands** only for the projects that have been affected by a change.\n\nWe can create some configurations to generate docs, and if run using `nx affected`, it will only generate documentation for the projects that have been changed:\n\n```bash\nnx affected --target=generate-docs\n```\n\n```json\n//...\n\"frontend\": {\n \"targets\": {\n //...\n \"generate-docs\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"npx compodoc -p apps/frontend/tsconfig.app.json\"\n }\n }\n }\n},\n\"api\": {\n \"targets\": {\n //...\n \"generate-docs\": {\n \"executor\": \"nx:run-commands\",\n \"options\": {\n \"command\": \"npx compodoc -p apps/api/tsconfig.app.json\"\n }\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" + }, + "description": "Run any custom commands with Nx.", + "aliases": [], + "hidden": false, + "path": "/packages/nx/src/executors/run-commands/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/nx/executors/run-script.json b/docs/generated/packages/nx/executors/run-script.json new file mode 100644 index 0000000000000..04ba275016d75 --- /dev/null +++ b/docs/generated/packages/nx/executors/run-script.json @@ -0,0 +1,34 @@ +{ + "name": "run-script", + "implementation": "/packages/nx/src/executors/run-script/run-script.impl.ts", + "schema": { + "version": 2, + "title": "Run Script", + "description": "Run any NPM script of a project in the project's root directory.", + "type": "object", + "cli": "nx", + "outputCapture": "pipe", + "properties": { + "script": { + "type": "string", + "description": "An npm script name in the `package.json` file of the project (e.g., `build`)." + }, + "__unparsed__": { + "hidden": true, + "type": "array", + "items": { "type": "string" }, + "$default": { "$source": "unparsed" }, + "x-priority": "internal" + } + }, + "additionalProperties": true, + "required": ["script"], + "examplesFile": "`workspace.json`:\n\n```json\n\"frontend\": {\n \"root\": \"packages/frontend\",\n \"targets\": {\n \"build\": {\n \"executor\": \"nx:run-script\",\n \"options\": {\n \"script\": \"build-my-project\"\n }\n }\n }\n}\n```\n\n```bash\nnx run frontend:build\n```\n\nThe `build` target is going to run `npm run build-my-project` (or `yarn build-my-project`) in the `packages/frontend` directory.\n\n#### Caching Artifacts\n\nBy default, Nx is going to cache `dist/packages/frontend`, `packages/frontend/dist`, `packages/frontend/build`, `packages/frontend/public`. If your npm script writes files to other places, you can override the list of cached outputs as follows:\n\n```json\n\"frontend\": {\n \"root\": \"packages/frontend\",\n \"targets\": {\n \"build\": {\n \"executor\": \"nx:run-script\",\n \"outputs\": [\"{projectRoot}/dist\", \"{projectRoot}/docs\"],\n \"options\": {\n \"script\": \"build-my-project\"\n }\n }\n }\n}\n```\n", + "presets": [] + }, + "description": "Run an NPM script using Nx.", + "aliases": [], + "hidden": false, + "path": "/packages/nx/src/executors/run-script/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/nx/generators/connect-to-nx-cloud.json b/docs/generated/packages/nx/generators/connect-to-nx-cloud.json new file mode 100644 index 0000000000000..c9c3e2eff6933 --- /dev/null +++ b/docs/generated/packages/nx/generators/connect-to-nx-cloud.json @@ -0,0 +1,39 @@ +{ + "name": "connect-to-nx-cloud", + "factory": "./src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud", + "schema": { + "$schema": "https://json-schema.org/schema", + "id": "NxCloudInit", + "title": "Add Nx Cloud Configuration to the workspace", + "description": "Connect a workspace to Nx Cloud.", + "type": "object", + "cli": "nx", + "properties": { + "analytics": { + "type": "boolean", + "description": "Anonymously store hashed machine ID for task runs", + "default": false + }, + "installationSource": { + "type": "string", + "description": "Name of Nx Cloud installation invoker (ex. user, add-nx-to-monorepo, create-nx-workspace, nx-upgrade", + "default": "user" + }, + "hideFormatLogs": { + "type": "boolean", + "description": "Hide formatting logs", + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": [], + "presets": [] + }, + "description": "Connect a workspace to Nx Cloud", + "x-hidden": true, + "implementation": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.ts", + "aliases": [], + "hidden": false, + "path": "/packages/nx/src/nx-cloud/generators/connect-to-nx-cloud/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/playwright/documents/overview.md b/docs/generated/packages/playwright/documents/overview.md new file mode 100644 index 0000000000000..27371af3b10f9 --- /dev/null +++ b/docs/generated/packages/playwright/documents/overview.md @@ -0,0 +1,256 @@ +--- +title: Overview of the Nx Playwright Plugin +description: The Nx Plugin for Playwright contains executors and generators that support e2e testing with Playwright. This page also explains how to configure Playwright on your Nx workspace. +--- + +Playwright is a modern web test runner. With included features such as: + +- Cross browser support, including mobile browsers +- Multi tab, origin, and user support +- Automatic waiting +- Test generation +- Screenshots and videos + +## Setting Up @nx/playwright + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/playwright` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/playwright` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/playwright +``` + +This will install the correct version of `@nx/playwright`. + +### How @nx/playwright Infers Tasks + +The `@nx/playwright` plugin will create a task for any project that has a Playwright configuration file present. Any of the following files will be recognized as a Playwright configuration file: + +- `playwright.config.js` +- `playwright.config.ts` +- `playwright.config.mjs` +- `playwright.config.mts` +- `playwright.config.cjs` +- `playwright.config.cts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/playwright Configuration + +The `@nx/playwright/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/playwright/plugin", + "options": { + "ciTargetName": "e2e-ci", + "targetName": "e2e" + } + } + ] +} +``` + +The `targetName` and `ciTargetName` options control the name of the inferred Playwright tasks. The default names are `e2e` and `e2e-ci`. + +### Splitting E2E tasks by file + +The `@nx/playwright/plugin` will automatically split your e2e tasks by file. You can read more about this feature [here](/ci/features/split-e2e-tasks). + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/playwright` package with your package manager. + +```shell {% skipRescope=true %} +npm add -D @nx/playwright +``` + +{% /tab %} +{% /tabs %} + +## E2E Testing + +By default, when creating a new frontend application, Nx will prompt for which e2e test runner to use. Select `playwright` or pass in the arg `--e2eTestRunner=playwright` + +```shell +nx g @nx/web:app frontend --e2eTestRunner=playwright +``` + +### Add Playwright e2e to an existing project + +To generate an E2E project for an existing project, run the following generator + +```shell +nx g @nx/playwright:configuration --project=your-app-name +``` + +Optionally, you can use the `--webServerCommand` and `--webServerAddress` option, to auto setup the [web server option](https://playwright.dev/docs/test-webserver) in the playwright config + +```shell +nx g @nx/playwright:configuration --project=your-app-name --webServerCommand="npx serve your-project-name" --webServerAddress="http://localhost:4200" +``` + +### Testing Applications + +Run `nx e2e ` to execute e2e tests with Playwright + +{% callout type="note" title="Selecting Specific Specs" %} + +You can use the `--grep/-g` flag to glob for test files. +You can use the `--grepInvert/-gv` flag to glob for files to _not_ run. + +```bash +# run the tests in the feat-a/ directory +nx e2e frontend-e2e --grep="**feat-a/**" + +# run everything except feat-a/ directory +nx e2e frontend-e2e --grepInvert=**feat-a/** +``` + +{% /callout %} + +By default, Playwright will run in headless mode. You will have the result of all the tests and errors (if any) in your +terminal. Test output such as reports, screenshots and videos, will be accessible in `dist/.playwright/apps//`. This can be configured with the `outputDir` configuration options. + +{% callout type="note" title="Output Caching" %} +If changing the output directory or report output, make sure to update the [target outputs](/concepts/how-caching-works#what-is-cached) so the artifacts are correctly cached +{% /callout %} + +### Watching for Changes + +With, `nx e2e frontend-e2e --ui` Playwright will start in headed mode where you can see your application being tested. + +From, there you can toggle on the watch icon which will rerun the tests when the spec file updates. + +```shell +nx e2e --ui +``` + +You can also use `--headed` flag to run Playwright where the browser can be seen without using the [Playwright UI](https://playwright.dev/docs/test-ui-mode) + +### Specifying a Base Url + +The `baseURL` property within the Playwright configuration can control where the tests visit by default. + +```ts +import { defineConfig } from '@playwright/test'; + +export default defineConfig({ + // Rest of your config... + + // Run your local dev server before starting the tests + webServer: { + command: 'npx serve ', + url: 'http://localhost:4200', + reuseExistingServer: !process.env.CI, + }, + use: { + baseURL: 'http://localhost:4200', // url playwright visits with `await page.goto('/')`; + }, +}); +``` + +In order to set different `baseURL` values for different environments you can pass them via the [environment variables and nx configurations](/recipes/tips-n-tricks/define-environment-variables) or optionally via setting them per the environment they are needed in such as `CI` + +```ts +import { defineConfig } from '@playwright/test'; + +const baseUrl = + process.env.BASE_URL ?? process.env.CI + ? 'https://some-staging-url.example.com' + : 'http://localhost:4200'; + +export default defineConfig({ + // Rest of your config... + + // Run your local dev server before starting the tests + webServer: { + command: 'npx serve ', + url: baseUrl, + reuseExistingServer: !process.env.CI, + }, + use: { + baseURL: baseUrl, // url playwright visits with `await page.goto('/')`; + }, +}); +``` + +By default Nx, provides a `nxE2EPreset` with predefined configuration for Playwright. + +```ts +import { defineConfig } from '@playwright/test'; +import { nxE2EPreset } from '@nx/playwright/preset'; +import { workspaceRoot } from '@nx/devkit'; + +// For CI, you may want to set BASE_URL to the deployed application. +const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + ...nxE2EPreset(__filename, { testDir: './e2e' }), + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + baseURL, + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + /* Run your local dev server before starting the tests */ + webServer: { + command: 'npx nx serve ', + url: baseURL, + reuseExistingServer: !process.env.CI, + cwd: workspaceRoot, + }, +}); +``` + +This preset sets up the `outputDir` and [HTML reporter](https://playwright.dev/docs/test-reporters#html-reporter) to output in `dist/.playwright/` and sets up chromium, firefox, webkit browsers to be used a browser targets. If you want to use mobile and/or branded browsers you can pass those options into the preset function + +```ts +export default defineConfig({ + ...nxE2EPreset(__filename, { + testDir: './e2e', + includeMobileBrowsers: true, // includes mobile Chrome and Safari + includeBrandedBrowsers: true, // includes Google Chrome and Microsoft Edge + }), + // other settings +}); +``` + +If you want to override any settings within the `nxE2EPreset`, You can define them after the preset like so + +```ts +const config = nxE2EPreset(__filename, { + testDir: './e2e', + includeMobileBrowsers: true, // includes mobile Chrome and Safari + includeBrandedBrowsers: true, // includes Google Chrome and Microsoft Edge +}); +export default defineConfig({ + ...config + retries: 3, + reporters: [...config.reporters, /* other reporter settings */], +}); +``` + +See the [Playwright configuration docs](https://playwright.dev/docs/test-configuration) for more options for Playwright. diff --git a/docs/generated/packages/playwright/executors/playwright.json b/docs/generated/packages/playwright/executors/playwright.json new file mode 100644 index 0000000000000..5cb06ef6e27ae --- /dev/null +++ b/docs/generated/packages/playwright/executors/playwright.json @@ -0,0 +1,174 @@ +{ + "name": "playwright", + "implementation": "/packages/playwright/src/executors/playwright/playwright.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "title": "Playwright executor", + "description": "Run Playwright tests.", + "type": "object", + "properties": { + "browser": { + "type": "string", + "description": "Browser to use for tests, one of 'all', 'chromium', 'firefox' or 'webkit'. If a playwright config is provided/discovered then the browserName value is expected from the configured 'projects'", + "x-priority": "important" + }, + "config": { + "type": "string", + "description": "Configuration file, or a test directory with optional", + "x-completion-type": "file", + "x-completion-glob": "playwright?(*)@(.js|.cjs|.mjs|.ts|.cts|.mtx)", + "x-priority": "important" + }, + "debug": { + "type": "boolean", + "description": "Run tests with Playwright Inspector. Shortcut for 'PWDEBUG=1' environment variable and '--timeout=0',--max-failures=1 --headed --workers=1' options" + }, + "forbidOnly": { + "type": "boolean", + "description": "Fail if test.only is called" + }, + "fullyParallel": { + "type": "boolean", + "description": "Run all tests in parallel" + }, + "grep": { + "alias": "g", + "type": "string", + "description": "Only run tests matching this regular expression" + }, + "globalTimeout": { + "type": "number", + "description": "Maximum time this test suite can run in milliseconds" + }, + "grepInvert": { + "alias": "gv", + "type": "string", + "description": "Only run tests that do not match this regular expression" + }, + "testFiles": { + "alias": "t", + "type": "array", + "description": "Test files to run", + "items": { "type": "string" } + }, + "headed": { + "type": "boolean", + "description": "Run tests in headed browsers", + "x-priority": "important" + }, + "ignoreSnapshots": { + "type": "boolean", + "description": "Ignore screenshot and snapshot expectations" + }, + "workers": { + "alias": "j", + "type": "string", + "description": "Number of concurrent workers or percentage of logical CPU cores, use 1 to run in a single worker" + }, + "list": { + "type": "boolean", + "description": "Collect all the tests and report them, but do not run" + }, + "maxFailures": { + "alias": "x", + "oneOf": [{ "type": "number" }, { "type": "boolean" }], + "description": "Stop after the first N failures" + }, + "noDeps": { + "type": "boolean", + "description": "Do not run project dependencies" + }, + "output": { + "type": "string", + "description": "Folder for output artifacts" + }, + "passWithNoTests": { + "type": "boolean", + "description": "Makes test run succeed even if no tests were found", + "default": true + }, + "project": { + "description": "Only run tests from the specified list of projects", + "type": "array", + "items": { "type": "string" } + }, + "quiet": { + "alias": "q", + "type": "boolean", + "description": "Suppress stdio" + }, + "repeatEach": { + "type": "number", + "description": "Run each test N times" + }, + "reporter": { + "type": "string", + "enum": [ + "list", + "line", + "dot", + "json", + "junit", + "null", + "github", + "html", + "blob" + ], + "description": "Reporter to use, comma-separated, can be 'list', 'line', 'dot', 'json', 'junit', 'null', 'github', 'html', 'blob'. To configure reporter options, use the playwright configuration." + }, + "retries": { + "type": "number", + "description": "Maximum retry count for flaky tests, zero for no retries" + }, + "shard": { + "type": "string", + "description": "Shard tests and execute only the selected shard, specify in the form 'current/all', 1-based, for example '3/5'" + }, + "timeout": { + "type": "number", + "description": "Specify test timeout threshold in milliseconds, zero for unlimited" + }, + "trace": { + "type": "string", + "enum": [ + "on", + "off", + "on-first-retry", + "on-all-retries", + "retain-on-failure" + ], + "description": "Force tracing mode, can be 'on', 'off', 'on-first-retry', 'on-all-retries', 'retain-on-failure'" + }, + "updateSnapshots": { + "alias": "u", + "type": "boolean", + "description": "Update snapshots with actual results. Snapshots will be created if missing." + }, + "ui": { + "type": "boolean", + "description": "Run tests in interactive UI mode" + }, + "uiHost": { + "type": "string", + "description": "Host to serve UI on; specifying this option opens UI in a browser tab" + }, + "uiPort": { + "type": "string", + "description": "Port to serve UI on, 0 for any free port; specifying this option opens UI in a browser tab" + }, + "skipInstall": { + "type": "boolean", + "description": "Skip running playwright install before running playwright tests. This is to ensure that playwright browsers are installed before running tests.", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Run Playwright tests.", + "aliases": [], + "hidden": false, + "path": "/packages/playwright/src/executors/playwright/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/playwright/generators/configuration.json b/docs/generated/packages/playwright/generators/configuration.json new file mode 100644 index 0000000000000..a354fdcb4d228 --- /dev/null +++ b/docs/generated/packages/playwright/generators/configuration.json @@ -0,0 +1,82 @@ +{ + "name": "configuration", + "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxPlaywrightConfiguration", + "description": "Add a Playwright configuration.", + "title": "Add a Playwright configuration", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The project to add a Playwright configuration to.", + "$default": { "$source": "projectName" }, + "x-priority": "important", + "x-prompt": "What is the name of the project to set up Playwright for?" + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed relative from the project root.", + "x-priority": "important", + "default": "e2e" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "webServerCommand": { + "type": "string", + "description": "The command to start the web server." + }, + "webServerAddress": { + "type": "string", + "description": "The address of the web server." + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "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 + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "rootProject": { + "description": "Create a application at the root of the workspace", + "type": "boolean", + "default": false, + "hidden": true, + "x-priority": "internal" + }, + "skipInstall": { + "type": "boolean", + "description": "Skip running `playwright install`. This is to ensure that playwright browsers are installed.", + "default": false + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Add Nx Playwright configuration to your project", + "implementation": "/packages/playwright/src/generators/configuration/configuration#configurationGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/playwright/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/playwright/generators/init.json b/docs/generated/packages/playwright/generators/init.json new file mode 100644 index 0000000000000..c705ebc0c5c9b --- /dev/null +++ b/docs/generated/packages/playwright/generators/init.json @@ -0,0 +1,45 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#initGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxPlaywrightInit", + "title": "Playwright Init Generator", + "description": "Initializes a Playwright project in the current workspace.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initializes a Playwright project in the current workspace", + "implementation": "/packages/playwright/src/generators/init/init#initGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/playwright/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/documents/overview.md b/docs/generated/packages/plugin/documents/overview.md new file mode 100644 index 0000000000000..30179db3dae2c --- /dev/null +++ b/docs/generated/packages/plugin/documents/overview.md @@ -0,0 +1,5 @@ +Nx plugins are npm packages that contain [generators](/features/generate-code) and [executors](/concepts/executors-and-configurations) to extend a Nx workspace. + +This package contains tooling to help plugin authors create and maintain plugins. + +For more information, see the [plugins](/extending-nx/intro/getting-started) section of docs. diff --git a/docs/generated/packages/plugin/executors/e2e.json b/docs/generated/packages/plugin/executors/e2e.json new file mode 100644 index 0000000000000..e6c2f25dc2315 --- /dev/null +++ b/docs/generated/packages/plugin/executors/e2e.json @@ -0,0 +1,209 @@ +{ + "name": "e2e", + "implementation": "/packages/plugin/src/executors/e2e/e2e.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Nx Plugin Playground Target", + "description": "Creates a playground for a Nx Plugin.", + "cli": "nx", + "type": "object", + "properties": { + "target": { + "description": "The build target for the Nx Plugin project.", + "type": "string", + "x-priority": "important" + }, + "jestConfig": { + "type": "string", + "description": "Jest config file.", + "x-completion-type": "file", + "x-completion-glob": "jest.config@(.js|.ts)", + "x-priority": "important" + }, + "tsSpecConfig": { + "type": "string", + "description": "The tsconfig file for specs.", + "x-deprecated": "Use the `tsconfig` property for `ts-jest` in the e2e project `jest.config.js` file. It will be removed in the next major release.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "codeCoverage": { + "description": "Indicates that test coverage information should be collected and reported in the output. (https://jestjs.io/docs/cli#--coverageboolean)", + "type": "boolean", + "aliases": ["coverage"] + }, + "config": { + "description": "The path to a Jest config file specifying how to find and execute tests. If no `rootDir` is set in the config, the directory containing the config file is assumed to be the `rootDir` for the project. This can also be a JSON-encoded value which Jest will use as configuration.", + "type": "string" + }, + "clearCache": { + "description": "Deletes the Jest cache directory and then exits without running tests. Will delete Jest's default cache directory. _Note: clearing the cache will reduce performance_.", + "type": "boolean" + }, + "detectOpenHandles": { + "description": "Attempt to collect and print open handles preventing Jest from exiting cleanly (https://jestjs.io/docs/cli#--detectopenhandles)", + "type": "boolean" + }, + "logHeapUsage": { + "description": "Logs the heap usage after every test. Useful to debug memory leaks. Use together with --runInBand and --expose-gc in node.", + "type": "boolean" + }, + "detectLeaks": { + "description": "**EXPERIMENTAL**: Detect memory leaks in tests. After executing a test, it will try to garbage collect the global object used, and fail if it was leaked", + "type": "boolean" + }, + "testFile": { + "description": "The name of the file to test.", + "type": "string", + "x-completion-type": "file", + "x-completion-glob": "**/*.+(spec|test).+(ts|js)" + }, + "tsConfig": { + "description": "The name of the Typescript configuration file. Set the tsconfig option in the jest config file. ", + "type": "string", + "x-deprecated": "Use the ts-jest configuration options in the jest config file instead." + }, + "setupFile": { + "description": "The name of a setup file used by Jest. (use Jest config file https://jestjs.io/docs/en/configuration#setupfilesafterenv-array)", + "type": "string", + "x-deprecated": "Use the setupFilesAfterEnv option in the jest config file. https://jestjs.io/docs/en/configuration#setupfilesafterenv-array" + }, + "bail": { + "alias": "b", + "description": "Exit the test suite immediately after `n` number of failing tests. (https://jestjs.io/docs/cli#--bail)", + "oneOf": [{ "type": "number" }, { "type": "boolean" }] + }, + "ci": { + "description": "Whether to run Jest in continuous integration (CI) mode. This option is on by default in most popular CI environments. It will prevent snapshots from being written unless explicitly requested. (https://jestjs.io/docs/cli#--ci)", + "type": "boolean" + }, + "color": { + "alias": "colors", + "description": "Forces test results output color highlighting (even if `stdout` is not a TTY). Set to false if you would like to have no colors. (https://jestjs.io/docs/cli#--colors)", + "type": "boolean" + }, + "findRelatedTests": { + "description": "Find and run the tests that cover a comma separated list of source files that were passed in as arguments. (https://jestjs.io/docs/cli#--findrelatedtests-spaceseparatedlistofsourcefiles)", + "type": "string" + }, + "json": { + "description": "Prints the test results in `JSON`. This mode will send all other test output and user messages to `stderr`. (https://jestjs.io/docs/cli#--json)", + "type": "boolean" + }, + "maxWorkers": { + "alias": "w", + "description": "Specifies the maximum number of workers the worker-pool will spawn for running tests. This defaults to the number of the cores available on your machine. Useful for CI. (its usually best not to override this default) (https://jestjs.io/docs/cli#--maxworkersnumstring)", + "oneOf": [{ "type": "number" }, { "type": "string" }] + }, + "onlyChanged": { + "alias": "o", + "description": "Attempts to identify which tests to run based on which files have changed in the current repository. Only works if you're running tests in a `git` or `hg` repository at the moment. (https://jestjs.io/docs/cli#--onlychanged)", + "type": "boolean" + }, + "changedSince": { + "description": "Runs tests related to the changes since the provided branch or commit hash. If the current branch has diverged from the given branch, then only changes made locally will be tested. (https://jestjs.io/docs/cli#--changedsince)", + "type": "string" + }, + "outputFile": { + "description": "Write test results to a file when the `--json` option is also specified. (https://jestjs.io/docs/cli#--outputfilefilename)", + "type": "string" + }, + "passWithNoTests": { + "description": "Will not fail if no tests are found (for example while using `--testPathPattern`.) (https://jestjs.io/docs/cli#--passwithnotests)", + "type": "boolean" + }, + "runInBand": { + "alias": "i", + "description": "Run all tests serially in the current process (rather than creating a worker pool of child processes that run tests). This is sometimes useful for debugging, but such use cases are pretty rare. Useful for CI. (https://jestjs.io/docs/cli#--runinband)", + "type": "boolean", + "default": true + }, + "showConfig": { + "description": "Print your Jest config and then exits. (https://jestjs.io/docs/en/cli#--showconfig)", + "type": "boolean" + }, + "silent": { + "description": "Prevent tests from printing messages through the console. (https://jestjs.io/docs/cli#--silent)", + "type": "boolean" + }, + "testNamePattern": { + "alias": "t", + "description": "Run only tests with a name that matches the regex pattern. (https://jestjs.io/docs/cli#--testnamepatternregex)", + "type": "string" + }, + "testPathIgnorePatterns": { + "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. Only run those tests with a path that does not match with the provided regexp expressions. (https://jestjs.io/docs/cli#--testpathignorepatternsregexarray)", + "type": "array", + "items": { "type": "string" } + }, + "testPathPattern": { + "description": "An array of regexp pattern strings that is matched against all tests paths before executing the test. (https://jestjs.io/docs/cli#--testpathpatternregex)", + "type": "array", + "items": { "type": "string" }, + "default": [] + }, + "colors": { + "description": "Forces test results output highlighting even if stdout is not a TTY. (https://jestjs.io/docs/cli#--colors)", + "type": "boolean" + }, + "reporters": { + "description": "Run tests with specified reporters. Reporter options are not available via CLI. Example with multiple reporters: `jest --reporters=\"default\" --reporters=\"jest-junit\"`. (https://jestjs.io/docs/cli#--reporters)", + "type": "array", + "items": { "type": "string" } + }, + "verbose": { + "description": "Display individual test results with the test suite hierarchy. (https://jestjs.io/docs/cli#--verbose)", + "type": "boolean" + }, + "coverageReporters": { + "description": "A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter.", + "type": "array", + "items": { "type": "string" } + }, + "coverageDirectory": { + "description": "The directory where Jest should output its coverage files.", + "type": "string" + }, + "testResultsProcessor": { + "description": "Node module that implements a custom results processor. (https://jestjs.io/docs/en/configuration#testresultsprocessor-string)", + "type": "string" + }, + "updateSnapshot": { + "alias": "u", + "description": "Use this flag to re-record snapshots. Can be used together with a test suite pattern or with `--testNamePattern` to re-record snapshot for test matching the pattern. (https://jestjs.io/docs/cli#--updatesnapshot)", + "type": "boolean" + }, + "useStderr": { + "description": "Divert all output to stderr.", + "type": "boolean" + }, + "watch": { + "description": "Watch files for changes and rerun tests related to changed files. If you want to re-run all tests when a file has changed, use the `--watchAll` option. (https://jestjs.io/docs/cli#--watch)", + "type": "boolean" + }, + "watchAll": { + "description": "Watch files for changes and rerun all tests when something changes. If you want to re-run only the tests that depend on the changed files, use the `--watch` option. (https://jestjs.io/docs/cli#--watchall)", + "type": "boolean" + }, + "testLocationInResults": { + "description": "Adds a location field to test results. Used to report location of a test in a reporter. { \"column\": 4, \"line\": 5 } (https://jestjs.io/docs/cli#--testlocationinresults)", + "type": "boolean" + }, + "testTimeout": { + "description": "Default timeout of a test in milliseconds. Default value: `5000`. (https://jestjs.io/docs/cli#--testtimeoutnumber)", + "type": "number" + } + }, + "additionalProperties": false, + "required": ["target", "jestConfig"], + "presets": [] + }, + "description": "Creates and runs the E2E tests for an Nx Plugin.", + "x-deprecated": "@nx/plugin:e2e is deprecated and will be removed in Nx v19. Use @nx/jest:jest instead.", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/executors/e2e/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/plugin/generators/create-package.json b/docs/generated/packages/plugin/generators/create-package.json new file mode 100644 index 0000000000000..86536d0fe16bb --- /dev/null +++ b/docs/generated/packages/plugin/generators/create-package.json @@ -0,0 +1,83 @@ +{ + "name": "create-package", + "factory": "./src/generators/create-package/create-package#createPackageGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginCreatePackage", + "title": "Create a framework package", + "description": "Create a framework package that uses Nx CLI.", + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Basic executable\" %}\n\nCreate an executable that initializes an Nx workspace with {my-plugin}'s preset:\n\n```bash\nnx g @nx/plugin:create-package create-my-plugin --project my-plugin\n```\n\n{% /tab %}\n{% /tabs %}\n", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The package name of cli, e.g. `create-framework-package`. Note this must be a valid NPM name to be published.", + "pattern": "create-.+|^@.+/create(?:-.+)?", + "$default": { "$source": "argv", "index": 0 }, + "x-priority": "important" + }, + "project": { + "type": "string", + "description": "The name of the generator project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-prompt": "What is the name of the project for the generator?", + "x-priority": "important" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "directory": { + "type": "string", + "description": "A directory where the app is placed." + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "compiler": { + "type": "string", + "enum": ["tsc", "swc"], + "default": "tsc", + "description": "The compiler used by the build and test targets." + }, + "e2eProject": { + "type": "string", + "description": "The name of the e2e project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-prompt": "What is the name of the e2e project?" + } + }, + "required": ["name", "project"], + "presets": [] + }, + "description": "Create a package which can be used by npx to create a new workspace", + "implementation": "/packages/plugin/src/generators/create-package/create-package#createPackageGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/create-package/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/e2e-project.json b/docs/generated/packages/plugin/generators/e2e-project.json new file mode 100644 index 0000000000000..6956a0e498ffa --- /dev/null +++ b/docs/generated/packages/plugin/generators/e2e-project.json @@ -0,0 +1,65 @@ +{ + "name": "e2e-project", + "factory": "./src/generators/e2e-project/e2e#e2eProjectGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginE2E", + "title": "Create an E2E app for a Nx Plugin", + "description": "Create an E2E app for a Nx Plugin.", + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"E2E Project\" %}\n\nScaffolds an E2E project for the plugin `my-plugin`.\n\n```bash\nnx g @nx/plugin:e2e-project --pluginName my-plugin --npmPackageName my-plugin --pluginOutputPath dist/my-plugin\n```\n\n{% /tab %}\n{% /tabs %}\n", + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "the project name of the plugin to be tested.", + "x-priority": "important" + }, + "npmPackageName": { + "type": "string", + "description": "the package name of the plugin as it would be published to NPM.", + "x-priority": "important" + }, + "projectDirectory": { + "type": "string", + "description": "the directory where the plugin is placed." + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "pluginOutputPath": { + "type": "string", + "description": "the output path of the plugin after it builds.", + "x-priority": "important" + }, + "jestConfig": { "type": "string", "description": "Jest config file." }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "minimal": { + "type": "boolean", + "description": "Generate the e2e project with a minimal setup. This would involve not generating tests for a default executor and generator.", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["pluginName", "npmPackageName"], + "presets": [] + }, + "description": "Create a E2E application for a Nx Plugin.", + "implementation": "/packages/plugin/src/generators/e2e-project/e2e#e2eProjectGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/e2e-project/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/executor.json b/docs/generated/packages/plugin/generators/executor.json new file mode 100644 index 0000000000000..326befb2d2082 --- /dev/null +++ b/docs/generated/packages/plugin/generators/executor.json @@ -0,0 +1,82 @@ +{ + "name": "executor", + "factory": "./src/generators/executor/executor#executorGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginExecutor", + "title": "Create an Executor for an Nx Plugin", + "description": "Create an Executor for an Nx Plugin.", + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Basic executor\" %}\n\nCreate a new executor called `build` inside the plugin `my-plugin`:\n\n```bash\nnx g @nx/plugin:executor build --project my-plugin\n```\n\n{% /tab %}\n{% tab label=\"With custom hashing\" %}\n\nCreate a new executor called `build` inside the plugin `my-plugin`, that uses a custom hashing function:\n\n```bash\nnx g @nx/plugin:executor build --project my-plugin --includeHasher\n```\n\n{% /tab %}\n{% /tabs %}\n", + "type": "object", + "examples": [ + { + "command": "nx g executor my-executor --project=my-plugin", + "description": "Generate `libs/my-plugin/src/executors/my-executor`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Executor name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the executor?", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the executor file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir"], + "x-priority": "important" + }, + "description": { + "type": "string", + "description": "Executor description.", + "x-priority": "important" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "includeHasher": { + "type": "boolean", + "default": false, + "description": "Should the boilerplate for a custom hasher be generated?" + }, + "skipLintChecks": { + "type": "boolean", + "default": false, + "description": "Do not add an eslint configuration for plugin json files." + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the executor in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "additionalProperties": false, + "presets": [] + }, + "description": "Create an executor for an Nx Plugin.", + "implementation": "/packages/plugin/src/generators/executor/executor#executorGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/executor/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/generator.json b/docs/generated/packages/plugin/generators/generator.json new file mode 100644 index 0000000000000..acb0f6e9322f3 --- /dev/null +++ b/docs/generated/packages/plugin/generators/generator.json @@ -0,0 +1,76 @@ +{ + "name": "generator", + "factory": "./src/generators/generator/generator#generatorGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginGenerator", + "title": "Create a Generator for an Nx Plugin", + "description": "Create a Generator for an Nx Plugin.", + "type": "object", + "examples": [ + { + "command": "nx g generator my-generator --project=my-plugin", + "description": "Generate `libs/my-plugin/src/generators/my-generator`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Generator name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the generator?", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the generator file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir"], + "x-priority": "important" + }, + "description": { + "type": "string", + "description": "Generator description.", + "x-priority": "important" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "skipLintChecks": { + "type": "boolean", + "default": false, + "description": "Do not add an eslint configuration for plugin json files." + }, + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "skipFormat": { + "type": "boolean", + "default": false, + "description": "Do not format files with prettier.", + "x-priority": "internal" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the generator in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + } + }, + "required": ["name"], + "additionalProperties": false, + "presets": [] + }, + "description": "Create a generator for an Nx Plugin.", + "implementation": "/packages/plugin/src/generators/generator/generator#generatorGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/generator/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/migration.json b/docs/generated/packages/plugin/generators/migration.json new file mode 100644 index 0000000000000..748604daa4d04 --- /dev/null +++ b/docs/generated/packages/plugin/generators/migration.json @@ -0,0 +1,74 @@ +{ + "name": "migration", + "factory": "./src/generators/migration/migration#migrationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginMigration", + "title": "Create a Migration for an Nx Plugin", + "description": "Create a Migration for an Nx Plugin.", + "type": "object", + "examples": [ + { + "command": "nx g migration my-migration --project=my-plugin --version=1.0.0", + "description": "Adds a new migration to the project `my-plugin`, which will be triggered when migrating to version 1.0.0 or above from a previous version." + } + ], + "properties": { + "name": { + "type": "string", + "description": "Migration name.", + "$default": { "$source": "argv", "index": 0 }, + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the migration file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "aliases": ["dir"] + }, + "description": { + "type": "string", + "description": "Migration description." + }, + "packageVersion": { + "type": "string", + "description": "Version to use for the migration.", + "alias": "v", + "x-prompt": "What version would you like to use for the migration?", + "x-priority": "important" + }, + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "packageJsonUpdates": { + "type": "boolean", + "description": "Whether or not to include `package.json` updates.", + "alias": "p", + "default": false + }, + "skipLintChecks": { + "type": "boolean", + "default": false, + "description": "Do not eslint configuration for plugin json files." + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the migration in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + } + }, + "required": ["packageVersion"], + "additionalProperties": false, + "presets": [] + }, + "description": "Create a migration for an Nx Plugin.", + "implementation": "/packages/plugin/src/generators/migration/migration#migrationGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/migration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/plugin-lint-checks.json b/docs/generated/packages/plugin/generators/plugin-lint-checks.json new file mode 100644 index 0000000000000..d4705e2ec908f --- /dev/null +++ b/docs/generated/packages/plugin/generators/plugin-lint-checks.json @@ -0,0 +1,40 @@ +{ + "name": "plugin-lint-checks", + "factory": "./src/generators/lint-checks/generator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "PluginLint", + "title": "", + "type": "object", + "description": "Adds linting configuration to validate common json files for nx plugins.", + "examples": [ + { + "command": "nx g @nx/plugin:lint-checks", + "description": "Sets up linting configuration to validate common json files for an nx plugin project." + } + ], + "properties": { + "projectName": { + "type": "string", + "description": "Which project should be the configuration be added to?", + "$default": { "$source": "projectName" }, + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "x-priority": "internal", + "description": "Skip formatting files with prettier.", + "default": false + } + }, + "required": ["projectName"], + "presets": [] + }, + "description": "Adds linting configuration to validate common json files for nx plugins.", + "implementation": "/packages/plugin/src/generators/lint-checks/generator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/lint-checks/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/plugin.json b/docs/generated/packages/plugin/generators/plugin.json new file mode 100644 index 0000000000000..783318084799b --- /dev/null +++ b/docs/generated/packages/plugin/generators/plugin.json @@ -0,0 +1,112 @@ +{ + "name": "plugin", + "factory": "./src/generators/plugin/plugin#pluginGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginPlugin", + "title": "Create a Plugin for Nx", + "description": "Create a Plugin for Nx.", + "type": "object", + "examples": [ + { + "command": "nx g plugin my-plugin --directory=plugins --importPath=@myorg/my-plugin", + "description": "Generates an Nx plugin project called `plugins-my-plugin` at `libs/plugins/my-plugin`. The project will have an npm package name and import path of `@myorg/my-plugin`." + } + ], + "properties": { + "name": { + "type": "string", + "description": "Plugin name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the plugin?", + "x-priority": "important", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the plugin is placed." + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "importPath": { + "type": "string", + "description": "How the plugin will be published, like `@myorg/my-awesome-plugin`. Note this must be a valid NPM name.", + "x-priority": "important" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update tsconfig.json for development experience.", + "x-priority": "internal" + }, + "skipLintChecks": { + "type": "boolean", + "default": false, + "description": "Do not eslint configuration for plugin json files." + }, + "e2eTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "default": "none" + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "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 + }, + "compiler": { + "type": "string", + "enum": ["tsc", "swc"], + "default": "tsc", + "description": "The compiler used by the build and test targets." + }, + "publishable": { + "type": "boolean", + "description": "Generates a boilerplate for publishing the plugin to npm.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Create a Nx Plugin.", + "implementation": "/packages/plugin/src/generators/plugin/plugin#pluginGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/plugin/src/generators/plugin/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/plugin/generators/preset.json b/docs/generated/packages/plugin/generators/preset.json new file mode 100644 index 0000000000000..0d1ce660e58e5 --- /dev/null +++ b/docs/generated/packages/plugin/generators/preset.json @@ -0,0 +1,42 @@ +{ + "name": "preset", + "factory": "./src/generators/preset/generator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxPluginPreset", + "title": "Generator ran by create-nx-plugin", + "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-plugin` or `create-nx-workspace --preset @nx/nx-plugin`.", + "examples": [ + { + "command": "npx create-nx-plugin", + "description": "Creates a new Nx workspace containing an Nx plugin." + }, + { + "command": "npx create-nx-workspace --preset @nx/plugin", + "description": "Creates a new Nx workspace containing an Nx plugin." + } + ], + "type": "object", + "properties": { + "pluginName": { + "type": "string", + "description": "Plugin name", + "aliases": ["name"] + }, + "createPackageName": { + "type": "string", + "description": "Name of package which creates a workspace" + } + }, + "required": ["pluginName"], + "presets": [] + }, + "description": "Initializes a workspace with an nx-plugin inside of it. Use as: `create-nx-workspace --preset @nx/plugin`.", + "hidden": true, + "x-use-standalone-layout": true, + "implementation": "/packages/plugin/src/generators/preset/generator.ts", + "aliases": [], + "path": "/packages/plugin/src/generators/preset/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/documents/overview.md b/docs/generated/packages/react-native/documents/overview.md new file mode 100644 index 0000000000000..25a8d81c79631 --- /dev/null +++ b/docs/generated/packages/react-native/documents/overview.md @@ -0,0 +1,186 @@ +React Native brings React's declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform. + +The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides: + +- Integration with libraries such as Jest, Detox, and Storybook. +- Scaffolding for creating buildable libraries that can be published to npm. +- Utilities for automatic workspace refactoring. + +## Setting Up React Native + +### Create a New Workspace + +To create a new workspace with React Native, run the following command: + +```shell +npx create-nx-workspace@latest --preset=react-native --appName=your-app-name +``` + +{% callout type="note" title="Don't know what you need?" %} +You can also run the command without arguments to go through the interactive prompts. +{% /callout %} + +```shell +npx create-nx-workspace your-workspace-name +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/react-native` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/react-native` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/react-native +``` + +This will install the correct version of `@nx/react-native`. + +### How @nx/react-native Infers Tasks + +The `@nx/react-native` plugin will create a task for any project that has an app configuration file present. Any of the following files will be recognized as an app configuration file: + +- `app.config.js` +- `app.json` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/react-native Configuration + +The `@nx/react-native/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/react-native/plugin", + "options": { + "startTargetName": "start", + "podInstallTargetName": "pod-install", + "bundleTargetName": "bundle", + "runIosTargetName": "run-ios", + "runAndroidTargetName": "run-android", + "buildIosTargetName": "build-ios", + "buildAndroidTargetName": "build-android" + } + } + ] +} +``` + +Once a React Native configuration file has been identified, the targets are created with the name you specify under `startTargetName`, `podInstallTargetName`, `bundleTargetName`, `runIosTargetName`, `runAndroidTargetname`, `buildIosTargetName` or `buildAndroidTargetName` in the `nx.json` `plugins` array. The default names for the inferred targets are `start`, `pod-install`, `bundle`, `run-ios`, `run-anroid`, `build-ios` and `build-android`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/react-native` package with your package manager. + +```shell +npm add -D @nx/react-native +``` + +### Generating Applications + +To create additional React Native apps run: + +```shell +nx g @nx/react-native:app +``` + +### Generating Libraries + +To generate a new library run: + +```shell +nx g @nx/react-native:lib your-lib-name +``` + +### Generating Components + +To generate a new component inside library run: + +```shell +nx g @nx/react-native:component your-component-name --project=your-lib-name --export +``` + +Replace `your-lib-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json` + +### Upgrade React Native + +The Nx CLI provides the [`migrate` command](/features/automate-updating-dependencies) to help you stay up to date with the latest version of Nx. + +#### Use upgrade-native Generator + +To upgrade native iOS and Android code to latest, you can use the [upgrade-native](/nx-api/react-native/generators/upgrade-native) generator: + +```shell +nx generate @nx/react-native:upgrade-native +``` + +This is a command that will replace the iOS and Android native code folder entirely. + +#### Upgrade Manually + +You can also upgrade React Native iOS and Android code using the [rn-diff-purge](https://react-native-community.github.io/upgrade-helper/) project. + +### Start Metro Server + +To start the server that communicates with connected devices: + +```shell +nx start +``` + +### Run iOS + +To build your app and start it on iOS simulator or device: + +```shell +nx run-ios +``` + +### Run Android + +To build your app and start it on a connected Android emulator or device: + +```shell +nx run-android +``` + +### Build iOS + +To build an iOS app: + +```shell +nx build-ios +``` + +The build artifacts will be located under `/ios/build`. + +You can specify the build folder by setting the `buildFolder` option: + +```shell +nx build-ios --buildFolder="./build" +``` + +### Build Android + +To build an Android app, run: + +```shell +nx build-android +``` + +The build artifacts will be located under `/android/app/build`. + +## More Documentation + +- [Using Detox](/nx-api/detox) +- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/react-native/executors/build-android.json b/docs/generated/packages/react-native/executors/build-android.json new file mode 100644 index 0000000000000..ad753e52a0ba5 --- /dev/null +++ b/docs/generated/packages/react-native/executors/build-android.json @@ -0,0 +1,81 @@ +{ + "name": "build-android", + "implementation": "/packages/react-native/src/executors/build-android/build-android.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeBuildAndroid", + "$schema": "https://json-schema.org/schema", + "title": "Release Build for Android", + "description": "Build target options for Android.", + "type": "object", + "presets": [ + { + "name": "Build Android for current device architecture", + "keys": ["activeArchOnly"] + }, + { "name": "Build Android without metro cache", "keys": ["resetCache"] }, + { "name": "Build Android with specific tasks", "keys": ["tasks"] }, + { "name": "Build Android with a specific mode", "keys": ["mode"] } + ], + "properties": { + "mode": { + "type": "string", + "description": "Specify your app's build variant", + "default": "debug", + "examples": ["debug", "release"], + "x-priority": "important" + }, + "port": { + "type": "number", + "description": "The port where the packager server is listening on.", + "default": 8081 + }, + "tasks": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Run custom Gradle tasks. By default it's \"assembleDebug\". Will override passed mode and variant arguments.", + "examples": [ + "assembleDebug", + "assembleRelease", + "bundleDebug", + "bundleRelease", + "installDebug", + "installRelease" + ] + }, + "activeArchOnly": { + "type": "boolean", + "description": "Build native libraries only for the current device architecture for debug builds.", + "default": false + }, + "extraParams": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Custom params passed to gradle build command", + "examples": ["-x lint -x test"] + }, + "interactive": { + "type": "boolean", + "description": "Explicitly select build type and flavour to use before running a build" + }, + "resetCache": { + "type": "boolean", + "description": "Resets metro cache.", + "default": false + } + }, + "required": [], + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:build-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build with custom tasks\" %}\nThe `tasks` option accepts any custom gradle task, such as `assembleDebug`, `assembleRelease`, `bundleDebug`, `bundleRelease`, `installDebug`, `installRelease`.\nFor example, pass in `bundleRelease` or `bundleRelease` to tasks, it will create with `.aab` extension under bundle folder.\nPass in `assembleDebug` or `assembleRelease` to tasks, it will create a build with `.apk` extension under apk folder.\nPass in `installDebug` or `installRelease` to tasks, it will create a build with `.apk` extension and immediately install it on a running emulator or connected device.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"tasks\": [\"bundleRelease\"]\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Build for debug/release\" %}\n\nThe `mode` option allows you determine whether to build for debug/release apk.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"mode\": \"debug\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Build for current device architecture\" %}\n\nThe `activeArchOnly` option allows you to build native libraries only for the current device architecture for debug builds.\n\n```json\n \"build-android\": {\n \"executor\": \"@nx/react-native:build-android\",\n \"outputs\": [\n \"{projectRoot}/build/outputs/bundle\",\n \"{projectRoot}/build/outputs/apk\"\n ],\n \"options\": {\n \"activeArchOnly\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" + }, + "description": "Release Build for Android.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/build-android/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/build-ios.json b/docs/generated/packages/react-native/executors/build-ios.json new file mode 100644 index 0000000000000..ca4496b65e779 --- /dev/null +++ b/docs/generated/packages/react-native/executors/build-ios.json @@ -0,0 +1,91 @@ +{ + "name": "build-ios", + "implementation": "/packages/react-native/src/executors/build-ios/build-ios.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "cli": "nx", + "title": "React Native Build iOS executor", + "description": "Build iOS app.", + "type": "object", + "presets": [ + { "name": "Build iOS for a simulator", "keys": ["simulator"] }, + { "name": "Build iOS for a device", "keys": ["device"] }, + { "name": "Build iOS for a device with udid", "keys": ["udid"] } + ], + "properties": { + "simulator": { + "type": "string", + "description": "Explicitly set simulator to use. Optionally include iOS version between parenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"", + "examples": [ + "iPhone 14", + "iPhone 13", + "iPhone 12", + "iPhone 11", + "iPhone X" + ], + "x-priority": "important" + }, + "mode": { + "type": "string", + "description": "Explicitly set the scheme configuration to use", + "default": "Debug", + "examples": ["Debug", "Release"], + "x-priority": "important" + }, + "scheme": { + "type": "string", + "description": "Explicitly set Xcode scheme to use" + }, + "device": { + "type": "string", + "description": "Explicitly set device to use by name. The value is not required if you have a single device connected." + }, + "udid": { + "type": "string", + "description": "Explicitly set device to use by udid" + }, + "verbose": { + "type": "boolean", + "description": "Do not use xcbeautify or xcpretty even if installed" + }, + "port": { + "type": "number", + "description": "The port where the packager server is listening on.", + "default": 8081 + }, + "xcconfig": { + "type": "string", + "description": "Explicitly set xcconfig to use" + }, + "buildFolder": { + "type": "string", + "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory", + "default": "./build" + }, + "interactive": { + "type": "boolean", + "description": "Explicitly select which scheme and configuration to use before running a build" + }, + "extraParams": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Custom params that will be passed to xcodebuild command." + }, + "resetCache": { + "type": "boolean", + "description": "Resets metro cache.", + "default": false + } + }, + "required": [], + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:build-ios\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build in Specific Location\" %}\nThe `buildFolder` option allows to specify the location for ios build artifacts. It corresponds to Xcode's -derivedDataPath.\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"buildFolder\": \"dist/ios/build\"\n }\n }\n```\n\n```bash\nnx build-ios --buildFolder=dist/ios/build\n```\n\n{% /tab %}\n{% tab label=\"Build the Debug/Release app\" %}\nThe `mode` option allows to specify the xcode configuartion, such as `Debug` or `Release`.\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"mode\": \"Release\"\n }\n }\n```\n\n```bash\nnx build-ios --mode=Debug\nnx build-ios --mode=Release\n```\n\n{% /tab %}\n{% tab label=\"Build for a simulator\" %}\nThe `simulator` option allows you to launch your iOS app in a specific simulator:\n\nTo see all the available simulators, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"simulator\": \"iPhone 14 Pro\"\n }\n }\n```\n\n```bash\nnx build-ios --simulator=\"iPhone 14 Pro\"\n```\n\n{% /tab %}\n{% tab label=\"Build for a device\" %}\nThe `device` option allows you to launch your iOS app in a specific device.\n\nTo see all the available device, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"device\": \"deviceName\"\n }\n }\n```\n\n```bash\nnx build-ios --device=\"deviceName\"\n```\n\n{% /tab %}\n{% tab label=\"Set Device by udid\" %}\nThe `udid` option allows you to explicitly set device to use by udid.\n\nTo see all the available simulators and devices with udid, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"build-ios\": {\n \"executor\": \"@nx/react-native:build-ios\",\n \"options\": {\n \"udid\": \"device udid\"\n }\n }\n```\n\n```bash\nnx build-ios --udid=\"device udid\"\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" + }, + "description": "Build iOS app", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/build-ios/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/bundle.json b/docs/generated/packages/react-native/executors/bundle.json new file mode 100644 index 0000000000000..22dcc39c73e79 --- /dev/null +++ b/docs/generated/packages/react-native/executors/bundle.json @@ -0,0 +1,89 @@ +{ + "name": "bundle", + "implementation": "/packages/react-native/src/executors/bundle/bundle.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeBundle", + "$schema": "https://json-schema.org/schema", + "title": "Offline JS Bundle for React Native", + "description": "JS Bundle target options.", + "type": "object", + "presets": [ + { "name": "Bundle for a specific platform", "keys": ["platform"] }, + { "name": "Bundle a development build", "keys": ["dev"] }, + { "name": "Bundle to a specific output path", "keys": ["bundleOutput"] }, + { "name": "Bundle without global cache", "keys": ["resetCache"] } + ], + "properties": { + "entryFile": { + "type": "string", + "description": "The entry file relative to project root.", + "x-completion-type": "file", + "x-completion-glob": "main@(.js|.ts)" + }, + "platform": { + "enum": ["ios", "android"], + "alias": "p", + "description": "Platform to build for." + }, + "transformer": { + "type": "string", + "description": "Specify a custom transformer to be used." + }, + "dev": { + "type": "boolean", + "description": "Generate a development build.", + "default": true + }, + "minify": { + "type": "boolean", + "description": "Allows overriding whether bundle is minified." + }, + "bundleOutput": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory" + }, + "maxWorkers": { + "type": "number", + "description": "The number of workers we should parallelize the transformer on." + }, + "sourcemapOutput": { + "type": "string", + "description": "File name where to store the sourcemap file for resulting bundle, ex. /tmp/groups.map." + }, + "sourcemapSourcesRoot": { + "type": "string", + "description": "Path to make sourcemaps sources entries relative to, ex. /root/dir." + }, + "sourcemapUseAbsolutePath": { + "type": "boolean", + "description": "Report SourceMapURL using its full path.", + "default": false + }, + "assetsDest": { + "type": "string", + "description": "Directory name where to store assets referenced in the bundle." + }, + "resetCache": { + "type": "boolean", + "description": "Removes cached files.", + "default": false + }, + "readGlobalCache": { + "type": "boolean", + "description": "Try to fetch transformed JS code from the global cache, if configured.", + "default": false + } + }, + "required": ["platform", "entryFile", "bundleOutput"], + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"outputs\": [\"{projectRoot}/build\"],\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\"\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\"\n }\n }\n }\n}\n```\n\n```bash\nnx run mobile:bundle-ios\nnx run mobile:bundle-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Bundle with sourcemap\" %}\nThe `sourcemapOutput` option allows you to specify the path of the source map relative to app folder:\n\n```json\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\",\n \"sourcemapOutput\": \"../../dist/apps/mobile/ios/main.map\",\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\",\n \"sourcemapOutput\": \"../../dist/apps/mobile/android/main.map\",\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Create a dev/release bundle\" %}\n\nThe `dev` option determines whether to create a dev or release bundle. The default value is `true`, by setting it as `false`, warnings are disabled and the bundle is minified.\n\n```json\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\",\n \"dev\": false\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\",\n \"dev\": false\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Create a minified bundle\" %}\n\nThe `minify` option allows you to create a minified bundle:\n\n```json\n \"bundle-ios\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"ios\",\n \"bundleOutput\": \"dist/apps/mobile/ios/main.jsbundle\",\n \"minify\": true\n }\n },\n \"bundle-android\": {\n \"executor\": \"@nx/react-native:bundle\",\n \"options\": {\n \"entryFile\": \"src/main.tsx\",\n \"platform\": \"android\",\n \"bundleOutput\": \"dist/apps/mobile/android/main.jsbundle\",\n \"minify\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" + }, + "description": "Builds the JavaScript bundle for offline use.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/bundle/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/ensure-symlink.json b/docs/generated/packages/react-native/executors/ensure-symlink.json new file mode 100644 index 0000000000000..5145424309d8d --- /dev/null +++ b/docs/generated/packages/react-native/executors/ensure-symlink.json @@ -0,0 +1,21 @@ +{ + "name": "ensure-symlink", + "implementation": "/packages/react-native/src/executors/ensure-symlink/ensure-symlink.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeEnsureSymlink", + "$schema": "https://json-schema.org/schema", + "title": "Ensure Symlink for React Native", + "description": "Ensure workspace node_modules is symlink under app's node_modules folder.", + "type": "object", + "properties": {}, + "presets": [] + }, + "description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/ensure-symlink/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/pod-install.json b/docs/generated/packages/react-native/executors/pod-install.json new file mode 100644 index 0000000000000..1552af8f7930f --- /dev/null +++ b/docs/generated/packages/react-native/executors/pod-install.json @@ -0,0 +1,43 @@ +{ + "name": "pod-install", + "implementation": "/packages/react-native/src/executors/pod-install/pod-install.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativePodInstall", + "$schema": "https://json-schema.org/schema", + "title": "Run Pod Install for React Native iOS Project", + "description": "Run `pod install` for React Native iOS Project.", + "type": "object", + "properties": { + "buildFolder": { + "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory.", + "type": "string", + "default": "./build" + }, + "repoUpdate": { + "description": "Force running `pod repo update` before install.", + "type": "boolean", + "default": false + }, + "deployment": { + "description": "Disallow any changes to the Podfile or the Podfile.lock during installation.", + "type": "boolean", + "default": false + }, + "useBundler": { + "description": "Run cocoapods within a Bundler environment, i.e. with the `bundle exec pod install` command", + "type": "boolean", + "default": false + } + }, + "required": ["buildFolder"], + "presets": [] + }, + "description": "Run `pod install` in the `ios` directory.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/pod-install/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/run-android.json b/docs/generated/packages/react-native/executors/run-android.json new file mode 100644 index 0000000000000..2b37c24a4fc5a --- /dev/null +++ b/docs/generated/packages/react-native/executors/run-android.json @@ -0,0 +1,106 @@ +{ + "name": "run-android", + "implementation": "/packages/react-native/src/executors/run-android/run-android.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeRunAndroid", + "$schema": "https://json-schema.org/schema", + "title": "Run Android application", + "description": "Run Android target options.", + "type": "object", + "presets": [ + { + "name": "Run Android for the current device architecture", + "keys": ["activeArchOnly"] + }, + { + "name": "Lists all available Android devices and simulators", + "keys": ["listDevices"] + }, + { "name": "Run Android without metro cache", "keys": ["resetCache"] } + ], + "properties": { + "appId": { + "type": "string", + "description": "Specify an `applicationId` to launch after build. If not specified, `package` from `AndroidManifest.xml` will be used." + }, + "appIdSuffix": { + "type": "string", + "description": "Specify an `applicationIdSuffix` to launch after build." + }, + "mainActivity": { + "type": "string", + "description": "Name of the activity to start.", + "default": "MainActivity" + }, + "deviceId": { + "type": "string", + "description": "Builds your app and starts it on a specific device/simulator with the given device id (listed by running `adb devices` on the command line)." + }, + "listDevices": { + "type": "boolean", + "description": "Lists all available Android devices and simulators and let you choose one to run the app" + }, + "binaryPath": { + "type": "string", + "description": "Path relative to project root where pre-built .apk binary lives." + }, + "mode": { + "type": "string", + "description": "Specify your app's build variant", + "default": "debug", + "examples": ["debug", "release"], + "x-priority": "important" + }, + "port": { + "type": "number", + "description": "The port where the packager server is listening on.", + "default": 8081 + }, + "tasks": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Run custom Gradle tasks. By default it's \"assembleDebug\". Will override passed mode and variant arguments.", + "examples": [ + "assembleDebug", + "assembleRelease", + "bundleDebug", + "bundleRelease", + "installDebug", + "installRelease" + ] + }, + "activeArchOnly": { + "type": "boolean", + "description": "Build native libraries only for the current device architecture for debug builds.", + "default": false + }, + "extraParams": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Custom params passed to gradle build command" + }, + "interactive": { + "type": "boolean", + "description": "Explicitly select build type and flavour to use before running a build" + }, + "resetCache": { + "type": "boolean", + "description": "Resets metro cache.", + "default": false + } + }, + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-android\": {\n \"executor\": \"@nx/react-native:run-android\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:run-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Run on a specific device/simulator\" %}\nTo see all the avaiable emulators, run command:\n\n```bash\nemulator -list-avds\n```\n\nThe `deviceId` option allows you to launch your android app in a specific device/simulator:\n\n```json\n \"run-android\": {\n \"executor\": \"@nx/react-native:run-android\",\n \"options\": {\n \"deviceId\": \"Pixel_5_API_30\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Run the debug/release app\" %}\nThe `mode` option allows to specify the build variant, such as `debug` or `release`.\n\n```json\n \"run-android\": {\n \"executor\": \"@nx/react-native:run-android\",\n \"options\": {\n \"mode\": \"release\"\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" + }, + "description": "Runs Android application.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/run-android/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/run-ios.json b/docs/generated/packages/react-native/executors/run-ios.json new file mode 100644 index 0000000000000..9028c9954a8a2 --- /dev/null +++ b/docs/generated/packages/react-native/executors/run-ios.json @@ -0,0 +1,96 @@ +{ + "name": "run-ios", + "implementation": "/packages/react-native/src/executors/run-ios/run-ios.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeRunIos", + "$schema": "https://json-schema.org/schema", + "title": "Run iOS application", + "description": "Run iOS target options.", + "type": "object", + "presets": [ + { "name": "Run iOS on a simulator", "keys": ["simulator"] }, + { "name": "Run iOS on a device", "keys": ["device"] }, + { "name": "Run iOS on a device with udid", "keys": ["udid"] } + ], + "properties": { + "simulator": { + "type": "string", + "description": "Explicitly set simulator to use. Optionally include iOS version between parenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"", + "examples": [ + "iPhone 14", + "iPhone 13", + "iPhone 12", + "iPhone 11", + "iPhone X" + ], + "x-priority": "important" + }, + "mode": { + "type": "string", + "description": "Explicitly set the scheme configuration to use", + "default": "Debug", + "examples": ["Debug", "Release"], + "x-priority": "important" + }, + "scheme": { + "type": "string", + "description": "Explicitly set Xcode scheme to use" + }, + "device": { + "type": "string", + "description": "Explicitly set device to use by name. The value is not required if you have a single device connected." + }, + "udid": { + "type": "string", + "description": "Explicitly set device to use by udid" + }, + "verbose": { + "type": "boolean", + "description": "Do not use xcbeautify or xcpretty even if installed" + }, + "port": { + "type": "number", + "description": "The port where the packager server is listening on.", + "default": 8081 + }, + "xcconfig": { + "type": "string", + "description": "Explicitly set xcconfig to use" + }, + "buildFolder": { + "type": "string", + "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory.", + "buildFolder": "./build" + }, + "interactive": { + "type": "boolean", + "description": "Explicitly select which scheme and configuration to use before running a build" + }, + "extraParams": { + "oneOf": [ + { "type": "array", "items": { "type": "string" } }, + { "type": "string" } + ], + "description": "Custom params that will be passed to xcodebuild command." + }, + "resetCache": { + "type": "boolean", + "description": "Resets metro cache.", + "default": false + }, + "binaryPath": { + "type": "string", + "description": "Path relative to project root where pre-built .app binary lives." + } + }, + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:run-ios\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Build the Debug/Release app\" %}\nThe `mode` option allows to specify the xcode configuartion schema, such as `Debug` or `Release`.\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"mode\": \"Release\"\n }\n }\n```\n\n```bash\nnx run-ios --mode=Debug\n```\n\n{% /tab %}\n{% tab label=\"Run on a simulator\" %}\nThe `simulator` option allows you to launch your iOS app in a specific simulator.\n\nTo see all the available simulators, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"simulator\": \"iPhone 14 Pro (16.2)\"\n }\n }\n```\n\n```bash\nnx run-ios --simulator=\"iPhone 14 Pro (16.2)\"\n```\n\n{% /tab %}\n{% tab label=\"Run on a device\" %}\nThe `device` option allows you to launch your iOS app in a specific device.\n\nTo see all the available devices, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"device\": \"deviceName\"\n }\n }\n```\n\n```bash\nnx run-ios --device=\"deviceName\"\n```\n\n{% /tab %}\n{% tab label=\"Set Device by udid\" %}\nThe `udid` option allows you to explicitly set device to use by udid.\n\nTo see all the available simulators and devices with udid, run command:\n\n```bash\nxcrun simctl list devices available\n```\n\n```json\n \"run-ios\": {\n \"executor\": \"@nx/react-native:run-ios\",\n \"options\": {\n \"udid\": \"device udid\"\n }\n }\n```\n\n```bash\nnx run-ios --udid=\"device udid\"\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" + }, + "description": "Runs iOS application.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/run-ios/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/start.json b/docs/generated/packages/react-native/executors/start.json new file mode 100644 index 0000000000000..aa6acdbd0b042 --- /dev/null +++ b/docs/generated/packages/react-native/executors/start.json @@ -0,0 +1,38 @@ +{ + "name": "start", + "implementation": "/packages/react-native/src/executors/start/start.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeStart", + "$schema": "https://json-schema.org/schema", + "title": "Packager Server for React Native", + "description": "Packager Server target options.", + "type": "object", + "properties": { + "port": { + "type": "number", + "description": "The port to listen on.", + "default": 8081 + }, + "resetCache": { + "type": "boolean", + "description": "Resets metro cache.", + "default": false + }, + "interactive": { + "type": "boolean", + "description": "Run packager server in interactive mode.", + "default": true + } + }, + "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"start\": {\n \"executor\": \"@nx/react-native:start\",\n \"options\": {\n \"port\": 8081\n }\n }\n }\n}\n```\n\n```bash\nnx run mobile:start\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Starts the server non-interactively\" %}\nThe `interactive` option allows you to specify whether to use interactive mode:\n\n```json\n \"start\": {\n \"executor\": \"@nx/react-native:start\",\n \"options\": {\n \"port\": 8081,\n \"interactive\": false\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Starts the server with cache reset\" %}\n\nThe `resetCache` option allows you to remove cached files.\n\n```json\n \"start\": {\n \"executor\": \"@nx/react-native:start\",\n \"options\": {\n \"port\": 8081,\n \"resetCache\": true\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n", + "presets": [] + }, + "description": "Starts the Javascript server that communicates with connected devices.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/start/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/storybook.json b/docs/generated/packages/react-native/executors/storybook.json new file mode 100644 index 0000000000000..ca4ea42c4394c --- /dev/null +++ b/docs/generated/packages/react-native/executors/storybook.json @@ -0,0 +1,37 @@ +{ + "name": "storybook", + "implementation": "/packages/react-native/src/executors/storybook/storybook.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "React Native Storybook Load Stories", + "cli": "nx", + "description": "Load stories for react native.", + "type": "object", + "properties": { + "searchDir": { + "type": "array", + "items": { "type": "string" }, + "default": [], + "description": "The directory or directories, relative to the project root, to search for files in." + }, + "outputFile": { + "type": "string", + "description": "The output file that will be written. It is relative to the project directory.", + "default": "./.storybook/story-loader.ts" + }, + "pattern": { + "type": "string", + "description": "The pattern of files to look at. It can be a specific file, or any valid glob. Note: if using the CLI, globs with `**/*...` must be escaped with quotes", + "default": "**/*.stories.@(js|jsx|ts|tsx|md)" + } + }, + "required": ["searchDir", "outputFile", "pattern"], + "presets": [] + }, + "description": "Serve React Native Storybook.", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/storybook/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/sync-deps.json b/docs/generated/packages/react-native/executors/sync-deps.json new file mode 100644 index 0000000000000..6eb033ee1eb45 --- /dev/null +++ b/docs/generated/packages/react-native/executors/sync-deps.json @@ -0,0 +1,39 @@ +{ + "name": "sync-deps", + "implementation": "/packages/react-native/src/executors/sync-deps/sync-deps.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "cli": "nx", + "$id": "NxReactNativeSyncDeps", + "$schema": "https://json-schema.org/schema", + "title": "Sync Deps for React Native", + "description": "Updates `package.json` with project dependencies.", + "type": "object", + "properties": { + "include": { + "type": "array", + "items": { "type": "string" }, + "default": [], + "description": "An array of additional npm packages to include." + }, + "exclude": { + "type": "array", + "items": { "type": "string" }, + "default": [], + "description": "An array of npm packages to exclude." + }, + "all": { + "type": "boolean", + "description": "Copy all dependencies and devDependencies from the workspace root package.json.", + "default": false + } + }, + "presets": [] + }, + "description": "Syncs dependencies to `package.json` (required for autolinking).", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/sync-deps/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/executors/upgrade.json b/docs/generated/packages/react-native/executors/upgrade.json new file mode 100644 index 0000000000000..3da81efac7021 --- /dev/null +++ b/docs/generated/packages/react-native/executors/upgrade.json @@ -0,0 +1,21 @@ +{ + "name": "upgrade", + "implementation": "/packages/react-native/src/executors/upgrade/upgrade.impl.ts", + "schema": { + "$schema": "http://json-schema.org/schema", + "version": 2, + "cli": "nx", + "$id": "NxReactNativeUpgrade", + "title": "React Native Upgrade Executor", + "description": "Upgrade React Native code for project.", + "type": "object", + "properties": {}, + "required": [], + "presets": [] + }, + "description": "upgrade executor", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/executors/upgrade/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react-native/generators/application.json b/docs/generated/packages/react-native/generators/application.json new file mode 100644 index 0000000000000..447a4ec4363c0 --- /dev/null +++ b/docs/generated/packages/react-native/generators/application.json @@ -0,0 +1,112 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#reactNativeApplicationGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxReactNativeApplication", + "$schema": "https://json-schema.org/schema", + "title": "Create a React Application for Nx", + "description": "Create a React Application for Nx.", + "examples": [ + { + "command": "nx g @nx/react-native:app myapp --directory=nested", + "description": "Generate `apps/nested/myapp`" + }, + { + "command": "nx g @nx/react-native:app myapp --classComponent", + "description": "Use class components instead of functional components" + } + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "displayName": { + "description": "The display name to show in the application. Defaults to name.", + "type": "string" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files", + "default": false + }, + "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 + }, + "e2eTestRunner": { + "description": "Adds the specified e2e test runner.", + "type": "string", + "enum": ["cypress", "playwright", "detox", "none"], + "default": "cypress" + }, + "install": { + "type": "boolean", + "description": "Runs `pod install` for native modules before building iOS app.", + "x-prompt": "Run 'pod install' for native modules?", + "default": true + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "bundler": { + "description": "The bundler to use.", + "type": "string", + "enum": ["vite", "webpack"], + "x-prompt": "Which bundler do you want to use to build the application?", + "default": "webpack", + "x-priority": "important" + } + }, + "required": [], + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create a React Native application.", + "implementation": "/packages/react-native/src/generators/application/application#reactNativeApplicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react-native/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/component-story.json b/docs/generated/packages/react-native/generators/component-story.json new file mode 100644 index 0000000000000..cef0d5c36513a --- /dev/null +++ b/docs/generated/packages/react-native/generators/component-story.json @@ -0,0 +1,50 @@ +{ + "name": "component-story", + "factory": "./src/generators/component-story/component-story#componentStoryGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactNativeComponentStory", + "title": "React native component story", + "description": "Generate storybook story for a react-native component.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "The project where to add the components.", + "examples": ["shared-ui-component"], + "$default": { "$source": "projectName", "index": 0 }, + "x-prompt": "What's name of the project where the component lives?", + "x-priority": "important" + }, + "componentPath": { + "type": "string", + "description": "Relative path to the component file from the library root.", + "examples": ["lib/components"], + "x-prompt": "What's path of the component relative to the project's lib root?", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "default": true, + "x-priority": "important" + } + }, + "required": ["project", "componentPath"], + "presets": [] + }, + "description": "Generate Storybook story for a React Native component.", + "implementation": "/packages/react-native/src/generators/component-story/component-story#componentStoryGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/generators/component-story/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/component.json b/docs/generated/packages/react-native/generators/component.json new file mode 100644 index 0000000000000..46c67785ff344 --- /dev/null +++ b/docs/generated/packages/react-native/generators/component.json @@ -0,0 +1,91 @@ +{ + "name": "component", + "factory": "./src/generators/component/component#reactNativeComponentGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxReactNativeApplication", + "$schema": "https://json-schema.org/schema", + "title": "Create a React Native Component for Nx", + "description": "Create a React native Component for Nx.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/react-native:component my-component --project=mylib", + "description": "Generate a component in the `mylib` library" + }, + { + "command": "nx g @nx/react-native:component my-component --project=mylib --classComponent", + "description": "Generate a class component in the `mylib` library" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "skipTests": { + "type": "boolean", + "description": "When true, does not create `spec.ts` test files for the new component.", + "default": false + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "flat": { + "type": "boolean", + "description": "Create component at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." + }, + "export": { + "type": "boolean", + "description": "When true, the component is exported from the project `index.ts` (if it exists).", + "alias": "e", + "default": false, + "x-prompt": "Should this component be exported in the project?" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false, + "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "classComponent": { + "type": "boolean", + "alias": "C", + "description": "Use class components instead of functional component.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Create a React Native component.", + "aliases": ["c"], + "implementation": "/packages/react-native/src/generators/component/component#reactNativeComponentGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react-native/src/generators/component/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/init.json b/docs/generated/packages/react-native/generators/init.json new file mode 100644 index 0000000000000..02718c332abfc --- /dev/null +++ b/docs/generated/packages/react-native/generators/init.json @@ -0,0 +1,46 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#reactNativeInitGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxReactNativeInit", + "$schema": "https://json-schema.org/schema", + "title": "Add Nx React Native Schematics", + "description": "Add Nx React native schematics.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nx/react-native` plugin.", + "hidden": true, + "implementation": "/packages/react-native/src/generators/init/init#reactNativeInitGeneratorInternal.ts", + "aliases": [], + "path": "/packages/react-native/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/library.json b/docs/generated/packages/react-native/generators/library.json new file mode 100644 index 0000000000000..e5f6208790865 --- /dev/null +++ b/docs/generated/packages/react-native/generators/library.json @@ -0,0 +1,116 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#reactNativeLibraryGeneratorInternal", + "schema": { + "cli": "nx", + "$id": "NxReactNativeLibrary", + "$schema": "https://json-schema.org/schema", + "title": "Create a React Native Library for Nx", + "description": "Create a React Native Library for Nx.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/react-native:lib mylib --directory=myapp", + "description": "Generate `libs/myapp/mylib`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Library name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update `tsconfig.json` for development experience.", + "x-priority": "internal" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false + }, + "publishable": { + "type": "boolean", + "description": "Create a publishable library." + }, + "buildable": { + "type": "boolean", + "default": false, + "description": "Generate a buildable library." + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`." + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "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 + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a React Native library.", + "implementation": "/packages/react-native/src/generators/library/library#reactNativeLibraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react-native/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/stories.json b/docs/generated/packages/react-native/generators/stories.json new file mode 100644 index 0000000000000..b0521437272b0 --- /dev/null +++ b/docs/generated/packages/react-native/generators/stories.json @@ -0,0 +1,63 @@ +{ + "name": "stories", + "factory": "./src/generators/stories/stories#storiesGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactNativeStorybookStories", + "title": "Generate React Native Storybook stories", + "description": "Generate stories/specs for all components declared in a React Native project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate stories.", + "$default": { "$source": "projectName", "index": 0 }, + "x-prompt": "For which project do you want to generate stories?", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "default": true + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Create stories for all components declared in an application or library.", + "implementation": "/packages/react-native/src/generators/stories/stories#storiesGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/generators/stories/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/storybook-configuration.json b/docs/generated/packages/react-native/generators/storybook-configuration.json new file mode 100644 index 0000000000000..e8233f36189fb --- /dev/null +++ b/docs/generated/packages/react-native/generators/storybook-configuration.json @@ -0,0 +1,84 @@ +{ + "name": "storybook-configuration", + "factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactNativeStorybookConfigure", + "title": "React native Storybook configuration", + "description": "Set up Storybook for a React-Native app or library.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "alias": ["configureTestRunner"], + "default": true + }, + "generateStories": { + "type": "boolean", + "description": "Automatically generate `*.stories.ts` files for components declared in this project?", + "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", + "default": true, + "x-priority": "important" + }, + "configureStaticServe": { + "type": "boolean", + "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", + "x-prompt": "Configure a static file server for the storybook instance?", + "default": true, + "x-priority": "important" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript story files rather than TypeScript story files.", + "default": false + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": true + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Set up Storybook for a React Native application or library.", + "implementation": "/packages/react-native/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/generators/storybook-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/upgrade-native.json b/docs/generated/packages/react-native/generators/upgrade-native.json new file mode 100644 index 0000000000000..98d7f923df80f --- /dev/null +++ b/docs/generated/packages/react-native/generators/upgrade-native.json @@ -0,0 +1,49 @@ +{ + "name": "upgrade-native", + "factory": "./src/generators/upgrade-native/upgrade-native#reactNativeUpgradeNativeGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactNativeUpgradeNativeConfigure", + "title": "React native upgrade native configuration", + "description": "Upgrade native iOS and Android code to latest.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Application project name to upgrade native files.", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "project" + }, + "displayName": { + "description": "The display name to show in the application. Defaults to name.", + "type": "string" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files", + "default": false + }, + "e2eTestRunner": { + "description": "Adds the specified e2e test runner.", + "type": "string", + "enum": ["cypress", "playwright", "detox", "none"], + "default": "cypress" + }, + "install": { + "type": "boolean", + "description": "Runs `pod install` for native modules before building iOS app.", + "default": true, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Destructive command to upgrade native iOS and Android code to latest.", + "implementation": "/packages/react-native/src/generators/upgrade-native/upgrade-native#reactNativeUpgradeNativeGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/generators/upgrade-native/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react-native/generators/web-configuration.json b/docs/generated/packages/react-native/generators/web-configuration.json new file mode 100644 index 0000000000000..d472267f6b4ba --- /dev/null +++ b/docs/generated/packages/react-native/generators/web-configuration.json @@ -0,0 +1,50 @@ +{ + "name": "web-configuration", + "factory": "./src/generators/web-configuration/web-configuration#webConfigurationGenerator", + "schema": { + "$schema": "http://json-schema.org/schema", + "$id": "NxReactNativeWebConfiguration", + "description": "Setup web configuration to React Native apps using react-native-web.", + "title": "Nx React Native Web configuration", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate web configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate web configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "bundler": { + "description": "The bundler to use.", + "type": "string", + "enum": ["vite", "webpack"], + "x-prompt": "Which bundler do you want to use to build the application?", + "default": "webpack", + "x-priority": "important" + } + }, + "required": ["project", "bundler"], + "presets": [] + }, + "description": "Set up web configuration for a React Native app", + "implementation": "/packages/react-native/src/generators/web-configuration/web-configuration#webConfigurationGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react-native/src/generators/web-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/documents/overview.md b/docs/generated/packages/react/documents/overview.md new file mode 100644 index 0000000000000..947c67178a852 --- /dev/null +++ b/docs/generated/packages/react/documents/overview.md @@ -0,0 +1,154 @@ +The React plugin contains executors and generators for managing React applications and libraries within an Nx workspace. +It provides: + +- Integration with libraries such as Jest, Cypress, and Storybook. +- Generators for applications, libraries, components, hooks, and more. +- Library build support for publishing packages to npm or other registries. +- Utilities for automatic workspace refactoring. + +## Setting Up @nx/react + +### Generating a new Workspace + +To create a new workspace with React, run `npx create-nx-workspace@latest --preset=react-standalone`. + +{% callout type="note" title="React Tutorials" %} +For a full tutorial experience, follow the [React Standalone Tutorial](/getting-started/tutorials/react-standalone-tutorial) or the [React Monorepo Tutorial](/getting-started/tutorials/react-monorepo-tutorial) +{% /callout %} + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/react` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/react` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/react +``` + +This will install the correct version of `@nx/react`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/react` package with your package manager. + +```shell +npm add -D @nx/react +``` + +{% /tab %} +{% /tabs %} + +## Using the @nx/react Plugin + +### Creating Applications and Libraries + +You can add a new application with the following: + +```shell +nx g @nx/react:app my-new-app +``` + +To start the application in development mode, run `nx serve my-new-app`. + +And add a new library as follows: + +```shell +nx g @nx/react:lib my-new-lib + +# If you want the library to be buildable or publishable to npm +nx g @nx/react:lib my-new-lib --bundler=vite +nx g @nx/react:lib my-new-lib --bundler=rollup +nx g @nx/react:lib my-new-lib \ +--publishable \ +--importPath=@myorg/my-new-lib +``` + +Read more about [building and publishing libraries here](/concepts/more-concepts/buildable-and-publishable-libraries). + +### Creating Components + +Adding a component to an existing project can be done with: + +```shell +nx g @nx/react:component my-new-component \ +--project=my-new-app + +# Note: If you want to export the component +# from the library use --export +nx g @nx/react:component my-new-component \ +--project=my-new-lib \ +--export +``` + +Replace `my-new-app` and `my-new-lib` with the name of your projects. + +### Creating Hooks + +If you want to add a new hook, run the following + +```shell +nx g @nx/react:hook my-new-hook --project=my-new-lib +``` + +Replace `my-new-lib` with the name of your project. + +## Using React + +### Testing Projects + +You can run unit tests with: + +```shell +nx test my-new-app +nx test my-new-lib +``` + +Replace `my-new-app` with the name or your project. This command works for both applications and libraries. + +You can also run E2E tests for applications: + +```shell +nx e2e my-new-app-e2e +``` + +Replace `my-new-app-e2e` with the name or your project with `-e2e` appended. + +### Building Projects + +React applications can be build with: + +```shell +nx build my-new-app +``` + +And if you generated a library with `--bundler` specified, then you can build a library as well: + +```shell +nx build my-new-lib +``` + +The output is in the `dist` folder. You can customize the output folder by setting `outputPath` in the +project's `project.json` file. + +The application in `dist` is deployable, and you can try it out locally with: + +```shell +npx http-server dist/apps/my-new-app +``` + +The library in `dist` is publishable to npm or a private registry. + +## More Documentation + +- [React Standalone Tutorial](/getting-started/tutorials/react-standalone-tutorial) +- [React Monorepo Tutorial](/getting-started/tutorials/react-monorepo-tutorial) +- [Using Cypress](/nx-api/cypress) +- [Using Jest](/nx-api/jest) +- [Using Storybook](/recipes/storybook/overview-react) diff --git a/docs/generated/packages/react/executors/module-federation-dev-server.json b/docs/generated/packages/react/executors/module-federation-dev-server.json new file mode 100644 index 0000000000000..e8e479554b635 --- /dev/null +++ b/docs/generated/packages/react/executors/module-federation-dev-server.json @@ -0,0 +1,120 @@ +{ + "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": { "type": "string" }, + "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 for when the `host` application is using a `remote` that does not live in the same workspace as the `host`.", + "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." + } + }, + "presets": [] + }, + "description": "Serve a host or remote application.", + "aliases": [], + "hidden": false, + "path": "/packages/react/src/executors/module-federation-dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react/executors/module-federation-ssr-dev-server.json b/docs/generated/packages/react/executors/module-federation-ssr-dev-server.json new file mode 100644 index 0000000000000..fb5b3ec88d0c4 --- /dev/null +++ b/docs/generated/packages/react/executors/module-federation-ssr-dev-server.json @@ -0,0 +1,54 @@ +{ + "name": "module-federation-ssr-dev-server", + "implementation": "/packages/react/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Module Federation SSR Dev Server", + "description": "Serve a SSR host application along with its known remotes.", + "cli": "nx", + "type": "object", + "properties": { + "browserTarget": { + "type": "string", + "description": "Target which builds the browser application.", + "x-priority": "important" + }, + "serverTarget": { + "type": "string", + "description": "Target which builds the server application.", + "x-priority": "important" + }, + "port": { + "type": "number", + "description": "The port to be set on `process.env.PORT` for use in the server.", + "default": 4200, + "x-priority": "important" + }, + "devRemotes": { + "type": "array", + "items": { "type": "string" }, + "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.", + "x-priority": "important" + }, + "host": { + "type": "string", + "description": "Host to listen on.", + "default": "localhost" + } + }, + "required": ["browserTarget", "serverTarget"], + "presets": [] + }, + "description": "Serve a host application along with it's known remotes.", + "aliases": [], + "hidden": false, + "path": "/packages/react/src/executors/module-federation-ssr-dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/react/generators/application.json b/docs/generated/packages/react/generators/application.json new file mode 100644 index 0000000000000..c463a55f583f3 --- /dev/null +++ b/docs/generated/packages/react/generators/application.json @@ -0,0 +1,204 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactApp", + "title": "Create a React Application", + "description": "Create a React application for Nx.", + "examples": [ + { + "command": "nx g app myapp --directory=myorg", + "description": "Generate `apps/myorg/myapp` and `apps/myorg/myapp-e2e`" + }, + { + "command": "nx g app myapp --classComponent", + "description": "Use class components instead of functional components" + }, + { + "command": "nx g app myapp --routing", + "description": "Set up React Router" + } + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "tailwind", + "label": "tailwind [ https://tailwindcss.com/ ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "routing": { + "type": "boolean", + "description": "Generate application with routes.", + "x-prompt": "Would you like to add React Router to this application?", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipNxJson": { + "description": "Skip updating `nx.json` with default options based on values provided to this app.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "vitest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false + }, + "classComponent": { + "type": "boolean", + "description": "Use class components instead of functional component.", + "alias": "C", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "globalCss": { + "type": "boolean", + "description": "Default is `false`. When `true`, the component is generated with `*.css`/`*.scss` instead of `*.module.css`/`*.module.scss`.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Creates an application with strict mode and strict type checking.", + "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 + }, + "compiler": { + "type": "string", + "description": "The compiler to use.", + "enum": ["babel", "swc"], + "default": "babel" + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "rootProject": { + "description": "Create a application at the root of the workspace", + "type": "boolean", + "default": false, + "hidden": true + }, + "bundler": { + "description": "The bundler to use.", + "type": "string", + "enum": ["vite", "webpack", "rspack"], + "x-prompt": "Which bundler do you want to use to build the application?", + "default": "webpack", + "x-priority": "important" + }, + "minimal": { + "description": "Generate a React app with a minimal setup, no separate test files.", + "type": "boolean", + "default": false + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/react:application my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Application using Vite as bundler\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/react:app my-app --bundler=vite\n```\n\nWhen choosing `vite` as the bundler, your unit tests will be set up with `vitest`, unless you choose `none` for `unitTestRunner`.\n\n{% /tab %}\n\n{% tab label=\"Specify directory and style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/react:app my-app --directory=apps/my-dir/my-app --style=scss\n```\n\n{% /tab %}\n\n{% tab label=\"Add tags\" %}\n\nAdd tags to the application (used for linting).\n\n```bash\nnx g @nx/react:app my-app --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create a React application.", + "implementation": "/packages/react/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/component-cypress-spec.json b/docs/generated/packages/react/generators/component-cypress-spec.json new file mode 100644 index 0000000000000..4efc7e1b56460 --- /dev/null +++ b/docs/generated/packages/react/generators/component-cypress-spec.json @@ -0,0 +1,52 @@ +{ + "name": "component-cypress-spec", + "factory": "./src/generators/component-cypress-spec/component-cypress-spec#componentCypressGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactComponentCypressSpec", + "title": "Create component Cypress spec", + "description": "Create a Cypress spec for a UI component that has a story.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The project name for which to generate tests.", + "examples": ["shared-ui-component"], + "$default": { "$source": "projectName", "index": 0 }, + "x-prompt": "What's name of the project for which to generate tests?", + "x-priority": "important" + }, + "componentPath": { + "type": "string", + "description": "Relative path to the component file from the library root?", + "examples": ["lib/components"], + "x-prompt": "What's path of the component relative to the project's lib root for which to generate a test?", + "x-priority": "important" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "cypressProject": { + "type": "string", + "description": "The Cypress project to generate the stories under. By default, inferred from `project`." + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project", "componentPath"], + "presets": [] + }, + "description": "Create a Cypress spec for a UI component that has a story.", + "hidden": false, + "implementation": "/packages/react/src/generators/component-cypress-spec/component-cypress-spec#componentCypressGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/component-cypress-spec/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/component-story.json b/docs/generated/packages/react/generators/component-story.json new file mode 100644 index 0000000000000..a8d1078b65b95 --- /dev/null +++ b/docs/generated/packages/react/generators/component-story.json @@ -0,0 +1,50 @@ +{ + "name": "component-story", + "factory": "./src/generators/component-story/component-story#componentStoryGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactComponentStory", + "title": "Create component story", + "description": "Generate storybook story for a react component.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "The project where to add the components.", + "examples": ["shared-ui-component"], + "$default": { "$source": "projectName", "index": 0 }, + "x-prompt": "What's name of the project where the component lives?", + "x-priority": "important" + }, + "componentPath": { + "type": "string", + "description": "Relative path to the component file from the library root.", + "examples": ["lib/components"], + "x-prompt": "What's path of the component relative to the project's lib root?", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "default": true, + "x-priority": "important" + } + }, + "required": ["project", "componentPath"], + "presets": [] + }, + "description": "Generate storybook story for a React component", + "hidden": false, + "implementation": "/packages/react/src/generators/component-story/component-story#componentStoryGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/component-story/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/component-test.json b/docs/generated/packages/react/generators/component-test.json new file mode 100644 index 0000000000000..f3a9a5c76f6d6 --- /dev/null +++ b/docs/generated/packages/react/generators/component-test.json @@ -0,0 +1,42 @@ +{ + "name": "component-test", + "factory": "./src/generators/component-test/component-test#componentTestGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactCypressComponentTest", + "title": "Add Cypress component test", + "description": "Add a Cypress component test for a component.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/react:component-test --project=my-react-project --component-path=src/lib/fancy-component.tsx", + "description": "Create a cypress component test for FancyComponent" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project the component is apart of", + "x-dropdown": "projects", + "x-prompt": "What project is this component apart of?", + "x-priority": "important" + }, + "componentPath": { + "type": "string", + "description": "Path to component, from the project source root", + "x-prompt": "What is the path to the component?", + "x-priority": "important" + } + }, + "required": ["project", "componentPath"], + "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nReact component testing with Nx requires **Cypress version 10** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you're wanting to create Cypress tests for a Storybook story, then check out the [component-cypress-spec generator docs](/packages/react/generators/component-cypress-spec)\n\nIf you're wanting to create Storybook stories for a component, then check out the [stories generator docs](/packages/react/generators/stories) or [component-story generator docs](/packages/react/generators/component-cypress-spec)\n\n{% /callout %}\n\nThis generator is used to create a Cypress component test file for a given React component.\n\n```shell\nnx g @nx/react:component-test --project=my-cool-react-project --componentPath=src/my-fancy-button.tsx\n```\n\nTest file are generated with the `.cy.` suffix. this is to prevent colliding with any existing `.spec.` files contained in the project.\n\nIt's currently expected the generated `.cy.` file will live side by side with the component. It is also assumed the project is already setup for component testing. If it isn't, then you can run the [cypress-component-project generator](/packages/react/generators/cypress-component-configuration) to set up the project for component testing.\n", + "presets": [] + }, + "description": "Generate a Cypress component test for a React component", + "hidden": false, + "implementation": "/packages/react/src/generators/component-test/component-test#componentTestGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/component-test/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/component.json b/docs/generated/packages/react/generators/component.json new file mode 100644 index 0000000000000..7b8aafb0c85c6 --- /dev/null +++ b/docs/generated/packages/react/generators/component.json @@ -0,0 +1,150 @@ +{ + "name": "component", + "factory": "./src/generators/component/component#componentGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactComponent", + "title": "Create a React Component", + "description": "Create a React Component for Nx.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?", + "x-priority": "important" + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "alias": "s", + "default": "css", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "skipTests": { + "type": "boolean", + "description": "When true, does not create `spec.ts` test files for the new component.", + "default": false, + "x-priority": "internal" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "alias": "dir", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "flat": { + "type": "boolean", + "description": "Create component at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19." + }, + "export": { + "type": "boolean", + "description": "When true, the component is exported from the project `index.ts` (if it exists).", + "alias": "e", + "default": false, + "x-prompt": "Should this component be exported in the project?" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false, + "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "pascalCaseDirectory": { + "type": "boolean", + "description": "Use pascal case directory name (e.g. `App/App.tsx`).", + "alias": "R", + "default": false, + "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "classComponent": { + "type": "boolean", + "alias": "C", + "description": "Use class components instead of functional component.", + "default": false + }, + "routing": { + "type": "boolean", + "description": "Generate a library with routes." + }, + "globalCss": { + "type": "boolean", + "description": "Default is `false`. When `true`, the component is generated with `*.css`/`*.scss` instead of `*.module.css`/`*.module.scss`.", + "default": false + }, + "fileName": { + "type": "string", + "description": "Create a component with this file name." + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Component\" %}\n\nCreate a component named `my-component` under the `libs/ui` project:\n\n```shell\nnx g @nx/react:component libs/ui/src/my-component\n```\n\n{% /tab %}\n\n{% tab label=\"Standalone Component\" %}\n\nCreate a class component named `my-component` under the `libs/ui` project:\n\n```shell\nnx g @nx/react:component libs/ui/src/my-component --classComponent\n```\n\n{% /tab %}\n", + "presets": [] + }, + "description": "Create a React component.", + "aliases": ["c"], + "implementation": "/packages/react/src/generators/component/component#componentGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react/src/generators/component/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/cypress-component-configuration.json b/docs/generated/packages/react/generators/cypress-component-configuration.json new file mode 100644 index 0000000000000..92318551bd83c --- /dev/null +++ b/docs/generated/packages/react/generators/cypress-component-configuration.json @@ -0,0 +1,65 @@ +{ + "name": "cypress-component-configuration", + "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactCypressComponentTestConfiguration", + "title": "Add Cypress component testing", + "description": "Add a Cypress component testing configuration to an existing project.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/react:cypress-component-configuration --project=my-react-project", + "description": "Add component testing to your react project" + }, + { + "command": "nx g @nx/react:cypress-component-configuration --project=my-react-project --generate-tests", + "description": "Add component testing to your react project and generate component tests for your existing components" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add cypress component testing configuration to", + "x-dropdown": "projects", + "x-prompt": "What project should we add Cypress component testing to?", + "x-priority": "important" + }, + "generateTests": { + "type": "boolean", + "description": "Generate default component tests for existing components in the project", + "x-prompt": "Automatically generate tests for components declared in this project?", + "default": false, + "x-priority": "important" + }, + "buildTarget": { + "type": "string", + "description": "A build target used to configure Cypress component testing in the format of `project:target[:configuration]`. The build target should be from a React app. If not provided we will try to infer it from your projects usage.", + "pattern": "^[^:\\s]+:[^:\\s]+(:\\S+)?$" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files", + "default": false, + "x-priority": "internal" + }, + "bundler": { + "description": "The bundler to use for Cypress Component Testing.", + "type": "string", + "enum": ["vite", "webpack"], + "hidden": true, + "x-priority": "internal" + } + }, + "required": ["project"], + "examplesFile": "{% callout type=\"caution\" title=\"Can I use component testing?\" %}\nReact component testing with Nx requires **Cypress version 10.7.0** and up.\n\nYou can migrate with to v10 via the [migrate-to-cypress-10 generator](/packages/cypress/generators/migrate-to-cypress-10).\n\nThis generator is for Cypress based component testing.\n\nIf you want to test components via Storybook with Cypress, then check out the [storybook-configuration generator docs](/nx-api/react/generators/storybook-configuration). However, this functionality is deprecated, and will be removed on Nx version 19.\n{% /callout %}\n\nThis generator is designed to get your React project up and running with Cypress Component Testing.\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project\n```\n\nRunning this generator, adds the required files to the specified project with a preconfigured `cypress.config.ts` designed for Nx workspaces.\n\nThe following file will be added to projects where the Component Testing build target is using `webpack` for bundling:\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/react/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename, {\n bundler: 'webpack',\n }),\n});\n```\n\nThe following file will be added to projects where the Component Testing build target is using `vite` for bundling:\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/react/plugins/component-testing';\n\nexport default defineConfig({\n component: nxComponentTestingPreset(__filename, {\n bundler: 'vite',\n }),\n});\n```\n\nHere is an example on how to add custom options to the configuration\n\n```ts {% fileName=\"cypress.config.ts\" %}\nimport { defineConfig } from 'cypress';\nimport { nxComponentTestingPreset } from '@nx/react/plugins/component-testing';\n\nexport default defineConfig({\n component: {\n ...nxComponentTestingPreset(__filename, {\n bundler: 'webpack',\n }),\n // extra options here\n },\n});\n```\n\n## The `bundler` option\n\nComponent testing supports two different bundlers: `webpack` and `vite`. The Nx generator will pick up the bundler used in the specified project's build target. If the build target is using `@nx/webpack:webpack`, then the generator will use `webpack` as the bundler. If the build target is using `@nx/vite:build`, then the generator will use `vite` as the bundler.\n\nYou can manually set the bundler by passing `--bundler=webpack` or `--bundler=vite` to the generator, but that is not needed since the generator will pick up the correct bundler for you. However, if you want to use a different bundler than the one that is used in the build target, then you can manually set it using that flag.\n\n## Specifying a Build Target\n\nComponent testing requires a _build target_ to correctly run the component test dev server. This option can be manually specified with `--build-target=some-react-app:build`, but Nx will infer this usage from the [project graph](/concepts/mental-model#the-project-graph) if one isn't provided.\n\nFor React projects, the build target needs to be using the `@nx/webpack:webpack` executor.\nThe generator will throw an error if a build target can't be found and suggest passing one in manually.\n\nLetting Nx infer the build target by default\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project\n```\n\nManually specifying the build target\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project --build-target:some-react-app:build --generate-tests\n```\n\n{% callout type=\"note\" title=\"Build Target with Configuration\" %}\nIf you're wanting to use a build target with a specific configuration. i.e. `my-app:build:production`,\nthen manually providing `--build-target=my-app:build:production` is the best way to do that.\n{% /callout %}\n\n## Auto Generating Tests\n\nYou can optionally use the `--generate-tests` flag to generate a test file for each component in your project.\n\n```shell\nnx g @nx/react:cypress-component-configuration --project=my-cool-react-project --generate-tests\n```\n\n## Running Component Tests\n\nA new `component-test` target will be added to the specified project to run your component tests.\n\n```shell\nnx g component-test my-cool-react-project\n```\n\nHere is an example of the project configuration that is generated. The `--build-target` option is added as the `devServerTarget` which can be changed as needed.\n\n```json {% fileName=\"project.json\" %}\n{\n \"targets\" {\n \"component-test\": {\n \"executor\": \"@nx/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"/cypress.config.ts\",\n \"testingType\": \"component\",\n \"devServerTarget\": \"some-react-app:build\",\n \"skipServe\": true\n }\n }\n }\n}\n```\n\nNx also supports [Angular component testing](/packages/angular/generators/cypress-component-configuration).\n", + "presets": [] + }, + "description": "Setup Cypress component testing for a React project", + "hidden": false, + "implementation": "/packages/react/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/cypress-component-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/federate-module.json b/docs/generated/packages/react/generators/federate-module.json new file mode 100644 index 0000000000000..b490fdb5911bb --- /dev/null +++ b/docs/generated/packages/react/generators/federate-module.json @@ -0,0 +1,91 @@ +{ + "name": "federate-module", + "factory": "./src/generators/federate-module/federate-module#federateModuleGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactFederateModule", + "title": "Federate Module", + "description": "Create a federated module, which can be loaded by a remote host.", + "examples": [ + { + "command": "nx g federate-module MyModule --path=./src/component/my-cmp.ts --remote=my-remote-app --remoteDirectory=apps/my-remote-app", + "description": "Create a federated module from my-remote-app, that exposes my-cmp from ./src/component/my-cmp.ts as MyModule." + } + ], + "type": "object", + "properties": { + "path": { + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "description": "The path to locate the federated module. This path should be relative to the workspace root and the file should exist.", + "x-prompt": "What is the path to the module to be federated?" + }, + "name": { + "description": "The name of the module.", + "type": "string", + "x-prompt": "What name would you like to use for the module?", + "pattern": "^[a-zA-Z][^:]*$", + "x-priority": "important" + }, + "remote": { + "type": "string", + "description": "The name of the remote.", + "x-prompt": "What is/should the remote be named?" + }, + "remoteDirectory": { + "description": "The directory of the new remote application if one needs to be created.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "none", + "alias": "s" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "host": { + "type": "string", + "description": "The host / shell application for this remote." + } + }, + "required": ["name", "path", "remote"], + "additionalProperties": false, + "presets": [] + }, + "description": "Federate a module.", + "hidden": false, + "implementation": "/packages/react/src/generators/federate-module/federate-module#federateModuleGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/federate-module/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/hook.json b/docs/generated/packages/react/generators/hook.json new file mode 100644 index 0000000000000..ef84c39c7671a --- /dev/null +++ b/docs/generated/packages/react/generators/hook.json @@ -0,0 +1,90 @@ +{ + "name": "hook", + "factory": "./src/generators/hook/hook#hookGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactHook", + "title": "Create a React Hook for Nx", + "description": "Create a React component using Hooks in a dedicated React project.", + "type": "object", + "examples": [ + { + "command": "nx g hook my-hook --project=mylib", + "description": "Generate a hook in the `mylib` library" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the hook.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the hook?", + "x-priority": "important" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "skipTests": { + "type": "boolean", + "description": "When true, does not create `spec.ts` test files for the new hook.", + "default": false, + "x-priority": "internal" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the hook file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "flat": { + "type": "boolean", + "description": "Create hook at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "export": { + "type": "boolean", + "description": "When true, the hook is exported from the project `index.ts` (if it exists).", + "alias": "e", + "default": false, + "x-prompt": "Should this hook be exported in the project?" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case hook file name (e.g. `useHook.ts`).", + "alias": "P", + "default": false, + "x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + }, + "pascalCaseDirectory": { + "type": "boolean", + "description": "Use pascal case directory name (e.g. `useHook/useHook.ts`).", + "alias": "R", + "default": false, + "x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19." + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Create a hook.", + "aliases": ["c"], + "implementation": "/packages/react/src/generators/hook/hook#hookGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react/src/generators/hook/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/host.json b/docs/generated/packages/react/generators/host.json new file mode 100644 index 0000000000000..25b635247c422 --- /dev/null +++ b/docs/generated/packages/react/generators/host.json @@ -0,0 +1,187 @@ +{ + "name": "host", + "factory": "./src/generators/host/host#hostGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorReactHost", + "cli": "nx", + "title": "Generate Module Federation Setup for React Host App", + "description": "Create Module Federation configuration files for given React Host Application.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the host application to generate the Module Federation configuration", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use as the host application?", + "pattern": "^[a-zA-Z][^:]*$", + "x-priority": "important" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "tailwind", + "label": "tailwind [ https://tailwindcss.com/ ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "dynamic": { + "type": "boolean", + "description": "Should the host application use dynamic federation?", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipNxJson": { + "description": "Skip updating workspace.json with default options based on values provided to this app (e.g. babel, style).", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. App.tsx).", + "alias": "P", + "default": false + }, + "classComponent": { + "type": "boolean", + "description": "Use class components instead of functional component.", + "alias": "C", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "globalCss": { + "type": "boolean", + "description": "Default is false. When true, the component is generated with *.css/*.scss instead of *.module.css/*.module.scss", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Creates an application with strict mode and strict type checking", + "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 + }, + "compiler": { + "type": "string", + "description": "The compiler to use", + "enum": ["babel", "swc"], + "default": "babel" + }, + "remotes": { + "type": "array", + "description": "A list of remote application names that the host application should consume.", + "default": [], + "x-priority": "important" + }, + "devServerPort": { + "type": "number", + "description": "The port for the dev server of the remote app.", + "default": 4200, + "x-priority": "important" + }, + "ssr": { + "description": "Whether to configure SSR for the host application", + "type": "boolean", + "default": false + }, + "minimal": { + "description": "Generate a React app with a minimal setup. No nx starter template.", + "type": "boolean", + "default": false + }, + "typescriptConfiguration": { + "type": "boolean", + "description": "Whether the module federation configuration and webpack configuration files should use TS. When --js is used, this flag is ignored.", + "default": true + } + }, + "required": ["name"], + "additionalProperties": false, + "presets": [] + }, + "x-type": "application", + "description": "Generate a host react application", + "implementation": "/packages/react/src/generators/host/host#hostGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react/src/generators/host/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/init.json b/docs/generated/packages/react/generators/init.json new file mode 100644 index 0000000000000..d2061793c1e59 --- /dev/null +++ b/docs/generated/packages/react/generators/init.json @@ -0,0 +1,38 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#reactInitGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxReactNgInit", + "title": "Init React Plugin", + "description": "Initialize a React Plugin.", + "cli": "nx", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/react` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/react/src/generators/init/init#reactInitGenerator.ts", + "path": "/packages/react/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/library.json b/docs/generated/packages/react/generators/library.json new file mode 100644 index 0000000000000..cd86079a66551 --- /dev/null +++ b/docs/generated/packages/react/generators/library.json @@ -0,0 +1,204 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactLibrary", + "title": "Create a React Library", + "description": "Create a React Library for an Nx workspace.", + "type": "object", + "examples": [ + { + "command": "nx g lib mylib --directory=myapp", + "description": "Generate `libs/myapp/mylib`" + }, + { + "command": "nx g lib mylib --appProject=myapp", + "description": "Generate a library with routes and add them to `myapp`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "vitest", "none"], + "description": "Test runner to use for unit tests.", + "x-prompt": "What unit test runner should be used?" + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files." + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update `tsconfig.json` for development experience.", + "x-priority": "internal" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false + }, + "routing": { + "type": "boolean", + "description": "Generate library with routes." + }, + "appProject": { + "type": "string", + "description": "The application project to add the library route to.", + "alias": "a" + }, + "publishable": { + "type": "boolean", + "description": "Create a publishable library." + }, + "buildable": { + "type": "boolean", + "default": false, + "description": "Generate a buildable library that uses rollup to bundle.", + "x-deprecated": "Use the `bundler` option for greater control (none, vite, rollup)." + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`." + }, + "component": { + "type": "boolean", + "description": "Generate a default component.", + "default": true + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "globalCss": { + "type": "boolean", + "description": "When `true`, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is `*.css` rather than `*.module.css`).", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "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 + }, + "bundler": { + "type": "string", + "description": "The bundler to use. Choosing 'none' means this library is not buildable.", + "enum": ["none", "vite", "rollup"], + "default": "none", + "x-prompt": "Which bundler would you like to use to build the library? Choose 'none' to skip build setup.", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "enum": ["babel", "swc"], + "default": "babel", + "description": "Which compiler to use." + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "minimal": { + "description": "Create a React library with a minimal setup, no separate test files.", + "type": "boolean", + "default": false + }, + "simpleName": { + "description": "Don't include the directory in the name of the module of the library.", + "type": "boolean", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a React library.", + "implementation": "/packages/react/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/redux.json b/docs/generated/packages/react/generators/redux.json new file mode 100644 index 0000000000000..c62324fef9cde --- /dev/null +++ b/docs/generated/packages/react/generators/redux.json @@ -0,0 +1,57 @@ +{ + "name": "redux", + "factory": "./src/generators/redux/redux#reduxGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "redux", + "title": "Create Redux state", + "description": "Create a Redux state slice for a React project.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Redux slice name.", + "$default": { "$source": "argv", "index": 0 }, + "x-priority": "important" + }, + "project": { + "type": "string", + "description": "The name of the project to add the slice to. If it is an application, then the store configuration will be updated too.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "directory": { + "type": "string", + "alias": "dir", + "default": "", + "description": "The directory at which to create the Redux files. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the project root.", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "appProject": { + "type": "string", + "description": "The application project to add the slice to.", + "alias": "a" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Create a Redux slice for a project.", + "aliases": ["slice"], + "implementation": "/packages/react/src/generators/redux/redux#reduxGeneratorInternal.ts", + "hidden": false, + "path": "/packages/react/src/generators/redux/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/remote.json b/docs/generated/packages/react/generators/remote.json new file mode 100644 index 0000000000000..eeba3d1dafc95 --- /dev/null +++ b/docs/generated/packages/react/generators/remote.json @@ -0,0 +1,186 @@ +{ + "name": "remote", + "factory": "./src/generators/remote/remote#remoteGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorReactRemote", + "cli": "nx", + "title": "Generate Module Federation Setup for React Remote App", + "description": "Create Module Federation configuration files for given React Remote Application.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the remote application to generate the Module Federation configuration", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use as the remote application?", + "pattern": "^[a-zA-Z][^:]*$", + "x-priority": "important" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "dynamic": { + "type": "boolean", + "description": "Should the host application use dynamic federation?", + "default": false, + "x-priority": "internal" + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { + "value": "tailwind", + "label": "tailwind [ https://tailwindcss.com/ ]" + }, + { + "value": "styled-components", + "label": "styled-components [ https://styled-components.com ]" + }, + { + "value": "@emotion/styled", + "label": "emotion [ https://emotion.sh ]" + }, + { + "value": "styled-jsx", + "label": "styled-jsx [ https://www.npmjs.com/package/styled-jsx ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "routing": { + "type": "boolean", + "description": "Generate application with routes.", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipNxJson": { + "description": "Skip updating workspace.json with default options based on values provided to this app (e.g. babel, style).", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "none"], + "description": "Test runner to use for unit tests.", + "default": "jest" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. App.tsx).", + "alias": "P", + "default": false + }, + "classComponent": { + "type": "boolean", + "description": "Use class components instead of functional component.", + "alias": "C", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "globalCss": { + "type": "boolean", + "description": "Default is false. When true, the component is generated with *.css/*.scss instead of *.module.css/*.module.scss.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Creates an application with strict mode and strict type checking.", + "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 + }, + "compiler": { + "type": "string", + "description": "The compiler to use.", + "enum": ["babel", "swc"], + "default": "babel" + }, + "host": { + "type": "string", + "description": "The host / shell application for this remote.", + "x-priority": "important" + }, + "devServerPort": { + "type": "number", + "description": "The port for the dev server of the remote app.", + "x-priority": "important" + }, + "ssr": { + "description": "Whether to configure SSR for the host application", + "type": "boolean", + "default": false + }, + "typescriptConfiguration": { + "type": "boolean", + "description": "Whether the module federation configuration and webpack configuration files should use TS. When --js is used, this flag is ignored.", + "default": true + } + }, + "required": ["name"], + "additionalProperties": false, + "presets": [] + }, + "x-type": "application", + "description": "Generate a remote react application", + "implementation": "/packages/react/src/generators/remote/remote#remoteGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/react/src/generators/remote/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/setup-ssr.json b/docs/generated/packages/react/generators/setup-ssr.json new file mode 100644 index 0000000000000..874b7dbf480f2 --- /dev/null +++ b/docs/generated/packages/react/generators/setup-ssr.json @@ -0,0 +1,54 @@ +{ + "name": "setup-ssr", + "factory": "./src/generators/setup-ssr/setup-ssr#setupSsrGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "GeneratorReactSSRSetup", + "cli": "nx", + "title": "Generate SSR setup for a React app", + "description": "Create the additional configuration required to enable SSR via Express for a React application.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the application to add SSR support to.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What app would you like to add SSR support to?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "appComponentImportPath": { + "type": "string", + "description": "The import path of the component, relative to project sourceRoot.", + "default": "app/app" + }, + "serverPort": { + "type": "number", + "default": 4200, + "description": "The port for the Express server.", + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting the workspace after the generator completes.", + "x-priority": "internal" + }, + "extraInclude": { + "type": "array", + "items": { "type": "string" }, + "hidden": true, + "description": "Extra include entries in tsconfig.", + "default": [] + } + }, + "required": ["project"], + "additionalProperties": false, + "presets": [] + }, + "description": "Set up SSR configuration for a project.", + "hidden": false, + "implementation": "/packages/react/src/generators/setup-ssr/setup-ssr#setupSsrGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/setup-ssr/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/setup-tailwind.json b/docs/generated/packages/react/generators/setup-tailwind.json new file mode 100644 index 0000000000000..e87ffb2fa7c00 --- /dev/null +++ b/docs/generated/packages/react/generators/setup-tailwind.json @@ -0,0 +1,55 @@ +{ + "name": "setup-tailwind", + "factory": "./src/generators/setup-tailwind/setup-tailwind#setupTailwindGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactTailwindSetupGenerator", + "title": "Configures Tailwind CSS for an application or a buildable/publishable library.", + "description": "Adds the Tailwind CSS configuration files for a given React project and installs, if needed, the packages required for Tailwind CSS to work.", + "type": "object", + "examples": [ + { + "command": "nx g setup-tailwind --project=my-app", + "description": "Initialize Tailwind configuration for the `my-app` project." + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add the Tailwind CSS setup for.", + "alias": "p", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "projects", + "x-prompt": "What project would you like to add the Tailwind CSS setup?", + "x-priority": "important" + }, + "buildTarget": { + "type": "string", + "description": "The name of the target used to build the project. This option is not needed in most cases.", + "default": "build", + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skips formatting the workspace after the generator completes.", + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + } + }, + "additionalProperties": false, + "required": ["project"], + "presets": [] + }, + "description": "Set up Tailwind configuration for a project.", + "hidden": false, + "implementation": "/packages/react/src/generators/setup-tailwind/setup-tailwind#setupTailwindGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/setup-tailwind/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/stories.json b/docs/generated/packages/react/generators/stories.json new file mode 100644 index 0000000000000..4f5a13820c10a --- /dev/null +++ b/docs/generated/packages/react/generators/stories.json @@ -0,0 +1,72 @@ +{ + "name": "stories", + "factory": "./src/generators/stories/stories#storiesGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactStorybookStories", + "title": "Generate React Storybook stories", + "description": "Generate stories/specs for all components declared in a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate stories.", + "$default": { "$source": "projectName", "index": 0 }, + "x-prompt": "For which project do you want to generate stories?", + "x-priority": "important" + }, + "generateCypressSpecs": { + "type": "boolean", + "description": "Automatically generate `*.spec.ts` files in the cypress e2e app generated by the cypress-configure generator." + }, + "cypressProject": { + "type": "string", + "description": "The Cypress project to generate the stories under. This is inferred from `project` by default." + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "default": true + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "examplesFile": "This generator will generate stories for all your components in your project. The stories will be generated using [Component Story Format 3 (CSF3)](https://storybook.js.org/blog/storybook-csf3-is-here/).\n\n```bash\nnx g @nx/react:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for React overview page](/recipes/storybook/overview-react#auto-generate-stories).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/react:stories --name=ui --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*\n```\n\nThis will generate stories for all the components in the `ui` project, except for the ones in the `libs/ui/src/not-stories` directory, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/react:stories --name=ui --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n", + "presets": [] + }, + "description": "Create stories/specs for all components declared in an app or library.", + "hidden": false, + "implementation": "/packages/react/src/generators/stories/stories#storiesGenerator.ts", + "aliases": [], + "path": "/packages/react/src/generators/stories/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/react/generators/storybook-configuration.json b/docs/generated/packages/react/generators/storybook-configuration.json new file mode 100644 index 0000000000000..75de45d624622 --- /dev/null +++ b/docs/generated/packages/react/generators/storybook-configuration.json @@ -0,0 +1,100 @@ +{ + "name": "storybook-configuration", + "factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxReactStorybookConfigure", + "title": "React Storybook Configure", + "description": "Set up Storybook for a React app or library.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "alias": ["configureTestRunner"], + "default": true + }, + "configureCypress": { + "type": "boolean", + "description": "Run the cypress-configure generator.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "generateStories": { + "type": "boolean", + "description": "Automatically generate `*.stories.ts` files for components declared in this project?", + "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", + "default": true, + "x-priority": "important" + }, + "generateCypressSpecs": { + "type": "boolean", + "description": "Automatically generate test files in the Cypress E2E app generated by the `cypress-configure` generator.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "configureStaticServe": { + "type": "boolean", + "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", + "x-prompt": "Configure a static file server for the storybook instance?", + "default": true, + "x-priority": "important" + }, + "cypressDirectory": { + "type": "string", + "description": "A directory where the Cypress project will be placed. Placed at the root by default.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript story files rather than TypeScript story files.", + "default": false + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": true + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + } + }, + "required": ["project"], + "examplesFile": "This generator will set up Storybook for your **React** project. You can also use this generator to generate Storybook configuration for your **Next.js** project. By default, starting Nx 16, Storybook v7 is used.\n\n```bash\nnx g @nx/react:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for React overview page](/recipes/storybook/overview-react#generate-storybook-configuration-for-an-react-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/react/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/react:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/react:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/react:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/react:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", + "presets": [] + }, + "description": "Set up storybook for a React app or library.", + "hidden": false, + "implementation": "/packages/react/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts", + "aliases": [], + "path": "/packages/react/src/generators/storybook-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/documents/overview.md b/docs/generated/packages/remix/documents/overview.md new file mode 100644 index 0000000000000..f0e13f283292c --- /dev/null +++ b/docs/generated/packages/remix/documents/overview.md @@ -0,0 +1,288 @@ +--- +title: Overview of the Nx Remix Plugin +description: The Nx Plugin for Remix contains executors, generators, and utilities for managing Remix applications and libraries within an Nx workspace. +--- + +The Nx Plugin for Remix contains executors, generators, and utilities for managing Remix applications and libraries +within an Nx workspace. It provides: + +- Integration with libraries such as Storybook, Jest, Vitest and Cypress. +- Generators to help scaffold code quickly, including: + - Libraries, both internal to your codebase and publishable to npm + - Routes + - Loaders + - Actions + - Meta +- Utilities for automatic workspace refactoring. + +## Setting up @nx/remix + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/remix` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/remix` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/remix +``` + +This will install the correct version of `@nx/remix`. + +### How @nx/remix Infers Tasks + +The `@nx/remix` plugin will create a task for any project that has a Remix configuration file present. Any of the following files will be recognized as a Remix configuration file: + +- `remix.config.js` +- `remix.config.mjs` +- `remix.config.cjs` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/remix Configuration + +The `@nx/remix/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/remix/plugin", + "options": { + "buildTargetName": "build", + "serveTargetName": "serve", + "startTargetName": "start", + "typecheckTargetName": "typecheck" + } + } + ] +} +``` + +The `buildTargetName`, `serveTargetName`, `startTargetName` and `typecheckTargetName` options control the names of the inferred Remix tasks. The default names are `build`, `serve`, `start` and `typecheck`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/remix` package with your package manager. + +```shell +npm add -D @nx/remix +``` + +{% /tab %} +{% /tabs %} + +## Using the Remix Plugin + +## Generate a Remix Application + +{% callout type="note" title="Directory Flag Behavior Changes" %} +The command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, omit the `--directory` flag. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details. +{% /callout %} + +```{% command="nx g @nx/remix:app myapp --directory=apps/myapp" path="~/acme" %} +NX Generating @nx/remix:application + +✔ What unit test runner should be used? · vitest + +CREATE apps/myapp/project.json +UPDATE package.json +CREATE apps/myapp/README.md +CREATE apps/myapp/app/root.tsx +CREATE apps/myapp/app/routes/_index.tsx +CREATE apps/myapp/public/favicon.ico +CREATE apps/myapp/remix.config.js +CREATE apps/myapp/remix.env.d.ts +CREATE apps/myapp/tsconfig.json +CREATE apps/myapp/.gitignore +CREATE apps/myapp/package.json +UPDATE nx.json +CREATE tsconfig.base.json +CREATE .prettierrc +CREATE .prettierignore +UPDATE .vscode/extensions.json +CREATE apps/myapp/vite.config.ts +CREATE apps/myapp/tsconfig.spec.json +CREATE apps/myapp/test-setup.ts +CREATE apps/myapp-e2e/cypress.config.ts +CREATE apps/myapp-e2e/src/e2e/app.cy.ts +CREATE apps/myapp-e2e/src/fixtures/example.json +CREATE apps/myapp-e2e/src/support/commands.ts +CREATE apps/myapp-e2e/src/support/e2e.ts +CREATE apps/myapp-e2e/tsconfig.json +CREATE apps/myapp-e2e/project.json +CREATE .eslintrc.json +CREATE .eslintignore +CREATE apps/myapp-e2e/.eslintrc.json +``` + +## Build, Serve and Test your Application + +1. To build your application run: + +```{% command="nx build myapp" path="~/acme" %} +> nx run myapp:build + +Building Remix app in production mode... + +Built in 857ms + +—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +NX Successfully ran target build for project myapp (3s) +``` + +2. To serve your application for use during development run: + +```{% command="nx serve myapp" path="~/acme" %} +> nx run myapp:serve + +💿 Building... +💿 Rebuilt in 377ms +Remix App Server started at http://localhost:3000 (http://192.168.0.14:3000) +``` + +3. To test the application using vitest run: + +```{% command="nx test myapp" path="~/acme" %} +> nx run myapp:test + +RUN v0.31.4 /Users/columferry/dev/nrwl/issues/remixguide/acme/apps/myapp +stderr | app/routes/index.spec.ts > test > should render +Warning: Functions are not valid as a React child. This may happen if you return a Component instead of from render. Or maybe you meant to call this function rather than return it. +✓ app/routes/index.spec.ts (1 test) 10ms +Test Files 1 passed (1) + Tests 1 passed (1) +Start at 16:15:45 +Duration 1.20s (transform 51ms, setup 139ms, collect 180ms, tests 10ms, environment 379ms, prepare 103ms) + +—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + +NX Successfully ran target test for project myapp (2s) +``` + +## Generating an Nx Library + +When developing your application, it often makes sense to split your codebase into smaller more focused libraries. + +To generate a library to use in your Remix application run: + +```{% command="nx g @nx/remix:lib login --directory=libs/login" path="~/acme" %} +NX Generating @nx/remix:library + +✔ What test runner should be used? · vitest +UPDATE nx.json +UPDATE package.json +CREATE babel.config.json +CREATE libs/login/project.json +CREATE libs/login/.eslintrc.json +CREATE libs/login/README.md +CREATE libs/login/src/index.ts +CREATE libs/login/tsconfig.lib.json +CREATE libs/login/tsconfig.json +CREATE libs/login/vite.config.ts +CREATE libs/login/tsconfig.spec.json +CREATE libs/login/src/lib/login.module.css +CREATE libs/login/src/lib/login.spec.tsx +CREATE libs/login/src/lib/login.tsx +UPDATE tsconfig.base.json +CREATE libs/login/src/test-setup.ts +CREATE libs/login/src/server.ts +``` + +You can then use the library by importing one of the exports into your application: + +`apps/myapp/app/routes/index.tsx` + +```tsx +import { Login } from '@acme/login'; + +export default function Index() { + return ( +
+ +
+ ); +} +``` + +You can also run test on your library: + +`nx test login` + +## Generating a Route + +To generate a route for your application: + +```{% command="nx g @nx/remix:route admin --path=apps/myapp/app/routes" path="~/acme" %} +NX Generating @nx/remix:route + +CREATE apps/myapp/app/routes/admin.tsx +CREATE apps/myapp/app/styles/admin.css +``` + +## Using a loader from your Library + +To use a Route Loader where the logic lives in your library, follow the steps below. + +1. Generate a loader for your route: + +```{% command="nx g @nx/remix:loader admin --path=apps/myapp/app/routes" path="~/acme" %} +NX Generating @nx/remix:loader + +UPDATE apps/myapp/app/routes/admin.tsx +``` + +2. Add a new file in your `login` lib + +`libs/login/src/lib/admin/admin.loader.ts` + +```ts +import { json, LoaderFunctionArgs } from '@remix-run/node'; + +export const adminLoader = async ({ request }: LoaderFunctionArgs) => { + return json({ + message: 'Hello, world!', + }); +}; +``` + +Export the function from the `libs/login/src/server.ts` file: + +```ts +export * from './lib/admin/admin.loader'; +``` + +3. Use the loader in your `apps/myapp/app/routes/admin.tsx` + +Replace the default loader code: + +```tsx +export const loader = async ({ request }: LoaderFunctionArgs) => { + return json({ + message: 'Hello, world!', + }); +}; +``` + +with + +```tsx +import { adminLoader } from '@acme/login/server'; + +export const loader = adminLoader; +``` + +## GitHub Repository with Example + +You can see an example of an Nx Workspace using Remix by clicking below. + +{% github-repository url="https://github.com/nrwl/nx-recipes/tree/main/remix" /%} diff --git a/docs/generated/packages/remix/executors/build.json b/docs/generated/packages/remix/executors/build.json new file mode 100644 index 0000000000000..1980398baa748 --- /dev/null +++ b/docs/generated/packages/remix/executors/build.json @@ -0,0 +1,48 @@ +{ + "name": "build", + "implementation": "/packages/remix/src/executors/build/build.impl.ts", + "schema": { + "version": 2, + "outputCapture": "pipe", + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "title": "Remix Build", + "description": "Build a Remix app.", + "type": "object", + "properties": { + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "includeDevDependenciesInPackageJson": { + "type": "boolean", + "description": "Include `devDependencies` in the generated package.json file. By default only production `dependencies` are included.", + "default": false + }, + "generatePackageJson": { + "type": "boolean", + "description": "Generate package.json file in the output folder.", + "default": false + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.", + "default": false + }, + "sourcemap": { + "type": "boolean", + "description": "Generate source maps for production.", + "default": false + } + }, + "required": ["outputPath"], + "presets": [] + }, + "description": "Build a Remix application.", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/executors/build/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/remix/executors/serve.json b/docs/generated/packages/remix/executors/serve.json new file mode 100644 index 0000000000000..c86d2b2e773ef --- /dev/null +++ b/docs/generated/packages/remix/executors/serve.json @@ -0,0 +1,51 @@ +{ + "name": "serve", + "implementation": "/packages/remix/src/executors/serve/serve.impl.ts", + "schema": { + "version": 2, + "outputCapture": "pipe", + "cli": "nx", + "title": "Remix Serve", + "description": "Serve a Remix app.", + "type": "object", + "properties": { + "port": { + "type": "number", + "description": "Set PORT environment variable that can be used to serve the Remix application.", + "default": 4200 + }, + "devServerPort": { + "type": "number", + "description": "Port to start the dev server on." + }, + "debug": { + "type": "boolean", + "description": "Attach a Node.js inspector.", + "default": false + }, + "command": { + "type": "string", + "description": "Command used to run your app server." + }, + "manual": { + "type": "boolean", + "description": "Enable manual mode", + "default": false + }, + "tlsKey": { + "type": "string", + "description": "Path to TLS key (key.pem)." + }, + "tlsCert": { + "type": "string", + "description": "Path to TLS certificate (cert.pem)." + } + }, + "presets": [] + }, + "description": "Serve a Remix application.", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/executors/serve/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/remix/generators/action.json b/docs/generated/packages/remix/generators/action.json new file mode 100644 index 0000000000000..06c1215499870 --- /dev/null +++ b/docs/generated/packages/remix/generators/action.json @@ -0,0 +1,36 @@ +{ + "name": "action", + "implementation": "/packages/remix/src/generators/action/action.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "action", + "type": "object", + "description": "Generate an action for a given route.", + "properties": { + "path": { + "type": "string", + "description": "The route path or path to the filename of the route.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the action in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Add an action function to an existing route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/action/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/application.json b/docs/generated/packages/remix/generators/application.json new file mode 100644 index 0000000000000..67b65b0bcc4a8 --- /dev/null +++ b/docs/generated/packages/remix/generators/application.json @@ -0,0 +1,76 @@ +{ + "name": "application", + "implementation": "/packages/remix/src/generators/application/application.impl#remixApplicationGeneratorInternal.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixApplication", + "title": "Create an Application", + "description": "Generate a new Remix application.", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the name of the application?" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "directory": { + "type": "string", + "description": "A directory where the app is placed.", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["vitest", "jest", "none"], + "default": "vitest", + "description": "Test runner to use for unit tests.", + "x-prompt": "What unit test runner should be used?" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "default": "cypress", + "description": "Test runner to use for e2e tests" + }, + "tags": { + "type": "string", + "description": "Add tags to the project (used for linting)", + "alias": "t" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files", + "default": false + }, + "rootProject": { + "type": "boolean", + "x-priority": "internal", + "default": false + } + }, + "presets": [] + }, + "description": "Generate a new Remix application", + "aliases": ["app"], + "x-type": "application", + "hidden": false, + "path": "/packages/remix/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/cypress-component-configuration.json b/docs/generated/packages/remix/generators/cypress-component-configuration.json new file mode 100644 index 0000000000000..54cf250d797d0 --- /dev/null +++ b/docs/generated/packages/remix/generators/cypress-component-configuration.json @@ -0,0 +1,51 @@ +{ + "name": "cypress-component-configuration", + "implementation": "/packages/remix/src/generators/cypress-component-configuration/cypress-component-configuration.impl#cypressComponentConfigurationGeneratorInternal.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxRemixCypressComponentTestConfiguration", + "title": "Add Cypress component testing", + "description": "Add a Cypress component testing configuration to an existing project.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/remix:cypress-component-configuration --project=my-remix-project", + "description": "Add component testing to your Remix project" + }, + { + "command": "nx g @nx/remix:cypress-component-configuration --project=my-remix-project --generate-tests", + "description": "Add component testing to your Remix project and generate component tests for your existing components" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add cypress component testing configuration to", + "x-dropdown": "projects", + "x-prompt": "What project should we add Cypress component testing to?", + "x-priority": "important" + }, + "generateTests": { + "type": "boolean", + "description": "Generate default component tests for existing components in the project", + "x-prompt": "Automatically generate tests for components declared in this project?", + "default": false, + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Generate a Cypress Component Testing configuration for a Remix project", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/cypress-component-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/error-boundary.json b/docs/generated/packages/remix/generators/error-boundary.json new file mode 100644 index 0000000000000..b5834694ecfca --- /dev/null +++ b/docs/generated/packages/remix/generators/error-boundary.json @@ -0,0 +1,47 @@ +{ + "name": "error-boundary", + "implementation": "/packages/remix/src/generators/error-boundary/error-boundary.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixErrorBoundary", + "title": "Create an ErrorBoundary for a Route", + "description": "Generate an ErrorBoundary for a given route.", + "type": "object", + "examples": [ + { + "command": "g error-boundary --routePath=apps/demo/app/routes/my-route.tsx", + "description": "Generate an ErrorBoundary for my-route.tsx" + } + ], + "properties": { + "path": { + "type": "string", + "description": "The path to route file relative to the project root." + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the error boundary in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files after generation.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Add an ErrorBoundary to an existing route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/error-boundary/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/init.json b/docs/generated/packages/remix/generators/init.json new file mode 100644 index 0000000000000..44d9cf16f7f4b --- /dev/null +++ b/docs/generated/packages/remix/generators/init.json @@ -0,0 +1,43 @@ +{ + "name": "init", + "implementation": "/packages/remix/src/generators/init/init#remixInitGeneratorInternal.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixInit", + "title": "Init Remix Plugin", + "description": "Initialize the Remix Plugin.", + "cli": "nx", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nx/remix` plugin.", + "hidden": true, + "aliases": [], + "path": "/packages/remix/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/library.json b/docs/generated/packages/remix/generators/library.json new file mode 100644 index 0000000000000..4a4b6dc7708e8 --- /dev/null +++ b/docs/generated/packages/remix/generators/library.json @@ -0,0 +1,82 @@ +{ + "name": "library", + "implementation": "/packages/remix/src/generators/library/library.impl#remixLibraryGeneratorInternal.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixLibrary", + "title": "Create a Library", + "description": "Generate a Remix library to help structure workspace and application.", + "type": "object", + "examples": [ + { + "command": "g lib mylib --directory=myapp", + "description": "Generate libs/myapp/mylib" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "^[a-zA-Z].*$" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting)" + }, + "style": { + "type": "string", + "description": "Generate a stylesheet", + "enum": ["none", "css"], + "default": "css" + }, + "buildable": { + "type": "boolean", + "description": "Should the library be buildable?", + "default": false + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "vitest", "none"], + "description": "Test Runner to use for Unit Tests", + "x-prompt": "What test runner should be used?", + "default": "vitest" + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like @myorg/my-awesome-lib" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files", + "default": false + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files after generator runs", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Generate a new library", + "aliases": ["lib"], + "x-type": "library", + "hidden": false, + "path": "/packages/remix/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/loader.json b/docs/generated/packages/remix/generators/loader.json new file mode 100644 index 0000000000000..b6a366ab1164a --- /dev/null +++ b/docs/generated/packages/remix/generators/loader.json @@ -0,0 +1,36 @@ +{ + "name": "loader", + "implementation": "/packages/remix/src/generators/loader/loader.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "data-loader", + "type": "object", + "description": "Generate an loader for a given route.", + "properties": { + "path": { + "type": "string", + "description": "The route path or path to the filename of the route.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the loader in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Add a loader function to an existing route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/loader/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/meta.json b/docs/generated/packages/remix/generators/meta.json new file mode 100644 index 0000000000000..85399646bdf24 --- /dev/null +++ b/docs/generated/packages/remix/generators/meta.json @@ -0,0 +1,36 @@ +{ + "name": "meta", + "implementation": "/packages/remix/src/generators/meta/meta.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "meta", + "type": "object", + "description": "Generate a meta function for a given route.", + "properties": { + "path": { + "type": "string", + "description": "The route path or path to the filename of the route.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the meta function in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Add a meta function to an existing route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/meta/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/preset.json b/docs/generated/packages/remix/generators/preset.json new file mode 100644 index 0000000000000..a24979c2067c0 --- /dev/null +++ b/docs/generated/packages/remix/generators/preset.json @@ -0,0 +1,24 @@ +{ + "name": "preset", + "implementation": "/packages/remix/src/generators/preset/preset.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "Remix", + "title": "", + "type": "object", + "description": "Generate a Remix application in a standalone workspace. Can be used with `create-nx-workspace --preset=@nx/remix`.", + "properties": { + "tags": { + "type": "string", + "description": "Add tags to the app (used for linting).", + "alias": "t" + } + }, + "presets": [] + }, + "description": "Generate a new Remix workspace", + "hidden": true, + "aliases": [], + "path": "/packages/remix/src/generators/preset/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/resource-route.json b/docs/generated/packages/remix/generators/resource-route.json new file mode 100644 index 0000000000000..f57b7f1d0a0ff --- /dev/null +++ b/docs/generated/packages/remix/generators/resource-route.json @@ -0,0 +1,58 @@ +{ + "name": "resource-route", + "implementation": "/packages/remix/src/generators/resource-route/resource-route.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixResourceRoute", + "title": "Create a Resource Route", + "type": "object", + "description": "Generate a resource route.", + "examples": [ + { + "command": "g resource-route 'path/to/page'", + "description": "Generate resource route at /path/to/page" + } + ], + "properties": { + "path": { + "type": "string", + "description": "The route path or path to the filename of the route.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar')" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the styles in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + }, + "action": { + "type": "boolean", + "description": "Generate an action function", + "default": false + }, + "loader": { + "type": "boolean", + "description": "Generate a loader function", + "default": true + }, + "skipChecks": { + "type": "boolean", + "description": "Skip route error detection", + "default": false + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Generate a new resource route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/resource-route/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/route.json b/docs/generated/packages/remix/generators/route.json new file mode 100644 index 0000000000000..e9bc0ee09d160 --- /dev/null +++ b/docs/generated/packages/remix/generators/route.json @@ -0,0 +1,69 @@ +{ + "name": "route", + "implementation": "/packages/remix/src/generators/route/route.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixRoute", + "title": "Create a Route", + "description": "Generate a route.", + "type": "object", + "examples": [ + { + "command": "g route 'path/to/page'", + "description": "Generate route at /path/to/page" + } + ], + "properties": { + "path": { + "type": "string", + "description": "The route path or path to the filename of the route. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar')" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the route in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and path relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + }, + "style": { + "type": "string", + "description": "Generate a stylesheet", + "enum": ["none", "css"], + "default": "css" + }, + "meta": { + "type": "boolean", + "description": "Generate a meta function", + "default": false + }, + "action": { + "type": "boolean", + "description": "Generate an action function", + "default": false + }, + "loader": { + "type": "boolean", + "description": "Generate a loader function", + "default": false + }, + "skipChecks": { + "type": "boolean", + "description": "Skip route error detection", + "default": false + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Generate a new route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/route/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/setup-tailwind.json b/docs/generated/packages/remix/generators/setup-tailwind.json new file mode 100644 index 0000000000000..215eca3cdc251 --- /dev/null +++ b/docs/generated/packages/remix/generators/setup-tailwind.json @@ -0,0 +1,44 @@ +{ + "name": "setup-tailwind", + "implementation": "/packages/remix/src/generators/setup-tailwind/setup-tailwind.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixTailwind", + "title": "Add TailwindCSS to a Remix App", + "description": "Setup tailwindcss for a given project.", + "type": "object", + "examples": [ + { + "command": "g setup-tailwind --project=myapp", + "description": "Generate a TailwindCSS config for your Remix app" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add tailwind to", + "$default": { "$source": "projectName" }, + "x-prompt": "What project would you like to add Tailwind to?", + "pattern": "^[a-zA-Z].*$" + }, + "js": { + "type": "boolean", + "description": "Generate a JavaScript config file instead of a TypeScript config file", + "default": false + }, + "skipFormat": { + "type": "boolean", + "description": "Skip formatting files after generator runs", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Generates a TailwindCSS configuration for the Remix application", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/setup-tailwind/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/setup.json b/docs/generated/packages/remix/generators/setup.json new file mode 100644 index 0000000000000..7a901a0d6029b --- /dev/null +++ b/docs/generated/packages/remix/generators/setup.json @@ -0,0 +1,24 @@ +{ + "name": "setup", + "implementation": "/packages/remix/src/generators/setup/setup.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixSetup", + "title": "", + "type": "object", + "description": "Generate initial files required for Remix to work within the workspace.", + "properties": { + "packageManager": { + "type": "string", + "description": "The package manager to setup for", + "enum": ["yarn", "npm", "pnpm"] + } + }, + "presets": [] + }, + "description": "Setup a Remix in an existing workspace", + "hidden": true, + "aliases": [], + "path": "/packages/remix/src/generators/setup/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/storybook-configuration.json b/docs/generated/packages/remix/generators/storybook-configuration.json new file mode 100644 index 0000000000000..c395840685585 --- /dev/null +++ b/docs/generated/packages/remix/generators/storybook-configuration.json @@ -0,0 +1,93 @@ +{ + "name": "storybook-configuration", + "implementation": "/packages/remix/src/generators/storybook-configuration/storybook-configuration.impl#remixStorybookConfiguration.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxRemixStorybookConfigure", + "title": "Remix Storybook Configuration", + "description": "Set up Storybook for a Remix library.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "configureCypress": { + "type": "boolean", + "description": "Run the cypress-configure generator.", + "x-prompt": "Configure a cypress e2e app to run against the storybook instance?", + "default": true, + "x-priority": "important" + }, + "generateStories": { + "type": "boolean", + "description": "Automatically generate `*.stories.ts` files for components declared in this project?", + "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", + "default": true, + "x-priority": "important" + }, + "generateCypressSpecs": { + "type": "boolean", + "description": "Automatically generate test files in the Cypress E2E app generated by the `cypress-configure` generator.", + "x-prompt": "Automatically generate test files in the Cypress E2E app generated by the cypress-configure generator?", + "default": true, + "x-priority": "important" + }, + "configureStaticServe": { + "type": "boolean", + "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", + "x-prompt": "Configure a static file server for the storybook instance?", + "default": true, + "x-priority": "important" + }, + "cypressDirectory": { + "type": "string", + "description": "A directory where the Cypress project will be placed. Placed at the root by default." + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript story files rather than TypeScript story files.", + "default": false + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": false + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "examples": [ + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + }, + "configureTestRunner": { + "type": "boolean", + "description": "Add a Storybook Test-Runner target." + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Generates a Storybook configuration for a Remix application", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/storybook-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/remix/generators/style.json b/docs/generated/packages/remix/generators/style.json new file mode 100644 index 0000000000000..d298b13073d4e --- /dev/null +++ b/docs/generated/packages/remix/generators/style.json @@ -0,0 +1,43 @@ +{ + "name": "style", + "implementation": "/packages/remix/src/generators/style/style.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRemixRouteStyle", + "title": "Add style import to a route", + "description": "Generate a style import and file for a given route.", + "type": "object", + "examples": [ + { + "command": "g style --path='apps/demo/app/routes/path/to/page.tsx'", + "description": "Generate route at apps/demo/app/routes/path/to/page.tsx" + } + ], + "properties": { + "path": { + "type": "string", + "description": "Route path", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What is the path of the route? (e.g. 'apps/demo/app/routes/foo/bar.tsx')" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the styles in the path as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "project": { + "type": "string", + "description": "The name of the project.", + "pattern": "^[a-zA-Z].*$", + "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v19." + } + }, + "required": ["path"], + "presets": [] + }, + "description": "Generates a new stylesheet and adds it to an existing route", + "aliases": [], + "hidden": false, + "path": "/packages/remix/src/generators/style/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/rollup/executors/rollup.json b/docs/generated/packages/rollup/executors/rollup.json new file mode 100644 index 0000000000000..60f58625fde6c --- /dev/null +++ b/docs/generated/packages/rollup/executors/rollup.json @@ -0,0 +1,198 @@ +{ + "name": "rollup", + "implementation": "/packages/rollup/src/executors/rollup/rollup.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Web Library Rollup Target (Experimental)", + "description": "Packages a library for different web usages (ESM, CommonJS).", + "cli": "nx", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The path to package.json file.", + "x-priority": "important" + }, + "main": { + "type": "string", + "description": "The path to the entry file, relative to project.", + "alias": "entryFile", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.js|.ts)", + "x-priority": "important" + }, + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "outputFileName": { + "type": "string", + "description": "Name of the main output file. Defaults same basename as 'main' file." + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Delete the output path before building.", + "default": true + }, + "tsConfig": { + "type": "string", + "description": "The path to tsconfig file.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "allowJs": { + "type": "boolean", + "description": "Allow JavaScript files to be compiled.", + "default": false + }, + "format": { + "type": "array", + "description": "List of module formats to output. Defaults to matching format from tsconfig (e.g. CJS for CommonJS, and ESM otherwise).", + "alias": "f", + "items": { "type": "string", "enum": ["esm", "cjs"] } + }, + "external": { + "type": "array", + "description": "A list of external modules that will not be bundled (`react`, `react-dom`, etc.). Can also be set to `all` (bundle nothing) or `none` (bundle everything).", + "oneOf": [ + { "type": "string", "enum": ["all", "none"] }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "watch": { + "type": "boolean", + "description": "Enable re-building when files change.", + "default": false + }, + "rollupConfig": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "x-completion-type": "file", + "x-completion-glob": "rollup?(*)@(.js|.ts)" + } + }, + { + "type": "string", + "x-completion-type": "file", + "x-completion-glob": "rollup?(*)@(.js|.ts)" + } + ], + "description": "Path to a function which takes a rollup config and returns an updated rollup config." + }, + "extractCss": { + "type": ["boolean", "string"], + "description": "CSS files will be extracted to the output folder. Alternatively custom filename can be provided (e.g. styles.css)", + "default": true + }, + "assets": { + "type": "array", + "description": "List of static assets.", + "default": [], + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply `glob`. Defaults to the project root." + }, + "output": { + "type": "string", + "description": "Relative path within the output folder." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "compiler": { + "type": "string", + "enum": ["babel", "swc", "tsc"], + "default": "babel", + "description": "Which compiler to use." + }, + "babelUpwardRootMode": { + "type": "boolean", + "description": "Whether to set rootmode to upward. See https://babeljs.io/docs/en/options#rootmode", + "default": false + }, + "javascriptEnabled": { + "type": "boolean", + "description": "Sets `javascriptEnabled` option for less loader", + "default": false + }, + "generateExportsField": { + "type": "boolean", + "alias": "exports", + "description": "Update the output package.json file's 'exports' field. This field is used by Node and bundles.", + "default": false, + "x-priority": "important" + }, + "additionalEntryPoints": { + "type": "array", + "description": "Additional entry-points to add to exports field in the package.json file.", + "items": { "type": "string" }, + "x-priority": "important" + }, + "skipTypeCheck": { + "type": "boolean", + "description": "Whether to skip TypeScript type checking.", + "default": false + }, + "skipTypeField": { + "type": "boolean", + "description": "Prevents 'type' field from being added to compiled package.json file. Use this if you are having an issue with this field.", + "default": false + } + }, + "required": ["tsConfig", "main", "outputPath"], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply `glob`. Defaults to the project root." + }, + "output": { + "type": "string", + "description": "Relative path within the output folder." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "examplesFile": "{% tabs %}\n{% tab label=\"Including Dependencies\" %}\nTo include dependencies in the output `package.json`, the dependencies must be installed as a **dependencies** in the root `package.json`\n\n```json {% fileName=\"package.json\" %}\n{\n \"dependencies\": {\n \"some-dependency\": \"^1.0.0\"\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Using `babelUpwardRootMode`\" %}\n\nCopying from the [Babel documentation](https://babeljs.io/docs/config-files#root-babelconfigjson-file):\n\n> [...] if you are running your Babel compilation process from within a subpackage, you need to tell Babel where to look for the config. There are a few ways to do that, but the recommended way is the \"rootMode\" option with \"upward\", which will make Babel search from the working directory upward looking for your babel.config.json file, and will use its location as the \"root\" value.\n\nSetting `babelUpwardRootMode` to `true` in your `project.json` will set `rootMode` option to `upward` in the Babel config. You may want the `upward` mode in a monorepo when projects must apply their individual `.babelrc` file. We recommend that you don't set it at all, so it will use the default to `false` as the `upward` mode brings additional complexity to the build process.\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/rollup:rollup\",\n \"options\": {\n \"babelUpwardRootMode\": true,\n //...\n },\n //...\n },\n //...\n },\n //...\n}\n```\n\nWhen `babelUpwardRootMode` is `true`, Babel will look for a root `babel.config.json` at the root of the workspace, which should look something like this to include all packages:\n\n```json\n{ \"babelrcRoots\": [\"*\"] }\n```\n\nThen for each package, you must have a `.babelrc` file that will be applied to that package. For example:\n\n```json\n{\n \"presets\": [\"@babel/preset-env\", \"@babel/preset-typescript\"]\n}\n```\n\nAll packages will use its own `.babelrc` file, thus you must ensure the right presets and plugins are set in each config file. This behavior can lead to build discrepancies between packages, so we recommend that you don't set `babelUpwardRootMode` at all.\n\n```treeview\n├── packages\n│ ├── a\n│ │ └── .babelrc\n│ └── b\n│ └── .babelrc\n└── babel.config.json\n```\n\nIn workspace above, if `a` imports `b`, it will apply the config `packages/b/.babelrc` and not apply its own `packages/a/.babelrc` to `b`. Anything in `babel.config.json` will apply to all packages.\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Bundle a package using Rollup.", + "aliases": [], + "hidden": false, + "path": "/packages/rollup/src/executors/rollup/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/rollup/generators/configuration.json b/docs/generated/packages/rollup/generators/configuration.json new file mode 100644 index 0000000000000..813d3e3b3ce83 --- /dev/null +++ b/docs/generated/packages/rollup/generators/configuration.json @@ -0,0 +1,89 @@ +{ + "name": "configuration", + "aliases": ["rollup-project"], + "factory": "./src/generators/configuration/configuration", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxRollupProject", + "cli": "nx", + "title": "Add Rollup Configuration to a project", + "description": "Add Rollup Configuration to a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "project", + "x-prompt": "What is the name of the project to set up a rollup for?", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "enum": ["babel", "swc", "tsc"], + "description": "The compiler to use to build source.", + "default": "babel" + }, + "main": { + "type": "string", + "description": "Path relative to the workspace root for the main entry file. Defaults to '/src/main.ts'.", + "alias": "entryFile", + "x-priority": "important" + }, + "tsConfig": { + "type": "string", + "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to '/tsconfig.app.json'.", + "x-priority": "important" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "skipValidation": { + "type": "boolean", + "default": false, + "description": "Do not perform any validation on existing project.", + "x-priority": "internal" + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`." + }, + "external": { + "type": "array", + "description": "A list of external modules that will not be bundled (`react`, `react-dom`, etc.).", + "items": { "type": "string" } + }, + "rollupConfig": { + "type": "string", + "description": "Path relative to workspace root to a custom rollup file that takes a config object and returns an updated config." + }, + "buildTarget": { + "description": "The build target to add.", + "type": "string", + "default": "build" + }, + "format": { + "description": "The format to build the library (esm or cjs).", + "type": "array", + "items": { "type": "string", "enum": ["esm", "cjs"] }, + "default": ["esm"] + } + }, + "required": [], + "presets": [] + }, + "description": "Add rollup configuration to a project.", + "implementation": "/packages/rollup/src/generators/configuration/configuration.ts", + "hidden": false, + "path": "/packages/rollup/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/rollup/generators/init.json b/docs/generated/packages/rollup/generators/init.json new file mode 100644 index 0000000000000..81fe6639068e3 --- /dev/null +++ b/docs/generated/packages/rollup/generators/init.json @@ -0,0 +1,44 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#rollupInitGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWebpackInit", + "cli": "nx", + "title": "Init Webpack Plugin", + "description": "Init Webpack Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/rollup` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/rollup/src/generators/init/init#rollupInitGenerator.ts", + "path": "/packages/rollup/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/storybook/documents/best-practices.md b/docs/generated/packages/storybook/documents/best-practices.md new file mode 100644 index 0000000000000..2fec8281b1f38 --- /dev/null +++ b/docs/generated/packages/storybook/documents/best-practices.md @@ -0,0 +1,151 @@ +--- +title: Storybook best practices for making the most out of Nx +description: The purpose of this guide is to help you set up Storybook in your Nx workspace so that you can get the most out of Nx and its powerful capabilities. +--- + +# Storybook best practices for making the most out of Nx + +## Purpose of this guide + +The purpose of this guide is to help you [set up Storybook in your Nx workspace](/nx-api/storybook) so that you can get the most out of Nx and its powerful capabilities. + +## When to use Storybook + +Usually, Storybook is mainly used for two reasons. Testing and documentation. You can read more on when and why to use Storybook in the [Why Storybook in 2022?](https://storybook.js.org/blog/why-storybook-in-2022/) article and also in the [Introduction to Storybook](https://storybook.js.org/docs/react/get-started/introduction) documentation page. + +### Testing + +Storybook helps you test your UIs. You can read more about testing with Storybook in the [How to test your UIs with Storybook](https://storybook.js.org/docs/react/writing-tests/introduction) documentation page. Essentially, Storybook uses the stories as a starting point for testing. + +### Documentation + +Storybook helps you document your UI elements, or your design system, effectively and in an interactive way. You can read more in the [How to document components](https://storybook.js.org/docs/react/writing-docs/introduction) documentation page. Essentially, you can use Storybook to publish a catalog of your components. A catalog that you can share with the design team, the developer team, the product team, anyone else in the product development process, or even the client. The components are isolated, interactive, and can be represented in all possible forms that they can take (e.g. for a button: enabled, disabled, active, etc). You can read more about publishing your Storybook in the [Publish Storybook](https://storybook.js.org/docs/react/sharing/publish-storybook) documentation page. + +## Nx and Storybook + +Now let’s see how Nx can be used to accommodate both of these pillars of Storybook. Nx takes lots of the burden off your arms when setting up Storybook initially. It essentially provides you with all that you need to start using Storybook’s capabilities (testing and documentation) right away, without having to write a single line of code. + +### Development tools + +First, let’s see what Nx offers, when you are in the process of developing a project with Storybook. + +#### Configuration generation + +You can generate the Storybook configuration files and settings using the Nx [`@nx/storybook:configuration` generator](/nx-api/storybook/generators/configuration). You can read more about configuring Storybook with Nx in our [`@nx/storybook` package overview page](/nx-api/storybook#generating-storybook-configuration). With Nx, you configure Storybook for each individual project. + +#### Stories generation + +If you are on a project using Angular, React or React Native, you can also generate stories for your components. You can do so either by using each package's `storybook-configuration` generators or by using the `stories` generator, if you already have Storybook configured for your project. + +If your project is not configured yet, check out one of these guides: + +- [Set up Storybook for React (and Next.js) Projects](/recipes/storybook/overview-react) + +- [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) + +- [Set up Storybook for Vue Projects](/recipes/storybook/overview-vue) + +If your project is [already configured](/nx-api/storybook), you can use the `stories` generator: + +- [React (and Next.js) stories generator](/nx-api/react/generators/stories) + +- [Angular stories generator](/nx-api/angular/generators/stories) + +- [Vue stories generator](/nx-api/vue/generators/stories) + +- [React Native stories generator](/nx-api/react-native/generators/stories) + +The stories generator will read your inputs (if you’re using Angular), or your props (if you're using React), and will generate stories with the corresponding arguments/controls already prefilled. + +#### Storybook interaction tests + +[Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing) allow you to test user interactions within your Storybook stories. It enhances your [Storybook](https://storybook.js.org/) setup, ensuring that not only do your components look right, but they also work correctly when interacted with. + +Nx will generate interaction tests for your stories. You can read more in our [Setting up Storybook Interaction Tests with Nx guide](/recipes/storybook/storybook-interaction-tests). + +### CI/CD tools + +Now let’s see how Nx helps in the CI/CD journey, as well. + +#### Interaction tests in your CI + +You can set up your interaction tests to run as part of your CI. You can read more in the [Storybook docs](https://storybook.js.org/docs/react/writing-tests/test-runner#set-up-ci-to-run-**tests**). + +#### Serve + +When you are configuring Storybook, Nx [adds a serve and a build target for Storybook](/nx-api/storybook#generating-storybook-configuration) in your `project.json`, as we explained above. You can use these targets to [serve](/nx-api/storybook/executors/storybook) and [build](/nx-api/storybook/executors/build) storybook locally, and also in production. Cypress will also use these targets when firing up the e2e tests. While developing, you can serve your Storybooks locally to see if your components work and look as expected. This can help you and speed up the development and debugging process (no need to fire up a complex dev stack). + +#### Build and deploy + +The build and deploy step usually comes in handy when you are ready to use Storybook for documentation, and you want to publish it. The [building](/nx-api/storybook/executors/build) step of Storybook is integrated in the Nx ecosystem, as explained above, and you can trigger your Storybook builds as you would trigger any other build inside your workspace. + +When you publish your organization’s Storybook, as a result, ideally, you would want to have one shareable Storybook page/application living under one URL, that you can share. With Nx, you can build your Storybook and it will be ready for deployment. **However**, at this point, you have one Storybook per project in your workspace, and you could end up with far too many Storybooks that are built and ready for deployment. This is not ideal, and does not accomplish the ultimate goal of “one shareable documentation page”. + +In the following section, we are going to see how to set up Storybook in these cases, to get the most out of Nx. + +## How to set up Storybook to get the most out of Nx + +### Philosophy + +Setting up Storybook on Nx reflects - and takes advantage of - the [mental model](/concepts/mental-model) of Nx, and especially the architecture of [Applications and Libraries](/concepts/more-concepts/applications-and-libraries). What that means, in essence, is that you still maintain the individual Storybook instances (per project) which you use for testing and local development, but you also keep one extra “container” for publishing, that serves as a single entry point. Let’s see this in more detail. + +#### Local development and testing + +##### Development and debugging + +In the process of setting up Storybook in your Nx workspace that we described above, you end up with one Storybook instance per project. That way, you can use your project’s Storybook targets to serve, test and build Storybook: + +```shell +nx storybook my-project +``` + +and + +```shell +nx build-storybook my-project +``` + +and + +```shell +nx test-storybook my-project +``` + +This feature is extremely useful when developing locally. The containerized stories in your Storybook are the only ones that are built/served/tested when you want to debug just one component, or just one library. You don’t have to wait for a huge Storybook containing all your stories in your repository to fire up. You just need to wait for the Storybook of a single project to start. This speeds up the process. + +##### Caching, affected, dependency management + +Since each Storybook, in this case, is attached to a project, so is the serving of Storybook and the building of Storybook and the e2e tests for that project. That means that Nx is aware of these tasks, so it caches them, it knows when to fetch them from the cache or re-run them according to the affected status of that project. It also knows that project’s dependencies and knows which things to rebuild before each task. + +#### Publishing + +When you are publishing your Storybook, you can follow the same principles described in the [Applications and Libraries Mental Model](/concepts/more-concepts/applications-and-libraries#mental-model) documentation page. The general idea is to have one central Storybook container, into which you are going to gather your stories from multiple libraries. + +You can think of the central Storybook container as a grouping of similar-concept or same-scope UI parts of your workspace. In the same way you are scoping libraries, you can group your stories as well. + +Then, according to your use-case, you can have one central Storybook for your whole workspace, importing all the stories from all the projects. Alternatively, you can have one Storybook per "scope", which imports all the stories from projects the same scope. Or even one Storybook per application, importing all the stories of all the libraries that it is depending on. As you can see, there are many options, and you can choose the one that best suits your needs. + +{% callout type="note" title="Storybook Composition" %} +In order to achieve some things mentioned above, you may use [Storybook Composition](/recipes/storybook/storybook-composition-setup). However, in this case, you would still need to build each project’s Storybook individually, and also deploy it individually. So in the cases where you have multiple projects, Storybook Composition would not be very efficient. +{% /callout %} + +Before moving on to the examples section, it could be useful to read the [Library Types](/concepts/more-concepts/library-types) documentation page and the [Grouping libraries](/concepts/more-concepts/grouping-libraries) documentation page. These could help you decide which way fits your use case better. + +## Examples / Use cases + +You can check out the following examples (recipes) to see publishing strategies for Storybook in Nx: + +- [One main Storybook instance for all projects](/recipes/storybook/one-storybook-for-all) +- [One Storybook instance per scope](/recipes/storybook/one-storybook-per-scope) +- [One main Storybook instance using Storybook Composition](/recipes/storybook/one-storybook-with-composition) + +## Conclusion + +In this guide, we have given a direction towards the most efficient way to use Storybook in a Nx workspace, in a way that takes advantage of the all that Nx has to offer. +We have covered the different ways to set up Storybook, and publish it, too. We have also covered the different use cases that apply to each of the solutions. + +If you have any questions or suggestions, please feel free to reach out to us on [GitHub](https://github.com/nrwl/nx), and don't hesitate to ask your questions or share your stories in the [Official Nx Discord Server](https://go.nx.dev/community). + +### Nx & Storybook documentation + +You can find all Storybook-related Nx documentation in the [packages page](/nx-api/storybook). diff --git a/docs/generated/packages/storybook/documents/overview.md b/docs/generated/packages/storybook/documents/overview.md new file mode 100644 index 0000000000000..e6ae6888497d7 --- /dev/null +++ b/docs/generated/packages/storybook/documents/overview.md @@ -0,0 +1,266 @@ +--- +title: Nx Storybook Plugin Overview +description: This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace. +--- + +[Storybook](https://storybook.js.org) is a development environment for UI components. It allows you to browse a component library, view the different states of each component, and interactively develop and test components. + +This guide will briefly walk you through using Storybook within an Nx workspace. + +## Setting Up Storybook + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/storybook` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/storybook` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/storybook +``` + +This will install the correct version of `@nx/storybook`. + +### How @nx/storybook Infers Tasks + +The `@nx/storybook` plugin will create a task for any project that has a Storybook configuration file present. Any of the following files will be recognized as a Storybook configuration file: + +- `.storybook/main.js` +- `.storybook/main.ts` +- `.storybook/main.cjs` +- `.storybook/main.cts` +- `.storybook/main.mjs` +- `.storybook/main.mts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/storybook Configuration + +The `@nx/storybook/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/storybook/plugin", + "options": { + "buildStorybookTargetName": "build-storybook", + "serveStorybookTargetName": "storybook", + "testStorybookTargetName": "test-storybook", + "staticStorybookTargetName": "static-storybook" + } + } + ] +} +``` + +The `builtStorybookTargetName`, `serveStorybookTargetName`, `testStorybookTargetName` and `staticStorybookTargetName` options control the names of the inferred Storybook tasks. The default names are `build-storybook`, `storybook`, `test-storybook` and `static-storybook`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/storybook` package with your package manager. + +```shell +npm add -D @nx/storybook +``` + +{% /tab %} +{% /tabs %} + +## Using Storybook + +### Generating Storybook Configuration + +You can generate Storybook configuration for an individual project with this command: + +```shell +nx g @nx/storybook:configuration project-name +``` + +or + +{% tabs %} +{% tab label="Angular" %} + +```shell +nx g @nx/angular:storybook-configuration my-angular-project +``` + +{% /tab %} +{% tab label="React" %} + +```shell +nx g @nx/react:storybook-configuration my-react-project +``` + +{% /tab %} +{% tab label="Vue" %} + +```shell +nx g @nx/vue:storybook-configuration my-vue-project +``` + +{% /tab %} +{% tab label="React Native" %} + +```shell +nx g @nx/react-native:storybook-configuration my-react-native-project +``` + +{% /tab %} +{% /tabs %} + +These framework-specific generators will also **generate stories** and interaction tests for you. + +If you are NOT using a framework-specific generator (for [Angular](/nx-api/angular/generators/storybook-configuration), [React](/nx-api/react/generators/storybook-configuration), [React Native](/nx-api/react-native/generators/storybook-configuration), [Vue](/nx-api/vue/generators/storybook-configuration)), in the field `uiFramework` you must choose one of the following Storybook frameworks: + +- `@storybook/angular` +- `@storybook/html-webpack5` +- `@storybook/nextjs` +- `@storybook/preact-webpack5` +- `@storybook/react-webpack5` +- `@storybook/react-vite` +- `@storybook/server-webpack5` +- `@storybook/svelte-webpack5` +- `@storybook/svelte-vite` +- `@storybook/sveltekit` +- `@storybook/vue-webpack5` +- `@storybook/vue-vite` +- `@storybook/vue3-webpack5` +- `@storybook/vue3-vite` +- `@storybook/web-components-webpack5` +- `@storybook/web-components-vite` + +Choosing one of these frameworks will have the following effects on your workspace: + +1. Nx will install all the required Storybook packages that go with it. + +2. Nx will generate a project-level `.storybook` folder (located under `libs/your-project/.storybook` or `apps/your-project/.storybook`) containing the essential configuration files for Storybook. + +3. Nx will create new `targets` in your project's `project.json`, called `storybook`, `test-storybook` and `build-storybook`, containing all the necessary configuration to serve, test and build Storybook. + +Make sure to **use the framework-specific generators** if your project is using Angular, React, Next.js, Vue, Nuxt, or React Native: [`@nx/angular:storybook-configuration`](/nx-api/angular/generators/storybook-configuration), [`@nx/react:storybook-configuration`](/nx-api/react/generators/storybook-configuration), [`@nx/react-native:storybook-configuration`](/nx-api/react-native/generators/storybook-configuration), [`@nx/vue:storybook-configuration`](/nx-api/vue/generators/storybook-configuration) as shown above. + +### Running Storybook + +Serve Storybook using this command: + +```shell +nx run project-name:storybook +``` + +or + +```shell +nx storybook project-name +``` + +### Building Storybook + +Build Storybook using this command: + +```shell +nx run project-name:build-storybook +``` + +or + +```shell +nx build-storybook project-name +``` + +### Testing Storybook + +With the Storybook server running, you can test Storybook (run all the interaction tests) using this command: + +```shell +nx run project-name:test-storybook +``` + +or + +```shell +nx test-storybook project-name +``` + +### Anatomy of the Storybook setup + +When running the Nx Storybook generator, it'll configure the Nx workspace to be able to run Storybook seamlessly. It'll create a project specific Storybook configuration. + +The project-specific Storybook configuration is pretty much similar to what you would have for a non-Nx setup of Storybook. There's a `.storybook` folder within the project root folder. + +```text +/ +├── .storybook/ +│ ├── main.ts +│ └── preview.ts +├── src/ +├── README.md +├── tsconfig.json +├── tsconfig.storybook.json +└── etc... +``` + +### Using Addons + +To register a [Storybook addon](https://storybook.js.org/addons/) for all Storybook instances in your workspace: + +1. In your project's `.storybook/main.ts` file, in the `addons` array of the `module.exports` object, add the new addon: + +```typescript {% fileName="/.storybook/main.ts" %} +import type { StorybookConfig } from '@storybook/react-vite'; + +const config: StorybookConfig = { + ... + addons: ['@storybook/addon-essentials', '@storybook/addon-interactions', ...], + ... +}; + +export default config; +``` + +2. If a decorator is required, in each project's `/.storybook/preview.ts`, you can export an array called `decorators`. + + ```typescript {% fileName="/.storybook/preview.ts" %} + import someDecorator from 'some-storybook-addon'; + export const decorators = [someDecorator]; + ``` + +### Setting up documentation + +To set up documentation, you can use [Storybook Autodocs](https://storybook.js.org/docs/react/writing-docs/autodocs). For Angular, [you can use `compodoc`](/recipes/storybook/angular-storybook-compodoc) to infer `argTypes`. You can read more about `argTypes` in the [official Storybook `argTypes` documentation](https://storybook.js.org/docs/angular/api/argtypes#automatic-argtype-inference). + +You can read more about how to best set up documentation using Storybook for your project in the [official Storybook documentation](https://storybook.js.org/docs/react/writing-docs/introduction). + +## More Documentation + +You can find dedicated information for React and Angular: + +- [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) +- [Set up Storybook for React Projects](/recipes/storybook/overview-react) +- [Set up Storybook for Vue Projects](/recipes/storybook/overview-vue) + +You can find all Storybook-related Nx documentation in the [Storybook recipes section](/recipes/storybook). + +For more on using Storybook, see the [official Storybook documentation](https://storybook.js.org/docs/basics/introduction/). + +### Migration Scenarios + +Here's more information on common migration scenarios for Storybook with Nx. For Storybook specific migrations that are not automatically handled by Nx please refer to the [official Storybook page](https://storybook.js.org/) + +- [Upgrading to Storybook 6](/deprecated/storybook/upgrade-storybook-v6-react) +- [Migrate to the Nx React Storybook Addon](/deprecated/storybook/migrate-webpack-final-react) +- [Storybook 7 migration generator](/nx-api/storybook/generators/migrate-7) +- [Storybook 7 setup guide](/nx-api/storybook/documents/storybook-7-setup) + +## Older documentation + +You can find older documentation for the `@nx/storybook` package in our [deprecated section](/deprecated/storybook). diff --git a/docs/generated/packages/storybook/documents/storybook-7-setup.md b/docs/generated/packages/storybook/documents/storybook-7-setup.md new file mode 100644 index 0000000000000..773cf00fabfc6 --- /dev/null +++ b/docs/generated/packages/storybook/documents/storybook-7-setup.md @@ -0,0 +1,39 @@ +--- +title: Storybook 7 overview +description: This guide explains how you can set up Storybook version 7 in your Nx workspace. It also highlights the changes that you should expect to see when migrating from Storybook 6 to Storybook 7. +--- + +# Storybook 7 is here - and Nx is ready + +Storybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide). + +Nx provides new generators that allow you to generate Storybook 7 configuration for your projects, by installing the correct dependencies and creating the corresponding version 7 configuration files. Nx also provides a [Storybook 7 migration generator](/nx-api/storybook/generators/migrate-7) that you can use to migrate your existing Storybook configuration to version 7. + +So, let's see how you can use Storybook 7 on your Nx workspace. + +## Migrate your existing workspace to Storybook 7 + +If you already have Storybook configured in your Nx workspace, you can use the [Storybook 7 migrator generator](/nx-api/storybook/generators/migrate-7) to migrate your existing Storybook configuration to version 7. + +## Set up Storybook 7 in a _new_ Nx Workspace + +Please read the [`@nx/storybook` package overview](/nx-api/storybook) to see how you can configure Storybook in your Nx workspace. + +## Changes from the v6.5 Storybook configuration + +The Storybook configuration generated by Nx for Storybook 7 is very similar to the one generated for Storybook 6.5. Here are the new things that you should expect to see: + +### Changes in `.storybook/main.js|ts` file + +- No longer set the `core` field which contains the `builder` option. +- The `framework` field is now mandatory, and it "replaces" the `builder` configuration. You can read more [in the Storybook docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-framework-field). +- Nx no longer adds the `webpackFinal` field to the `.storybook/main.js|ts` files. This is just for the sake of simplicity. You can still edit your webpack configuration by using the `webpackFinal` field, just as you can edit your Vite configuration by using the `viteFinal` field. You can read more about how to customize your webpack configuration [in the Storybook webpack docs](https://storybook.js.org/docs/react/builders/webpack#extending-storybooks-webpack-config), and you can read more about how to customize your Vite configuration [in the Storybook Vite docs](https://storybook.js.org/docs/react/builders/vite#configuration). + +### Changes in the `storybook` and `build-storybook` targets + +- The `uiFramework` field is not needed any more, thus it is not set. Nx was using the `uiFramework` field to load any framework specific options for the Storybook builder. This is no longer needed, since the `framework` set in `.storybook/main.js|ts` takes care of that. +- More options from the Storybook CLI are now exposed in the executors. You can see these in the [`@nx/storybook:storybook`](/nx-api/storybook/executors/storybook) and [`@nx/storybook:build`](/nx-api/storybook/executors/build) executor schemas. You can read more about these options in the [Storybook 7 CLI docs](https://storybook.js.org/docs/7.0/react/api/cli-options). If there's an option you need to pass but it's not in the executor schema, you can always pass it, since the executors are just passing the options to the Storybook CLI. + +## Report any issues and bugs + +Please report any issues and bugs you find [on the Nx GitHub page](https://github.com/nrwl/nx/issues/new/choose) or on the [Storybook GitHub page](https://github.com/storybookjs/storybook/issues/new/choose). diff --git a/docs/generated/packages/storybook/executors/build.json b/docs/generated/packages/storybook/executors/build.json new file mode 100644 index 0000000000000..3749dcfeb0b69 --- /dev/null +++ b/docs/generated/packages/storybook/executors/build.json @@ -0,0 +1,144 @@ +{ + "name": "build", + "implementation": "/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Storybook Builder", + "cli": "nx", + "description": "Build storybook in production mode.", + "type": "object", + "presets": [ + { "name": "Default minimum setup", "keys": ["outputDir", "configDir"] } + ], + "properties": { + "outputDir": { + "type": "string", + "description": "Directory where to store built files.", + "x-completion-type": "directory" + }, + "styles": { + "type": "array", + "description": "Global styles to be included in the build.", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { "type": "string", "description": "The file to include." } + ] + } + }, + "stylePreprocessorOptions": { + "type": "object", + "description": "Options to pass to style preprocessors.", + "properties": { + "includePaths": { + "type": "array", + "description": "The paths to include. Paths will be resolved to workspace root.", + "items": { "type": "string" } + } + } + }, + "docsMode": { + "type": "boolean", + "description": "Build a documentation-only site using addon-docs.", + "default": false + }, + "staticDir": { + "type": "array", + "description": "Directory where to load static files from, array of strings.", + "items": { "type": "string" }, + "x-deprecated": "In Storybook 6.4 the `--static-dir` CLI flag has been replaced with the the `staticDirs` field in `.storybook/main.js`. It will be removed completely in Storybook 7.0." + }, + "configDir": { + "type": "string", + "description": "Directory where to load Storybook configurations from.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "loglevel": { + "type": "string", + "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", + "pattern": "(silly|verbose|info|warn|silent)" + }, + "quiet": { + "type": "boolean", + "description": "Suppress verbose build output." + }, + "docs": { + "type": "boolean", + "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation." + }, + "webpackStatsJson": { + "type": ["boolean", "string"], + "description": "Write Webpack Stats JSON to disk.", + "default": false + }, + "debugWebpack": { + "type": "boolean", + "description": "Display final webpack configurations for debugging purposes." + }, + "disableTelemetry": { + "type": "boolean", + "description": "Disables Storybook's telemetry." + } + }, + "definitions": { + "extraEntryPoint": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file" + }, + "bundleName": { + "type": "string", + "pattern": "^[\\w\\-.]*$", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { "type": "string", "description": "The file to include." } + ] + } + }, + "additionalProperties": true, + "required": ["configDir"], + "examplesFile": "---\ntitle: Storybook builder executor examples\ndescription: This page contains examples for the @nx/storybook:build executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"ui\": {\n \"targets\": {\n //...\n \"build-storybook\": {\n \"executor\": \"@nx/storybook:build\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ui\",\n \"configDir\": \"libs/ui/.storybook\"\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n }\n}\n```\n\n```bash\nnx run ui:build-storybook\n```\n\n## Examples\n\n### For non-Angular projects\n\n{% tabs %}\n{% tab label=\"Working in docsMode\" %}\n\nYou can work in docs mode, building a documentation-only site, by setting the `docsMode` option to `true` and using the `@storybook/addon-docs` addon.\n\nRead more on the [Storybook documentation page for `addon-docs`](https://storybook.js.org/addons/@storybook/addon-docs).\n\n```json\n\"storybook\": {\n \"executor\": \"@nx/storybook:build\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"docsMode\": true\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n\n### For Angular projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Angular projects using Storybook. You can see that it uses the native `@storybook/angular:build-storybook` executor. You can read more about the configuration options at the relevant [Storybook documentation page](https://storybook.js.org/docs/angular/get-started/install).\n\n```json\n\"build-storybook\": {\n \"executor\": \"@storybook/angular:build-storybook\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ngapp\",\n \"configDir\": \"apps/ngapp/.storybook\",\n \"browserTarget\": \"ngapp:build\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Changing the browserTarget\" %}\n\nYou can set the `browserTarget` to use `build-storybook` as the builder. This is most useful in the cases where your project does not have a `build` target. Read more about the `browserTarget` in the [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) recipe.\n\n```json\n\"build-storybook\": {\n \"executor\": \"@storybook/angular:build-storybook\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ngapp\",\n \"configDir\": \"apps/ngapp/.storybook\",\n \"browserTarget\": \"ngapp:build-storybook\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Adding styles\" %}\n\nYou can add paths to stylesheets to be included in the Storybook build by using the `styles` array. You can also add `stylePreprocessorOptions`, much like you would do in the Angular builder. You can read more in our guide about [styles and preprocessor options for Storybook](/recipes/storybook/angular-configuring-styles).\n\n```json\n\"build-storybook\": {\n \"executor\": \"@storybook/angular:build-storybook\",\n \"outputs\": [\"{options.outputDir}\"],\n \"options\": {\n \"outputDir\": \"dist/storybook/ngapp\",\n \"configDir\": \"apps/ngapp/.storybook\",\n \"browserTarget\": \"ngapp:build-storybook\",\n \"compodoc\": false,\n \"styles\": [\"some-styles.css\"],\n \"stylePreprocessorOptions\": {\n \"includePaths\": [\"some-style-paths\"]\n }\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" + }, + "description": "Build Storybook.", + "aliases": [], + "hidden": false, + "path": "/packages/storybook/src/executors/build-storybook/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/storybook/executors/storybook.json b/docs/generated/packages/storybook/executors/storybook.json new file mode 100644 index 0000000000000..dc136a96ea138 --- /dev/null +++ b/docs/generated/packages/storybook/executors/storybook.json @@ -0,0 +1,123 @@ +{ + "name": "storybook", + "implementation": "/packages/storybook/src/executors/storybook/storybook.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Storybook Dev Builder", + "cli": "nx", + "description": "Serve up Storybook in development mode.", + "type": "object", + "presets": [ + { "name": "Default minimum setup", "keys": ["port", "configDir"] } + ], + "properties": { + "port": { + "type": "number", + "description": "Port to listen on.", + "default": 9009 + }, + "previewUrl": { "type": "string", "description": "Preview URL." }, + "host": { "type": "string", "description": "Host to listen on." }, + "staticDir": { + "type": "array", + "description": "Directory where to load static files from, array of strings.", + "items": { "type": "string" }, + "x-deprecated": "In Storybook 6.4 the `--static-dir` CLI flag has been replaced with the the `staticDirs` field in `.storybook/main.js`. It will be removed completely in Storybook 7.0." + }, + "configDir": { + "type": "string", + "description": "Directory where to load Storybook configurations from.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "https": { + "type": "boolean", + "description": "Serve Storybook over HTTPS. Note: You must provide your own certificate information.", + "default": false + }, + "open": { + "type": "boolean", + "description": "Open browser window automatically." + }, + "ci": { + "type": "boolean", + "description": "CI mode (skip interactive prompts, don't open browser).", + "default": false + }, + "loglevel": { + "type": "string", + "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", + "pattern": "(silly|verbose|info|warn|silent)" + }, + "quiet": { + "type": "boolean", + "description": "Suppress verbose build output." + }, + "docs": { + "type": "boolean", + "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation." + }, + "docsMode": { + "type": "boolean", + "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation.", + "default": false + }, + "uiFramework": { + "type": "string", + "description": "Storybook framework npm package.", + "enum": [ + "@storybook/react", + "@storybook/html", + "@storybook/web-components", + "@storybook/vue", + "@storybook/vue3", + "@storybook/svelte" + ], + "x-deprecated": "Upgrade to Storybook 7." + }, + "webpackStatsJson": { + "type": ["boolean", "string"], + "description": "Write Webpack Stats JSON to disk.", + "default": false + }, + "sslCa": { + "type": "string", + "description": "Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)." + }, + "sslCert": { + "type": "string", + "description": "Provide an SSL certificate. (Required with --https)." + }, + "sslKey": { + "type": "string", + "description": "Provide an SSL key. (Required with --https)." + }, + "smokeTest": { + "type": "boolean", + "description": "Exit after successful start." + }, + "noOpen": { + "type": "boolean", + "description": "Do not open Storybook automatically in the browser." + }, + "debugWebpack": { + "type": "boolean", + "description": "Display final webpack configurations for debugging purposes." + }, + "disableTelemetry": { + "type": "boolean", + "description": "Disables Storybook's telemetry." + } + }, + "additionalProperties": true, + "definitions": {}, + "required": ["configDir"], + "examplesFile": "---\ntitle: Storybook dev server executor examples\ndescription: This page contains examples for the @nx/storybook:storybook executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"ui\": {\n \"targets\": {\n //...\n \"storybook\": {\n \"executor\": \"@nx/storybook:storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\"\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n },\n }\n}\n```\n\n```bash\nnx run ui:storybook\n```\n\n## Examples\n\n### For non-Angular projects\n\n{% tabs %}\n{% tab label=\"Working in docsMode\" %}\n\nYou can work in docs mode, building a documentation-only site, by setting the `docsMode` option to `true` and using the `@storybook/addon-docs` addon.\n\nRead more on the [Storybook documentation page for `addon-docs`](https://storybook.js.org/addons/@storybook/addon-docs).\n\n```json\n\"storybook\": {\n \"executor\": \"@nx/storybook:storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"docsMode\": true\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n\n### For Angular projects\n\n{% tabs %}\n{% tab label=\"Default configuration\" %}\n\nThis is the default configuration for Angular projects using Storybook. You can see that it uses the native `@storybook/angular:start-storybook` executor. You can read more about the configuration options at the relevant [Storybook documentation page](https://storybook.js.org/docs/angular/get-started/install).\n\n```json\n\"storybook\": {\n \"executor\": \"@storybook/angular:start-storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"browserTarget\": \"ui:build\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n},\n```\n\n{% /tab %}\n{% tab label=\"Changing the browserTarget\" %}\n\nYou can set the `browserTarget` to use `build-storybook` as the builder. This is most useful in the cases where your project does not have a `build` target. Read more about the `browserTarget` in the [Set up Storybook for Angular Projects](/recipes/storybook/overview-angular) recipe.\n\n```json\n\"storybook\": {\n \"executor\": \"@storybook/angular:start-storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"browserTarget\": \"ui:build-storybook\",\n \"compodoc\": false\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n},\n```\n\n{% /tab %}\n\n{% tab label=\"Adding styles\" %}\n\nYou can add paths to stylesheets to be included in the Storybook build by using the `styles` array. You can also add `stylePreprocessorOptions`, much like you would do in the Angular builder. You can read more in our guide about [styles and preprocessor options for Storybook](/recipes/storybook/angular-configuring-styles).\n\n```json\n\"storybook\": {\n \"executor\": \"@storybook/angular:start-storybook\",\n \"options\": {\n \"port\": 4400,\n \"configDir\": \"libs/ui/.storybook\",\n \"browserTarget\": \"ui:build\",\n \"compodoc\": false,\n \"styles\": [\"some-styles.css\"],\n \"stylePreprocessorOptions\": {\n \"includePaths\": [\"some-style-paths\"]\n }\n },\n \"configurations\": {\n \"ci\": {\n \"quiet\": true\n }\n }\n},\n```\n\n{% /tab %}\n\n{% /tabs %}\n" + }, + "description": "Serve Storybook.", + "aliases": [], + "hidden": false, + "path": "/packages/storybook/src/executors/storybook/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/storybook/generators/configuration.json b/docs/generated/packages/storybook/generators/configuration.json new file mode 100644 index 0000000000000..7feb6d1797475 --- /dev/null +++ b/docs/generated/packages/storybook/generators/configuration.json @@ -0,0 +1,109 @@ +{ + "name": "configuration", + "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxStorybookConfigure", + "title": "Storybook Configuration", + "description": "Add Storybook configuration to a UI library or an application.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "alias": ["configureTestRunner"], + "default": true + }, + "configureCypress": { + "type": "boolean", + "description": "Run the cypress-configure generator.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "cypressDirectory": { + "type": "string", + "description": "A directory where the Cypress project will be placed. Added at root by default.", + "x-deprecated": "Use interactionTests instead. This option will be removed in v19." + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript story files rather than TypeScript story files.", + "default": false + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": true, + "x-priority": "important" + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "configureStaticServe": { + "type": "boolean", + "description": "Add a static-storybook to serve the static storybook built files.", + "default": false + }, + "uiFramework": { + "type": "string", + "description": "Storybook UI Framework to use.", + "enum": [ + "@storybook/angular", + "@storybook/html-webpack5", + "@storybook/nextjs", + "@storybook/preact-webpack5", + "@storybook/react-webpack5", + "@storybook/react-vite", + "@storybook/server-webpack5", + "@storybook/svelte-webpack5", + "@storybook/svelte-vite", + "@storybook/sveltekit", + "@storybook/vue-webpack5", + "@storybook/vue-vite", + "@storybook/vue3-webpack5", + "@storybook/vue3-vite", + "@storybook/web-components-webpack5", + "@storybook/web-components-vite" + ], + "aliases": ["storybook7UiFramework"], + "x-prompt": "Choose the Storybook framework that you need to use.", + "x-priority": "important", + "hidden": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project", "uiFramework"], + "examplesFile": "---\ntitle: Storybook configuration generator examples\ndescription: This page contains examples for the @nx/storybook:configuration generator.\n---\n\nThis is a framework-agnostic generator for setting up Storybook configuration for a project.\n\n```bash\nnx g @nx/storybook:configuration\n```\n\n{% callout type=\"info\" title=\"Nx uses Storybook 7\" %}\nNx does not support Storybook v6 any more. So, Nx will configure your project to use Storybook v7. If you are not on Storybook 7 yet, please migrate. Please follow our [Storybook 7 migration generator](/packages/storybook/generators/migrate-7) guide.\n{% /callout %}\n\nIf you are using Angular, React, Next.js, Vue or React Native in your project, it's best to use the framework specific Storybook configuration generator:\n\n- [React Storybook Configuration Generator](/nx-api/react/generators/storybook-configuration) (React and Next.js projects)\n\n- [Angular Storybook Configuration Generator](/nx-api/angular/generators/storybook-configuration)\n\n- [React Native Storybook Configuration Generator](/nx-api/react-native/generators/storybook-configuration)\n\n- [Vue Storybook Configuration Generator](/nx-api/vue/generators/storybook-configuration)\n\nIf you are not using one of the framework-specific generators mentioned above, when running this generator you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- The `uiFramework` you want to use. Supported values are:\n - `@storybook/angular`\n - `@storybook/html-webpack5`\n - `@storybook/nextjs`\n - `@storybook/preact-webpack5`\n - `@storybook/react-webpack5`\n - `@storybook/react-vite`\n - `@storybook/server-webpack5`\n - `@storybook/svelte-webpack5`\n - `@storybook/svelte-vite`\n - `@storybook/sveltekit`\n - `@storybook/vue-webpack5`\n - `@storybook/vue-vite`\n - `@storybook/vue3-webpack5`\n - `@storybook/vue3-vite`\n - `@storybook/web-components-webpack5`\n - `@storybook/web-components-vite`\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/angular/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests).\n\nYou must provide a `name` and a `uiFramework` for the generator to work.\n\nYou can read more about how this generator works, in the [Storybook package overview page](/packages/storybook#generating-storybook-configuration).\n\n## Examples\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/storybook:configuration ui --uiFramework=@storybook/web-components-vite --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", + "presets": [] + }, + "description": "Add Storybook configuration to a UI library or an application.", + "hidden": false, + "implementation": "/packages/storybook/src/generators/configuration/configuration#configurationGeneratorInternal.ts", + "aliases": [], + "path": "/packages/storybook/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/storybook/generators/cypress-project.json b/docs/generated/packages/storybook/generators/cypress-project.json new file mode 100644 index 0000000000000..cf1579a86e212 --- /dev/null +++ b/docs/generated/packages/storybook/generators/cypress-project.json @@ -0,0 +1,62 @@ +{ + "name": "cypress-project", + "factory": "./src/generators/cypress-project/cypress-project", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "cypress-configure", + "title": "Cypress Configuration", + "description": "Add cypress E2E app to test a ui library that is set up for Storybook.", + "type": "object", + "properties": { + "name": { + "type": "string", + "aliases": ["project", "projectName"], + "description": "Project for which to generate the cypress E2E app.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate the Cypress E2E app?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "directory": { + "type": "string", + "description": "A directory where the project is placed." + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "ciTargetName": { + "type": "string", + "description": "The name of the devServerTarget to use for the Cypress CI configuration. Used to control if using :static-storybook:ci or :storybook:ci", + "x-priority": "internal" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Add cypress e2e app to test a UI library that is set up for Storybook.", + "hidden": false, + "implementation": "/packages/storybook/src/generators/cypress-project/cypress-project.ts", + "aliases": [], + "path": "/packages/storybook/src/generators/cypress-project/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/storybook/generators/init.json b/docs/generated/packages/storybook/generators/init.json new file mode 100644 index 0000000000000..8f90f047a9b0f --- /dev/null +++ b/docs/generated/packages/storybook/generators/init.json @@ -0,0 +1,42 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#initGeneratorInternal", + "schema": { + "cli": "nx", + "title": "Add Storybook Configuration to the workspace", + "description": "Add Storybook Configuration to the workspace.", + "$id": "init-storybook-plugin", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "presets": [] + }, + "description": "Add Storybook configuration to the workspace.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/storybook/src/generators/init/init#initGeneratorInternal.ts", + "path": "/packages/storybook/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/storybook/generators/migrate-7.json b/docs/generated/packages/storybook/generators/migrate-7.json new file mode 100644 index 0000000000000..441de62d77fa9 --- /dev/null +++ b/docs/generated/packages/storybook/generators/migrate-7.json @@ -0,0 +1,46 @@ +{ + "name": "migrate-7", + "factory": "./src/generators/migrate-7/migrate-7", + "schema": { + "cli": "nx", + "title": "Migrate Storybook to version 7.", + "description": "Migrate Storybook to version 7.", + "$id": "migrate-7", + "type": "object", + "properties": { + "autoAcceptAllPrompts": { + "type": "boolean", + "description": "Say yes to all the prompts from the Storybook CLI migration scripts.", + "default": false + }, + "onlyShowListOfCommands": { + "type": "boolean", + "description": "Only show the steps that you need to follow in order to migrate. This does NOT make any changes to your code.", + "default": false + }, + "noUpgrade": { + "type": "boolean", + "description": "Skip upgrading Storybook packages. Only use this option if you are already on version 7, and you do not want the latest beta.", + "default": false + }, + "onlyPrepare": { + "type": "boolean", + "description": "Only run the Nx scripts that will prepare your Storybook configuration files for the Storybook CLI automigration.", + "default": false + }, + "afterMigration": { + "type": "boolean", + "description": "Only run the Nx post-migration scripts that make the final adjustments to your workspace.", + "default": false + } + }, + "examplesFile": "---\ntitle: Storybook 7 Migration Generator Examples\ndescription: This page contains examples for the @nx/storybook:migrate-7 generator.\n---\n\n{% callout type=\"info\" title=\"Setting up Storybook 7 in a new workspace\" %}\nFor setting up Storybook version 7 in a new Nx workspace, or a workspace that does NOT already have Storybook configured already, please refer to our [Storybook 7 setup guide](/packages/storybook/documents/storybook-7-setup).\n{% /callout %}\n\nStorybook 7 is a major release that brings a lot of new features and improvements. You can read more about it in the [Storybook 7.0.0 release article](https://storybook.js.org/blog/storybook-7-0/). Apart from the new features and improvements it introduces, it also brings some breaking changes. You can read more about them in the [Storybook 7 migration docs](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#from-version-65x-to-700) and the [Storybook 7.0.0 migration guide](https://storybook.js.org/docs/react/migration-guide).\n\nYou can now migrate your existing Nx workspace with Storybook configuration to use Storybook version 7. To help you, Nx offers the `@nx/storybook:migrate-7` generator. This generator will help you migrate your existing Storybook setup to version 7.\n\n## How to use it\n\nJust call:\n\n```bash\nnpx nx g @nx/storybook:migrate-7\n```\n\n{% callout type=\"warning\" title=\"Commit your changes\" %}\nIt is advised that you start with a clean git history before running this generator, since it is going to be making lots of changes to your workspace.\n{% /callout %}\n\nYou can run this generator using the above command, without passing any options. This will start the migration process for all your projects that have Storybook configured. The logs will explain what is happening in every step, and the logs are mixed Nx and Storybook CLI logs. During the process you will be prompted by the Storybook CLI to accept the automigration scripts. You can read more about that in the next section.\n\nWhen the generator finishes, you will see a summary of the changes that were made to your workspace, and it will also create a new file, called `storybook-migration-summary.md` at the root of your project, which will contain a list of all the changes that were made to your workspace.\n\n### Accept the automigration prompts\n\nThe Storybook CLI (running through our generator) will prompt you to run some code generators and modifiers.\n\nYou can say `yes` to these prompts, which are usually the following (there may be more or less, depending on your setup,\nand depending on the latest versions of the Storybook CLI - this code is NOT managed by Nx, but by Storybook):\n\n- `mainjsFramework`: It will try to add the `framework` field in your project's `.storybook/main.js|ts` file.\n- `eslintPlugin`: installs the `eslint-plugin-storybook`\n- `newFrameworks`: removes unused dependencies (eg. `@storybook/builder-webpack5`, `@storybook/manager-webpack5`, `@storybook/builder-vite`)\n- `autodocsTrue`: adds `autodocs: true` to your project's `.storybook/main.js|ts` file\n\n### Check the result\n\nOnce the generator finishes, and the Storybook CLI automigration scripts have run, you should check the result. Examples of migrated `.storybook/main.js|ts` files would look like this:\n\n#### Full example for Angular projects\n\nHere is an example of a project-level `.storybook/main.js|ts` file for an Angular project that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-angular-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/angular',\n options: {},\n },\n};\n\nexport default config;\n```\n\n#### Full example for React projects with Vite\n\nHere is an example of a project-level `.storybook/main.js|ts` file for a React project using Vite that has been migrated to Storybook version 7:\n\n```ts {% fileName=\"apps/my-react-app/.storybook/main.js\" %}\nconst config = {\n stories: ['../src/app/**/*.stories.@(js|jsx|ts|tsx|mdx)'],\n addons: ['@storybook/addon-essentials'],\n framework: {\n name: '@storybook/react-vite',\n options: {\n builder: {\n viteConfigPath: 'apps/rv1/vite.config.ts',\n },\n },\n },\n};\n\nexport default config;\n```\n\n### Make sure that all works by running Storybook\n\nYou can now use Storybook 7! 🎉\n\n```bash\nnpx nx build-storybook PROJECT_NAME\n```\n\nand\n\n```bash\nnpx nx storybook PROJECT_NAME\n```\n\n## Run the generator by automatically accepting the Storybook CLI prompts\n\nYou can run the generator with the `--autoAcceptAllPrompts` flag, which will automatically accept all the Storybook CLI prompts. This is useful if you want to run the generator in a CI environment, or if you want to run the generator in a script. Or if you are sure that you want to accept all the prompts!\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --autoAcceptAllPrompts\n```\n\nThe Storybook CLI may still ask you about some things, but mostly it should just run the whole migration suite uninterrupted.\n\n## Run the migration manually\n\nNx gives you the ability to run all the migration steps one by one, manually, but still with the help of our migrator. To help you out with the commands that you need to run, Nx will print out the instructions if you run the generator with the `--onlyShowListOfCommands` flag, like this:\n\n```bash\nnpx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands\n```\n\nEssentially, the way to run the migration manually is the following:\n\n1. Call the Nx generator to show you the list of commands:\n `npx nx g @nx/storybook:migrate-7 --onlyShowListOfCommands`\n2. Call the Storybook upgrade script:\n `npx storybook@latest upgrade`\n3. Call the Nx generator to prepare your files for migration. The steps are explained in [Step 02](#step-02) above.\n `nx g @nx/storybook:migrate-7 --onlyPrepare`\n4. Call the Storybook automigrate scripts for each one of the projects using Storybook (the `@nx/storybook:migrate-7` will give you the list of all the commands)\n5. Call the Nx generator to finish the migration. The steps are explained in [Step 04](#step-04) above.\n `nx g @nx/storybook:migrate-7 --afterMigration`\n\n## How the generator works under the hood\n\nNow let's see how the `@nx/storybook:migrate-7` generator works under the hood. It essentially does the following things:\n\n### Step 01\n\nIt calls the Storybook CLI upgrade script:\n\n```bash\nnpx storybook@latest upgrade\n```\n\nThis script will upgrade your Storybook dependencies to the latest version, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 02\n\nIt prepares all your project-level `.storybook/main.js|ts` files, so that\nthe Storybook automigration scripts can run successfully. This means that it makes the following adjustments to your files:\n\n- Remove the \"`as StorybookConfig`\" typecast from the `.storybook/main.ts` files, if you have any `.storybook/main.ts` files with typecast, since it is not needed any more\n- Remove the \"`path.resolve`\" calls from the Next.js Storybook configuration in project-level `.storybook/main.js|ts` files, if it exists, since it breaks the Storybook automigration scripts\n\n### Step 03\n\nIt calls the Storybook CLI automigrate script, for each one of your projects that have Storybook configured. It does that by passing the `--config-dir` flag and the `--renderer` flag, for each one of your projects that has Storybook configured. An example command would look like this:\n\n```bash\nnpx storybook@latest automigrate --config-dir apps/my-react-app/.storybook --renderer @storybook/react\n```\n\nThis script will make changes to your Storybook configuration files, and other changes to your repository, to make it work for Storybook 7, as explained in the [Storybook documentation](https://storybook.js.org/docs/7.0/react/configure/upgrading).\n\n### Step 04\n\nAfter the Storybook CLI automigrate scripts have run, some additional adjustments are made to your workspace, to make sure that everything is working as expected. These adjustments are as follows:\n\n- Remove the \"`vite-tsconfig-paths`\" plugin from the Storybook configuration files for Vite projects, since it's no longer needed in v7\n- Add the \"`viteConfigPath`\" option to the Storybook builder options for Vite projects, since now Storybook needs the path to the Vite config file\n- Change the import package for the `StorybookConfig` type to be framework specific (e.g. from `@storybook/common` to `@storybook/react-vite` for React projects using Vite)\n- Add the \"`lit`\" package to your workspace, if you are using Web Components\n- Remove the \"`uiFramework`\" option from your project's Storybook targets\n\nOur generator is based on the guide to migration using the Storybook CLI, sp please refer to the [Storybook 7 migration guide](https://chromatic-ui.notion.site/Storybook-7-migration-guide-dbf41fa347304eb2a5e9c69b34503937) for more information.\n\n## I am not on Nx 15.9.0 yet but I still want to migrate to Storybook 7\n\nYou can migrate to Storybook 7 by just using the [Storybook `upgrade` and `automigrate` scripts](https://storybook.js.org/docs/7.0/react/configure/upgrading), but you will have to manually point the `automigrate` script to each one of your projects using Storybook, explained in [Step 03](#step-03) above.\n\nFirst, you would have to run the `npx storybook@latest upgrade` to get the latest versions of all the `@storybook/*` packages. Then, for each one of your projects that use Storybook, you would have to run `npx storybook@latest automigrate --config-dir /.storybook --renderer @storybook/`.\n\nThe `@nx/storybook:migrate-7` generator helps you by figuring out all the project paths and the renderers that need to be passed in the `automigrate` script, and also by performing a number of adjustments to your code to make sure the migration scripts run smoothly, so it is recommended to use the generator instead of running the scripts manually.\n\n## Report any issues and bugs\n\nPlease report any issues and bugs you find [on the Nx GitHub page](https://github.com/nrwl/nx/issues/new/choose) or on the [Storybook GitHub page](https://github.com/storybookjs/storybook/issues/new/choose).\n", + "presets": [] + }, + "description": "Migrate to Storybook version 7.", + "hidden": false, + "implementation": "/packages/storybook/src/generators/migrate-7/migrate-7.ts", + "aliases": [], + "path": "/packages/storybook/src/generators/migrate-7/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vite/documents/overview.md b/docs/generated/packages/vite/documents/overview.md new file mode 100644 index 0000000000000..213af2813321b --- /dev/null +++ b/docs/generated/packages/vite/documents/overview.md @@ -0,0 +1,128 @@ +--- +title: Overview of the Nx Vite Plugin +description: The Nx Plugin for Vite contains executors and generators that support building applications using Vite. This page also explains how to configure Vite on your Nx workspace. +--- + +The Nx plugin for [Vite](https://vitejs.dev/) and [Vitest](https://vitest.dev/). + +[Vite.js](https://vitejs.dev/) is a build tool that aims to provide a faster and leaner development experience for modern web projects. + +Why should you use this plugin? + +- Instant dev server start +- Lightning fast Hot-Module Reloading +- _Fast_ builds using Vite. +- Vite-powered tests with smart and instant watch mode + +Read more about Vite and Vitest in the [Vite documentation](https://vitejs.dev/). + +## Setting up a new Nx workspace with @nx/vite + +Here's an example on how to create a new React app with Vite + +```shell +npx create-nx-workspace@latest --preset=react-standalone --bundler=vite +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/vite` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/vite` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/vite +``` + +This will install the correct version of `@nx/vite`. + +### How @nx/vite Infers Tasks + +The `@nx/vite` plugin will create a task for any project that has a Vite configuration file present. Any of the following files will be recognized as a Vite configuration file: + +- `vite.config.js` +- `vite.config.ts` +- `vite.config.mjs` +- `vite.config.mts` +- `vite.config.cjs` +- `vite.config.cts` +- `vitest.config.js` +- `vitest.config.ts` +- `vitest.config.mjs` +- `vitest.config.mts` +- `vitest.config.cjs` +- `vitest.config.cts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/vite Configuration + +The `@nx/vite/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/vite/plugin", + "options": { + "buildTargetName": "build", + "previewTargetName": "preview", + "testTargetName": "test", + "serveTargetName": "serve", + "serveStaticTargetName": "serve-static" + } + } + ] +} +``` + +The `buildTargetName`, `previewTargetName`, `testTargetName`, `serveTargetName` and `serveStaticTargetName` options control the names of the inferred Vite tasks. The default names are `build`, `preview`, `test`, `serve` and `serve-static`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/vite` package with your package manager. + +```shell +npm add -D @nx/vite +``` + +{% /tab %} +{% /tabs %} + +## Using @nx/vite + +### Generate a new project using Vite + +You can generate a [React](/nx-api/react) application or library or a [Web](/nx-api/web) application that uses Vite.js. The [`@nx/react:app`](/nx-api/react/generators/application), [`@nx/react:lib`](/nx-api/react/generators/library) and [`@nx/web:app`](/nx-api/web/generators/application) generators accept the `bundler` option, where you can pass `vite`. This will generate a new application configured to use Vite.js, and it will also install all the necessary dependencies, including the `@nx/vite` plugin. + +To generate a React application using Vite.js, run the following: + +```bash +nx g @nx/react:app my-app --bundler=vite +``` + +To generate a React library using Vite.js, run the following: + +```bash +nx g @nx/react:lib my-lib --bundler=vite +``` + +To generate a Web application using Vite.js, run the following: + +```bash +nx g @nx/web:app my-app --bundler=vite +``` + +### Modify an existing React or Web project to use Vite.js + +You can use the `@nx/vite:configuration` generator to change your React or Web project to use Vite.js. This generator will modify your project's configuration to use Vite.js, and it will also install all the necessary dependencies, including the `@nx/vite` plugin.. + +You can read more about this generator on the [`@nx/vite:configuration`](/nx-api/vite/generators/configuration) generator page. diff --git a/docs/generated/packages/vite/executors/build.json b/docs/generated/packages/vite/executors/build.json new file mode 100644 index 0000000000000..6351ec0e8eb9b --- /dev/null +++ b/docs/generated/packages/vite/executors/build.json @@ -0,0 +1,64 @@ +{ + "name": "build", + "implementation": "/packages/vite/src/executors/build/build.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Vite Prod Builder", + "cli": "nx", + "description": "Builds a Vite.js application for production.", + "type": "object", + "presets": [{ "name": "Default minimum setup", "keys": [] }], + "properties": { + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + }, + "skipTypeCheck": { + "type": "boolean", + "description": "Skip type-checking via TypeScript. Skipping type-checking speeds up the build but type errors are not caught.", + "default": false + }, + "tsConfig": { + "type": "string", + "description": "The path to custom tsconfig file for type-checking when skipTypeCheck is false. Required when tsconfig file is not at the projectRoot level.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json" + }, + "configFile": { + "type": "string", + "description": "The name of the Vite.js configuration file.", + "x-completion-type": "file", + "x-completion-glob": "vite.config.@(js|ts)" + }, + "watch": { + "description": "Enable re-building when files change.", + "oneOf": [{ "type": "boolean" }, { "type": "object" }], + "default": false + }, + "generatePackageJson": { + "description": "Generate a package.json for the build output.", + "type": "boolean" + }, + "includeDevDependenciesInPackageJson": { + "description": "Include devDependencies in the generated package.json.", + "type": "boolean" + } + }, + "definitions": {}, + "required": [], + "examplesFile": "---\ntitle: Examples for the Vite builder executor\ndescription: This page contains examples for the Vite @nx/vite:build executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/vite:build\",\n //...\n //...\n \"options\": {\n \"outputPath\": \"dist/apps/my-app\"\n },\n //...\n }\n },\n }\n}\n```\n\n```bash\nnx serve my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Set a custom path for vite.config.ts\" %}\n\nNx will automatically look in the root of your application for a `vite.config.ts` (or a `vite.config.js`) file. If you want to use a different path, you can set it in your `project.json` file, in the `build` target options:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/vite:build\",\n //...\n \"options\": {\n \"outputPath\": \"dist/apps/my-app\",\n \"configFile\": \"apps/my-app/vite.config.other-path.ts\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\nor even\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/vite:build\",\n //...\n \"options\": {\n \"outputPath\": \"dist/apps/my-app\",\n \"configFile\": \"vite.config.base.ts\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" + }, + "description": "Build with Vite.", + "aliases": [], + "hidden": false, + "path": "/packages/vite/src/executors/build/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/vite/executors/dev-server.json b/docs/generated/packages/vite/executors/dev-server.json new file mode 100644 index 0000000000000..7cba326d7d13b --- /dev/null +++ b/docs/generated/packages/vite/executors/dev-server.json @@ -0,0 +1,41 @@ +{ + "name": "dev-server", + "implementation": "/packages/vite/src/executors/dev-server/dev-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Vite Dev Server", + "cli": "nx", + "description": "Starts a dev server using Vite.", + "type": "object", + "presets": [ + { "name": "Default minimum setup", "keys": ["buildTarget"] }, + { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } + ], + "properties": { + "buildTarget": { + "type": "string", + "description": "Target which builds the application. Only used to retrieve the configuration as the dev-server does not build the code.", + "x-priority": "important" + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately.", + "default": true + }, + "proxyConfig": { + "type": "string", + "description": "Path to the proxy configuration file.", + "x-completion-type": "file" + } + }, + "definitions": {}, + "required": ["buildTarget"], + "examplesFile": "---\ntitle: Examples for the Vite dev server executor\ndescription: This page contains examples for the Vite @nx/vite:dev-server executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/vite:dev-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n```bash\nnx serve my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Set up a custom port\" %}\n\nYou can always set the port in your `vite.config.ts` file. However, you can also set it directly in your `project.json` file, in the `serve` target options:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/vite:dev-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"port\": 4200,\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Specify a proxyConfig\" %}\n\nYou can specify a proxy config by pointing to the path of your proxy configuration file:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"serve\": {\n \"executor\": \"@nx/vite:dev-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"proxyConfig\": \"apps/my-app/proxy.conf.json\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" + }, + "description": "Vite dev server.", + "aliases": [], + "hidden": false, + "path": "/packages/vite/src/executors/dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/vite/executors/preview-server.json b/docs/generated/packages/vite/executors/preview-server.json new file mode 100644 index 0000000000000..155c06d5acc3d --- /dev/null +++ b/docs/generated/packages/vite/executors/preview-server.json @@ -0,0 +1,40 @@ +{ + "name": "preview-server", + "implementation": "/packages/vite/src/executors/preview-server/preview-server.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "cli": "nx", + "title": "Vite Preview Server", + "description": "Preview Server for Vite.", + "type": "object", + "presets": [ + { "name": "Default minimum setup", "keys": ["buildTarget"] }, + { "name": "Using a Different Port", "keys": ["buildTarget", "port"] } + ], + "properties": { + "buildTarget": { + "type": "string", + "description": "Target which builds the application." + }, + "proxyConfig": { + "type": "string", + "description": "Path to the proxy configuration file.", + "x-completion-type": "file" + }, + "staticFilePath": { + "type": "string", + "description": "Path where the build artifacts are located. If not provided then it will be infered from the buildTarget executor options as outputPath", + "x-completion-type": "directory" + } + }, + "definitions": {}, + "required": ["buildTarget"], + "examplesFile": "---\ntitle: Examples for the Vite preview server executor\ndescription: This page contains examples for the Vite @nx/vite:preview-server executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"preview\": {\n \"executor\": \"@nx/vite:preview-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n```bash\nnx preview my-app\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Set up a custom port\" %}\n\nYou can always set the port in your `vite.config.ts` file. However, you can also set it directly in your `project.json` file, in the `preview` target options:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"preview\": {\n \"executor\": \"@nx/vite:preview-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"port\": 4200,\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"Specify a proxyConfig\" %}\n\nYou can specify a proxy config by pointing to the path of your proxy configuration file:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"preview\": {\n \"executor\": \"@nx/vite:preview-server\",\n \"defaultConfiguration\": \"development\",\n \"options\": {\n \"buildTarget\": \"my-app:build\",\n \"proxyConfig\": \"apps/my-app/proxy.conf.json\"\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n" + }, + "description": "Vite preview server", + "aliases": [], + "hidden": false, + "path": "/packages/vite/src/executors/preview-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/vite/executors/test.json b/docs/generated/packages/vite/executors/test.json new file mode 100644 index 0000000000000..fce5afcbd1f4f --- /dev/null +++ b/docs/generated/packages/vite/executors/test.json @@ -0,0 +1,43 @@ +{ + "name": "test", + "implementation": "/packages/vite/src/executors/test/vitest.impl.ts", + "schema": { + "$schema": "https://json-schema.org/schema", + "version": 2, + "cli": "nx", + "title": "Vitest executor", + "description": "Test using Vitest.", + "type": "object", + "properties": { + "configFile": { + "type": "string", + "description": "The path to the local vitest config", + "x-completion-type": "file", + "x-completion-glob": "@(vitest|vite).config@(.js|.ts)", + "aliases": ["config"] + }, + "reportsDirectory": { + "type": "string", + "description": "Directory to write coverage report to." + }, + "mode": { "type": "string", "description": "Mode for Vite." }, + "testFiles": { + "aliases": ["testFile"], + "type": "array", + "items": { "type": "string" } + }, + "watch": { + "description": "Watch files for changes and rerun tests related to changed files.", + "type": "boolean" + } + }, + "required": [], + "examplesFile": "---\ntitle: Examples for the Vitest executor\ndescription: This page contains examples for the Vitest @nx/vite:test executor.\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"test\": {\n \"executor\": \"@nx/vite:test\",\n //...\n //...\n \"options\": {\n \"config\": \"apps/my-app/vite.config.ts\"\n }\n //...\n }\n }\n}\n```\n\n```bash\nnx test my-app\n```\n\n## Examples\n\n{% tabs %}\n\n{% tab label=\"Running in watch mode\" %}\nTo run testing in watch mode, you can create a new configuration within your test target, and have watch set to true. For example:\n\n```json\n\"my-app\": {\n \"targets\": {\n //...\n \"test\": {\n \"executor\": \"@nx/vite:test\",\n //...\n //...\n \"options\": {\n \"config\": \"apps/my-app/vite.config.ts\"\n },\n \"configurations\": {\n \"watch\": {\n \"watch\": true\n }\n }\n }\n }\n}\n```\n\nAnd then run `nx run my-app:test:watch`.\n\nAlternatively, you can just run the default test target with the `--watch` flag preset, like so:\n\n```bash\nnx run my-app:test --watch\n```\n\n{% /tab %}\n{% tab label=\"Updating snapshots\" %}\nWhenever a test fails because of an outdated snapshot, you can tell vitest to update them with the following:\n\n```bash\nnx run my-app:test -u\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Test with Vitest", + "aliases": [], + "hidden": false, + "path": "/packages/vite/src/executors/test/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/vite/generators/configuration.json b/docs/generated/packages/vite/generators/configuration.json new file mode 100644 index 0000000000000..52caa18226535 --- /dev/null +++ b/docs/generated/packages/vite/generators/configuration.json @@ -0,0 +1,69 @@ +{ + "name": "configuration", + "factory": "./src/generators/configuration/configuration#viteConfigurationGeneratorInternal", + "schema": { + "cli": "nx", + "title": "Configure a project to use Vite.js.", + "description": "Configure a project to use Vite.js.", + "$id": "configure-vite-project", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "argv", "index": 0 }, + "aliases": ["name", "projectName"], + "x-dropdown": "project", + "x-prompt": "What is the name of the project to set up Vite for?" + }, + "includeLib": { + "type": "boolean", + "description": "Add a library build option and skip the server option.", + "hidden": true + }, + "includeVitest": { + "type": "boolean", + "description": "Use vitest for the test suite." + }, + "uiFramework": { + "type": "string", + "description": "UI Framework to use for Vite.", + "enum": ["react", "none"], + "default": "none", + "x-prompt": "What UI framework plugin should Vite use?" + }, + "compiler": { + "type": "string", + "description": "Compiler to use for Vite when UI Framework is React.", + "enum": ["babel", "swc"], + "default": "babel" + }, + "newProject": { + "type": "boolean", + "description": "Is this a new project?", + "default": false, + "hidden": true + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "testEnvironment": { + "description": "The vitest environment to use. See https://vitest.dev/config/#environment.", + "type": "string", + "enum": ["node", "jsdom", "happy-dom", "edge-runtime"], + "default": "jsdom" + } + }, + "examplesFile": "---\ntitle: Examples for the Vite configuration generator\ndescription: This page contains examples for the Vite @nx/vite:configuration generator, which helps you set up Vite on your Nx workspace, or convert an existing project to use Vite.\n---\n\nThis generator is used for converting an existing React or Web project to use [Vite.js](https://vitejs.dev/).\n\nIt will create a `vite.config.ts` file at the root of your project with the correct settings, or if there's already a `vite.config.ts` file, it will modify it to include the correct settings.\n\n{% callout type=\"caution\" title=\"Your code will be modified!\" %}\nThis generator will modify your code, so make sure to commit your changes before running it.\n{% /callout %}\n\n```bash\nnx g @nx/vite:configuration\n```\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `project`, as the name of the project you want to generate the configuration for.\n- The `uiFramework` you want to use. Supported values are: `react` and `none`.\n\nYou must provide a `project` and a `uiFramework` for the generator to work.\n\nYou may also pass the `includeVitest` flag. This will also configure your project for testing with [Vitest](https://vitest.dev/), by adding the `test` configuration in your `vite.config.ts` file.\n\n## How to use\n\nIf you have an existing project that does not use Vite, you may want to convert it to use Vite. This can be a `webpack` project, a buildable JS library that uses the `@nx/js:babel`, the `@nx/js:swc` or the `@nx/rollup:rollup` executor, or even a non-buildable library.\nBy default, the `@nx/vite:configuration` generator will search your project to find the relevant configuration (either a `webpack.config.ts` file for example, or the `@nx/js` executors). If it determines that your project can be converted, then Nx will generate the configuration for you. If it cannot determine that your project can be converted, it will ask you if you want to convert it anyway or throw an error if it determines that it cannot be converted.\n\nYou can then test on your own if the result works or not, and modify the configuration as needed. It's suggested that you commit your changes before running the generator, so you can revert the changes if needed.\n\n## Projects that can be converted to use the `@nx/vite` executors\n\nUsually, React and Web projects generated with the `@nx/react` and the `@nx/web` generators can be converted to use the `@nx/vite` executors without any issues.\n\nThe list of executors for building, testing and serving that can be converted to use the `@nx/vite` executors is:\n\n### Supported `build` executors\n\n- `@nxext/vite:build`\n- `@nx/js:babel`\n- `@nx/js:swc`\n- `@nx/rollup:rollup`\n- `@nx/webpack:webpack`\n- `@nx/web:rollup`\n\n### Unsupported executors\n\n- `@nx/angular:ng-packagr-lite`\n- `@nx/angular:package`\n- `@nx/angular:webpack-browser`\n- `@angular-devkit/build-angular:browser`\n- `@angular-devkit/build-angular:dev-server`\n- `@nx/esbuild:esbuild`\n- `@nx/react-native:start`\n- `@nx/next:build`\n- `@nx/next:server`\n- `@nx/js:tsc`\n- any executor _not_ listed in the lists of \"supported executors\"\n- any project that does _not_ have a target for building, serving or testing\n\nWe **cannot** guarantee that projects using unsupported executors - _or any executor that is NOT listed in the list of \"supported executors\"_ - for either building, testing or serving will work correctly when converted to use Vite.\n\nYou can read more in the [Vite package overview page](/packages/vite).\n\n## Examples\n\n### Convert a React app to use Vite\n\n```bash\nnx g @nx/vite:configuration --project=my-react-app --uiFramework=react --includeVitest\n```\n\nThis will configure the `my-react-app` project to use Vite.\n\n### Convert a Web app to use Vite\n\n```bash\nnx g @nx/vite:configuration --project=my-web-app --uiFramework=none --includeVitest\n```\n\nThis will configure the `my-web-app` project to use Vite.\n", + "presets": [] + }, + "description": "Add Vite configuration to an application.", + "aliases": ["config"], + "hidden": false, + "implementation": "/packages/vite/src/generators/configuration/configuration#viteConfigurationGeneratorInternal.ts", + "path": "/packages/vite/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vite/generators/init.json b/docs/generated/packages/vite/generators/init.json new file mode 100644 index 0000000000000..b1948fddc6e4d --- /dev/null +++ b/docs/generated/packages/vite/generators/init.json @@ -0,0 +1,42 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#initGeneratorInternal", + "schema": { + "cli": "nx", + "title": "Initialize Vite in the workspace.", + "description": "Initialize Vite in the workspace.", + "$id": "init-vite-plugin", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "presets": [] + }, + "description": "Initialize Vite in the workspace.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/vite/src/generators/init/init#initGeneratorInternal.ts", + "path": "/packages/vite/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vite/generators/vitest.json b/docs/generated/packages/vite/generators/vitest.json new file mode 100644 index 0000000000000..1ce2e8f96f47d --- /dev/null +++ b/docs/generated/packages/vite/generators/vitest.json @@ -0,0 +1,65 @@ +{ + "name": "vitest", + "factory": "./src/generators/vitest/vitest-generator#vitestGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "Vitest", + "title": "Vitest", + "type": "object", + "description": "Generate a Vitest setup for a project.", + "properties": { + "project": { + "type": "string", + "description": "The name of the project to test.", + "$default": { "$source": "projectName" } + }, + "uiFramework": { + "type": "string", + "enum": ["react", "none"], + "default": "none", + "description": "UI framework to use with vitest." + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "Do not generate separate spec files and set up in-source testing." + }, + "skipViteConfig": { + "type": "boolean", + "default": false, + "description": "Skip generating a vite config file." + }, + "coverageProvider": { + "type": "string", + "enum": ["v8", "istanbul", "custom"], + "default": "v8", + "description": "Coverage provider to use." + }, + "testTarget": { + "type": "string", + "description": "The test target of the project to be transformed to use the @nx/vite:test executor.", + "hidden": true + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "testEnvironment": { + "description": "The vitest environment to use. See https://vitest.dev/config/#environment.", + "type": "string", + "enum": ["node", "jsdom", "happy-dom", "edge-runtime"] + } + }, + "required": ["project"], + "presets": [] + }, + "description": "Generate a vitest configuration", + "implementation": "/packages/vite/src/generators/vitest/vitest-generator#vitestGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/vite/src/generators/vitest/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/documents/overview.md b/docs/generated/packages/vue/documents/overview.md new file mode 100644 index 0000000000000..2497250925b77 --- /dev/null +++ b/docs/generated/packages/vue/documents/overview.md @@ -0,0 +1,65 @@ +--- +title: Overview of the Nx Vue Plugin +description: The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace. This page also explains how to configure Vue on your Nx workspace. +--- + +The Nx plugin for [Vue](https://vuejs.org/). + +## Setting Up @nx/vue + +### Generating a new Workspace + +To create a new workspace with Vue, run `npx create-nx-workspace@latest --preset=vue`. + +{% callout type="note" title="Vue Standalone Tutorial" %} +For a full tutorial experience, follow the [Vue Standalone Tutorial](/getting-started/tutorials/vue-standalone-tutorial) +{% /callout %} + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/vue` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/vue` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/vue +``` + +This will install the correct version of `@nx/vue`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/vue` package with your package manager. + +```shell {% skipRescope=true %} +npm add -D @nx/vue +``` + +{% /tab %} +{% /tabs %} + +## Using the @nx/vue Plugin + +### Generate a new project using Vue + +To generate a Vue application, run the following: + +```shell +nx g @nx/vue:app my-app +``` + +To generate a Vue library, run the following: + +```shell +nx g @nx/vue:lib my-lib +``` + +## More Documentation + +- [Vue Standalone Tutorial](/getting-started/tutorials/vue-standalone-tutorial) diff --git a/docs/generated/packages/vue/generators/application.json b/docs/generated/packages/vue/generators/application.json new file mode 100644 index 0000000000000..847a7685a4963 --- /dev/null +++ b/docs/generated/packages/vue/generators/application.json @@ -0,0 +1,142 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxVueApp", + "title": "Create a Vue Application", + "description": "Create a Vue application for Nx.", + "examples": [ + { + "command": "nx g app myapp --directory=myorg/myapp", + "description": "Generate `apps/myorg/myapp` and `apps/myorg/myapp-e2e`" + }, + { + "command": "nx g app myapp --routing", + "description": "Set up Vue Router" + } + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "alias": "s", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + }, + { "value": "none", "label": "None" } + ] + } + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "routing": { + "type": "boolean", + "description": "Generate application with routes.", + "x-prompt": "Would you like to add Vue Router to this application?", + "default": false + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["vitest", "none"], + "description": "Test runner to use for unit tests.", + "x-prompt": "Which unit test runner would you like to use?", + "default": "vitest" + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "description": "Test runner to use for end to end (E2E) tests.", + "x-prompt": "Which E2E test runner would you like to use?", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting).", + "alias": "t" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "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 + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "rootProject": { + "description": "Create a application at the root of the workspace", + "type": "boolean", + "default": false, + "hidden": true + } + }, + "required": ["name"], + "examplesFile": "---\ntitle: Vue application generator examples\ndescription: This page contains examples for the @nx/vue:app generator.\n---\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```shell\nnx g @nx/vue:app my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Specify directory and style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```shell\nnx g @nx/vue:app my-app --directory=apps/my-dir/my-app --style=scss\n```\n\n{% /tab %}\n\n{% tab label=\"Add tags\" %}\n\nAdd tags to the application (used for linting).\n\n```shell\nnx g @nx/vue:app my-app --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["app"], + "description": "Create a Vue application.", + "implementation": "/packages/vue/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/vue/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/generators/component.json b/docs/generated/packages/vue/generators/component.json new file mode 100644 index 0000000000000..1103adece43a1 --- /dev/null +++ b/docs/generated/packages/vue/generators/component.json @@ -0,0 +1,111 @@ +{ + "name": "component", + "factory": "./src/generators/component/component#componentGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxVueComponent", + "title": "Create a Vue Component", + "description": "Create a Vue Component for Nx.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/vue:component --directory=my-app/src/app/one --name=one --nameAndDirectoryFormat=as-provided --unitTestRunner=vitest", + "description": "Generate a component in the `my-app` application" + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "alias": "p", + "$default": { "$source": "projectName" }, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19." + }, + "name": { + "type": "string", + "description": "The name of the component.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the component?", + "x-priority": "important" + }, + "nameAndDirectoryFormat": { + "description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "skipTests": { + "type": "boolean", + "description": "When true, does not create `spec.ts` test files for the new component.", + "default": false, + "x-priority": "internal" + }, + "directory": { + "type": "string", + "description": "The directory at which to create the component file. When `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. Otherwise, it will be relative to the workspace root.", + "alias": "dir", + "x-priority": "important" + }, + "flat": { + "type": "boolean", + "description": "Create component at the source root rather than its own directory.", + "default": false, + "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "export": { + "type": "boolean", + "description": "When true, the component is exported from the project `index.ts` (if it exists).", + "alias": "e", + "default": false, + "x-prompt": "Should this component be exported in the project?" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false, + "x-deprecated": "Provide the desired `name` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "pascalCaseDirectory": { + "type": "boolean", + "description": "Use pascal case directory name (e.g. `App/App.tsx`).", + "alias": "R", + "default": false, + "x-deprecated": "Provide the desired `directory` option instead and use the `as-provided` format. It will be removed in Nx v19." + }, + "routing": { + "type": "boolean", + "description": "Generate a library with routes." + }, + "fileName": { + "type": "string", + "description": "Create a component with this file name." + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files. Read more on the Vitest docs site: https://vitest.dev/guide/in-source.html" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["c"], + "x-type": "component", + "description": "Create a Vue component.", + "implementation": "/packages/vue/src/generators/component/component#componentGeneratorInternal.ts", + "hidden": false, + "path": "/packages/vue/src/generators/component/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/generators/init.json b/docs/generated/packages/vue/generators/init.json new file mode 100644 index 0000000000000..85678a1aa0b86 --- /dev/null +++ b/docs/generated/packages/vue/generators/init.json @@ -0,0 +1,38 @@ +{ + "name": "init", + "factory": "./src/generators/init/init", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxVueInit", + "title": "Init Vue Plugin", + "description": "Initialize a Vue Plugin.", + "cli": "nx", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nx/vue` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/vue/src/generators/init/init.ts", + "path": "/packages/vue/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/generators/library.json b/docs/generated/packages/vue/generators/library.json new file mode 100644 index 0000000000000..4d3ada2060201 --- /dev/null +++ b/docs/generated/packages/vue/generators/library.json @@ -0,0 +1,148 @@ +{ + "name": "library", + "factory": "./src/generators/library/library#libraryGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxVueLibrary", + "title": "Create a Vue Library", + "description": "Create a Vue Library for an Nx workspace.", + "type": "object", + "examples": [ + { + "command": "nx g lib mylib --directory=libs/mylib", + "description": "Generate `libs/mylib`" + }, + { + "command": "nx g lib mylib --appProject=myapp", + "description": "Generate a library with routes and add them to `myapp`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the library?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", + "x-priority": "important" + }, + "directory": { + "type": "string", + "description": "A directory where the lib is placed.", + "alias": "dir", + "x-priority": "important" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "unitTestRunner": { + "type": "string", + "enum": ["vitest", "none"], + "description": "Test runner to use for unit tests.", + "x-prompt": "What unit test runner should be used?" + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files." + }, + "tags": { + "type": "string", + "description": "Add tags to the library (used for linting).", + "alias": "t" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipTsConfig": { + "type": "boolean", + "default": false, + "description": "Do not update `tsconfig.json` for development experience.", + "x-priority": "internal" + }, + "pascalCaseFiles": { + "type": "boolean", + "description": "Use pascal case component file name (e.g. `App.tsx`).", + "alias": "P", + "default": false + }, + "routing": { + "type": "boolean", + "description": "Generate library with routes." + }, + "appProject": { + "type": "string", + "description": "The application project to add the library route to.", + "alias": "a" + }, + "publishable": { + "type": "boolean", + "description": "Create a publishable library." + }, + "importPath": { + "type": "string", + "description": "The library name used to import it, like `@myorg/my-awesome-lib`." + }, + "component": { + "type": "boolean", + "description": "Generate a default component.", + "default": false + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "strict": { + "type": "boolean", + "description": "Whether to enable tsconfig strict mode or not.", + "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 + }, + "bundler": { + "type": "string", + "description": "The bundler to use. Choosing 'none' means this library is not buildable.", + "enum": ["none", "vite"], + "default": "none", + "x-prompt": "Which bundler would you like to use to build the library? Choose 'none' to skip build setup.", + "x-priority": "important" + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "minimal": { + "description": "Create a Vue library with a minimal setup, no separate test files.", + "type": "boolean", + "default": false + } + }, + "required": ["name"], + "presets": [] + }, + "aliases": ["lib"], + "x-type": "library", + "description": "Create a Vue library.", + "implementation": "/packages/vue/src/generators/library/library#libraryGeneratorInternal.ts", + "hidden": false, + "path": "/packages/vue/src/generators/library/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/generators/setup-tailwind.json b/docs/generated/packages/vue/generators/setup-tailwind.json new file mode 100644 index 0000000000000..7e9ded504e91e --- /dev/null +++ b/docs/generated/packages/vue/generators/setup-tailwind.json @@ -0,0 +1,53 @@ +{ + "name": "setup-tailwind", + "factory": "./src/generators/setup-tailwind/setup-tailwind", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxVueTailwindSetupGenerator", + "title": "Configures Tailwind CSS for an application or a library.", + "description": "Adds the Tailwind CSS configuration files for a given Vue project and installs, if needed, the packages required for Tailwind CSS to work.", + "type": "object", + "examples": [ + { + "command": "nx g setup-tailwind --project=my-app", + "description": "Initialize Tailwind configuration for the `my-app` project." + } + ], + "properties": { + "project": { + "type": "string", + "description": "The name of the project to add the Tailwind CSS setup for.", + "alias": "p", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "projects", + "x-prompt": "What project would you like to add the Tailwind CSS setup?", + "x-priority": "important" + }, + "skipFormat": { + "type": "boolean", + "description": "Skips formatting the workspace after the generator completes.", + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "stylesheet": { + "type": "string", + "description": "Path to the styles entry point relative to the workspace root. This option is only needed if the stylesheet location cannot be found automatically." + } + }, + "additionalProperties": false, + "required": ["project"], + "presets": [] + }, + "description": "Set up Tailwind configuration for a project.", + "implementation": "/packages/vue/src/generators/setup-tailwind/setup-tailwind.ts", + "aliases": [], + "hidden": false, + "path": "/packages/vue/src/generators/setup-tailwind/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/generators/stories.json b/docs/generated/packages/vue/generators/stories.json new file mode 100644 index 0000000000000..203f783bf2cbe --- /dev/null +++ b/docs/generated/packages/vue/generators/stories.json @@ -0,0 +1,72 @@ +{ + "name": "stories", + "factory": "./src/generators/stories/stories", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxVueStorybookStories", + "title": "Generate Vue Storybook stories", + "description": "Generate stories/specs for all components declared in a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate stories.", + "$default": { "$source": "projectName", "index": 0 }, + "x-prompt": "For which project do you want to generate stories?", + "x-priority": "important" + }, + "generateCypressSpecs": { + "type": "boolean", + "description": "Automatically generate `*.spec.ts` files in the cypress e2e app generated by the cypress-configure generator." + }, + "cypressProject": { + "type": "string", + "description": "The Cypress project to generate the stories under. This is inferred from `project` by default." + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "default": true + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript files rather than TypeScript files.", + "default": false + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "required": ["project"], + "examplesFile": "---\ntitle: Stories generator examples\ndescription: This page contains examples for the @nx/vue:stories generator.\n---\n\nThis generator will generate stories for all your components in your project. The stories will be generated using [Component Story Format 3 (CSF3)](https://storybook.js.org/blog/storybook-csf3-is-here/).\n\nYou can also use this generator to generate stories for your **Nuxt** project:\n\n```bash\nnx g @nx/vue:stories project-name\n```\n\nor\n\n```bash\nnx g @nx/nuxt:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Vue overview page](/recipes/storybook/overview-vue#auto-generate-stories).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/angular/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/vue:stories --name=ui --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*\n```\n\nThis will generate stories for all the components in the `ui` project, except for the ones in the `libs/ui/src/not-stories` directory, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/vue:stories --name=ui --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n", + "presets": [] + }, + "description": "Create stories for all components declared in an app or library.", + "hidden": false, + "implementation": "/packages/vue/src/generators/stories/stories.ts", + "aliases": [], + "path": "/packages/vue/src/generators/stories/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/vue/generators/storybook-configuration.json b/docs/generated/packages/vue/generators/storybook-configuration.json new file mode 100644 index 0000000000000..51a35e1d5fd95 --- /dev/null +++ b/docs/generated/packages/vue/generators/storybook-configuration.json @@ -0,0 +1,85 @@ +{ + "name": "storybook-configuration", + "factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxVueStorybookConfigure", + "title": "Vue Storybook Configure", + "description": "Set up Storybook for a Vue project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "aliases": ["name", "projectName"], + "description": "Project for which to generate Storybook configuration.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "For which project do you want to generate Storybook configuration?", + "x-dropdown": "projects", + "x-priority": "important" + }, + "interactionTests": { + "type": "boolean", + "description": "Set up Storybook interaction tests.", + "x-prompt": "Do you want to set up Storybook interaction tests?", + "x-priority": "important", + "alias": ["configureTestRunner"], + "default": true + }, + "generateStories": { + "type": "boolean", + "description": "Automatically generate `*.stories.ts` files for components declared in this project?", + "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?", + "default": true, + "x-priority": "important" + }, + "configureStaticServe": { + "type": "boolean", + "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.", + "x-prompt": "Configure a static file server for the storybook instance?", + "default": true, + "x-priority": "important" + }, + "js": { + "type": "boolean", + "description": "Generate JavaScript story files rather than TypeScript story files.", + "default": false + }, + "tsConfiguration": { + "type": "boolean", + "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.", + "default": true + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "ignorePaths": { + "type": "array", + "description": "Paths to ignore when looking for components.", + "items": { "type": "string", "description": "Path to ignore." }, + "default": [ + "*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx" + ], + "examples": [ + "apps/my-app/src/not-stories/**", + "**/**/src/**/not-stories/**", + "libs/my-lib/**/*.something.ts", + "**/**/src/**/*.other.*", + "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts" + ] + } + }, + "required": ["project"], + "examplesFile": "---\ntitle: Storybook configuration generator examples\ndescription: This page contains examples for the @nx/vue:storybook-configuration generator.\n---\n\nThis generator will set up Storybook for your **Vue** project. You can also use this generator to generate Storybook configuration for your **Nuxt** project.\n\n```bash\nnx g @nx/vue:storybook-configuration project-name\n```\n\nor\n\n```bash\nnx g @nx/nuxt:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Vue overview page](/recipes/storybook/overview-vue#generate-storybook-configuration-for-a-vue-project).\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/vue/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/packages/storybook/documents/interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/vue/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/vue:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/vue:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/vue:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/vue:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n", + "presets": [] + }, + "description": "Set up storybook for a Vue app or library.", + "hidden": false, + "implementation": "/packages/vue/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts", + "aliases": [], + "path": "/packages/vue/src/generators/storybook-configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/web/documents/overview.md b/docs/generated/packages/web/documents/overview.md new file mode 100644 index 0000000000000..e8cb9ed81a549 --- /dev/null +++ b/docs/generated/packages/web/documents/overview.md @@ -0,0 +1,121 @@ +The Nx Plugin for Web Components contains generators for managing Web Component applications and libraries within an Nx workspace. It provides: + +- Integration with libraries such as Jest, Cypress, and Storybook. +- Scaffolding for creating buildable libraries that can be published to npm. +- Utilities for automatic workspace refactoring. + +## Setting Up @nx/web + +### Generating a new Workspace + +To create a new workspace with React, run `npx create-nx-workspace@latest --preset=web-components`. + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/web` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/web` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/web +``` + +This will install the correct version of `@nx/web`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/web` package with your package manager. + +```shell +npm add -D @nx/web +``` + +{% /tab %} +{% /tabs %} + +## Using the @nx/web Plugin + +### Creating Applications + +You can add a new application with the following: + +```shell +nx g @nx/web:app my-new-app +``` + +The application uses no framework and generates with web components. You can add any framework you want on top of the default setup. + +To start the application in development mode, run `nx serve my-new-app`. + +{% callout type="note" title="React" %} +If you are looking to add a React application, check out the [React plugin](/nx-api/react). +{% /callout %} + +### Creating Libraries + +To create a generic TypeScript library (i.e. non-framework specific), use the [`@nx/js`](/nx-api/js) plugin. + +```shell +nx g @nx/js:lib my-new-lib + +# If you want the library to be publishable to npm +nx g @nx/js:lib my-new-lib \ +--publishable \ +--importPath=@myorg/my-new-lib +``` + +## Using Web + +### Testing Projects + +You can run unit tests with: + +```shell +nx test my-new-app +nx test my-new-lib +``` + +Replace `my-new-app` with the name or your project. This command works for both applications and libraries. + +You can also run E2E tests for applications: + +```shell +nx e2e my-new-app-e2e +``` + +Replace `my-new-app-e2e` with the name or your project with `-e2e` appended. + +### Building Projects + +React applications can be build with: + +```shell +nx build my-new-app +``` + +And if you generated a library with `--buildable`, then you can build a library as well: + +```shell +nx build my-new-lib +``` + +The output is in the `dist` folder. You can customize the output folder by setting `outputPath` in the project's `project.json` file. + +The application in `dist` is deployable, and you can try it out locally with: + +```shell +npx http-server dist/apps/my-new-app +``` + +The library in `dist` is publishable to npm or a private registry. + +## More Documentation + +- [Using Cypress](/nx-api/cypress) +- [Using Jest](/nx-api/jest) diff --git a/docs/generated/packages/web/executors/file-server.json b/docs/generated/packages/web/executors/file-server.json new file mode 100644 index 0000000000000..9644492d70079 --- /dev/null +++ b/docs/generated/packages/web/executors/file-server.json @@ -0,0 +1,103 @@ +{ + "name": "file-server", + "implementation": "/packages/web/src/executors/file-server/file-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "File Server", + "description": "Serve a web application from a folder.", + "type": "object", + "cli": "nx", + "properties": { + "buildTarget": { + "type": "string", + "description": "Target which builds the application." + }, + "parallel": { + "type": "boolean", + "description": "Build the target in parallel.", + "default": true + }, + "maxParallel": { + "type": "number", + "description": "Max number of parallel jobs." + }, + "port": { + "type": "number", + "description": "Port to listen on.", + "default": 4200 + }, + "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`." + }, + "proxyUrl": { + "type": "string", + "description": "URL to proxy unhandled requests to." + }, + "proxyOptions": { + "type": "object", + "description": "Options for the proxy used by `http-server`.", + "default": {}, + "properties": { "secure": { "type": "boolean", "default": false } }, + "additionalProperties": true + }, + "watch": { + "type": "boolean", + "description": "Watch for file changes.", + "default": true + }, + "spa": { + "type": "boolean", + "description": "Redirect 404 errors to index.html (useful for SPA's)", + "default": false, + "x-priority": "important" + }, + "staticFilePath": { + "type": "string", + "description": "Path where the build artifacts are located. If not provided then it will be infered from the buildTarget executor options as outputPath" + }, + "cors": { + "type": "boolean", + "description": "Enable CORS", + "default": true + }, + "gzip": { + "type": "boolean", + "description": "Enable gzip compression", + "default": false + }, + "brotli": { + "type": "boolean", + "description": "Enable brotli compression", + "default": false + }, + "cacheSeconds": { + "type": "number", + "description": "Set cache time (in seconds) for cache-control max-age header. To disable caching, use -1. Caching defaults to disabled.", + "default": -1 + } + }, + "additionalProperties": false, + "presets": [] + }, + "description": "Serve a web application from a folder.", + "aliases": [], + "hidden": false, + "path": "/packages/web/src/executors/file-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/web/generators/application.json b/docs/generated/packages/web/generators/application.json new file mode 100644 index 0000000000000..758b8e14e75e6 --- /dev/null +++ b/docs/generated/packages/web/generators/application.json @@ -0,0 +1,119 @@ +{ + "name": "application", + "factory": "./src/generators/application/application#applicationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "cli": "nx", + "$id": "NxWebApp", + "title": "Create a Web Application for Nx", + "description": "Create a web application using `swc` or `babel` as compiler.", + "type": "object", + "properties": { + "name": { + "description": "The name of the application.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the application?", + "pattern": "^[a-zA-Z][^:]*$" + }, + "directory": { + "description": "The directory of the new application.", + "type": "string" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + } + ] + } + }, + "compiler": { + "type": "string", + "description": "The compiler to use", + "enum": ["swc", "babel"], + "default": "swc", + "x-priority": "important" + }, + "bundler": { + "type": "string", + "description": "The bundler to use.", + "enum": ["webpack", "none", "vite"], + "default": "webpack", + "x-prompt": "Which bundler do you want to use?", + "x-priority": "important" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint", "none"], + "default": "eslint" + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "unitTestRunner": { + "type": "string", + "enum": ["jest", "vitest", "none"], + "description": "Test runner to use for unit tests. Default value is 'jest' when using 'webpack' or 'none' as the bundler and 'vitest' when using 'vite' as the bundler" + }, + "inSourceTests": { + "type": "boolean", + "default": false, + "description": "When using Vitest, separate spec files will not be generated and instead will be included within the source files." + }, + "e2eTestRunner": { + "type": "string", + "enum": ["cypress", "playwright", "none"], + "x-prompt": "Which E2E test runner would you like to use?", + "description": "Test runner to use for end to end (e2e) tests", + "default": "cypress" + }, + "tags": { + "type": "string", + "description": "Add tags to the application (used for linting)" + }, + "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 + }, + "standaloneConfig": { + "description": "Split the project configuration into `/project.json` rather than including it inside workspace.json", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + } + }, + "required": ["name"], + "examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Application\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/web:application my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Application using Vite as bundler\" %}\n\nCreate an application named `my-app`:\n\n```bash\nnx g @nx/web:app my-app --bundler=vite\n```\n\nWhen choosing `vite` as the bundler, your unit tests will be set up with `vitest`, unless you choose `none` for `unitTestRunner`.\n\n{% /tab %}\n\n{% tab label=\"Specify directory\" %}\n\nCreate an application named `my-app` in the `my-dir` directory:\n\n{% callout type=\"note\" title=\"Directory Flag Behavior Changes\" %}\nThe command below uses the `as-provided` directory flag behavior, which is the default in Nx 16.8.0. If you're on an earlier version of Nx or using the `derived` option, use `--directory=my-dir`. See the [as-provided vs. derived documentation](/deprecated/as-provided-vs-derived) for more details.\n{% /callout %}\n\n```bash\nnx g @nx/web:app my-app --directory=apps/my-dir/my-app\n```\n\n{% /tab %}\n\n{% tab label=\"Add tags\" %}\n\nAdd tags to the application (used for linting).\n\n```bash\nnx g @nx/web:app my-app --tags=scope:admin,type:ui\n```\n\n{% /tab %}\n{% /tabs %}\n", + "presets": [] + }, + "aliases": ["app"], + "x-type": "application", + "description": "Create an web application.", + "implementation": "/packages/web/src/generators/application/application#applicationGeneratorInternal.ts", + "hidden": false, + "path": "/packages/web/src/generators/application/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/web/generators/init.json b/docs/generated/packages/web/generators/init.json new file mode 100644 index 0000000000000..1d9572ca8b95d --- /dev/null +++ b/docs/generated/packages/web/generators/init.json @@ -0,0 +1,39 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#webInitGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWebInit", + "cli": "nx", + "title": "Init Web Plugin", + "description": "Init Web Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Add `@nrwl/web` to a project.", + "hidden": true, + "implementation": "/packages/web/src/generators/init/init#webInitGenerator.ts", + "aliases": [], + "path": "/packages/web/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/web/generators/static-config.json b/docs/generated/packages/web/generators/static-config.json new file mode 100644 index 0000000000000..a68ada04f1aec --- /dev/null +++ b/docs/generated/packages/web/generators/static-config.json @@ -0,0 +1,35 @@ +{ + "name": "static-config", + "factory": "./src/generators/static-serve/static-serve-configuration", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWebStaticServe", + "cli": "nx", + "title": "Static Serve Configuration", + "description": "Add a new serve target to serve a build apps static files. This allows for faster serving of the static build files by reusing the case. Helpful when reserving the app over and over again like in e2e tests.", + "type": "object", + "properties": { + "buildTarget": { + "type": "string", + "description": "Name of the build target to serve" + }, + "outputPath": { + "type": "string", + "description": "Path to the directory of the built files. This is only needed if buildTarget doesn't specify an outputPath executor option." + }, + "targetName": { + "type": "string", + "description": "Name of the serve target to add. Defaults to 'serve-static'.", + "default": "serve-static" + } + }, + "required": ["buildTarget"], + "presets": [] + }, + "description": "Add a new static-serve target to a project.", + "implementation": "/packages/web/src/generators/static-serve/static-serve-configuration.ts", + "aliases": [], + "hidden": false, + "path": "/packages/web/src/generators/static-serve/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/webpack/documents/overview.md b/docs/generated/packages/webpack/documents/overview.md new file mode 100644 index 0000000000000..01232924bef21 --- /dev/null +++ b/docs/generated/packages/webpack/documents/overview.md @@ -0,0 +1,114 @@ +--- +title: Overview of the Nx Webpack Plugin +description: The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack. +--- + +The Nx plugin for [webpack](https://webpack.js.org/). + +[Webpack](https://webpack.js.org/) is a static module bundler for modern JavaScript applications. The `@nx/webpack` plugin provides executors that allow you to build and serve your projects using webpack, plus an executor for SSR. + +Nx now allows you to [customize your webpack configuration](/recipes/webpack/webpack-config-setup) for your projects. And we also offer [a number of webpack plugins](/recipes/webpack/webpack-plugins) for supporting Nx and other frameworks. + +## Setting up a new Nx workspace with Webpack + +You can create a new workspace that uses Webpack with one of the following commands: + +- Generate a new standalone React app set up with Webpack + +```shell +npx create-nx-workspace@latest --preset=react-standalone --bundler=webpack +``` + +- Generate a new React monorepo set up with Webpack + +```shell +npx create-nx-workspace@latest --preset=react-monorepo --bundler=webpack +``` + +### Installation + +{% callout type="note" title="Keep Nx Package Versions In Sync" %} +Make sure to install the `@nx/webpack` version that matches the version of `nx` in your repository. If the version numbers get out of sync, you can encounter some difficult to debug errors. You can [fix Nx version mismatches with this recipe](/recipes/tips-n-tricks/keep-nx-versions-in-sync). +{% /callout %} + +In any Nx workspace, you can install `@nx/webpack` by running the following command: + +{% tabs %} +{% tab label="Nx 18+" %} + +```shell {% skipRescope=true %} +nx add @nx/webpack +``` + +This will install the correct version of `@nx/webpack`. + +### How @nx/webpack Infers Tasks + +The `@nx/webpack` plugin will create a task for any project that has a Webpack configuration file present. Any of the following files will be recognized as a Webpack configuration file: + +- `webpack.config.js` +- `webpack.config.ts` +- `webpack.config.mjs` +- `webpack.config.mts` +- `webpack.config.cjs` +- `webpack.config.cts` + +### View Inferred Tasks + +To view inferred tasks for a project, open the [project details view](/concepts/inferred-tasks) in Nx Console or run `nx show project my-project --web` in the command line. + +### @nx/webpack Configuration + +The `@nx/webpack/plugin` is configured in the `plugins` array in `nx.json`. + +```json {% fileName="nx.json" %} +{ + "plugins": [ + { + "plugin": "@nx/webpack/plugin", + "options": { + "buildTargetName": "build", + "previewTargetName": "preview", + "serveTargetName": "serve", + "serveStaticTargetName": "serve-static" + } + } + ] +} +``` + +The `buildTargetName`, `previewTargetName`, `serveTargetName` and `serveStaticTargetName` options control the names of the inferred Webpack tasks. The default names are `build`, `preview`, `serve` and `serve-static`. + +{% /tab %} +{% tab label="Nx < 18" %} + +Install the `@nx/webpack` package with your package manager. + +```shell +npm add -D @nx/webpack +``` + +{% /tab %} +{% /tabs %} + +## Generate a new project using Webpack + +You can generate a [React](/nx-api/react) application or a [Web](/nx-api/web) application that uses Webpack in an existing Nx workspace. The [`@nx/react:app`](/nx-api/react/generators/application), [`@nx/node:app`](/nx-api/node/generators/application) and [`@nx/web:app`](/nx-api/web/generators/application) generators accept the `bundler` option, where you can pass `webpack`. This will generate a new application configured to use Webpack, and it will also install all the necessary dependencies, including the `@nx/webpack` plugin. + +To generate a React application using Webpack, run the following: + +```bash +nx g @nx/react:app my-app --bundler=webpack +``` + +To generate a Node application using Webpack, run the following: + +```bash +nx g @nx/node:app my-app --bundler=webpack +``` + +To generate a Web application using Webpack, run the following: + +```bash +nx g @nx/web:app my-app --bundler=webpack +``` diff --git a/docs/generated/packages/webpack/executors/dev-server.json b/docs/generated/packages/webpack/executors/dev-server.json new file mode 100644 index 0000000000000..0af520cc77016 --- /dev/null +++ b/docs/generated/packages/webpack/executors/dev-server.json @@ -0,0 +1,86 @@ +{ + "name": "dev-server", + "implementation": "/packages/webpack/src/executors/dev-server/dev-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Webpack dev server", + "description": "Serve an application using webpack.", + "cli": "nx", + "type": "object", + "properties": { + "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`." + }, + "baseHref": { + "type": "string", + "description": "Base url for the application being built." + } + }, + "presets": [] + }, + "description": "Serve a web application.", + "aliases": [], + "hidden": false, + "path": "/packages/webpack/src/executors/dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/webpack/executors/ssr-dev-server.json b/docs/generated/packages/webpack/executors/ssr-dev-server.json new file mode 100644 index 0000000000000..df39c24c4174a --- /dev/null +++ b/docs/generated/packages/webpack/executors/ssr-dev-server.json @@ -0,0 +1,47 @@ +{ + "name": "ssr-dev-server", + "implementation": "/packages/webpack/src/executors/ssr-dev-server/ssr-dev-server.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Webpack SSR Dev Server", + "description": "Serve a SSR application using webpack.", + "cli": "nx", + "type": "object", + "properties": { + "browserTarget": { + "type": "string", + "description": "Target which builds the browser application.", + "x-priority": "important" + }, + "serverTarget": { + "type": "string", + "description": "Target which builds the server application.", + "x-priority": "important" + }, + "port": { + "type": "number", + "description": "The port to be set on `process.env.PORT` for use in the server.", + "default": 4200, + "x-priority": "important" + }, + "browserTargetOptions": { + "type": "object", + "description": "Additional options to pass into the browser build target.", + "default": {} + }, + "serverTargetOptions": { + "type": "object", + "description": "Additional options to pass into the server build target.", + "default": {} + } + }, + "required": ["browserTarget", "serverTarget"], + "presets": [] + }, + "description": "Serve a SSR application.", + "aliases": [], + "hidden": false, + "path": "/packages/webpack/src/executors/ssr-dev-server/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/webpack/executors/webpack.json b/docs/generated/packages/webpack/executors/webpack.json new file mode 100644 index 0000000000000..5ca86abced7fb --- /dev/null +++ b/docs/generated/packages/webpack/executors/webpack.json @@ -0,0 +1,466 @@ +{ + "name": "webpack", + "implementation": "/packages/webpack/src/executors/webpack/webpack.impl.ts", + "schema": { + "version": 2, + "outputCapture": "direct-nodejs", + "title": "Webpack builder", + "description": "Build a project using webpack.", + "cli": "nx", + "type": "object", + "properties": { + "crossOrigin": { + "type": "string", + "description": "The `crossorigin` attribute to use for generated javascript script tags. One of 'none' | 'anonymous' | 'use-credentials'." + }, + "main": { + "type": "string", + "description": "The name of the main entry-point file.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.js|.ts|.tsx)", + "x-priority": "important" + }, + "tsConfig": { + "type": "string", + "description": "The name of the Typescript configuration file.", + "x-completion-type": "file", + "x-completion-glob": "tsconfig.*.json", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "description": "The compiler to use.", + "enum": ["babel", "swc", "tsc"] + }, + "outputPath": { + "type": "string", + "description": "The output path of the generated files.", + "x-completion-type": "directory", + "x-priority": "important" + }, + "target": { + "type": "string", + "alias": "platform", + "description": "Target platform for the build, same as the Webpack target option.", + "enum": ["node", "web", "webworker"] + }, + "deleteOutputPath": { + "type": "boolean", + "description": "Delete the output path before building.", + "default": true + }, + "watch": { + "type": "boolean", + "description": "Enable re-building when files change." + }, + "baseHref": { + "type": "string", + "description": "Base url for the application being built." + }, + "deployUrl": { + "type": "string", + "description": "URL where the application will be deployed." + }, + "vendorChunk": { + "type": "boolean", + "description": "Use a separate bundle containing only vendor libraries." + }, + "commonChunk": { + "type": "boolean", + "description": "Use a separate bundle containing code used across multiple bundles." + }, + "runtimeChunk": { + "type": "boolean", + "description": "Use a separate bundle containing the runtime." + }, + "sourceMap": { + "description": "Output sourcemaps. Use 'hidden' for use with error reporting tools without generating sourcemap comment.", + "oneOf": [{ "type": "boolean" }, { "type": "string" }] + }, + "progress": { + "type": "boolean", + "description": "Log progress to the console while building." + }, + "assets": { + "type": "array", + "description": "List of static application assets.", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + } + }, + "index": { + "type": "string", + "description": "HTML File which will be contain the application.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.html|.htm)" + }, + "scripts": { + "type": "array", + "description": "External Scripts which will be included before the main application entry.", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" + }, + "bundleName": { + "type": "string", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" + } + ] + } + }, + "styles": { + "type": "array", + "description": "External Styles which will be included with the application", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" + }, + "bundleName": { + "type": "string", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" + } + ] + } + }, + "namedChunks": { + "type": "boolean", + "description": "Names the produced bundles according to their entry file." + }, + "outputHashing": { + "type": "string", + "description": "Define the output filename cache-busting hashing mode.", + "enum": ["none", "all", "media", "bundles"] + }, + "stylePreprocessorOptions": { + "description": "Options to pass to style preprocessors.", + "type": "object", + "properties": { + "includePaths": { + "description": "Paths to include. Paths will be resolved to project root.", + "type": "array", + "items": { "type": "string" } + } + }, + "additionalProperties": false + }, + "optimization": { + "description": "Enables optimization of the build output.", + "oneOf": [ + { + "type": "object", + "properties": { + "scripts": { + "type": "boolean", + "description": "Enables optimization of the scripts output.", + "default": true + }, + "styles": { + "type": "boolean", + "description": "Enables optimization of the styles output.", + "default": true + } + }, + "additionalProperties": false + }, + { "type": "boolean" } + ] + }, + "generatePackageJson": { + "type": "boolean", + "description": "Generates a `package.json` and pruned lock file with the project's `node_module` dependencies populated for installing in a container. If a `package.json` exists in the project's directory, it will be reused with dependencies populated." + }, + "transformers": { + "type": "array", + "description": "List of TypeScript Compiler Transfomers Plugins.", + "aliases": ["tsPlugins"], + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "name": { "type": "string" }, + "options": { "type": "object", "additionalProperties": true } + }, + "additionalProperties": false, + "required": ["name"] + } + ] + } + }, + "additionalEntryPoints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "entryName": { + "type": "string", + "description": "Name of the additional entry file." + }, + "entryPath": { + "type": "string", + "description": "Path to the additional entry file.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.js|.ts)" + } + } + } + }, + "outputFileName": { + "type": "string", + "description": "Name of the main output file.", + "default": "main.js" + }, + "externalDependencies": { + "oneOf": [ + { "type": "string", "enum": ["none", "all"] }, + { "type": "array", "items": { "type": "string" } } + ], + "description": "Dependencies to keep external to the bundle. (`all` (default), `none`, or an array of module names)" + }, + "extractCss": { + "type": "boolean", + "description": "Extract CSS into a `.css` file." + }, + "subresourceIntegrity": { + "type": "boolean", + "description": "Enables the use of subresource integrity validation." + }, + "polyfills": { + "type": "string", + "description": "Polyfills to load before application", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.js|.ts|.tsx)" + }, + "verbose": { "type": "boolean", "description": "Emits verbose output" }, + "statsJson": { + "type": "boolean", + "description": "Generates a 'stats.json' file which can be analyzed using tools such as: 'webpack-bundle-analyzer' or ``." + }, + "isolatedConfig": { + "type": "boolean", + "description": "Do not apply Nx webpack plugins automatically. Plugins need to be applied in the project's webpack.config.js file (e.g. withNx, withReact, etc.).", + "default": true, + "x-deprecated": "Automatic configuration of Webpack is deprecated in favor of an explicit 'webpack.config.js' file. This option will be removed in Nx 19. See https://nx.dev/recipes/webpack/webpack-config-setup." + }, + "standardWebpackConfigFunction": { + "type": "boolean", + "description": "Set to true if the webpack config exports a standard webpack function, not an Nx-specific one. See: https://webpack.js.org/configuration/configuration-types/#exporting-a-function", + "default": false + }, + "extractLicenses": { + "type": "boolean", + "description": "Extract all licenses in a separate file, in the case of production builds only." + }, + "memoryLimit": { + "type": "number", + "description": "Memory limit for type checking service process in `MB`." + }, + "fileReplacements": { + "description": "Replace files with other files in the build.", + "type": "array", + "items": { + "type": "object", + "properties": { + "replace": { + "type": "string", + "description": "The file to be replaced.", + "x-completion-type": "file" + }, + "with": { + "type": "string", + "description": "The file to replace with.", + "x-completion-type": "file" + } + }, + "additionalProperties": false, + "required": ["replace", "with"] + } + }, + "buildLibsFromSource": { + "type": "boolean", + "description": "Read buildable libraries from source instead of building them separately. If set to `false`, the `tsConfig` option must also be set to remap paths.", + "default": true + }, + "generateIndexHtml": { + "type": "boolean", + "description": "Generates `index.html` file to the output path. This can be turned off if using a webpack plugin to generate HTML such as `html-webpack-plugin`." + }, + "postcssConfig": { + "type": "string", + "description": "Set a path to PostCSS config that applies to the app and all libs. Defaults to `undefined`, which auto-detects postcss.config.js files in each `app`/`lib` directory." + }, + "webpackConfig": { + "type": "string", + "description": "Path to a function which takes a webpack config, some context and returns the resulting webpack config. See https://nx.dev/guides/customize-webpack", + "x-completion-type": "file", + "x-completion-glob": "webpack?(*)@(.js|.ts)", + "x-priority": "important" + }, + "babelUpwardRootMode": { + "type": "boolean", + "description": "Whether to set rootmode to upward. See https://babeljs.io/docs/en/options#rootmode" + }, + "babelConfig": { + "type": "string", + "description": "Path to the babel configuration file of your project. If not provided, Nx will default to the .babelrc file at the root of your project. See https://babeljs.io/docs/en/config-files", + "x-completion-type": "file" + } + }, + "required": [], + "definitions": { + "assetPattern": { + "oneOf": [ + { + "type": "object", + "properties": { + "glob": { + "type": "string", + "description": "The pattern to match." + }, + "input": { + "type": "string", + "description": "The input directory path in which to apply 'glob'. Defaults to the project root." + }, + "ignore": { + "description": "An array of globs to ignore.", + "type": "array", + "items": { "type": "string" } + }, + "output": { + "type": "string", + "description": "Absolute path within the output." + } + }, + "additionalProperties": false, + "required": ["glob", "input", "output"] + }, + { "type": "string" } + ] + }, + "extraEntryPoint": { + "oneOf": [ + { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" + }, + "bundleName": { + "type": "string", + "description": "The bundle name for this extra entry point." + }, + "inject": { + "type": "boolean", + "description": "If the bundle will be referenced in the HTML file.", + "default": true + } + }, + "additionalProperties": false, + "required": ["input"] + }, + { + "type": "string", + "description": "The file to include.", + "x-completion-type": "file", + "x-completion-glob": "**/*@(.css|.scss|.less|.sass|.styl|.stylus)" + } + ] + }, + "transformerPattern": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "name": { "type": "string" }, + "options": { "type": "object", "additionalProperties": true } + }, + "additionalProperties": false, + "required": ["name"] + } + ] + } + }, + "examplesFile": "---\ntitle: Examples for the @nx/webpack:webpack build executor\ndescription: Examples and a short guide on how to use the @nx/webpack:webpack build executor\n---\n\n`project.json`:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n //...\n //...\n \"options\": {\n ...\n },\n //...\n }\n },\n }\n}\n```\n\n```bash\nnx build my-app\n```\n\n## Examples\n\n{% tabs %}\n\n{% tab label=\"Using `babelUpwardRootMode`\" %}\n\nCopying from the [Babel documentation](https://babeljs.io/docs/config-files#root-babelconfigjson-file):\n\n> [...] if you are running your Babel compilation process from within a subpackage, you need to tell Babel where to look for the config. There are a few ways to do that, but the recommended way is the \"rootMode\" option with \"upward\", which will make Babel search from the working directory upward looking for your babel.config.json file, and will use its location as the \"root\" value.\n\nSetting `babelUpwardRootMode` to `true` in your `project.json` will set `rootMode` option to `upward` in the Babel config. You may want the `upward` mode in a monorepo when projects must apply their individual `.babelrc` file. We recommend that you don't set it at all, so it will use the default to `false` as the `upward` mode brings additional complexity to the build process.\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n \"options\": {\n \"babelUpwardRootMode\": true,\n //...\n },\n //...\n },\n //...\n },\n //...\n}\n```\n\nWhen `babelUpwardRootMode` is `true`, Babel will look for a root `babel.config.json` at the root of the workspace, which should look something like this to include all packages:\n\n```json\n{ \"babelrcRoots\": [\"*\"] }\n```\n\nThen for each package, you must have a `.babelrc` file that will be applied to that package. For example:\n\n```json\n{\n \"presets\": [\"@babel/preset-env\", \"@babel/preset-typescript\"]\n}\n```\n\nAll packages will use its own `.babelrc` file, thus you must ensure the right presets and plugins are set in each config file. This behavior can lead to build discrepancies between packages, so we recommend that you don't set `babelUpwardRootMode` at all.\n\n```treeview\n├── apps\n│ └── demo\n│ └── .babelrc\n├── libs\n│ ├── a\n│ │ └── .babelrc\n│ └── b\n│ └── .babelrc\n└── babel.config.json\n```\n\nIn workspace above, if `demo` imports `a` and `b`, it will apply the config `libs/a/.babelrc` and `libs/b/.babelrc` to the respective packages and not apply its own `apps/demo/.babelrc` to `a` and `b`. Anything in `babel.config.json` will apply to all packages.\n\n{% /tab %}\n\n{% tab label=\"Specify a custom Babel config file\" %}\n\nIf you have a custom Babel config file (i.e. not `.babelrc`), you can use the `configFile` option as follows:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n //...\n \"options\": {\n //...\n \"babelConfig\": \"apps/my-app/.babelrc.custom.json\",\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\nIf you do not set the path to the `.babelrc` file, Nx will look for a `.babelrc` file in the root of your application.\n\nNote that this option does not work if `babelUpwardRootMode` is set to `true`.\n\n{% /tab %}\n\n{% tab label=\"Run webpack with `isolatedConfig`\" %}\n\nSetting `isolatedConfig` to `true` in your `project.json` file means that Nx will not apply the Nx webpack plugins automatically. In that case, the Nx plugins need to be applied in the project's `webpack.config.js` file (e.g. `withNx`, `withReact`, etc.). So don't forget to also specify the path to your webpack config file (using the `webpackConfig` option).\n\nRead more on how to configure Webpack in our [Nx Webpack config guide](/recipes/webpack/webpack-config-setup) an in our [Webpack Plugins guide](/recipes/webpack/webpack-plugins).\n\nNote that this is the new default setup for webpack in the latest version of Nx.\n\nSet `isolatedConfig` to `true` in your `project.json` file in the `build` target options like this:\n\n```json\n//...\n\"my-app\": {\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nx/webpack:webpack\",\n //...\n \"options\": {\n //...\n \"webpackConfig\": \"apps/my-app/webpack.config.js\",\n \"isolatedConfig\": true\n },\n \"configurations\": {\n ...\n }\n },\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n", + "presets": [] + }, + "description": "Run webpack build.", + "aliases": [], + "hidden": false, + "path": "/packages/webpack/src/executors/webpack/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/webpack/generators/configuration.json b/docs/generated/packages/webpack/generators/configuration.json new file mode 100644 index 0000000000000..404f53b0f5e63 --- /dev/null +++ b/docs/generated/packages/webpack/generators/configuration.json @@ -0,0 +1,85 @@ +{ + "name": "configuration", + "aliases": ["webpack-project"], + "factory": "./src/generators/configuration/configuration#configurationGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWebpackProject", + "cli": "nx", + "title": "Add Webpack Configuration to a project", + "description": "Add Webpack Configuration to a project.", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The name of the project.", + "$default": { "$source": "argv", "index": 0 }, + "x-dropdown": "project", + "x-prompt": "What is the name of the project to set up a webpack for?", + "x-priority": "important" + }, + "compiler": { + "type": "string", + "enum": ["babel", "swc", "tsc"], + "description": "The compiler to use to build source.", + "default": "swc" + }, + "main": { + "type": "string", + "description": "Path relative to the workspace root for the main entry file. Defaults to '/src/main.ts'.", + "x-priority": "important" + }, + "tsConfig": { + "type": "string", + "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to '/tsconfig.app.json'.", + "x-priority": "important" + }, + "target": { + "type": "string", + "description": "Target platform for the build, same as the Webpack config option.", + "enum": ["node", "web", "webworker"], + "default": "web" + }, + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false, + "x-priority": "internal" + }, + "skipPackageJson": { + "type": "boolean", + "default": false, + "description": "Do not add dependencies to `package.json`.", + "x-priority": "internal" + }, + "skipValidation": { + "type": "boolean", + "default": false, + "description": "Do not perform any validation on existing project.", + "x-priority": "internal" + }, + "devServer": { + "type": "boolean", + "description": "Add a serve target to run a local webpack dev-server", + "default": false + }, + "webpackConfig": { + "type": "string", + "description": "Path relative to workspace root to a custom webpack file that takes a config object and returns an updated config.", + "x-priority": "internal" + }, + "babelConfig": { + "type": "string", + "description": "Optionally specify a path relative to workspace root to the babel configuration file of your project.", + "x-completion-type": "file" + } + }, + "required": [], + "presets": [] + }, + "description": "Add webpack configuration to a project.", + "hidden": true, + "implementation": "/packages/webpack/src/generators/configuration/configuration#configurationGeneratorInternal.ts", + "path": "/packages/webpack/src/generators/configuration/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/webpack/generators/init.json b/docs/generated/packages/webpack/generators/init.json new file mode 100644 index 0000000000000..d0453038452b9 --- /dev/null +++ b/docs/generated/packages/webpack/generators/init.json @@ -0,0 +1,44 @@ +{ + "name": "init", + "factory": "./src/generators/init/init#webpackInitGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWebpackInit", + "cli": "nx", + "title": "Init Webpack Plugin", + "description": "Initialize the Webpack Plugin.", + "type": "object", + "properties": { + "skipFormat": { + "description": "Skip formatting files.", + "type": "boolean", + "default": false + }, + "skipPackageJson": { + "description": "Do not add dependencies to `package.json`.", + "type": "boolean", + "default": false + }, + "keepExistingVersions": { + "type": "boolean", + "x-priority": "internal", + "description": "Keep existing dependencies versions", + "default": false + }, + "updatePackageScripts": { + "type": "boolean", + "x-priority": "internal", + "description": "Update `package.json` scripts with inferred targets", + "default": false + } + }, + "required": [], + "presets": [] + }, + "description": "Initialize the `@nrwl/webpack` plugin.", + "aliases": ["ng-add"], + "hidden": true, + "implementation": "/packages/webpack/src/generators/init/init#webpackInitGeneratorInternal.ts", + "path": "/packages/webpack/src/generators/init/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md b/docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md new file mode 100644 index 0000000000000..e0b0910ddf051 --- /dev/null +++ b/docs/generated/packages/workspace/documents/nx-nodejs-typescript-version-matrix.md @@ -0,0 +1,16 @@ +# Nx, NodeJS and TypeScript Compatibility Matrix + +Below is a reference table that matches versions the latest major versions of Nx to the version TypeScript that it uses +and the version of NodeJS that we tested it against. + +> _Note: Other versions of NodeJS **may** still work without issue for these versions of Nx. This table outlines the +> version of NodeJS that we used when building and testing each particular version of Nx._ + +| Nx Version | Node Version | Typescript Version | +| --------------- | ---------------- | ------------------ | +| 18.x (latest) | 18.x, 20.x | ~5.1.0 | +| 17.x (previous) | 18.x, 20.x | ~5.1.0 | +| 16.x | 16.x, 18.x, 20.x | ~5.1.0 | +| 15.x | 14.x, 16.x, 18.x | ~5.0.0 | +| 14.x | 12.x, 14.x, 16.x | ~4.7.2 | +| 13.x | 10.x, 12.x, 14.x | ~4.6.2 | diff --git a/docs/generated/packages/workspace/documents/overview.md b/docs/generated/packages/workspace/documents/overview.md new file mode 100644 index 0000000000000..79289534fd807 --- /dev/null +++ b/docs/generated/packages/workspace/documents/overview.md @@ -0,0 +1,48 @@ +The workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it. + +## Creating Local Generators + +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](/extending-nx/recipes/local-generators) + +## Reorganizing Projects + +After some time of working within a workspace, projects might need to be moved or sometimes even removed. +The workspace plugin provides the [`@nx/workspace:move`](/nx-api/workspace/generators/move) and [`@nx/workspace:remove`](/nx-api/workspace/generators/remove) generators to help aid with this. + +### Moving Projects + +Running `nx g @nx/workspace:move --projectName my-lib --destination new/location/my-lib` will move the `my-lib` library to `libs/new/location/my-lib`. + +Moving the files manually can be done easily but a lot of steps are often missed when projects are moved. This generator will also handle the following: + +1. The project's files will be moved +2. The project will be renamed to `new-location-my-lib` +3. The path mapping in `tsconfig.base.json` will be changed to `@npmScope/new/location/my-lib` +4. Imports in other projects will be changed to `@npmScope/new/location/my-lib` +5. Paths in target options such as output path will be changed +6. Other configuration will be updated too, such as `extends` in `tsconfig.json`, the name of the project in `jest.config.js`, and the extends in `.eslintrc.json` + +> See more about [`@nx/workspace:move`](/nx-api/workspace/generators/move) + +### Removing Projects + +Running `nx g @nx/workspace:remove my-lib` will remove the `my-lib` from the workspace. It is important to note that sometimes, projects cannot be removed if they are still depended on by other projects. + +Like when moving projects, some steps are often missed when removing projects. This generator will also handle the following: + +1. Checks if other projects depend on the project being removed. This can be ignored via the `--forceRemove` flag. +2. The project's files will be deleted. +3. The project's configuration will be removed. +4. The path mapping in `tsconfig.base.json` will be removed. + +> See more about [`@nx/workspace:remove`](/nx-api/workspace/generators/remove) + +## Running custom commands + +Executors provide an optimized way of running targets but unfortunately, not every target has an executor written for it. The [`nx:run-commands`](/nx-api/nx/executors/run-commands) executor is an executor that runs any command or multiple commands in the shell. This can be useful when integrating with other tools which do not have an executor provided. There is also a generator to help configure this executor. + +Running `nx g @nx/workspace:run-commands printhello --project my-feature-lib --command 'echo hello'` will create a `my-feature-lib:printhello` target that executes `echo hello` in the shell. + +> See more about [`nx:run-commands`](/nx-api/nx/executors/run-commands) diff --git a/docs/generated/packages/workspace/executors/counter.json b/docs/generated/packages/workspace/executors/counter.json new file mode 100644 index 0000000000000..812d22d039160 --- /dev/null +++ b/docs/generated/packages/workspace/executors/counter.json @@ -0,0 +1,25 @@ +{ + "name": "counter", + "implementation": "/packages/workspace/src/executors/counter/counter.impl.ts", + "batchImplementation": "./src/executors/counter/counter.impl#batchCounter", + "schema": { + "version": 2, + "title": "Counter", + "description": "A dummy executor useful for E2E tests.", + "type": "object", + "cli": "nx", + "outputCapture": "pipe", + "properties": { + "to": { "type": "number", "description": "Count to this number." }, + "result": { "type": "boolean", "description": "Final result." } + }, + "additionalProperties": true, + "required": ["to"], + "presets": [] + }, + "description": "A dummy executor useful for E2E tests.", + "hidden": true, + "aliases": [], + "path": "/packages/workspace/src/executors/counter/schema.json", + "type": "executor" +} diff --git a/docs/generated/packages/workspace/generators/ci-workflow.json b/docs/generated/packages/workspace/generators/ci-workflow.json new file mode 100644 index 0000000000000..cfa29d41c919a --- /dev/null +++ b/docs/generated/packages/workspace/generators/ci-workflow.json @@ -0,0 +1,52 @@ +{ + "name": "ci-workflow", + "factory": "./src/generators/ci-workflow/ci-workflow#ciWorkflowGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceCIWorkflow", + "title": "Generate a CI workflow.", + "description": "Generate a CI workflow.", + "cli": "nx", + "type": "object", + "properties": { + "ci": { + "type": "string", + "description": "CI provider.", + "enum": [ + "github", + "circleci", + "azure", + "bitbucket-pipelines", + "gitlab" + ], + "x-prompt": { + "message": "What is your target CI provider?", + "type": "list", + "items": [ + { "value": "github", "label": "GitHub Actions" }, + { "value": "circleci", "label": "Circle CI" }, + { "value": "azure", "label": "Azure DevOps" }, + { "value": "bitbucket-pipelines", "label": "BitBucket Pipelines" }, + { "value": "gitlab", "label": "Gitlab" } + ] + } + }, + "name": { + "type": "string", + "description": "Workflow name.", + "$default": { "$source": "argv", "index": 0 }, + "default": "CI", + "x-prompt": "How should we name your workflow?", + "pattern": "^[a-zA-Z].*$" + } + }, + "required": ["ci", "name"], + "presets": [] + }, + "description": "Generate a CI workflow.", + "implementation": "/packages/workspace/src/generators/ci-workflow/ci-workflow#ciWorkflowGenerator.ts", + "aliases": [], + "hidden": false, + "path": "/packages/workspace/src/generators/ci-workflow/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/convert-to-monorepo.json b/docs/generated/packages/workspace/generators/convert-to-monorepo.json new file mode 100644 index 0000000000000..d219f0690fcfc --- /dev/null +++ b/docs/generated/packages/workspace/generators/convert-to-monorepo.json @@ -0,0 +1,27 @@ +{ + "name": "convert-to-monorepo", + "factory": "./src/generators/convert-to-monorepo/convert-to-monorepo", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceConvertToMonorepo", + "cli": "nx", + "title": "Nx Convert to Monorepo", + "description": "Convert an Nx project to a monorepo.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/workspace:monorepo", + "description": "Convert an Nx standalone project to a monorepo." + } + ], + "properties": {}, + "required": [], + "presets": [] + }, + "description": "Convert a Nx project to a monorepo.", + "implementation": "/packages/workspace/src/generators/convert-to-monorepo/convert-to-monorepo.ts", + "aliases": [], + "hidden": false, + "path": "/packages/workspace/src/generators/convert-to-monorepo/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/fix-configuration.json b/docs/generated/packages/workspace/generators/fix-configuration.json new file mode 100644 index 0000000000000..0204c9dedf6a0 --- /dev/null +++ b/docs/generated/packages/workspace/generators/fix-configuration.json @@ -0,0 +1,46 @@ +{ + "name": "fix-configuration", + "factory": "./src/generators/convert-to-nx-project/convert-to-nx-project#convertToNxProjectGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "SchematicsConvertToNxProject", + "title": "@nx/workspace:fix-configuration", + "description": "Migrates v1 config to v2 standalone configuration.", + "type": "object", + "cli": "nx", + "examples": [ + { + "command": "nx g @nx/workspace:convert-to-nx-project --project my-feature-lib", + "description": "Convert the `my-feature-lib` project to use `project.json` file instead of `workspace.json`" + }, + { + "command": "nx g @nx/workspace:convert-to-nx-project --all", + "description": "Convert all projects in `workspace.json` to separate `project.json` files" + } + ], + "properties": { + "project": { + "description": "Convert a single project", + "type": "string" + }, + "all": { "description": "Convert all projects", "type": "boolean" }, + "reformat": { + "description": "Just reformats the configuration", + "type": "boolean" + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false, + "x-priority": "internal" + } + }, + "presets": [] + }, + "aliases": ["convert-to-nx-project"], + "description": "Fixes projects configuration", + "implementation": "/packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project#convertToNxProjectGenerator.ts", + "hidden": false, + "path": "/packages/workspace/src/generators/convert-to-nx-project/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/move.json b/docs/generated/packages/workspace/generators/move.json new file mode 100644 index 0000000000000..8fe8f7ed62ba5 --- /dev/null +++ b/docs/generated/packages/workspace/generators/move.json @@ -0,0 +1,67 @@ +{ + "name": "move", + "factory": "./src/generators/move/move#moveGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceMove", + "cli": "nx", + "title": "Nx Move", + "description": "Move a project to another folder in the workspace.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/workspace:move --project my-feature-lib --destination shared/my-feature-lib", + "description": "Move `libs/my-feature-lib` to `libs/shared/my-feature-lib`" + } + ], + "properties": { + "projectName": { + "type": "string", + "alias": "project", + "description": "The name of the project to move.", + "x-dropdown": "projects" + }, + "newProjectName": { + "type": "string", + "alias": "project", + "description": "The new name of the project after the move.", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$", + "x-priority": "important" + }, + "destination": { + "type": "string", + "description": "The folder to move the project into.", + "$default": { "$source": "argv", "index": 0 } + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the new project name and destination as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + }, + "importPath": { + "type": "string", + "description": "The new import path to use in the `tsconfig.base.json`." + }, + "updateImportPath": { + "type": "boolean", + "description": "Should the generator update the import path to reflect the new location?", + "default": true + }, + "skipFormat": { + "type": "boolean", + "aliases": ["skip-format"], + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + } + }, + "required": ["projectName", "destination"], + "presets": [] + }, + "aliases": ["mv"], + "description": "Move an application or library to another folder.", + "implementation": "/packages/workspace/src/generators/move/move#moveGeneratorInternal.ts", + "hidden": false, + "path": "/packages/workspace/src/generators/move/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/new.json b/docs/generated/packages/workspace/generators/new.json new file mode 100644 index 0000000000000..c0e68a442b725 --- /dev/null +++ b/docs/generated/packages/workspace/generators/new.json @@ -0,0 +1,97 @@ +{ + "name": "new", + "factory": "./src/generators/new/new#newGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceNew", + "title": "Create an empty workspace", + "description": "Create an empty workspace.", + "type": "object", + "cli": "nx", + "properties": { + "name": { + "description": "The name of the workspace.", + "type": "string", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use for the workspace?" + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css" + }, + "routing": { + "description": "Add routing to the generated application.", + "type": "boolean", + "default": true + }, + "standaloneApi": { + "description": "Use Standalone Components if generating an Angular application.", + "type": "boolean", + "default": false + }, + "defaultBase": { + "type": "string", + "description": "Default base branch for affected." + }, + "skipInstall": { + "description": "Skip installing dependency packages.", + "type": "boolean", + "default": false + }, + "preset": { + "description": "What to create in the new workspace.", + "type": "string" + }, + "appName": { "type": "string", "description": "Application name." }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "packageManager": { + "description": "The package manager used to install dependencies.", + "type": "string", + "enum": ["npm", "yarn", "pnpm"] + }, + "framework": { + "description": "The framework which the application is using", + "type": "string", + "enum": ["express", "koa", "fastify", "nest", "none"] + }, + "nextAppDir": { + "description": "Enable the App Router for this project.", + "type": "boolean", + "default": true + }, + "nextSrcDir": { + "description": "Generate a `src` directory for this project.", + "type": "boolean", + "default": true + }, + "e2eTestRunner": { + "description": "The tool to use for running e2e tests.", + "type": "string", + "enum": ["cypress", "playwright", "jest", "detox", "none"] + }, + "ssr": { + "description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.", + "type": "boolean", + "default": false + }, + "prefix": { + "description": "The prefix to use for Angular component and directive selectors.", + "type": "string" + } + }, + "additionalProperties": true, + "presets": [] + }, + "description": "Create a workspace.", + "hidden": true, + "implementation": "/packages/workspace/src/generators/new/new#newGenerator.ts", + "aliases": [], + "path": "/packages/workspace/src/generators/new/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/npm-package.json b/docs/generated/packages/workspace/generators/npm-package.json new file mode 100644 index 0000000000000..c8fc39a190a7c --- /dev/null +++ b/docs/generated/packages/workspace/generators/npm-package.json @@ -0,0 +1,40 @@ +{ + "name": "npm-package", + "factory": "./src/generators/npm-package/npm-package#npmPackageGeneratorInternal", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceNpmPackage", + "title": "Add a minimal npm package", + "description": "Add a minimal npm package.", + "cli": "nx", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Package name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name of your npm package?", + "pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$" + }, + "directory": { + "type": "string", + "description": "A directory where the package is placed.", + "alias": "dir" + }, + "projectNameAndRootFormat": { + "description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).", + "type": "string", + "enum": ["as-provided", "derived"] + } + }, + "required": ["name"], + "presets": [] + }, + "description": "Create a minimal NPM package.", + "x-type": "library", + "implementation": "/packages/workspace/src/generators/npm-package/npm-package#npmPackageGeneratorInternal.ts", + "aliases": [], + "hidden": false, + "path": "/packages/workspace/src/generators/npm-package/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/preset.json b/docs/generated/packages/workspace/generators/preset.json new file mode 100644 index 0000000000000..9b050e4602033 --- /dev/null +++ b/docs/generated/packages/workspace/generators/preset.json @@ -0,0 +1,115 @@ +{ + "name": "preset", + "factory": "./src/generators/preset/preset#presetGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspacePreset", + "cli": "nx", + "title": "Creates applications in a new workspace", + "description": "Creates applications in a new workspace.", + "type": "object", + "properties": { + "preset": { "description": "The name of the preset.", "type": "string" }, + "name": { + "description": "The name of the application.", + "type": "string" + }, + "linter": { + "description": "The tool to use for running lint checks.", + "type": "string", + "enum": ["eslint"], + "default": "eslint" + }, + "routing": { + "description": "Add routing to the generated application.", + "type": "boolean", + "default": true + }, + "style": { + "description": "The file extension to be used for style files.", + "type": "string", + "default": "css", + "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": "less", + "label": "LESS [ https://lesscss.org ]" + } + ] + } + }, + "standaloneApi": { + "description": "Use Standalone Components if generating an Angular application.", + "type": "boolean", + "default": false + }, + "standaloneConfig": { + "description": "Split the project configurations into `/project.json` rather than including it inside `workspace.json`.", + "type": "boolean", + "default": true, + "x-deprecated": "Nx only supports standaloneConfig" + }, + "packageManager": { + "description": "The package manager used to install dependencies.", + "type": "string", + "enum": ["npm", "yarn", "pnpm"] + }, + "framework": { + "description": "The framework which the application is using", + "type": "string", + "enum": ["express", "koa", "fastify", "nest", "none"] + }, + "bundler": { + "description": "The bundler to use for building the application.", + "type": "string", + "enum": ["webpack", "vite", "rspack", "esbuild"], + "default": "vite" + }, + "docker": { + "description": "Generate a Dockerfile", + "type": "boolean", + "default": false + }, + "nextAppDir": { + "description": "Enable the App Router for this project.", + "type": "boolean", + "default": true + }, + "nextSrcDir": { + "description": "Generate a `src` directory for this project.", + "type": "boolean", + "default": true + }, + "e2eTestRunner": { + "description": "The tool to use for running e2e tests.", + "type": "string", + "enum": ["cypress", "playwright", "jest", "detox", "none"] + }, + "ssr": { + "description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.", + "type": "boolean", + "default": false + }, + "prefix": { + "description": "The prefix to use for Angular component and directive selectors.", + "type": "string" + } + }, + "required": ["preset", "name"], + "presets": [] + }, + "description": "Create application in an empty workspace.", + "x-use-standalone-layout": true, + "hidden": true, + "implementation": "/packages/workspace/src/generators/preset/preset#presetGenerator.ts", + "aliases": [], + "path": "/packages/workspace/src/generators/preset/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/remove.json b/docs/generated/packages/workspace/generators/remove.json new file mode 100644 index 0000000000000..695a838b99e43 --- /dev/null +++ b/docs/generated/packages/workspace/generators/remove.json @@ -0,0 +1,55 @@ +{ + "name": "remove", + "factory": "./src/generators/remove/remove#removeGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "NxWorkspaceRemove", + "cli": "nx", + "title": "Nx Remove", + "description": "Remove a project from the workspace.", + "type": "object", + "examples": [ + { + "command": "nx g @nx/workspace:remove my-feature-lib", + "description": "Remove `my-feature-lib` from the workspace" + }, + { + "command": "nx g @nx/workspace:remove my-feature-lib --forceRemove", + "description": "Force removal of `my-feature-lib` from the workspace" + } + ], + "properties": { + "projectName": { + "type": "string", + "alias": "project", + "description": "The name of the project to remove.", + "$default": { "$source": "argv", "index": 0 } + }, + "forceRemove": { + "type": "boolean", + "aliases": ["force-remove"], + "description": "When `true`, forces removal even if the project is still in use.", + "default": false + }, + "skipFormat": { + "type": "boolean", + "aliases": ["skip-format"], + "description": "Skip formatting files.", + "default": false, + "x-priority": "internal" + }, + "importPath": { + "type": "string", + "description": "The library name used at creation time" + } + }, + "required": ["projectName"], + "presets": [] + }, + "aliases": ["rm"], + "description": "Remove an application or library.", + "implementation": "/packages/workspace/src/generators/remove/remove#removeGenerator.ts", + "hidden": false, + "path": "/packages/workspace/src/generators/remove/schema.json", + "type": "generator" +} diff --git a/docs/generated/packages/workspace/generators/run-commands.json b/docs/generated/packages/workspace/generators/run-commands.json new file mode 100644 index 0000000000000..00bec0a791c6b --- /dev/null +++ b/docs/generated/packages/workspace/generators/run-commands.json @@ -0,0 +1,57 @@ +{ + "name": "run-commands", + "factory": "./src/generators/run-commands/run-commands#runCommandsGenerator", + "schema": { + "$schema": "https://json-schema.org/schema", + "$id": "SchematicsRunCommands", + "title": "Create a custom target to run any command", + "description": "Create a custom target to run any command.", + "type": "object", + "cli": "nx", + "examples": [ + { + "command": "nx g @nx/workspace:run-commands printhello --project my-feature-lib --command 'echo hello'", + "description": "Add the `printhello` target to `my-feature-lib`" + } + ], + "properties": { + "name": { + "type": "string", + "description": "Target name.", + "$default": { "$source": "argv", "index": 0 }, + "x-prompt": "What name would you like to use to invoke the command?" + }, + "project": { + "description": "Project name.", + "type": "string", + "x-prompt": "What project does the target belong to?", + "x-dropdown": "projects" + }, + "command": { + "description": "Command to run.", + "type": "string", + "x-prompt": "What command would you like to run?" + }, + "cwd": { + "description": "Current working directory of the command.", + "type": "string" + }, + "outputs": { + "description": "Allows you to specify where the build artifacts are stored. This allows Nx Cloud to pick them up correctly, in the case that the build artifacts are placed somewhere other than the top level dist folder.", + "type": "string" + }, + "envFile": { + "description": "Env files to be loaded before executing the commands.", + "type": "string" + } + }, + "required": ["name", "command", "project"], + "presets": [] + }, + "aliases": ["run-command", "target"], + "description": "Generates a target to run any command in the terminal.", + "implementation": "/packages/workspace/src/generators/run-commands/run-commands#runCommandsGenerator.ts", + "hidden": false, + "path": "/packages/workspace/src/generators/run-commands/schema.json", + "type": "generator" +} From 400f2351c7e79650354a4d4f73e1ae657f0df7e1 Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Tue, 19 Mar 2024 10:14:10 -0700 Subject: [PATCH 07/34] fix(js): Added bun.js support --- .husky/pre-push | 3 +- .../lib/create-application-files.ts | 1 + .../update-16-1-4/update-eas-scripts.ts | 1 + .../src/command-line/migrate/migrate.spec.ts | 5 +- packages/nx/src/command-line/nx-commands.ts | 2 +- .../command-line/release/command-object.ts | 4 +- .../nx/src/command-line/release/version.ts | 2 +- .../rm-default-collection-npm-scope.spec.ts | 5 +- .../src/tasks-runner/pseudo-terminal.spec.ts | 2 + .../command-line-utils.spec.ts.snap | 15 +++++ .../nx/src/utils/command-line-utils.spec.ts | 12 +--- packages/nx/src/utils/command-line-utils.ts | 11 ++-- packages/nx/src/utils/package-manager.spec.ts | 57 ++++++++++++++----- packages/nx/src/utils/package-manager.ts | 44 ++++++++++---- .../nx-webpack-plugin/lib/apply-web-config.ts | 15 ++++- 15 files changed, 129 insertions(+), 50 deletions(-) create mode 100644 packages/nx/src/utils/__snapshots__/command-line-utils.spec.ts.snap diff --git a/.husky/pre-push b/.husky/pre-push index 934cb5210b92f..f4f049d826688 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,6 +1,5 @@ #!/usr/bin/env sh - +pnpm check-documentation-map && pnpm check-lock-files && pnpm check-commit && -pnpm documentation && pnpm pretty-quick --check diff --git a/packages/expo/src/generators/application/lib/create-application-files.ts b/packages/expo/src/generators/application/lib/create-application-files.ts index 4efeee3201053..a8fed6092bf9c 100644 --- a/packages/expo/src/generators/application/lib/create-application-files.ts +++ b/packages/expo/src/generators/application/lib/create-application-files.ts @@ -14,6 +14,7 @@ export function createApplicationFiles(host: Tree, options: NormalizedSchema) { npm: 'package-lock.json', yarn: 'yarn.lock', pnpm: 'pnpm-lock.yaml', + bun: 'bun.lockb', }; const packageManager = detectPackageManager(host.root); const packageLockFile = packageManagerLockFile[packageManager]; diff --git a/packages/expo/src/migrations/update-16-1-4/update-eas-scripts.ts b/packages/expo/src/migrations/update-16-1-4/update-eas-scripts.ts index 77db80bcee71f..61f473936a099 100644 --- a/packages/expo/src/migrations/update-16-1-4/update-eas-scripts.ts +++ b/packages/expo/src/migrations/update-16-1-4/update-eas-scripts.ts @@ -19,6 +19,7 @@ export default function update(tree: Tree) { npm: 'package-lock.json', yarn: 'yarn.lock', pnpm: 'pnpm-lock.yaml', + bun: 'bun.lockb', }; for (const [name, config] of projects.entries()) { diff --git a/packages/nx/src/command-line/migrate/migrate.spec.ts b/packages/nx/src/command-line/migrate/migrate.spec.ts index cf1f4accb0416..44c0e07a2729a 100644 --- a/packages/nx/src/command-line/migrate/migrate.spec.ts +++ b/packages/nx/src/command-line/migrate/migrate.spec.ts @@ -1659,7 +1659,10 @@ describe('Migration', () => { `Incorrect 'from' section. Use --from="package@version"` ); await expect(() => - parseMigrationsOptions({ packageAndVersion: '8.12.0', from: 'myscope' }) + parseMigrationsOptions({ + packageAndVersion: '8.12.0', + from: 'myscope', + }) ).rejects.toThrowError( `Incorrect 'from' section. Use --from="package@version"` ); diff --git a/packages/nx/src/command-line/nx-commands.ts b/packages/nx/src/command-line/nx-commands.ts index 2fec55f99b9ed..ee4a89368346f 100644 --- a/packages/nx/src/command-line/nx-commands.ts +++ b/packages/nx/src/command-line/nx-commands.ts @@ -53,7 +53,7 @@ export const parserConfiguration: Partial = { * from the `.argv` call, so the object and it's relative scripts can * le executed correctly. */ -export const commandsObject = yargs +export const commandsObject: any = yargs .parserConfiguration(parserConfiguration) .usage(chalk.bold('Smart Monorepos · Fast CI')) .demandCommand(1, '') diff --git a/packages/nx/src/command-line/release/command-object.ts b/packages/nx/src/command-line/release/command-object.ts index 6302d7543b458..790b9b67f8a5f 100644 --- a/packages/nx/src/command-line/release/command-object.ts +++ b/packages/nx/src/command-line/release/command-object.ts @@ -115,8 +115,8 @@ export const yargsReleaseCommand: CommandModule< ); } const nxJson = readNxJson(); - if (argv.groups?.length) { - for (const group of argv.groups) { + if ((argv.groups as string[] | string)?.length) { + for (const group of argv.groups as string[] | string) { if (!nxJson.release?.groups?.[group]) { throw new Error( `The specified release group "${group}" was not found in nx.json` diff --git a/packages/nx/src/command-line/release/version.ts b/packages/nx/src/command-line/release/version.ts index 959745e6e4226..986eb6543ec0f 100644 --- a/packages/nx/src/command-line/release/version.ts +++ b/packages/nx/src/command-line/release/version.ts @@ -534,7 +534,7 @@ function printAndFlushChanges(tree: Tree, isDryRun: boolean) { isDryRun ? chalk.keyword('orange')(' [dry-run]') : '' }` ); - printDiff('', f.content?.toString() || ''); + printDiff('', f.content?.toString() ?? ''); } else if (f.type === 'UPDATE') { console.error( `${chalk.white('UPDATE')} ${f.path}${ diff --git a/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts b/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts index cee4a5649c4d4..b2f8a0930c9b7 100644 --- a/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts +++ b/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts @@ -20,7 +20,10 @@ describe('rm-default-collection-npm-scope migration', () => { cli: { defaultCollection: 'collection', }, - } as NxJsonConfiguration & { npmScope: string; cli: { defaultCollection: string } }); + } as NxJsonConfiguration & { + npmScope: string; + cli: { defaultCollection: string }; + }); }); it('should remove npmScope', async () => { diff --git a/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts b/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts index 7eefc84de5ab4..7fe52f218727f 100644 --- a/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts +++ b/packages/nx/src/tasks-runner/pseudo-terminal.spec.ts @@ -1,5 +1,7 @@ import { getPseudoTerminal, PseudoTerminal } from './pseudo-terminal'; +jest.setTimeout(30000); + describe('PseudoTerminal', () => { let terminal: PseudoTerminal; beforeAll(() => { diff --git a/packages/nx/src/utils/__snapshots__/command-line-utils.spec.ts.snap b/packages/nx/src/utils/__snapshots__/command-line-utils.spec.ts.snap new file mode 100644 index 0000000000000..b1b5dff063d5b --- /dev/null +++ b/packages/nx/src/utils/__snapshots__/command-line-utils.spec.ts.snap @@ -0,0 +1,15 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`splitArgs should default to having a base of main 1`] = ` +{ + "base": "main", + "skipNxCache": false, +} +`; + +exports[`splitArgs should return a default base branch if not configured in nx.json 1`] = ` +{ + "base": "main", + "skipNxCache": false, +} +`; diff --git a/packages/nx/src/utils/command-line-utils.spec.ts b/packages/nx/src/utils/command-line-utils.spec.ts index d5b66eefbb4b6..73f63917acd19 100644 --- a/packages/nx/src/utils/command-line-utils.spec.ts +++ b/packages/nx/src/utils/command-line-utils.spec.ts @@ -65,10 +65,7 @@ describe('splitArgs', () => { {} as any, {} as any ).nxArgs - ).toEqual({ - base: 'main', - skipNxCache: false, - }); + ).toMatchSnapshot(); }); it('should return configured base branch from nx.json', () => { @@ -92,17 +89,14 @@ describe('splitArgs', () => { expect( splitArgsIntoNxArgsAndOverrides( { - __overrides_unparsed__: ['--notNxArg', 'affecteda', '--override'], + __overrides_unparsed__: ['--notNxArg', 'affected', '--override'], $0: '', }, 'affected', {} as any, {} as any ).nxArgs - ).toEqual({ - base: 'main', - skipNxCache: false, - }); + ).toMatchSnapshot(); }); it('should split non nx specific arguments into target args', () => { diff --git a/packages/nx/src/utils/command-line-utils.ts b/packages/nx/src/utils/command-line-utils.ts index 341bbe6e4f4af..5db618138632e 100644 --- a/packages/nx/src/utils/command-line-utils.ts +++ b/packages/nx/src/utils/command-line-utils.ts @@ -121,7 +121,7 @@ export function splitArgsIntoNxArgsAndOverrides( // Allow setting base and head via environment variables (lower priority then direct command arguments) if (!nxArgs.base && process.env.NX_BASE) { - nxArgs.base = process.env.NX_BASE; + nxArgs.base = process.env.NX_BASE ?? 'main'; if (options.printWarnings) { output.note({ title: `No explicit --base argument provided, but found environment variable NX_BASE so using its value as the affected base: ${output.bold( @@ -143,7 +143,7 @@ export function splitArgsIntoNxArgsAndOverrides( if (!nxArgs.base) { nxArgs.base = - nxJson.defaultBase ?? nxJson.affected?.defaultBase ?? 'main'; + nxJson?.defaultBase ?? nxJson?.affected?.defaultBase ?? 'main'; // No user-provided arguments to set the affected criteria, so inform the user of the defaults being used if ( @@ -290,7 +290,7 @@ function getUntrackedFiles(): string[] { return parseGitOutput(`git ls-files --others --exclude-standard`); } -function getMergeBase(base: string, head: string = 'HEAD') { +function getMergeBase(base: string = 'main', head: string = 'HEAD') { try { return execSync(`git merge-base "${base}" "${head}"`, { maxBuffer: TEN_MEGABYTES, @@ -314,7 +314,10 @@ function getMergeBase(base: string, head: string = 'HEAD') { } } -function getFilesUsingBaseAndHead(base: string, head: string): string[] { +function getFilesUsingBaseAndHead( + base: string = 'main', + head: string +): string[] { return parseGitOutput( `git diff --name-only --no-renames --relative "${base}" "${head}"` ); diff --git a/packages/nx/src/utils/package-manager.spec.ts b/packages/nx/src/utils/package-manager.spec.ts index 3ba3c7d8acfe1..c198e749bc99a 100644 --- a/packages/nx/src/utils/package-manager.spec.ts +++ b/packages/nx/src/utils/package-manager.spec.ts @@ -16,57 +16,87 @@ describe('package-manager', () => { packageManager: 'pnpm', }, }); + jest.spyOn(fs, 'existsSync').mockImplementation((p) => { + switch (p) { + case 'pnpm-lock.yaml': + return true; + case 'yarn.lock': + return false; + case 'package-lock.json': + return false; + case 'bun.lockb': + return false; + default: + return jest.requireActual('fs').existsSync(p); + } + }); const packageManager = detectPackageManager(); expect(packageManager).toEqual('pnpm'); }); it('should detect yarn package manager from yarn.lock', () => { - jest.spyOn(configModule, 'readNxJson').mockReturnValueOnce({}); + jest.spyOn(configModule, 'readNxJson').mockReturnValueOnce({ + cli: { + packageManager: 'yarn', + }, + }); jest.spyOn(fs, 'existsSync').mockImplementation((p) => { switch (p) { - case 'yarn.lock': - return true; case 'pnpm-lock.yaml': return false; + case 'yarn.lock': + return true; case 'package-lock.json': return false; + case 'bun.lockb': + return false; default: return jest.requireActual('fs').existsSync(p); } }); const packageManager = detectPackageManager(); expect(packageManager).toEqual('yarn'); - expect(fs.existsSync).toHaveBeenNthCalledWith(1, 'yarn.lock'); }); - it('should detect pnpm package manager from pnpm-lock.yaml', () => { - jest.spyOn(configModule, 'readNxJson').mockReturnValueOnce({}); + it('should detect package manager in nxJson', () => { + jest.spyOn(configModule, 'readNxJson').mockReturnValueOnce({ + cli: { + packageManager: 'bun', + }, + }); jest.spyOn(fs, 'existsSync').mockImplementation((p) => { switch (p) { + case 'pnpm-lock.yaml': + return false; case 'yarn.lock': return false; - case 'pnpm-lock.yaml': - return true; case 'package-lock.json': return false; + case 'bun.lockb': + return true; default: return jest.requireActual('fs').existsSync(p); } }); const packageManager = detectPackageManager(); - expect(packageManager).toEqual('pnpm'); - expect(fs.existsSync).toHaveBeenCalledTimes(3); + expect(packageManager).toEqual('bun'); }); it('should use npm package manager as default', () => { - jest.spyOn(configModule, 'readNxJson').mockReturnValueOnce({}); + jest.spyOn(configModule, 'readNxJson').mockReturnValueOnce({ + cli: { + packageManager: 'npm', + }, + }); jest.spyOn(fs, 'existsSync').mockImplementation((p) => { switch (p) { - case 'yarn.lock': - return false; case 'pnpm-lock.yaml': return false; + case 'yarn.lock': + return false; case 'package-lock.json': + return true; + case 'bun.lockb': return false; default: return jest.requireActual('fs').existsSync(p); @@ -74,7 +104,6 @@ describe('package-manager', () => { }); const packageManager = detectPackageManager(); expect(packageManager).toEqual('npm'); - expect(fs.existsSync).toHaveBeenCalledTimes(5); }); }); diff --git a/packages/nx/src/utils/package-manager.ts b/packages/nx/src/utils/package-manager.ts index 98964c98f7865..549790274c7f8 100644 --- a/packages/nx/src/utils/package-manager.ts +++ b/packages/nx/src/utils/package-manager.ts @@ -32,17 +32,25 @@ export interface PackageManagerCommands { /** * Detects which package manager is used in the workspace based on the lock file. */ -export function detectPackageManager(dir: string = ''): PackageManager { - const nxJson = readNxJson(); - return nxJson.cli?.packageManager ?? existsSync(join(dir, 'bun.lockb')) - ? 'bun' - : existsSync(join(dir, 'yarn.lock')) +function getPackageManager(dir: string = '') { + return existsSync(join(dir, 'yarn.lock')) ? 'yarn' - : existsSync(join(dir, 'pnpm-lock.yaml')) + : existsSync(join(dir, 'bun.lockb')) + ? 'bun' + : existsSync(join(dir, 'pnpm-lock.yaml')) || + existsSync(join(dir, 'pnpm-workspace.yaml')) ? 'pnpm' : 'npm'; } +/** + * Detects which package manager is used in the workspace based on the lock file. + */ +export function detectPackageManager(dir: string = ''): PackageManager { + const nxJson = readNxJson(); + return nxJson.cli?.packageManager ?? getPackageManager(dir); +} + /** * Returns true if the workspace is using npm workspaces, yarn workspaces, or pnpm workspaces. * @param packageManager The package manager to use. If not provided, it will be detected based on the lock file. @@ -142,12 +150,15 @@ export function getPackageManagerCommand( }; }, bun: () => { + // TODO: Remove this + process.env.npm_config_legacy_peer_deps ??= 'true'; + return { install: 'bun install', ciInstall: 'bun install --no-cache', - updateLockFile: 'bun install', - add: 'bun add', - addDev: 'bun add --dev', + updateLockFile: 'bun install --frozen-lockfile', + add: 'bun install', + addDev: 'bun install -D', rm: 'bun rm', exec: 'bun', dlx: 'bunx', @@ -243,7 +254,12 @@ export function copyPackageManagerConfigurationFiles( root: string, destination: string ) { - for (const packageManagerConfigFile of ['.npmrc', '.yarnrc', '.yarnrc.yml']) { + for (const packageManagerConfigFile of [ + '.npmrc', + '.yarnrc', + '.yarnrc.yml', + 'bunfig.toml', + ]) { // f is an absolute path, including the {workspaceRoot}. const f = findFileInPackageJsonDirectory(packageManagerConfigFile, root); if (f) { @@ -256,6 +272,10 @@ export function copyPackageManagerConfigurationFiles( copyFileSync(f, destinationPath); break; } + case 'bunfig.toml': { + copyFileSync(f, destinationPath); + break; + } case '.yarnrc': { const updated = modifyYarnRcToFitNewDirectory(readFileIfExisting(f)); writeFileSync(destinationPath, updated); @@ -356,7 +376,7 @@ export async function packageRegistryView( args: string ): Promise { let pm = detectPackageManager(); - if (pm === 'yarn') { + if (pm === 'yarn' || pm === 'bun') { /** * yarn has `yarn info` but it behaves differently than (p)npm, * which makes it's usage unreliable @@ -376,7 +396,7 @@ export async function packageRegistryPack( version: string ): Promise<{ tarballPath: string }> { let pm = detectPackageManager(); - if (pm === 'yarn') { + if (pm === 'yarn' || pm === 'bun') { /** * `(p)npm pack` will download a tarball of the specified version, * whereas `yarn` pack creates a tarball of the active workspace, so it diff --git a/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-web-config.ts b/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-web-config.ts index b879bc71aaa77..10ee81be120bb 100644 --- a/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-web-config.ts +++ b/packages/webpack/src/plugins/nx-webpack-plugin/lib/apply-web-config.ts @@ -170,7 +170,10 @@ export function applyWebConfig( use: [ ...getCommonLoadersForCssModules(options, includePaths), { - loader: path.join(__dirname, 'webpack/deprecated-stylus-loader.js'), + loader: path.join( + __dirname, + '../../../utils/webpack/deprecated-stylus-loader.js' + ), options: { stylusOptions: { include: includePaths, @@ -230,7 +233,10 @@ export function applyWebConfig( use: [ ...getCommonLoadersForGlobalCss(options, includePaths), { - loader: path.join(__dirname, 'webpack/deprecated-stylus-loader.js'), + loader: path.join( + __dirname, + '../../../utils/webpack/deprecated-stylus-loader.js' + ), options: { sourceMap: !!options.sourceMap, stylusOptions: { @@ -291,7 +297,10 @@ export function applyWebConfig( use: [ ...getCommonLoadersForGlobalStyle(options, includePaths), { - loader: require.resolve('stylus-loader'), + loader: path.join( + __dirname, + '../../../utils/webpack/deprecated-stylus-loader.js' + ), options: { sourceMap: !!options.sourceMap, stylusOptions: { From 1a87629821139a1fb5cb925bd3c1fea812d08dfc Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Tue, 19 Mar 2024 17:06:35 -0700 Subject: [PATCH 08/34] fix(js): Added package json updates --- package.json | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 672756737681f..5e259ea470982 100644 --- a/package.json +++ b/package.json @@ -26,19 +26,19 @@ }, "devDependencies": { "@actions/core": "^1.10.0", - "@angular-devkit/architect": "0.1702.0", - "@angular-devkit/build-angular": "17.2.0", - "@angular-devkit/core": "17.2.0", - "@angular-devkit/schematics": "17.2.0", - "@angular-eslint/eslint-plugin": "17.0.1", - "@angular-eslint/eslint-plugin-template": "17.0.1", - "@angular-eslint/template-parser": "17.0.1", - "@angular/cli": "~17.2.0", - "@angular/common": "17.2.1", - "@angular/compiler": "17.2.1", - "@angular/compiler-cli": "17.2.1", - "@angular/core": "17.2.1", - "@angular/router": "17.2.1", + "@angular-devkit/architect": "~0.1703.0", + "@angular-devkit/build-angular": "~17.3.0", + "@angular-devkit/core": "~17.3.0", + "@angular-devkit/schematics": "~17.3.0", + "@angular-eslint/eslint-plugin": "~17.3.0", + "@angular-eslint/eslint-plugin-template": "~17.3.0", + "@angular-eslint/template-parser": "~17.3.0", + "@angular/cli": "~17.3.0", + "@angular/common": "~17.3.0", + "@angular/compiler": "~17.3.0", + "@angular/compiler-cli": "~17.3.0", + "@angular/core": "~17.3.0", + "@angular/router": "~17.3.0", "@babel/core": "^7.23.2", "@babel/helper-create-regexp-features-plugin": "^7.22.9", "@babel/plugin-transform-runtime": "^7.23.2", @@ -93,7 +93,7 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^7.0.0", - "@schematics/angular": "17.2.0", + "@schematics/angular": "~17.3.0", "@side/jest-runtime": "^1.1.0", "@storybook/addon-essentials": "7.5.3", "@storybook/core-server": "7.5.3", @@ -132,10 +132,10 @@ "@types/tmp": "^0.2.0", "@types/yargs": "^17.0.10", "@types/yarnpkg__lockfile": "^1.1.5", - "@typescript-eslint/eslint-plugin": "6.18.1", - "@typescript-eslint/parser": "6.18.1", - "@typescript-eslint/type-utils": "6.18.1", - "@typescript-eslint/utils": "6.18.1", + "@typescript-eslint/eslint-plugin": "^7.3.0", + "@typescript-eslint/parser": "^7.3.0", + "@typescript-eslint/type-utils": "^7.3.0", + "@typescript-eslint/utils": "^7.3.0", "@xstate/immer": "0.3.1", "@xstate/inspect": "0.7.0", "@xstate/react": "3.0.1", @@ -167,7 +167,7 @@ "ejs": "^3.1.7", "enhanced-resolve": "^5.8.3", "esbuild": "0.19.5", - "eslint": "8.48.0", + "eslint": "~8.57.0", "eslint-config-next": "14.0.4", "eslint-config-prettier": "9.0.0", "eslint-plugin-cypress": "2.14.0", @@ -228,7 +228,7 @@ "mini-css-extract-plugin": "~2.4.7", "minimatch": "9.0.3", "next-sitemap": "^3.1.10", - "ng-packagr": "17.2.0", + "ng-packagr": "~17.3.0", "node-fetch": "^2.6.7", "npm-package-arg": "11.0.1", "nuxt": "^3.10.0", @@ -239,7 +239,7 @@ "ora": "5.3.0", "parse-markdown-links": "^1.0.4", "parse5": "4.0.0", - "piscina": "^4.2.1", + "piscina": "^4.4.0", "postcss": "8.4.19", "postcss-import": "~14.1.0", "postcss-preset-env": "~7.5.0", @@ -283,7 +283,7 @@ "tsconfig-paths-webpack-plugin": "4.0.0", "typedoc": "0.25.12", "typedoc-plugin-markdown": "3.17.1", - "typescript": "~5.3.2", + "typescript": "~5.4.2", "unist-builder": "^4.0.0", "unzipper": "^0.10.11", "url-loader": "^4.1.1", From a9170cc2d17b76dc05d40ef4c0be4b2028813a50 Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Tue, 19 Mar 2024 18:29:57 -0700 Subject: [PATCH 09/34] fix(js): added package.json --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 2a24a1580be27..49d81bc0c0898 100644 --- a/package.json +++ b/package.json @@ -253,7 +253,6 @@ "react-refresh": "^0.10.0", "react-router-dom": "^6.21.2", "react-textarea-autosize": "^8.5.3", - "regenerator-runtime": "0.13.7", "resolve.exports": "1.1.0", "rollup": "^2.56.2", "rollup-plugin-copy": "^3.4.0", @@ -373,4 +372,4 @@ "documentation" ] } -} +} \ No newline at end of file From 7399bfa57cf0b9405d6b023152abf2033e3aae3b Mon Sep 17 00:00:00 2001 From: Layne Faler Date: Tue, 19 Mar 2024 18:32:34 -0700 Subject: [PATCH 10/34] fix(js): ran formatter --- e2e/angular-extensions/src/tailwind.test.ts | 8 +- e2e/utils/create-project-utils.ts | 2 +- .../src/app/ui-components/error-boundary.tsx | 6 +- .../ui-components/project-details-modal.tsx | 6 +- .../src/app/ui-tooltips/task-node-actions.tsx | 6 +- .../src/lib/project-details-header.tsx | 4 +- .../src/lib/project-details-page.tsx | 4 +- .../ui-code-block/src/lib/json-code-block.tsx | 4 +- graph/ui-components/src/lib/dropdown.tsx | 2 +- graph/ui-components/src/lib/spinner.tsx | 2 +- graph/ui-project-details/src/lib/pill.tsx | 4 +- .../lib/project-details/project-details.tsx | 12 +- .../fading-collapsible.tsx | 2 +- .../source-info.tsx | 4 +- .../target-configuration-details.tsx | 46 ++++---- .../target-configuration-property.tsx | 6 +- .../tooltip-trigger-text.tsx | 2 +- .../ui-theme/src/lib/theme-panel.stories.tsx | 2 +- graph/ui-tooltips/src/lib/external-link.tsx | 4 +- .../src/lib/project-edge-tooltip.tsx | 2 +- .../src/lib/project-node-tooltip.tsx | 4 +- .../src/lib/property-info-tooltip.tsx | 8 +- .../src/lib/sourcemap-info-tooltip.tsx | 6 +- .../ui-tooltips/src/lib/task-node-tooltip.tsx | 4 +- nx-dev/feature-ai/src/lib/feed-container.tsx | 2 +- .../feature-ai/src/lib/feed/feed-answer.tsx | 12 +- .../feature-ai/src/lib/feed/feed-question.tsx | 4 +- nx-dev/feature-ai/src/lib/feed/feed.tsx | 4 +- nx-dev/feature-ai/src/lib/loading-state.tsx | 4 +- nx-dev/feature-ai/src/lib/prompt.tsx | 8 +- .../lib/sidebar/activity-limit-reached.tsx | 2 +- .../src/lib/sidebar/warning-message.tsx | 2 +- .../feature-doc-viewer/src/lib/doc-viewer.tsx | 2 +- .../src/lib/related-documents-section.tsx | 22 ++-- .../src/lib/table-of-contents.tsx | 2 +- .../feature-search/src/lib/algolia-search.tsx | 2 +- nx-dev/nx-dev/pages/advent-of-code/index.tsx | 8 +- nx-dev/nx-dev/pages/blog/index.tsx | 4 +- nx-dev/nx-dev/pages/changelog.tsx | 18 +-- nx-dev/nx-dev/pages/tips.tsx | 42 +++---- nx-dev/ui-common/src/lib/champion-card.tsx | 6 +- nx-dev/ui-common/src/lib/champion-perks.tsx | 2 +- .../src/lib/documentation-header.tsx | 4 +- nx-dev/ui-common/src/lib/flip-card.tsx | 10 +- .../ui-common/src/lib/github-star-widget.tsx | 8 +- nx-dev/ui-common/src/lib/plugin-card.tsx | 22 ++-- .../ui-common/src/lib/youtube.component.tsx | 4 +- .../ui-community/src/lib/connect-with-us.tsx | 2 +- .../ui-community/src/lib/plugin-directory.tsx | 28 ++--- .../src/lib/launch-week/agenda.tsx | 8 +- .../src/lib/launch-week/announcements.tsx | 40 +++---- .../lib/launch-week/community-partners.tsx | 4 +- nx-dev/ui-fence/src/lib/fence.tsx | 4 +- .../ui-fence/src/lib/fences/code-output.tsx | 2 +- .../src/lib/fences/terminal-output.tsx | 6 +- .../src/lib/fences/terminal-shell.tsx | 12 +- nx-dev/ui-fence/src/lib/selector.tsx | 6 +- nx-dev/ui-home/src/lib/hero.tsx | 20 ++-- nx-dev/ui-home/src/lib/nx-statistics.tsx | 4 +- nx-dev/ui-home/src/lib/nx-with-ci.tsx | 34 +++--- nx-dev/ui-markdoc/src/lib/icons.tsx | 108 +++++++++--------- .../src/lib/tags/cards.component.tsx | 14 +-- .../src/lib/tags/disclosure.component.tsx | 6 +- .../src/lib/tags/graph.component.tsx | 2 +- .../src/lib/tags/pill.component.tsx | 2 +- .../lib/tags/project-details.component.tsx | 2 +- .../ui-markdoc/src/lib/tags/short-embed.tsx | 18 +-- .../src/lib/tags/video-link.component.tsx | 10 +- .../src/lib/tags/video-loop.component.tsx | 4 +- .../bin/types/bundler-list.ts | 2 +- .../bin/types/framework-list.ts | 2 +- .../src/utils/nx/ab-testing.ts | 2 +- .../src/utils/package-manager.ts | 2 +- .../release-version/release-version.ts | 2 +- .../nx/release/changelog-renderer/index.ts | 2 +- .../src/command-line/release/utils/github.ts | 2 +- .../nx/src/command-line/release/version.ts | 2 +- packages/nx/src/command-line/show/show.ts | 2 +- .../yargs-utils/shared-options.ts | 2 +- packages/nx/src/utils/ab-testing.ts | 2 +- .../nx/src/utils/find-matching-projects.ts | 2 +- 81 files changed, 352 insertions(+), 352 deletions(-) diff --git a/e2e/angular-extensions/src/tailwind.test.ts b/e2e/angular-extensions/src/tailwind.test.ts index 38c7b2ec98a90..135fb63d1204d 100644 --- a/e2e/angular-extensions/src/tailwind.test.ts +++ b/e2e/angular-extensions/src/tailwind.test.ts @@ -72,7 +72,7 @@ describe('Tailwind support', () => { const createTailwindConfigFile = ( tailwindConfigFile = 'tailwind.config.js', - libSpacing: typeof spacing['projectVariant1'] + libSpacing: (typeof spacing)['projectVariant1'] ) => { const tailwindConfig = `const { createGlobPatternsForDependencies } = require('@nx/angular/tailwind'); const { join } = require('path'); @@ -98,7 +98,7 @@ describe('Tailwind support', () => { const updateTailwindConfig = ( tailwindConfigPath: string, - projectSpacing: typeof spacing['root'] + projectSpacing: (typeof spacing)['root'] ) => { const tailwindConfig = readFile(tailwindConfigPath); @@ -173,7 +173,7 @@ describe('Tailwind support', () => { const assertLibComponentStyles = ( lib: string, - libSpacing: typeof spacing['root'] + libSpacing: (typeof spacing)['root'] ) => { const builtComponentContent = readFile( `dist/${lib}/esm2022/lib/foo.component.mjs` @@ -327,7 +327,7 @@ describe('Tailwind support', () => { const assertAppComponentStyles = ( outputPath: string, - appSpacing: typeof spacing['root'] + appSpacing: (typeof spacing)['root'] ) => { const mainBundlePath = listFiles(outputPath).find((file) => /^main[\.-]/.test(file) diff --git a/e2e/utils/create-project-utils.ts b/e2e/utils/create-project-utils.ts index 6c4b6b24355e9..5a2e456353cc0 100644 --- a/e2e/utils/create-project-utils.ts +++ b/e2e/utils/create-project-utils.ts @@ -65,7 +65,7 @@ const nxPackages = [ `@nx/expo`, ] as const; -type NxPackage = typeof nxPackages[number]; +type NxPackage = (typeof nxPackages)[number]; /** * Sets up a new project in the temporary project path diff --git a/graph/client/src/app/ui-components/error-boundary.tsx b/graph/client/src/app/ui-components/error-boundary.tsx index 561a95a691be5..ef823476ea71a 100644 --- a/graph/client/src/app/ui-components/error-boundary.tsx +++ b/graph/client/src/app/ui-components/error-boundary.tsx @@ -15,11 +15,11 @@ export function ErrorBoundary() { } return ( -
+
-

Error

+

Error

-

{message}

+

{message}

Error message: {error}

diff --git a/graph/client/src/app/ui-components/project-details-modal.tsx b/graph/client/src/app/ui-components/project-details-modal.tsx index 7ee2a4ca8a9bb..afee3a48ee84d 100644 --- a/graph/client/src/app/ui-components/project-details-modal.tsx +++ b/graph/client/src/app/ui-components/project-details-modal.tsx @@ -50,15 +50,15 @@ export function ProjectDetailsModal() { return ( isOpen && (
-
+
-
+
diff --git a/graph/client/src/app/ui-tooltips/task-node-actions.tsx b/graph/client/src/app/ui-tooltips/task-node-actions.tsx index 66267ee03559f..eebc85ba96cc6 100644 --- a/graph/client/src/app/ui-tooltips/task-node-actions.tsx +++ b/graph/client/src/app/ui-tooltips/task-node-actions.tsx @@ -9,9 +9,9 @@ export function TaskNodeActions(props: TaskNodeTooltipProps) { }, [props.id]); const project = props.id.split(':')[0]; return ( -
+
setIsOpen(!isOpen)} data-cy="inputs-accordion" > @@ -53,7 +53,7 @@ function InputAccordion({ section, inputs }) { return [
  • setIsOpen(!isOpen)} data-cy="input-section-entry" > diff --git a/graph/project-details/src/lib/project-details-header.tsx b/graph/project-details/src/lib/project-details-header.tsx index c167c662baf97..6082a63bf3fff 100644 --- a/graph/project-details/src/lib/project-details-header.tsx +++ b/graph/project-details/src/lib/project-details-header.tsx @@ -5,8 +5,8 @@ import { ThemePanel } from '@nx/graph/ui-theme'; export function ProjectDetailsHeader() { const routeConstructor = useRouteConstructor(); return ( -
    -
    +
    +
    +
    {environment !== 'nx-console' ? ( ) : (
    )} -
    +
    {element} {sourceElement && ( - + {sourceElement} )} diff --git a/graph/ui-components/src/lib/dropdown.tsx b/graph/ui-components/src/lib/dropdown.tsx index f7a1d8323dabe..2954f258f4926 100644 --- a/graph/ui-components/src/lib/dropdown.tsx +++ b/graph/ui-components/src/lib/dropdown.tsx @@ -9,7 +9,7 @@ export function Dropdown(props: DropdownProps) { const { className, children, ...rest } = props; return (