- Update artifact generator schemas: - Clarify `path` is the artifact file path relative to the current working directory - Clarify `name` is the artifact symbol name - Remove prompt for `name` and remove it from the important options (won't be displayed by default in Nx Console generation UI, it will be part of the collapsed options) given that most of the time, it's meant to match the filename (last segment of the `path`) - Remove some leftover options related to the name and path formats that were previously missed - Fix an issue with NestJS generators - Fix an issue with Next `page` generator <!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #
194 lines
7.4 KiB
JSON
194 lines
7.4 KiB
JSON
{
|
|
"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 apps/myorg/myapp",
|
|
"description": "Generate `apps/myorg/myapp` and `apps/myorg/myapp-e2e`"
|
|
},
|
|
{
|
|
"command": "nx g app apps/myapp --classComponent",
|
|
"description": "Use class components instead of functional components"
|
|
},
|
|
{
|
|
"command": "nx g app apps/myapp --routing",
|
|
"description": "Set up React Router"
|
|
}
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"directory": {
|
|
"description": "The directory of the new application.",
|
|
"type": "string",
|
|
"alias": "dir",
|
|
"$default": { "$source": "argv", "index": 0 },
|
|
"x-prompt": "Which directory do you want to create the application in?"
|
|
},
|
|
"name": {
|
|
"description": "The name of the application.",
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z][^:]*$",
|
|
"x-priority": "important"
|
|
},
|
|
"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": ["vitest", "jest", "none"],
|
|
"description": "Test runner to use for unit tests.",
|
|
"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": ["playwright", "cypress", "none"],
|
|
"description": "Test runner to use for end to end (E2E) tests.",
|
|
"x-prompt": "Which E2E test runner would you like to use?",
|
|
"default": "playwright"
|
|
},
|
|
"tags": {
|
|
"type": "string",
|
|
"description": "Add tags to the application (used for linting).",
|
|
"alias": "t"
|
|
},
|
|
"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": "vite",
|
|
"x-priority": "important"
|
|
},
|
|
"minimal": {
|
|
"description": "Generate a React app with a minimal setup, no separate test files.",
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
},
|
|
"required": ["directory"],
|
|
"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 apps/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 apps/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 style extension\" %}\n\nCreate an application named `my-app` in the `my-dir` directory and use `scss` for styles:\n\n```bash\nnx g @nx/react:app 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 apps/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"
|
|
}
|