- 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 #
195 lines
7.6 KiB
JSON
195 lines
7.6 KiB
JSON
{
|
|
"name": "application",
|
|
"factory": "./src/generators/application/application",
|
|
"schema": {
|
|
"$schema": "https://json-schema.org/schema",
|
|
"$id": "GeneratorNxApp",
|
|
"title": "Creates an Angular application.",
|
|
"description": "Creates an Angular application.",
|
|
"type": "object",
|
|
"cli": "nx",
|
|
"properties": {
|
|
"directory": {
|
|
"description": "The directory of the new application.",
|
|
"type": "string",
|
|
"$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",
|
|
"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", "vitest", "none"],
|
|
"description": "Test runner to use for unit tests.",
|
|
"x-prompt": "Which unit test runner would you like to use?",
|
|
"default": "jest"
|
|
},
|
|
"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)."
|
|
},
|
|
"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 `<projectRoot>/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": ["directory"],
|
|
"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 apps/my-app\n```\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/angular:app 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 apps/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 apps/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.ts",
|
|
"hidden": false,
|
|
"path": "/packages/angular/src/generators/application/schema.json",
|
|
"type": "generator"
|
|
}
|