docs(nxdev): refactor docs sources generation and app consumption (#13834)
This commit is contained in:
parent
f1ac23fce6
commit
19fd40ddc7
517
docs/generated/manifests/cloud.json
Normal file
517
docs/generated/manifests/cloud.json
Normal file
@ -0,0 +1,517 @@
|
|||||||
|
{
|
||||||
|
"/nx-cloud/intro": {
|
||||||
|
"id": "intro",
|
||||||
|
"name": "Intro",
|
||||||
|
"description": "Learn about basic Nx Cloud knowledge.",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "what-is-nx-cloud",
|
||||||
|
"name": "What is Nx Cloud?",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/intro/nx-cloud",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/intro/what-is-nx-cloud",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/intro",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/intro/what-is-nx-cloud": {
|
||||||
|
"id": "what-is-nx-cloud",
|
||||||
|
"name": "What is Nx Cloud?",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/intro/nx-cloud",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/intro/what-is-nx-cloud",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/set-up": {
|
||||||
|
"id": "set-up",
|
||||||
|
"name": "Set Up",
|
||||||
|
"description": "Learn how to set up Nx Cloud for your workspace.",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "record-commands",
|
||||||
|
"name": "Record Non-Nx Commands",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/set-up/record-commands",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/set-up/record-commands",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "github",
|
||||||
|
"name": "Enable GitHub PR Integration",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/set-up/github",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/set-up/github",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/set-up",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/set-up/record-commands": {
|
||||||
|
"id": "record-commands",
|
||||||
|
"name": "Record Non-Nx Commands",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/set-up/record-commands",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/set-up/record-commands",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/set-up/github": {
|
||||||
|
"id": "github",
|
||||||
|
"name": "Enable GitHub PR Integration",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/set-up/github",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/set-up/github",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account": {
|
||||||
|
"id": "account",
|
||||||
|
"name": "Account Management",
|
||||||
|
"description": "Learn how to manage Nx Cloud subscriptions and other options.",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "billing",
|
||||||
|
"name": "Billing and Utilization",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/billing",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/billing",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "users",
|
||||||
|
"name": "Users",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/users",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/users",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "google-auth",
|
||||||
|
"name": "Authenticate with Google Identity",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/google-auth",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/google-auth",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "access-tokens",
|
||||||
|
"name": "Access Tokens",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/access-tokens",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/access-tokens",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "scenarios",
|
||||||
|
"name": "Security Scenarios",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/scenarios",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/scenarios",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "encryption",
|
||||||
|
"name": "End to End Encryption",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/encryption",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/encryption",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account/billing": {
|
||||||
|
"id": "billing",
|
||||||
|
"name": "Billing and Utilization",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/billing",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/billing",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account/users": {
|
||||||
|
"id": "users",
|
||||||
|
"name": "Users",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/users",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/users",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account/google-auth": {
|
||||||
|
"id": "google-auth",
|
||||||
|
"name": "Authenticate with Google Identity",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/google-auth",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/google-auth",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account/access-tokens": {
|
||||||
|
"id": "access-tokens",
|
||||||
|
"name": "Access Tokens",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/access-tokens",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/access-tokens",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account/scenarios": {
|
||||||
|
"id": "scenarios",
|
||||||
|
"name": "Security Scenarios",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/scenarios",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/scenarios",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/account/encryption": {
|
||||||
|
"id": "encryption",
|
||||||
|
"name": "End to End Encryption",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/account/encryption",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/account/encryption",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud": {
|
||||||
|
"id": "private-cloud",
|
||||||
|
"name": "On Prem",
|
||||||
|
"description": "Learn about Nx Cloud On Premise, dedicated Nx Cloud application hosted on your server, in your network with total private access.",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "get-started",
|
||||||
|
"name": "Get Started",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/get-started",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/get-started",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "github",
|
||||||
|
"name": "Enable Github PR Integration",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/github",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/github",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "auth-single-admin",
|
||||||
|
"name": "Authenticate with a Single Admin",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-single-admin",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-single-admin",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "auth-github",
|
||||||
|
"name": "Authenticate with GitHub",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-github",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-github",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "auth-gitlab",
|
||||||
|
"name": "Authenticate with GitLab",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-gitlab",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-gitlab",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "auth-bitbucket",
|
||||||
|
"name": "Authenticate with BitBucket",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-bitbucket",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-bitbucket",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "auth-saml",
|
||||||
|
"name": "Authenticate via SAML",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-saml",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-saml",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "advanced-config",
|
||||||
|
"name": "Advanced Configuration",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/advanced-config",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/advanced-config",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "standalone",
|
||||||
|
"name": "Standalone",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/standalone",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/standalone",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/get-started": {
|
||||||
|
"id": "get-started",
|
||||||
|
"name": "Get Started",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/get-started",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/get-started",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/github": {
|
||||||
|
"id": "github",
|
||||||
|
"name": "Enable Github PR Integration",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/github",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/github",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/auth-single-admin": {
|
||||||
|
"id": "auth-single-admin",
|
||||||
|
"name": "Authenticate with a Single Admin",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-single-admin",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-single-admin",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/auth-github": {
|
||||||
|
"id": "auth-github",
|
||||||
|
"name": "Authenticate with GitHub",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-github",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-github",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/auth-gitlab": {
|
||||||
|
"id": "auth-gitlab",
|
||||||
|
"name": "Authenticate with GitLab",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-gitlab",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-gitlab",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/auth-bitbucket": {
|
||||||
|
"id": "auth-bitbucket",
|
||||||
|
"name": "Authenticate with BitBucket",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-bitbucket",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-bitbucket",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/auth-saml": {
|
||||||
|
"id": "auth-saml",
|
||||||
|
"name": "Authenticate via SAML",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/auth-saml",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/auth-saml",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/advanced-config": {
|
||||||
|
"id": "advanced-config",
|
||||||
|
"name": "Advanced Configuration",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/advanced-config",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/advanced-config",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/private-cloud/standalone": {
|
||||||
|
"id": "standalone",
|
||||||
|
"name": "Standalone",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/private/standalone",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/private-cloud/standalone",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/reference": {
|
||||||
|
"id": "reference",
|
||||||
|
"name": "Reference",
|
||||||
|
"description": "Understand how to use Nx Cloud, what arguments and options are available for each component.",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "config",
|
||||||
|
"name": "Configuration Options",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/config",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/config",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "nx-cloud-cli",
|
||||||
|
"name": "nx-cloud CLI",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/nx-cloud-cli",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/nx-cloud-cli",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "env-vars",
|
||||||
|
"name": "Environment Variables",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/env-vars",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/env-vars",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "server-api",
|
||||||
|
"name": "Server API Reference",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/server-api",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/server-api",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "release-notes",
|
||||||
|
"name": "Release Notes",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/release-notes",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/release-notes",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/reference/config": {
|
||||||
|
"id": "config",
|
||||||
|
"name": "Configuration Options",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/config",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/config",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/reference/nx-cloud-cli": {
|
||||||
|
"id": "nx-cloud-cli",
|
||||||
|
"name": "nx-cloud CLI",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/nx-cloud-cli",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/nx-cloud-cli",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/reference/env-vars": {
|
||||||
|
"id": "env-vars",
|
||||||
|
"name": "Environment Variables",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/env-vars",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/env-vars",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/reference/server-api": {
|
||||||
|
"id": "server-api",
|
||||||
|
"name": "Server API Reference",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/server-api",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/server-api",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/nx-cloud/reference/release-notes": {
|
||||||
|
"id": "release-notes",
|
||||||
|
"name": "Release Notes",
|
||||||
|
"description": "",
|
||||||
|
"file": "nx-cloud/reference/release-notes",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-cloud/reference/release-notes",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
6306
docs/generated/manifests/menus.json
Normal file
6306
docs/generated/manifests/menus.json
Normal file
File diff suppressed because it is too large
Load Diff
2056
docs/generated/manifests/nx.json
Normal file
2056
docs/generated/manifests/nx.json
Normal file
File diff suppressed because it is too large
Load Diff
2951
docs/generated/manifests/packages.json
Normal file
2951
docs/generated/manifests/packages.json
Normal file
File diff suppressed because it is too large
Load Diff
1583
docs/generated/manifests/recipes.json
Normal file
1583
docs/generated/manifests/recipes.json
Normal file
File diff suppressed because it is too large
Load Diff
805
docs/generated/manifests/tags.json
Normal file
805
docs/generated/manifests/tags.json
Normal file
@ -0,0 +1,805 @@
|
|||||||
|
{
|
||||||
|
"run-tasks": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/run-tasks",
|
||||||
|
"id": "run-tasks",
|
||||||
|
"name": "Run Tasks",
|
||||||
|
"path": "/core-features/run-tasks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/concepts/task-pipeline-configuration",
|
||||||
|
"id": "task-pipeline-configuration",
|
||||||
|
"name": "Task Pipeline Configuration",
|
||||||
|
"path": "/concepts/task-pipeline-configuration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/using-nx/affected",
|
||||||
|
"id": "affected",
|
||||||
|
"name": "Affected",
|
||||||
|
"path": "/concepts/affected"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/root-level-scripts",
|
||||||
|
"id": "root-level-scripts",
|
||||||
|
"name": "Run Root-Level NPM Scripts with Nx",
|
||||||
|
"path": "/recipes/other/root-level-scripts"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "/packages/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": "/packages/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": "/packages/nx/documents/affected"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cache-task-results": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/cache-task-results",
|
||||||
|
"id": "cache-task-results",
|
||||||
|
"name": "Cache Task Results",
|
||||||
|
"path": "/core-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/concepts/task-pipeline-configuration",
|
||||||
|
"id": "task-pipeline-configuration",
|
||||||
|
"name": "Task Pipeline Configuration",
|
||||||
|
"path": "/concepts/task-pipeline-configuration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/concepts/customizing-inputs",
|
||||||
|
"id": "customizing-inputs",
|
||||||
|
"name": "Customizing Inputs",
|
||||||
|
"path": "/more-concepts/customizing-inputs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "",
|
||||||
|
"id": "nx-cloud-documentation",
|
||||||
|
"name": "Nx Cloud Documentation",
|
||||||
|
"path": "/nx-cloud/intro/what-is-nx-cloud"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "",
|
||||||
|
"id": "skip-nx-cache-flag",
|
||||||
|
"name": "--skip-nx-cache flag",
|
||||||
|
"path": "/nx/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": "",
|
||||||
|
"file": "shared/recipes/troubleshoot-cache-misses",
|
||||||
|
"id": "troubleshoot-cache-misses",
|
||||||
|
"name": "Troubleshoot Cache Misses",
|
||||||
|
"path": "/recipes/other/troubleshoot-cache-misses"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "/packages/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": "/packages/nx/documents/reset"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"share-your-cache": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/share-your-cache",
|
||||||
|
"id": "share-your-cache",
|
||||||
|
"name": "Share Your Cache",
|
||||||
|
"path": "/core-features/share-your-cache"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"explore-graph": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/explore-graph",
|
||||||
|
"id": "explore-graph",
|
||||||
|
"name": "Explore the Graph",
|
||||||
|
"path": "/core-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": "/more-concepts/how-project-graph-is-built"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/extending-nx/project-graph-plugins",
|
||||||
|
"id": "project-graph-plugins",
|
||||||
|
"name": "Project Graph Plugins",
|
||||||
|
"path": "/recipes/advanced-plugins/project-graph-plugins"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/analyze-source-files",
|
||||||
|
"id": "analyze-source-files",
|
||||||
|
"name": "Disable Graph Links Created from Analyzing Source Files",
|
||||||
|
"path": "/recipes/other/analyze-source-files"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/export-project-graph",
|
||||||
|
"id": "export-project-graph",
|
||||||
|
"name": "Export Project Graph",
|
||||||
|
"path": "/recipes/other/export-project-graph"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/resolve-circular-dependencies",
|
||||||
|
"id": "resolve-circular-dependencies",
|
||||||
|
"name": "Resolve Circular Dependencies",
|
||||||
|
"path": "/recipes/other/resolve-circular-dependencies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "/packages/nx/documents/dep-graph"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"distribute-task-execution": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/distribute-task-execution",
|
||||||
|
"id": "distribute-task-execution",
|
||||||
|
"name": "Distribute Task Execution",
|
||||||
|
"path": "/core-features/distribute-task-execution"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/concepts/improve-worst-case-ci-times",
|
||||||
|
"id": "dte",
|
||||||
|
"name": "Improve Worst Case CI Times",
|
||||||
|
"path": "/concepts/dte"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/concepts/illustrated-dte-guide",
|
||||||
|
"id": "illustrated-dte",
|
||||||
|
"name": "Illustrated Distributed Task Execution",
|
||||||
|
"path": "/more-concepts/illustrated-dte"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "",
|
||||||
|
"id": "nx-cloud-documentation",
|
||||||
|
"name": "Nx Cloud Documentation",
|
||||||
|
"path": "/nx-cloud/intro/what-is-nx-cloud"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/ci-overview",
|
||||||
|
"id": "ci-setup",
|
||||||
|
"name": "CI Setup",
|
||||||
|
"path": "/recipes/ci/ci-setup"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "/packages/nx/documents/connect-to-nx-cloud"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"integrate-with-editors": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/integrate-with-editors",
|
||||||
|
"id": "integrate-with-editors",
|
||||||
|
"name": "Integrate with Editors",
|
||||||
|
"path": "/core-features/integrate-with-editors"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/console-generate-command",
|
||||||
|
"id": "console-generate-command",
|
||||||
|
"name": "Nx Console Generate Command",
|
||||||
|
"path": "/recipes/nx-console/console-generate-command"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/console-run-command",
|
||||||
|
"id": "console-run-command",
|
||||||
|
"name": "Nx Console Run Command",
|
||||||
|
"path": "/recipes/nx-console/console-run-command"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/console-add-dependency-command",
|
||||||
|
"id": "console-add-dependency-command",
|
||||||
|
"name": "Nx Console Add Dependency Command",
|
||||||
|
"path": "/recipes/nx-console/console-add-dependency-command"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/console-project-pane",
|
||||||
|
"id": "console-project-pane",
|
||||||
|
"name": "Nx Console Project Pane",
|
||||||
|
"path": "/recipes/nx-console/console-project-pane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/console-shortcuts",
|
||||||
|
"id": "console-shortcuts",
|
||||||
|
"name": "Nx Console Keyboard Shortcuts",
|
||||||
|
"path": "/recipes/nx-console/console-shortcuts"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"automate-updating-dependencies": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/automate-updating-dependencies",
|
||||||
|
"id": "automate-updating-dependencies",
|
||||||
|
"name": "Automate Updating Dependencies",
|
||||||
|
"path": "/core-features/automate-updating-dependencies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/advanced-update",
|
||||||
|
"id": "advanced-update",
|
||||||
|
"name": "Advanced Update Nx",
|
||||||
|
"path": "/recipes/other/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": "/packages/nx/documents/migrate"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enforce-project-boundaries": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/core-features/enforce-project-boundaries",
|
||||||
|
"id": "enforce-project-boundaries",
|
||||||
|
"name": "Enforce Project Boundaries",
|
||||||
|
"path": "/core-features/enforce-project-boundaries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/monorepo-nx-enterprise",
|
||||||
|
"id": "monorepo-nx-enterprise",
|
||||||
|
"name": "Using Nx at Enterprises",
|
||||||
|
"path": "/more-concepts/monorepo-nx-enterprise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/workspace/applications-and-libraries",
|
||||||
|
"id": "applications-and-libraries",
|
||||||
|
"name": "Applications and Libraries",
|
||||||
|
"path": "/more-concepts/applications-and-libraries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/workspace/creating-libraries",
|
||||||
|
"id": "creating-libraries",
|
||||||
|
"name": "Creating Libraries",
|
||||||
|
"path": "/more-concepts/creating-libraries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/workspace/library-types",
|
||||||
|
"id": "library-types",
|
||||||
|
"name": "Library Types",
|
||||||
|
"path": "/more-concepts/library-types"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/workspace/grouping-libraries",
|
||||||
|
"id": "grouping-libraries",
|
||||||
|
"name": "Grouping Libraries",
|
||||||
|
"path": "/more-concepts/grouping-libraries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/reference/nxignore",
|
||||||
|
"id": "nxignore",
|
||||||
|
"name": ".nxignore",
|
||||||
|
"path": "/reference/nxignore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "",
|
||||||
|
"id": "nxjson-workspaceLayout",
|
||||||
|
"name": "nx.json workspaceLayout property",
|
||||||
|
"path": "/reference/nx-json#workspace-layout"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/eslint",
|
||||||
|
"id": "eslint",
|
||||||
|
"name": "Using ESLint in Nx Workspaces",
|
||||||
|
"path": "/recipes/other/eslint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/ban-dependencies-with-tags",
|
||||||
|
"id": "ban-dependencies-with-tags",
|
||||||
|
"name": "Ban Dependencies with Certain Tags",
|
||||||
|
"path": "/recipes/other/ban-dependencies-with-tags"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/tag-multiple-dimensions",
|
||||||
|
"id": "tag-multiple-dimensions",
|
||||||
|
"name": "Tag in Multiple Dimensions",
|
||||||
|
"path": "/recipes/other/tag-multiple-dimensions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/ban-external-imports",
|
||||||
|
"id": "ban-external-imports",
|
||||||
|
"name": "Ban External Imports",
|
||||||
|
"path": "/recipes/other/ban-external-imports"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/tags-allow-list",
|
||||||
|
"id": "tags-allow-list",
|
||||||
|
"name": "Tags Allow List",
|
||||||
|
"path": "/recipes/other/tags-allow-list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "/packages/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": "/packages/nx/documents/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/generated/packages/nx/documents/workspace-lint",
|
||||||
|
"id": "workspace-lint",
|
||||||
|
"name": "workspace-lint",
|
||||||
|
"path": "/packages/nx/documents/workspace-lint"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use-task-executors": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/plugin-features/use-task-executors",
|
||||||
|
"id": "use-task-executors",
|
||||||
|
"name": "Use Task Executors",
|
||||||
|
"path": "/plugin-features/use-task-executors"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/concepts/task-pipeline-configuration",
|
||||||
|
"id": "task-pipeline-configuration",
|
||||||
|
"name": "Task Pipeline Configuration",
|
||||||
|
"path": "/concepts/task-pipeline-configuration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/incremental-builds",
|
||||||
|
"id": "incremental-builds",
|
||||||
|
"name": "Incremental Builds",
|
||||||
|
"path": "/more-concepts/incremental-builds"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/reference/project-configuration",
|
||||||
|
"id": "project-configuration",
|
||||||
|
"name": "Project Configuration",
|
||||||
|
"path": "/reference/project-configuration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/use-executor-configurations",
|
||||||
|
"id": "use-executor-configurations",
|
||||||
|
"name": "Use Executor Configurations",
|
||||||
|
"path": "/recipes/executors/use-executor-configurations"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/running-custom-commands",
|
||||||
|
"id": "run-commands-executor",
|
||||||
|
"name": "Running Custom Commands",
|
||||||
|
"path": "/recipes/executors/run-commands-executor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/local-executors",
|
||||||
|
"id": "creating-custom-executors",
|
||||||
|
"name": "Local Executors",
|
||||||
|
"path": "/recipes/executors/creating-custom-executors"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/compose-executors",
|
||||||
|
"id": "compose-executors",
|
||||||
|
"name": "Compose Executors",
|
||||||
|
"path": "/recipes/executors/compose-executors"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/module-federation/faster-builds",
|
||||||
|
"id": "faster-builds",
|
||||||
|
"name": "Faster Builds with Module Federation",
|
||||||
|
"path": "/recipes/module-federation/faster-builds"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/module-federation-with-ssr",
|
||||||
|
"id": "module-federation-with-ssr",
|
||||||
|
"name": "Setup Module Federation with SSR for Angular and React",
|
||||||
|
"path": "/recipes/module-federation/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/module-federation/dynamic-module-federation-with-angular"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/performance-profiling",
|
||||||
|
"id": "performance-profiling",
|
||||||
|
"name": "Profiling Build Performance",
|
||||||
|
"path": "/recipes/other/performance-profiling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/customize-webpack",
|
||||||
|
"id": "customize-webpack",
|
||||||
|
"name": "Customizing Webpack Config",
|
||||||
|
"path": "/recipes/other/customize-webpack"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "/packages/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": "/packages/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": "/packages/nx/documents/affected"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use-code-generators": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/plugin-features/use-code-generators",
|
||||||
|
"id": "use-code-generators",
|
||||||
|
"name": "Use Code Generators",
|
||||||
|
"path": "/plugin-features/use-code-generators"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/monorepo-nx-enterprise",
|
||||||
|
"id": "monorepo-nx-enterprise",
|
||||||
|
"name": "Using Nx at Enterprises",
|
||||||
|
"path": "/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/local-generators",
|
||||||
|
"id": "local-generators",
|
||||||
|
"name": "Local Generators",
|
||||||
|
"path": "/recipes/generators/local-generators"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/generators/composing-generators",
|
||||||
|
"id": "composing-generators",
|
||||||
|
"name": "Composing Generators",
|
||||||
|
"path": "/recipes/generators/composing-generators"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/generators/generator-options",
|
||||||
|
"id": "generator-options",
|
||||||
|
"name": "Generator Options",
|
||||||
|
"path": "/recipes/generators/generator-options"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/generators/creating-files",
|
||||||
|
"id": "creating-files",
|
||||||
|
"name": "Creating Files",
|
||||||
|
"path": "/recipes/generators/creating-files"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/generators/modifying-files",
|
||||||
|
"id": "modifying-files",
|
||||||
|
"name": "Modifying Files",
|
||||||
|
"path": "/recipes/generators/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": "/packages/nx/documents/generate"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"create-your-own-plugin": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/plugin-features/create-your-own-plugin",
|
||||||
|
"id": "create-your-own-plugin",
|
||||||
|
"name": "Create Your Own Plugin",
|
||||||
|
"path": "/plugin-features/create-your-own-plugin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/nx-devkit-angular-devkit",
|
||||||
|
"id": "nx-devkit-angular-devkit",
|
||||||
|
"name": "Nx Devkit and Angular Devkit",
|
||||||
|
"path": "/more-concepts/nx-devkit-angular-devkit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "",
|
||||||
|
"id": "packages-devkit",
|
||||||
|
"name": "Nx Devkit",
|
||||||
|
"path": "/packages#devkit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/extending-nx/project-inference-plugins",
|
||||||
|
"id": "project-inference-plugins",
|
||||||
|
"name": "Project Inference Plugins",
|
||||||
|
"path": "/recipes/advanced-plugins/project-inference-plugins"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/extending-nx/project-graph-plugins",
|
||||||
|
"id": "project-graph-plugins",
|
||||||
|
"name": "Project Graph Plugins",
|
||||||
|
"path": "/recipes/advanced-plugins/project-graph-plugins"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"intro": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/concepts/integrated-vs-package-based",
|
||||||
|
"id": "integrated-vs-package-based",
|
||||||
|
"name": "Integrated Repos vs. Package-Based Repos",
|
||||||
|
"path": "/concepts/integrated-vs-package-based"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/mental-model",
|
||||||
|
"id": "mental-model",
|
||||||
|
"name": "Mental Model",
|
||||||
|
"path": "/concepts/mental-model"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"environment-variables": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/reference/environment-variables",
|
||||||
|
"id": "environment-variables",
|
||||||
|
"name": "Environment Variables",
|
||||||
|
"path": "/reference/environment-variables"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/define-environment-variables",
|
||||||
|
"id": "define-environment-variables",
|
||||||
|
"name": "Define Environment Variables",
|
||||||
|
"path": "/recipes/environment-variables/define-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/environment-variables/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/environment-variables/use-environment-variables-in-angular"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/performance-profiling",
|
||||||
|
"id": "performance-profiling",
|
||||||
|
"name": "Profiling Build Performance",
|
||||||
|
"path": "/recipes/other/performance-profiling"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"docker": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/ci-deployment",
|
||||||
|
"id": "ci-deployment",
|
||||||
|
"name": "Prepare applications for deployment via CI",
|
||||||
|
"path": "/recipes/ci/ci-deployment"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"deploy": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/ci-deployment",
|
||||||
|
"id": "ci-deployment",
|
||||||
|
"name": "Prepare applications for deployment via CI",
|
||||||
|
"path": "/recipes/ci/ci-deployment"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"module-federation": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/module-federation/faster-builds",
|
||||||
|
"id": "faster-builds",
|
||||||
|
"name": "Faster Builds with Module Federation",
|
||||||
|
"path": "/recipes/module-federation/faster-builds"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/module-federation-with-ssr",
|
||||||
|
"id": "module-federation-with-ssr",
|
||||||
|
"name": "Setup Module Federation with SSR for Angular and React",
|
||||||
|
"path": "/recipes/module-federation/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/module-federation/dynamic-module-federation-with-angular"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"angular": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/module-federation/faster-builds",
|
||||||
|
"id": "faster-builds",
|
||||||
|
"name": "Faster Builds with Module Federation",
|
||||||
|
"path": "/recipes/module-federation/faster-builds"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/module-federation-with-ssr",
|
||||||
|
"id": "module-federation-with-ssr",
|
||||||
|
"name": "Setup Module Federation with SSR for Angular and React",
|
||||||
|
"path": "/recipes/module-federation/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/module-federation/dynamic-module-federation-with-angular"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"react": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/guides/module-federation/faster-builds",
|
||||||
|
"id": "faster-builds",
|
||||||
|
"name": "Faster Builds with Module Federation",
|
||||||
|
"path": "/recipes/module-federation/faster-builds"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/module-federation-with-ssr",
|
||||||
|
"id": "module-federation-with-ssr",
|
||||||
|
"name": "Setup Module Federation with SSR for Angular and React",
|
||||||
|
"path": "/recipes/module-federation/module-federation-with-ssr"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storybook": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/one-storybook-for-all",
|
||||||
|
"id": "one-storybook-for-all",
|
||||||
|
"name": "Publishing Storybook: One main Storybook instance for all projects",
|
||||||
|
"path": "/recipes/storybook/one-storybook-for-all"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/one-storybook-per-scope",
|
||||||
|
"id": "one-storybook-per-scope",
|
||||||
|
"name": "Publishing Storybook: One Storybook instance per scope",
|
||||||
|
"path": "/recipes/storybook/one-storybook-per-scope"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/one-storybook-with-composition",
|
||||||
|
"id": "one-storybook-with-composition",
|
||||||
|
"name": "Publishing Storybook: One main Storybook instance using Storybook Composition",
|
||||||
|
"path": "/recipes/storybook/one-storybook-with-composition"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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": "/packages/nx/documents/watch"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "add-nx-to-monorepo",
|
|
||||||
"packageName": "add-nx-to-monorepo",
|
|
||||||
"description": "Make any monorepo faster by adding Nx to it",
|
|
||||||
"root": "/packages/add-nx-to-monorepo",
|
|
||||||
"source": "/packages/add-nx-to-monorepo/src",
|
|
||||||
"documentation": [],
|
|
||||||
"generators": [],
|
|
||||||
"executors": []
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,20 @@
|
|||||||
|
# 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)_ |
|
||||||
|
| --------------- | ------------------------------ | -------------------- |
|
||||||
|
| ~15.0.0 | **latest** | 15.2.0 <= latest |
|
||||||
|
| ~14.2.0 | **15.1.1** | 14.6.0 <= 15.1.1 |
|
||||||
|
| ~14.1.0 | **14.5.10** | 14.5.0 <= 14.5.10 |
|
||||||
|
| ~14.0.0 | **14.4.3** | 14.2.1 <= 14.4.3 |
|
||||||
|
| ^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 |
|
||||||
|
|
||||||
|
If you would like to see how the supported versions of Node and Typescript for the version of Angular you are using, [Lars Gyrup Brink Nielsen](https://twitter.com/LayZeeDK) has a very good resource for that [here](https://gist.github.com/LayZeeDK/c822cc812f75bb07b7c55d07ba2719b3).
|
||||||
88
docs/generated/packages/angular/documents/overview.md
Normal file
88
docs/generated/packages/angular/documents/overview.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
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, Cypress, Karma, and Protractor.
|
||||||
|
- Generators to help scaffold code quickly, including:
|
||||||
|
- Micro Frontends
|
||||||
|
- Libraries, both internal to your codebase and publishable to npm
|
||||||
|
- Upgrading AngularJS applications
|
||||||
|
- 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/adopting-nx/migration-angular).
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
## Setting up the Angular plugin
|
||||||
|
|
||||||
|
Adding the Angular plugin to an existing Nx workspace can be done with the following:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yarn add -D @nrwl/angular
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm install -D @nrwl/angular
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using the Angular Plugin
|
||||||
|
|
||||||
|
### Generating an application
|
||||||
|
|
||||||
|
It's straightforward to generate an Angular application:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/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 @nrwl/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](/more-concepts/creating-libraries)
|
||||||
|
- [Library Types](/more-concepts/library-types)
|
||||||
|
- [Buildable and Publishable Libraries](/more-concepts/buildable-and-publishable-libraries)
|
||||||
|
|
||||||
|
## More Documentation
|
||||||
|
|
||||||
|
- [Angular Nx Tutorial](/angular-tutorial/1-code-generation)
|
||||||
|
- [Migrating from the Angular CLI](recipe/migration-angular)
|
||||||
|
- [Setup Module Federation with Angular and Nx](/recipes/module-federation/faster-builds)
|
||||||
|
- [Using NgRx](/recipes/other/misc-ngrx)
|
||||||
|
- [Using Data Persistence operators](/recipes/other/misc-data-persistence)
|
||||||
|
- [Upgrading an AngularJS application to Angular](/recipes/adopting-nx/migration-angularjs)
|
||||||
|
- [Using Tailwind CSS with Angular projects](/recipes/other/using-tailwind-css-with-angular-projects)
|
||||||
@ -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\": \"@nrwl/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\": \"@nrwl/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"
|
||||||
|
}
|
||||||
80
docs/generated/packages/angular/executors/file-server.json
Normal file
80
docs/generated/packages/angular/executors/file-server.json
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"name": "file-server",
|
||||||
|
"implementation": "/packages/angular/src/executors/file-server/file-server.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"title": "File Server",
|
||||||
|
"description": "Serves a static 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": false
|
||||||
|
},
|
||||||
|
"spa": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Redirect 404 errors to index.html (useful for SPA's).",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["buildTarget"],
|
||||||
|
"examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Serve static files with http-server\" %}\n\nSet up `http-server` to host static files on a local webserver.\n\n```json\n{\n \"static-serve\": {\n \"executor\": \"@nrwl/angular:file-server\",\n \"options\": {\n \"buildTarget\": \"app:build\",\n \"port\": 4201\n }\n }\n}\n```\n\n{% /tab %}\n\n{% tab label=\"Watch for changes\" %}\n\nTo allow watching for changes, simply add the watch property.\n\n```json\n{\n \"static-serve\": {\n \"executor\": \"@nrwl/angular:file-server\",\n \"options\": {\n \"buildTarget\": \"app:build\",\n \"port\": 4201,\n \"watch\": true\n }\n }\n}\n```\n\n{% /tab %}\n\n{% /tabs %}\n",
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Serves a static web application from a folder.",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/executors/file-server/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
@ -0,0 +1,121 @@
|
|||||||
|
{
|
||||||
|
"name": "module-federation-dev-server",
|
||||||
|
"implementation": "/packages/angular/src/builders/module-federation-dev-server/module-federation-dev-server.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema",
|
||||||
|
"title": "Schema for 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.",
|
||||||
|
"type": "object",
|
||||||
|
"presets": [
|
||||||
|
{ "name": "Using a Different Port", "keys": ["browserTarget", "port"] }
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"browserTarget": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A browser builder target to serve 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]+)?$"
|
||||||
|
},
|
||||||
|
"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)."
|
||||||
|
},
|
||||||
|
"skipRemotes": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "type": "string" },
|
||||||
|
"description": "List of remote applications to not automatically serve, either statically or in development mode. This can be useful for multi-repository module federation setups where the host application uses a remote application from an external repository."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"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\": \"@nrwl/angular:module-federation-dev-server\",\n \"configurations\": {\n \"production\": {\n \"browserTarget\": \"host:build:production\"\n },\n \"development\": {\n \"browserTarget\": \"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\": \"@nrwl/angular:module-federation-dev-server\",\n \"configurations\": {\n \"production\": {\n \"browserTarget\": \"host:build:production\"\n },\n \"development\": {\n \"browserTarget\": \"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/builders/module-federation-dev-server/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
{
|
||||||
|
"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)."
|
||||||
|
},
|
||||||
|
"skipRemotes": {
|
||||||
|
"type": "array",
|
||||||
|
"items": { "type": "string" },
|
||||||
|
"description": "List of remote applications to not automatically serve, either statically or in development mode. This can be useful for multi-repository module federation setups where the host application uses a remote application from an external repository."
|
||||||
|
},
|
||||||
|
"verbose": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Adds more details to output logging."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"name": "ng-packagr-lite",
|
||||||
|
"implementation": "/packages/angular/src/executors/ng-packagr-lite/ng-packagr-lite.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://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 `@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`.",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"presets": [
|
||||||
|
{
|
||||||
|
"name": "Buildable Library with Tailwind",
|
||||||
|
"keys": ["project", "tailwindConfig"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Updating Project Dependencies for Buildable Library",
|
||||||
|
"keys": [
|
||||||
|
"project",
|
||||||
|
"updateBuildableProjectDepsInPackageJson",
|
||||||
|
"buildableProjectDepsInPackageJsonType"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"watch": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to run a build when any file changes.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"updateBuildableProjectDepsInPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to update the buildable project dependencies in package.json.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"buildableProjectDepsInPackageJsonType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "When `updateBuildableProjectDepsInPackageJson` is `true`, this adds dependencies to either `peerDependencies` or `dependencies`.",
|
||||||
|
"enum": ["dependencies", "peerDependencies"],
|
||||||
|
"default": "peerDependencies"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
76
docs/generated/packages/angular/executors/package.json
Normal file
76
docs/generated/packages/angular/executors/package.json
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"name": "package",
|
||||||
|
"implementation": "/packages/angular/src/executors/package/package.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://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",
|
||||||
|
"updateBuildableProjectDepsInPackageJson",
|
||||||
|
"buildableProjectDepsInPackageJsonType"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"watch": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to run a build when any file changes.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"updateBuildableProjectDepsInPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to update the buildable project dependencies in package.json.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"buildableProjectDepsInPackageJsonType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "When `updateBuildableProjectDepsInPackageJson` is `true`, this adds dependencies to either `peerDependencies` or `dependencies`.",
|
||||||
|
"enum": [
|
||||||
|
"dependencies",
|
||||||
|
"peerDependencies"
|
||||||
|
],
|
||||||
|
"default": "peerDependencies"
|
||||||
|
},
|
||||||
|
"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.",
|
||||||
|
"x-completion-type": "file",
|
||||||
|
"x-completion-glob": "tailwind.config.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
691
docs/generated/packages/angular/executors/webpack-browser.json
Normal file
691
docs/generated/packages/angular/executors/webpack-browser.json
Normal file
@ -0,0 +1,691 @@
|
|||||||
|
{
|
||||||
|
"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<object|Function>`\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\": \"@nrwl/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](/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\": \"@nrwl/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|styl)$"
|
||||||
|
},
|
||||||
|
"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|styl)$"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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.\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.",
|
||||||
|
"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 seperate bundle containing only vendor libraries. This option should only used for development.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"commonChunk": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Generate a seperate 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 packages that are allowed to be used without a build time warning.",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,115 @@
|
|||||||
|
{
|
||||||
|
"name": "webpack-dev-server",
|
||||||
|
"implementation": "/packages/angular/src/builders/webpack-dev-server/webpack-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": "The webpack-dev-server executor is very similar to the standard dev 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.",
|
||||||
|
"examplesFile": "##### Seving an application with a custom webpack configuration\n\nThis executor should be used along with `@nrwl/angular:webpack-browser` to serve an application using a custom webpack configuration.\n\nYour `project.json` file should contain a `build` and `serve` target that matches the following:\n\n```json\n\"build\": {\n \"executor\": \"@nrwl/angular:webpack-browser\",\n \"options\": {\n ...\n \"customWebpackConfig\": {\n \"path\": \"apps/appName/webpack.config.js\"\n }\n }\n},\n\"serve\": {\n \"executor\": \"@nrwl/angular:webpack-dev-server\",\n \"configurations\": {\n \"production\": {\n \"browserTarget\": \"appName:build:production\"\n },\n \"development\": {\n \"browserTarget\": \"appName:build:development\"\n }\n },\n \"defaultConfiguration\": \"development\",\n}\n```\n",
|
||||||
|
"type": "object",
|
||||||
|
"presets": [
|
||||||
|
{ "name": "Using a Different Port", "keys": ["browserTarget", "port"] }
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"browserTarget": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A browser builder target to serve 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]+)?$"
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["browserTarget"]
|
||||||
|
},
|
||||||
|
"description": "The `webpack-dev-server` executor is very similar to the standard `dev-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.",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/builders/webpack-dev-server/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
301
docs/generated/packages/angular/executors/webpack-server.json
Normal file
301
docs/generated/packages/angular/executors/webpack-server.json
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
{
|
||||||
|
"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-dev-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.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"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": []
|
||||||
|
},
|
||||||
|
"bundleDependencies": {
|
||||||
|
"description": "Which external dependencies to bundle into the bundle. By default, all of node_modules will be bundled.",
|
||||||
|
"default": true,
|
||||||
|
"oneOf": [
|
||||||
|
{ "type": "boolean" },
|
||||||
|
{ "type": "string", "enum": ["none", "all"] }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"buildLibsFromSource": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Read buildable libraries from source instead of building them separately.",
|
||||||
|
"default": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["outputPath", "main", "tsConfig"],
|
||||||
|
"definitions": {
|
||||||
|
"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"
|
||||||
|
}
|
||||||
57
docs/generated/packages/angular/generators/add-linting.json
Normal file
57
docs/generated/packages/angular/generators/add-linting.json
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"name": "add-linting",
|
||||||
|
"factory": "./src/generators/add-linting/add-linting",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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 @nrwl/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."
|
||||||
|
},
|
||||||
|
"projectName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project."
|
||||||
|
},
|
||||||
|
"projectRoot": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The path to the root of the selected project."
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
171
docs/generated/packages/angular/generators/application.json
Normal file
171
docs/generated/packages/angular/generators/application.json
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
{
|
||||||
|
"name": "application",
|
||||||
|
"factory": "./src/generators/application/application",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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"
|
||||||
|
},
|
||||||
|
"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) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "sass",
|
||||||
|
"label": "SASS(.sass) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "less",
|
||||||
|
"label": "LESS [ http://lesscss.org ]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"routing": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Generate a routing module.",
|
||||||
|
"default": false,
|
||||||
|
"x-prompt": "Would you like to configure routing for this application?"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
},
|
||||||
|
"unitTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["karma", "jest", "none"],
|
||||||
|
"description": "Test runner to use for unit tests.",
|
||||||
|
"default": "jest"
|
||||||
|
},
|
||||||
|
"e2eTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["protractor", "cypress", "none"],
|
||||||
|
"description": "Test runner to use for end to end (E2E) tests. The `protractor` option is deprecated and it will be removed in v15.",
|
||||||
|
"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 `<projectRoot>/project.json` rather than including it inside `workspace.json`.",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"skipDefaultProject": {
|
||||||
|
"description": "Skip setting the project as the default project. When `false` (the default), the project is set as the default project only if there is no default project already set.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"standalone": {
|
||||||
|
"description": "Generate an application that is setup to use standalone components.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"rootProject": {
|
||||||
|
"description": "Create an application at the root of the workspace.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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```bash\nnx g @nrwl/angular:app my-app --directory=my-dir --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 @nrwl/angular:app my-app --inlineStyle --inlineTemplate\n```\n\n{% /tab %}\n\n{% tab label=\"Standalone Components application\" %}\n\nCreate an application that is setup to use standalone components:\n\n```bash\nnx g @nrwl/angular:app my-app --standalone\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 @nrwl/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.ts",
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/application/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "change-storybook-targets",
|
||||||
|
"factory": "./src/generators/change-storybook-targets/change-storybook-targets",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxAngularChangeStorybookTargetsGenerator",
|
||||||
|
"title": "Change Storybook targets",
|
||||||
|
"description": "Change the Storybook target executors.",
|
||||||
|
"type": "object",
|
||||||
|
"cli": "nx",
|
||||||
|
"properties": {
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [],
|
||||||
|
"examplesFile": "This generator will change the `storybook` and `build-storybook` targets in all your Angular projects that are configured to use Storybook. The new target configuration will use the native Storybook builders (`@storybook/angular:build-storybook` and `@storybook/angular:start-storybook`) instead of the Nx Storybook builders (`@nrwl/storybook:build-storybook` and `@nrwl/storybook:storybook`).\n\nThis generator is usually invoked through a migrator, when you are using `nx migrate` to upgrade your workspace to Nx `14.1.8` or later.\n\nIf you are on Nx `14.1.8` or later and you did not use `nx migrate`, you can run this generator manually by running the following command:\n\n```bash\nnx g @nrwl/angular:change-storybook-targets\n```\n\nYou can read more about how this generator works, and why we are changing the Storybook targets, in the [Angular Storybook targets documentation page](/packages/storybook/documents/angular-storybook-targets).\n",
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Change storybook targets for Angular projects to use @storybook/angular executors",
|
||||||
|
"implementation": "/packages/angular/src/generators/change-storybook-targets/change-storybook-targets.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/change-storybook-targets/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"name": "component-cypress-spec",
|
||||||
|
"factory": "./src/generators/component-cypress-spec/component-cypress-spec",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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.",
|
||||||
|
"examples": ["ui-samples"]
|
||||||
|
},
|
||||||
|
"projectPath": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path to the project.",
|
||||||
|
"examples": ["libs/ui-samples"]
|
||||||
|
},
|
||||||
|
"componentName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Class name of the component.",
|
||||||
|
"examples": ["AwesomeComponent"]
|
||||||
|
},
|
||||||
|
"componentPath": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Relative path to the component file from the project root.",
|
||||||
|
"examples": ["awesome"]
|
||||||
|
},
|
||||||
|
"componentFileName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Component file name without the `.ts` extension.",
|
||||||
|
"examples": ["awesome.component"]
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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"
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"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"]
|
||||||
|
},
|
||||||
|
"componentName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Class name of the component.",
|
||||||
|
"examples": ["AwesomeComponent"]
|
||||||
|
},
|
||||||
|
"componentPath": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Relative path to the component file from the project root.",
|
||||||
|
"examples": ["awesome"]
|
||||||
|
},
|
||||||
|
"componentFileName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Component file name without the `.ts` extension.",
|
||||||
|
"examples": ["awesome.component"]
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"name": "component-test",
|
||||||
|
"factory": "./src/generators/component-test/component-test",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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.",
|
||||||
|
"x-dropdown": "projects",
|
||||||
|
"x-prompt": "What project is the component located in?"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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"
|
||||||
|
}
|
||||||
123
docs/generated/packages/angular/generators/component.json
Normal file
123
docs/generated/packages/angular/generators/component.json
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"name": "component",
|
||||||
|
"factory": "./src/generators/component/component",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema",
|
||||||
|
"$id": "SchematicsAngularComponent",
|
||||||
|
"title": "Angular Component Schema",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"description": "Creates a new, generic Angular component definition in the given or default project.",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"path": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "path",
|
||||||
|
"description": "The path at which to create the component file, relative to the current workspace. Default is a folder with the same name as the component in the project root.",
|
||||||
|
"visible": false
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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": false
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["name"],
|
||||||
|
"examplesFile": "## Examples\n\n{% tabs %}\n{% tab label=\"Simple Component\" %}\n\nCreate a component named `my-component`:\n\n```bash\nnx g @nrwl/angular:component my-component\n```\n\n{% /tab %}\n\n{% tab label=\"Standalone Component\" %}\n\nCreate a standalone component named `my-component`:\n\n```bash\nnx g @nrwl/angular:component my-component --standalone\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 @nrwl/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 @nrwl/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.ts",
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/component/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"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 @nrwl/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?"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"name": "convert-tslint-to-eslint",
|
||||||
|
"factory": "./src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint#conversionGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxAngularConvertTSLintToESLintGenerator",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Convert an Angular project from TSLint to ESLint",
|
||||||
|
"description": "Convert an Angular project from TSLint to ESLint. NOTE: Does not work in `--dry-run mode`.",
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"command": "nx g convert-tslint-to-eslint myapp",
|
||||||
|
"description": "The following will first configure the project, `myapp`, the same way a _new_ project is configured i.e. It will use Nx's new recommended ESLint config. By default, this also adds the existing TSLint configuration on top of the default ESLint config from Nx to continue checking what it checks today. This is done by migrating TSLint rules to their equivalent ESLint rules to the best of its abilities. Some TSLint rules may not have ESLint equivalents and will be reported during the conversion"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "nx g convert-tslint-to-eslint myapp --ignoreExistingTslintConfig=true",
|
||||||
|
"description": "If your TSLint config isn't extremely important to you, ignoring it makes this process more deterministic. Unlike the prior example, this will discard the existing TSLint configuration, meaning that the project will only have the Nx's latest recommended ESLint configuration which may be good enough for some workspaces"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "nx g convert-tslint-to-eslint myapp --removeTSLintIfNoMoreTSLintTargets=false",
|
||||||
|
"description": "By default, this process removes the TSLint related dependencies and configuration once no more projects use TSLint. This can be disabled with the following flag to keep TSLint related dependencies and configuration in the repo"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"project": {
|
||||||
|
"description": "The name of the Angular project to convert. Please note, if the project is an Angular app with an associated Cypress e2e project, it will also attempt to convert that.",
|
||||||
|
"type": "string",
|
||||||
|
"$default": { "$source": "argv", "index": 0 },
|
||||||
|
"x-prompt": "Which Angular project would you like to convert from TSLint to ESLint?"
|
||||||
|
},
|
||||||
|
"ignoreExistingTslintConfig": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, it will not use existing TSLint config as a reference, it will just reset the project with the latest recommended ESLint config.",
|
||||||
|
"default": false,
|
||||||
|
"x-prompt": "Would you like to ignore the existing TSLint config? Recommended if the TSLint config has not been altered much as it makes the new ESLint config cleaner."
|
||||||
|
},
|
||||||
|
"removeTSLintIfNoMoreTSLintTargets": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If this conversion leaves no more TSLint usage in the workspace, it will remove TSLint and related dependencies and configuration.",
|
||||||
|
"default": true,
|
||||||
|
"x-prompt": "Would you like to remove TSLint and its related config if there are no TSLint projects remaining after this conversion?"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["project"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Converts a project from TSLint to ESLint.",
|
||||||
|
"implementation": "/packages/angular/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint#conversionGenerator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/convert-tslint-to-eslint/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"name": "cypress-component-configuration",
|
||||||
|
"factory": "./src/generators/cypress-component-configuration/cypress-component-configuration",
|
||||||
|
"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",
|
||||||
|
"x-dropdown": "projects",
|
||||||
|
"x-prompt": "What project should we add Cypress component testing to?"
|
||||||
|
},
|
||||||
|
"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+)?$"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting files",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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](/packages/angular/generators/storybook-configuration)\n{% /callout %}\n\nThis generator is designed to get your Angular project up and running with Cypress Component Testing.\n\n```shell\nnx g @nrwl/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 '@nrwl/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 '@nrwl/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 `@nrwl/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 @nrwl/angular:cypress-component-configuration --project=my-cool-angular-project\n```\n\nManually specifying the build target\n\n```shell\nnx g @nrwl/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 @nrwl/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\": \"@nrwl/cypress:cypress\",\n \"options\": {\n \"cypressConfig\": \"<path-to-project-root>/cypress.config.ts\",\n \"testingType\": \"component\",\n \"devServerTarget\": \"some-angular-app:build\",\n \"skipServe\": true\n }\n }\n }\n}\n```\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.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/cypress-component-configuration/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"name": "downgrade-module",
|
||||||
|
"factory": "./src/generators/downgrade-module/downgrade-module",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxDowngradeModuleGenerator",
|
||||||
|
"title": "Generates downgradeModule setup.",
|
||||||
|
"description": "Sets up a Downgrade Module for using AngularJS and Angular.",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project."
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the main AngularJS module.",
|
||||||
|
"$default": { "$source": "argv", "index": 0 }
|
||||||
|
},
|
||||||
|
"angularJsImport": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Import expression of the AngularJS application (e.g., `--angularJsImport=some_node_module/my_app`)."
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Do not add `@angular/upgrade` to `package.json` (e.g., `--skipPackageJson`).",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["name", "project"],
|
||||||
|
"examplesFile": "## Examples\n\nBelow are some examples of how to generate configuration and setup for using `ngUpgrade`'s `DowngradeModule` for your application.\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\n```bash\nnx g @nrwl/angular:downgrade-module --name=myAngularJsModule --project=myapp\n```\n\n{% /tab %}\n\n{% tab label=\"Setup Router\" %}\n\nAllow a setup that configures routing for `DowngradeModule`.\n\n```bash\nnx g @nrwl/angular:downgrade-module --name=myAngularJsModule --project=myapp --router=true\n```\n\n{% /tab %}\n\n{% /tabs %}\n",
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Sets up a Downgrade Module.",
|
||||||
|
"implementation": "/packages/angular/src/generators/downgrade-module/downgrade-module.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/downgrade-module/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
172
docs/generated/packages/angular/generators/host.json
Normal file
172
docs/generated/packages/angular/generators/host.json
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
{
|
||||||
|
"name": "host",
|
||||||
|
"factory": "./src/generators/host/host",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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 @nrwl/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 }
|
||||||
|
},
|
||||||
|
"remotes": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "The names of the remote applications to add to the host."
|
||||||
|
},
|
||||||
|
"dynamic": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Should the host application use dynamic federation?",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"directory": {
|
||||||
|
"description": "The directory of the new application.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"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) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "sass",
|
||||||
|
"label": "SASS(.sass) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "less",
|
||||||
|
"label": "LESS [ http://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`."
|
||||||
|
},
|
||||||
|
"skipPostInstall": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add or append `ngcc` to the `postinstall` script in `package.json`."
|
||||||
|
},
|
||||||
|
"unitTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["karma", "jest", "none"],
|
||||||
|
"description": "Test runner to use for unit tests.",
|
||||||
|
"default": "jest"
|
||||||
|
},
|
||||||
|
"e2eTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["protractor", "cypress", "none"],
|
||||||
|
"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)."
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"standalone": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Whether to generate a host application that uses standalone components.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"ssr": {
|
||||||
|
"description": "Whether to configure SSR for the host application",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["name"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"x-type": "application",
|
||||||
|
"description": "Generate a Host Angular Module Federation Application.",
|
||||||
|
"implementation": "/packages/angular/src/generators/host/host.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/host/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
86
docs/generated/packages/angular/generators/init.json
Normal file
86
docs/generated/packages/angular/generators/init.json
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/init",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "SchematicsAngularModuleInit",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Init Angular Plugin",
|
||||||
|
"description": "Initializes the `@nrwl/angular` plugin. NOTE: Does not work in the `--dry-run` mode.",
|
||||||
|
"type": "object",
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"command": "nx g @nrwl/angular:init --style=scss",
|
||||||
|
"description": "Installs angular dependencies and initializes the `@nrwl/angular` plugin with the `scss` stylesheet format."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"unitTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["karma", "jest", "none"],
|
||||||
|
"description": "Test runner to use for unit tests.",
|
||||||
|
"default": "jest"
|
||||||
|
},
|
||||||
|
"e2eTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["protractor", "cypress", "none"],
|
||||||
|
"description": "Test runner to use for end to end (e2e) tests.",
|
||||||
|
"default": "cypress"
|
||||||
|
},
|
||||||
|
"skipInstall": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip installing after adding `@nrwl/workspace`.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"linter": {
|
||||||
|
"description": "The tool to use for running lint checks.",
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["eslint", "none"],
|
||||||
|
"default": "eslint"
|
||||||
|
},
|
||||||
|
"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) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "sass",
|
||||||
|
"label": "SASS(.sass) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "less",
|
||||||
|
"label": "LESS [ http://lesscss.org ]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": 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"
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"name": "karma-project",
|
||||||
|
"factory": "./src/generators/karma-project/karma-project",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxKarmaProjectGenerator",
|
||||||
|
"title": "Create Karma Configuration for a project",
|
||||||
|
"description": "Add Karma configuration to an angular project.",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"description": "Skip updating package.json.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["project"],
|
||||||
|
"examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\nTo add karma to project, run the following command.\n\n```bash\nnx g @nrwl/angular:karma-project --project=myapp\n```\n\n{% /tab %}\n\n{% /tabs %}\n",
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Adds Karma configuration to a project.",
|
||||||
|
"implementation": "/packages/angular/src/generators/karma-project/karma-project.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/karma-project/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
34
docs/generated/packages/angular/generators/karma.json
Normal file
34
docs/generated/packages/angular/generators/karma.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "karma",
|
||||||
|
"factory": "./src/generators/karma/karma",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxAngularKarmaGenerator",
|
||||||
|
"title": "Add Karma Configuration to the workspace.",
|
||||||
|
"description": "Add Karma configuration to an Nx workspace.",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"command": "nx g @nrwl/angular:karma",
|
||||||
|
"description": "Add a base karma configuration to the workspace."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Adds Karma configuration to a workspace.",
|
||||||
|
"implementation": "/packages/angular/src/generators/karma/karma.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/karma/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"name": "library-secondary-entry-point",
|
||||||
|
"factory": "./src/generators/library-secondary-entry-point/library-secondary-entry-point",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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-Z].*$"
|
||||||
|
},
|
||||||
|
"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-Z].*$",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"skipModule": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip generating a module for the secondary entry point.",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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 @nrwl/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"
|
||||||
|
}
|
||||||
208
docs/generated/packages/angular/generators/library.json
Normal file
208
docs/generated/packages/angular/generators/library.json
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
{
|
||||||
|
"name": "library",
|
||||||
|
"factory": "./src/generators/library/library",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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-Z].*$"
|
||||||
|
},
|
||||||
|
"directory": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A directory where the library is placed."
|
||||||
|
},
|
||||||
|
"publishable": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Generate a publishable library."
|
||||||
|
},
|
||||||
|
"buildable": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Generate a buildable library."
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"simpleModuleName": {
|
||||||
|
"description": "Keep the module name simple (when using `--directory`).",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"x-deprecated": "Use `simpleName` instead. It will be removed in v16."
|
||||||
|
},
|
||||||
|
"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`."
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"lazy": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Add `RouterModule.forChild` when set to true, and a simple array of routes when set to false."
|
||||||
|
},
|
||||||
|
"parent": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path to the parent route configuration using `loadChildren` or `children`, depending on what `lazy` is set to."
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Add tags to the library (used for linting)."
|
||||||
|
},
|
||||||
|
"unitTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["karma", "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 `<projectRoot>/project.json` rather than including it inside `workspace.json`.",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"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": false
|
||||||
|
},
|
||||||
|
"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 @nrwl/angular:library my-ui-lib --tags=ui\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```bash\nnx g @nrwl/angular:library --directory=nested --importPath=@myorg/nested/my-lib my-lib\n```\n\n{% /tab %}\n\n{% tab label=\"Standalone component\"%}\nCreates the `my-standalone-lib` library with a standalone component as an entry point instead of an ng-module. The component can be used via the `myorg-standalone-component` selector.\n\n```bash\nnx g @nrwl/angular:library --standalone --selector=myorg-standalone-component my-standalone-lib\n```\n\n{% /tab %}\n",
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"aliases": ["lib"],
|
||||||
|
"x-type": "library",
|
||||||
|
"description": "Creates an Angular library.",
|
||||||
|
"implementation": "/packages/angular/src/generators/library/library.ts",
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/library/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
54
docs/generated/packages/angular/generators/move.json
Normal file
54
docs/generated/packages/angular/generators/move.json
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"name": "move",
|
||||||
|
"factory": "./src/generators/move/move#angularMoveGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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 @nrwl/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"
|
||||||
|
},
|
||||||
|
"destination": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The folder to move the Angular project into.",
|
||||||
|
"$default": { "$source": "argv", "index": 0 }
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["projectName", "destination"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"aliases": ["mv"],
|
||||||
|
"description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.",
|
||||||
|
"implementation": "/packages/angular/src/generators/move/move#angularMoveGenerator.ts",
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/move/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
80
docs/generated/packages/angular/generators/ng-add.json
Normal file
80
docs/generated/packages/angular/generators/ng-add.json
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"name": "ng-add",
|
||||||
|
"factory": "./src/generators/ng-add/ng-add",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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": {
|
||||||
|
"npmScope": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Npm scope for importing libs. NOTE: only used if running the generator in an Angular CLI workspace."
|
||||||
|
},
|
||||||
|
"defaultBase": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Default base branch for affected. NOTE: only used if running the generator in an Angular CLI workspace."
|
||||||
|
},
|
||||||
|
"skipInstall": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip installing added packages.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"preserveAngularCliLayout": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Preserve the Angular CLI layout instead of moving the app into apps. NOTE: only used if running the generator in an Angular CLI workspace.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"examplesFile": "## Information\n\nThis generator is usually used as part of the process of migrating from an Angular CLI Workspace to Nx Workspaces using `ng add @nrwl/angular`.\n\nYou can read more about [migrating from Angular CLI to Nx here](https://nx.dev/recipes/adopting-nx/migration-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"
|
||||||
|
}
|
||||||
86
docs/generated/packages/angular/generators/ngrx.json
Normal file
86
docs/generated/packages/angular/generators/ngrx.json
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"name": "ngrx",
|
||||||
|
"factory": "./src/generators/ngrx/ngrx",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxNgrxGenerator",
|
||||||
|
"title": "Add NgRx support to an application or library.",
|
||||||
|
"description": "Adds NgRx support to an application or library.",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"command": "nx g @nrwl/angular:ngrx --root --module=apps/my-app/src/app/app.module.ts --facade=false placeholder",
|
||||||
|
"description": "Add root ngrx configration to the `my-app` application"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "nx g @nrwl/angular:ngrx --module=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"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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`."
|
||||||
|
},
|
||||||
|
"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-prompt": "What is the path to the module where this NgRx state should be registered?"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not update the `package.json` with NgRx dependencies."
|
||||||
|
},
|
||||||
|
"barrels": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Use barrels to re-export actions, state and selectors."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["module", "name"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Adds NgRx support to an application or library.",
|
||||||
|
"implementation": "/packages/angular/src/generators/ngrx/ngrx.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/ngrx/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
167
docs/generated/packages/angular/generators/remote.json
Normal file
167
docs/generated/packages/angular/generators/remote.json
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
{
|
||||||
|
"name": "remote",
|
||||||
|
"factory": "./src/generators/remote/remote",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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 @nrwl/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 }
|
||||||
|
},
|
||||||
|
"host": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the host app to attach this remote app to.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"port": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "The port on which this app should be served."
|
||||||
|
},
|
||||||
|
"directory": {
|
||||||
|
"description": "The directory of the new application.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"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) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "sass",
|
||||||
|
"label": "SASS(.sass) [ http://sass-lang.com ]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "less",
|
||||||
|
"label": "LESS [ http://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`."
|
||||||
|
},
|
||||||
|
"unitTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["karma", "jest", "none"],
|
||||||
|
"description": "Test runner to use for unit tests.",
|
||||||
|
"default": "jest"
|
||||||
|
},
|
||||||
|
"e2eTestRunner": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["protractor", "cypress", "none"],
|
||||||
|
"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)."
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"standalone": {
|
||||||
|
"description": "Whether to generate a remote application with standalone components.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"ssr": {
|
||||||
|
"description": "Whether to configure SSR for the remote application to be consumed by a host application using SSR.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["name"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"x-type": "application",
|
||||||
|
"description": "Generate a Remote Angular Module Federation Application.",
|
||||||
|
"implementation": "/packages/angular/src/generators/remote/remote.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/remote/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"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 @nrwl/angular:scam-directive --project=my-lib --flat=false 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": {
|
||||||
|
"path": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "path",
|
||||||
|
"description": "The path at which to create the directive file, relative to the current workspace. Default is a folder with the same name as the directive in the project root.",
|
||||||
|
"visible": false
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"flat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Create the new files at the top level of the current project.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
66
docs/generated/packages/angular/generators/scam-pipe.json
Normal file
66
docs/generated/packages/angular/generators/scam-pipe.json
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"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 @nrwl/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": {
|
||||||
|
"path": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "path",
|
||||||
|
"description": "The path at which to create the pipe file, relative to the current workspace. Default is a folder with the same name as the pipe in the project root.",
|
||||||
|
"visible": false
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"flat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Create the new files at the top level of the current project.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "scam-to-standalone",
|
||||||
|
"factory": "./src/generators/scam-to-standalone/scam-to-standalone",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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 }
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The project containing the SCAM.",
|
||||||
|
"x-prompt": "What project contains the SCAM?",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting the workspace after the generator completes."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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"
|
||||||
|
}
|
||||||
127
docs/generated/packages/angular/generators/scam.json
Normal file
127
docs/generated/packages/angular/generators/scam.json
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
"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 @nrwl/angular:scam --project=my-lib my-sample",
|
||||||
|
"description": "Generate a `MySampleComponent` component in the `my-lib` library."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Creates a new, generic Angular component definition in the given or default project.",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"path": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "path",
|
||||||
|
"description": "The path at which to create the component file, relative to the current workspace. Default is a folder with the same name as the component in the project root.",
|
||||||
|
"visible": false
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"flat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Create the new files at the top level of the current project.",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
86
docs/generated/packages/angular/generators/setup-mf.json
Normal file
86
docs/generated/packages/angular/generators/setup-mf.json
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"name": "setup-mf",
|
||||||
|
"factory": "./src/generators/setup-mf/setup-mf",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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."
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting the workspace after the generator completes."
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
},
|
||||||
|
"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 `<appName>-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": 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"
|
||||||
|
}
|
||||||
67
docs/generated/packages/angular/generators/setup-ssr.json
Normal file
67
docs/generated/packages/angular/generators/setup-ssr.json
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"name": "setup-ssr",
|
||||||
|
"factory": "./src/generators/setup-ssr/setup-ssr",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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`.",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting the workspace after the generator completes."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "setup-tailwind",
|
||||||
|
"factory": "./src/generators/setup-tailwind/setup-tailwind",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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."
|
||||||
|
},
|
||||||
|
"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`."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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 @nrwl/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"
|
||||||
|
}
|
||||||
58
docs/generated/packages/angular/generators/stories.json
Normal file
58
docs/generated/packages/angular/generators/stories.json
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"name": "stories",
|
||||||
|
"factory": "./src/generators/stories/stories",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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"
|
||||||
|
},
|
||||||
|
"generateCypressSpecs": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Specifies whether to automatically generate `*.spec.ts` files in the Cypress e2e app generated by the `cypress-configure` generator.",
|
||||||
|
"x-prompt": "Do you want to generate Cypress specs as well?"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"ignorePaths": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Paths to ignore when looking for components.",
|
||||||
|
"items": { "type": "string", "description": "Path to ignore." },
|
||||||
|
"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.\n\n```bash\nnx g @nrwl/angular:stories project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Angular overview page](/packages/storybook/documents/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 `generateCypressSpecs`. If you choose `yes`, a test file is going to be generated in the project's Cypress e2e app for each of your components.\n\nYou must provide a `name` for the generator to work.\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 @nrwl/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",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
"name": "storybook-configuration",
|
||||||
|
"factory": "./src/generators/storybook-configuration/storybook-configuration",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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": {
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"aliases": ["project", "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"
|
||||||
|
},
|
||||||
|
"configureCypress": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Specifies whether to configure Cypress or not.",
|
||||||
|
"x-prompt": "Configure a Cypress e2e app to run against the storybook instance?",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"generateCypressSpecs": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.",
|
||||||
|
"x-prompt": "Automatically generate test files in the generated Cypress e2e app?",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"cypressDirectory": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A directory where the Cypress project will be placed. Placed at the root by default."
|
||||||
|
},
|
||||||
|
"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": false
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"ignorePaths": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Paths to ignore when looking for components.",
|
||||||
|
"items": { "type": "string", "description": "Path to ignore." },
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"configureTestRunner": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Add a Storybook Test-Runner target."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["name"],
|
||||||
|
"examplesFile": "This generator will set up Storybook for your Angular project.\n\n```bash\nnx g @nrwl/angular:storybook-configuration project-name\n```\n\nYou can read more about how this generator works, in the [Storybook for Angular overview page](/packages/storybook/documents/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 `configureCypress`. If you choose `yes`, a Cypress e2e app will be created (or configured) to run against the project's Storybook instance. You can read more about this in the [Storybook for Angular - Cypress section](/packages/storybook/documents/overview-angular#cypress-tests-for-stories).\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- Whether you want to `generateCypressSpecs`. If you choose `yes`, a test file is going to be generated in the project's Cypress e2e app for each of your components.\n- Whether you want to `configureTestRunner`. If you choose `yes`, 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).\n\nYou must provide a `name` for the generator to work.\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 using TypeScript\n\n```bash\nnx g @nrwl/angular:storybook-configuration ui --tsConfiguration=true\n```\n\nThis will generate a Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nrwl/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",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"name": "upgrade-module",
|
||||||
|
"factory": "./src/generators/upgrade-module/upgrade-module",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxUpgradeModuleGenerator",
|
||||||
|
"title": "Generates UpgradeModule setup.",
|
||||||
|
"description": "Sets up an Upgrade Module.",
|
||||||
|
"cli": "nx",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project."
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the main AngularJS module.",
|
||||||
|
"$default": { "$source": "argv", "index": 0 }
|
||||||
|
},
|
||||||
|
"angularJsImport": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Import expression of the AngularJS application (e.g., `--angularJsImport=some_node_module/my_app`)."
|
||||||
|
},
|
||||||
|
"angularJsCmpSelector": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The selector of an AngularJS component (e.g., `--angularJsCmpSelector=myComponent`)."
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Do not add `@angular/upgrade` to `package.json` (e.g., `--skipPackageJson`).",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"router": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Sets up router synchronization (e.g., `--router`).",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["name", "project"],
|
||||||
|
"examplesFile": "## Examples\n\nBelow are some examples of how to generate configuration and setup for using `ngUpgrade`'s `UpgradeModule` for your application.\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\n```bash\nnx g @nrwl/angular:upgrade-module --name=myAngularJsModule --project=myapp\n```\n\n{% /tab %}\n\n{% tab label=\"Setup Router\" %}\n\nAllow a setup that configures routing for `UpgradeModule`.\n\n```bash\nnx g @nrwl/angular:upgrade-module --name=myAngularJsModule --project=myapp --router=true\n```\n\n{% /tab %}\n\n{% /tabs %}\n",
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Sets up an Upgrade Module.",
|
||||||
|
"implementation": "/packages/angular/src/generators/upgrade-module/upgrade-module.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/angular/src/generators/upgrade-module/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
50
docs/generated/packages/angular/generators/web-worker.json
Normal file
50
docs/generated/packages/angular/generators/web-worker.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"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.",
|
||||||
|
"x-dropdown": "projects"
|
||||||
|
},
|
||||||
|
"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?"
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 @nrwl/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"
|
||||||
|
}
|
||||||
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "cra-to-nx",
|
|
||||||
"packageName": "cra-to-nx",
|
|
||||||
"description": "This package will turn your React app into an Nx workspace. To use this package, your React app must have been generated and kept the structure of Create-React-App, with files generated either in js/jsx or ts/tsx.",
|
|
||||||
"root": "/packages/cra-to-nx",
|
|
||||||
"source": "/packages/cra-to-nx/src",
|
|
||||||
"documentation": [],
|
|
||||||
"generators": [],
|
|
||||||
"executors": []
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"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.",
|
|
||||||
"root": "/packages/create-nx-plugin",
|
|
||||||
"source": "/packages/create-nx-plugin/src",
|
|
||||||
"documentation": [],
|
|
||||||
"generators": [],
|
|
||||||
"executors": []
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "create-nx-workspace",
|
|
||||||
"packageName": "create-nx-workspace",
|
|
||||||
"description": "Smart, Fast and Extensible Build System",
|
|
||||||
"root": "/packages/create-nx-workspace",
|
|
||||||
"source": "/packages/create-nx-workspace/src",
|
|
||||||
"documentation": [],
|
|
||||||
"generators": [],
|
|
||||||
"executors": []
|
|
||||||
}
|
|
||||||
@ -1,353 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "cypress",
|
|
||||||
"packageName": "@nrwl/cypress",
|
|
||||||
"description": "The Nx Plugin for Cypress contains executors and generators allowing your workspace to use the powerful Cypress integration testing capabilities.",
|
|
||||||
"root": "/packages/cypress",
|
|
||||||
"source": "/packages/cypress/src",
|
|
||||||
"documentation": [
|
|
||||||
{
|
|
||||||
"name": "Overview",
|
|
||||||
"id": "overview",
|
|
||||||
"path": "/packages/cypress",
|
|
||||||
"file": "shared/cypress-plugin",
|
|
||||||
"content": "Cypress is a test runner built for the modern web. It has a lot of great features:\n\n- Time travel\n- Real-time reloads\n- Automatic waiting\n- Spies, stubs, and clocks\n- Network traffic control\n- Screenshots and videos\n\n## Setting Up Cypress\n\n> Info about [Cypress Component Testing can be found here](/cypress/cypress-component-testing)\n\nIf the `@nrwl/cypress` package is not installed, install the version that matches your `nx` package version.\n\n```shell\nyarn add --dev @nrwl/cypress\n```\n\n```shell\nnpm install --save-dev @nrwl/cypress\n```\n\n## E2E Testing\n\nBy default, when creating a new frontend application, Nx will use Cypress to create the e2e tests project.\n\n```shell\nnx g @nrwl/web:app frontend\n```\n\n### Creating a Cypress E2E project for an existing project\n\nTo generate an E2E project based on an existing project, run the following generator\n\n```shell\nnx g @nrwl/cypress:cypress-project your-app-name-e2e --project=your-app-name\n```\n\nOptionally, you can use the `--baseUrl` option if you don't want cypress plugin to serve `your-app-name`.\n\n```shell\nnx g @nrwl/cypress:cypress-project your-app-name-e2e --baseUrl=http://localhost:4200\n```\n\nReplace `your-app-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json`.\n\n### Testing Applications\n\nRun `nx e2e frontend-e2e` to execute e2e tests with Cypress.\n\nYou can run your e2e test against a production build by using the `production` [configuration](https://nx.dev/recipe/use-executor-configurations#use-executor-configurations)\n\n```shell\nnx e2e frontend-e2e --configuration=production\n```\n\nBy default, Cypress will run in headless mode. You will have the result of all the tests and errors (if any) in your\nterminal. Screenshots and videos will be accessible in `dist/cypress/apps/frontend/screenshots` and `dist/cypress/apps/frontend/videos`.\n\n### Watching for Changes (Headed Mode)\n\nWith, `nx e2e frontend-e2e --watch` Cypress will start in headed mode where you can see your application being tested.\n\nRunning Cypress with `--watch` is a great way to enhance dev workflow - you can build up test files with the application\nrunning and Cypress will re-run those tests as you enhance and add to the suite.\n\n```shell\nnx e2e frontend-e2e --watch\n```\n\n### Specifying a Custom Url to Test\n\nThe `baseUrl` property provides you the ability to test an application hosted on a specific domain.\n\n```shell\nnx e2e frontend-e2e --baseUrl=https://frontend.com\n```\n\n> If no `baseUrl` and no `devServerTarget` are provided, Cypress will expect to have the `baseUrl` property in\n> the cypress config file, or will error.\n\n## Using cypress.config.ts\n\nIf you need to fine tune your Cypress setup, you can do so by modifying `cypress.config.ts` in the project root. For\ninstance,\nyou can easily add your `projectId` to save all the screenshots and videos into your Cypress dashboard. The complete\nconfiguration is documented\non [the official website](https://docs.cypress.io/guides/references/configuration.html#Options).\n\n## Environment Variables\n\nIf 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.\n\nThere 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](https://nx.dev/packages/cypress/executors/cypress#env) or the commandline.\n\nCreate 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.\n\nUsing [@nrwl/cypress:cypress](/packages/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.\n\nOptionally, you can pass environment variables via the commandline with the `--env` flag.\n\n{% callout type=\"warning\" title=\"Executor options and --env\" %}\nWhen using the `--env` flag, this will not be merged with any values used in the `env` executor option.\n{% /callout %}\n\n```shell\nnx e2e frontend-e2e --env.API_URL=\"https://api.my-nx-website.com\" --env.API_KEY=\"abc-123\"\n```\n"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Component Testing",
|
|
||||||
"id": "cypress-component-testing",
|
|
||||||
"file": "shared/cypress-component-testing",
|
|
||||||
"content": "# Cypress Component Testing\n\n> Component testing requires Cypress v10 and above.\n> See our [guide for more information](/cypress/v11-migration-guide) to migrate to Cypress v10.\n\nUnlike [E2E testing](/packages/cypress), component testing does not create a new project. Instead, Cypress component testing is added\ndirectly to a project, like [Jest](/packages/jest)\n\n## Add Component Testing to a Project\n\n> Currently only [@nrwl/react](/packages/react/generators/cypress-component-configuration) and [@nrwl/angular](/packages/angular/generators/cypress-component-configuration) plugins support component testing\n\nUse the `cypress-component-configuration` generator from the respective plugin to add component testing to a project.\n\n```shell\nnx g @nrwl/react:cypress-component-configuration --project=your-project\n\nnx g @nrwl/angular:cypress-component-configuration --project=your-project\n```\n\nYou can optionally pass in `--generate-tests` to create component tests for all components within the library.\n\nComponent testing leverages a build target within your workspace as the base for running the tests. The build target is usually an app within the workspace. By default, the generator attempts to find the build target for you based on the project usage, but you can manually specify the build target to use via the `--build-target` option.\n\n```shell\nnx g @nrwl/react:cypress-component-configuration --project=your-project --build-target=my-react-app:build\n\nnx g @nrwl/angular:cypress-component-configuration --project=your-project --build-target=my-ng-app:build\n```\n\nThe build target option can be changed later via updating the `devServerTarget` option in the `component-test` target.\n\n{% callout type=\"warning\" title=\"Executor Options\" %}\nWhen using component testing make sure to set `skipServe: true` in the component test target options, otherwise `@nrwl/cypress` will attempt to run the build first which can slow down your component tests. `skipServe: true` is automatically set when using the `cypress-component-configuration` generator.\n{% /callout %}\n\n## Testing Projects\n\nRun `nx component-test your-lib` to execute the component tests with Cypress.\n\nBy default, Cypress will run in headless mode. You will have the result of all the tests and errors (if any) in your\nterminal. Screenshots and videos will be accessible in `dist/cypress/libs/your-lib/screenshots` and `dist/cypress/libs/your-lib/videos`.\n\n## Watching for Changes (Headed Mode)\n\nWith, `nx component-test your-lib --watch` Cypress will start in headed mode. Where you can see your component being tested.\n\nRunning Cypress with `--watch` is a great way to iterate on your components since cypress will rerun your tests as you make those changes validating the new behavior.\n\n## More Information\n\nYou can read more on component testing in the [Cypress documentation](https://docs.cypress.io/guides/component-testing/writing-your-first-component-test).\n"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "v11 Migration Guide",
|
|
||||||
"id": "v11-migration-guide",
|
|
||||||
"file": "shared/guides/cypress/cypress-v11-migration",
|
|
||||||
"content": "# Migrating to Cypress V11\n\nCypress v10 introduce new features, like component testing, along with some breaking changes. Nx can help you migrate from v8 or v9 of Cypress to v10 and then to v11.\n\nBefore continuing, make sure you have all your changes committed and have a clean working tree.\n\nYou can migrate an E2E project to v11 by running the following command:\n\n```shell\nnx g @nrwl/cypress:migrate-to-cypress-11\n```\n\nIn general, these are the steps taken to migrate your project:\n\n1. Migrates your existing `cypress.json` configuration to a new `cypress.config.ts` configuration file.\n - The `pluginsFile` option has been replaced for `setupNodeEvents`. We will import the file and add it to\n the `setupNodeEvents` config option. Double-check your plugins are working correctly.\n2. Rename all test files from `.spec.ts` to `.cy.ts`\n3. Rename the `support/index.ts` to `support/e2e.ts` and update any associated imports\n4. Rename the `integrations` folder to the `e2e` folder\n\n{% callout type=\"caution\" title=\"Root cypress.json\" %}\nKeeping a root `cypress.json` file, will cause issues with [Cypress trying to load the project](https://github.com/nrwl/nx/issues/11512).\nInstead, you can create a [root ts file and import it into each project's cypress config file](https://github.com/nrwl/nx/issues/11512#issuecomment-1213420638) to share values across projects.\n{% /callout %}\n\nWe take the best effort to make this migration seamless, but there can be edge cases we didn't anticipate. So feel free to [open an issue](https://github.com/nrwl/nx/issues/new?assignees=&labels=type%3A+bug&template=1-bug.md) if you come across any problems.\n\nYou can also consult the [official Cypress migration guide](https://docs.cypress.io/guides/references/migration-guide#Migrating-to-Cypress-version-10-0) if you get stuck and want to manually migrate your projects.\n"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"generators": [
|
|
||||||
{
|
|
||||||
"name": "init",
|
|
||||||
"factory": "./src/generators/init/init#cypressInitGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://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": {
|
|
||||||
"skipPackageJson": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"description": "Do not add dependencies to `package.json`."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"presets": []
|
|
||||||
},
|
|
||||||
"description": "Initialize the `@nrwl/cypress` plugin.",
|
|
||||||
"aliases": ["ng-add"],
|
|
||||||
"hidden": true,
|
|
||||||
"implementation": "/packages/cypress/src/generators/init/init#cypressInitGenerator.ts",
|
|
||||||
"path": "/packages/cypress/src/generators/init/schema.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "cypress-project",
|
|
||||||
"factory": "./src/generators/cypress-project/cypress-project#cypressProjectGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://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" }
|
|
||||||
},
|
|
||||||
"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."
|
|
||||||
},
|
|
||||||
"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
|
|
||||||
},
|
|
||||||
"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 `<projectRoot>/project.json` rather than including it inside workspace.json.",
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"skipPackageJson": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"description": "Do not add dependencies to `package.json`."
|
|
||||||
},
|
|
||||||
"rootProject": {
|
|
||||||
"description": "Create a application at the root of the workspace",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"hidden": true
|
|
||||||
},
|
|
||||||
"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 cypress-project --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 cypress-project --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 `cypress-project` generator against API projects like a [Nest API](/packages/nest/generators/application#@nrwl/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 cypress-project --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 '@nrwl/cypress/plugins/cypress-preset';\n\nconst config = nxE2EPreset(__filename, { bundler: 'vite' });\nexport default defineConfig({\n e2e: {\n ...config,\n setupNodeEvents(on, config): {\n config.setupNodeEvents(on);\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#cypressProjectGenerator.ts",
|
|
||||||
"aliases": [],
|
|
||||||
"path": "/packages/cypress/src/generators/cypress-project/schema.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "cypress-component-project",
|
|
||||||
"factory": "./src/generators/cypress-component-project/cypress-component-project#cypressComponentProject",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://json-schema.org/schema",
|
|
||||||
"$id": "NxCypressComponentProject",
|
|
||||||
"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 @nrwl/cypress:cypress-component-project --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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["project"],
|
|
||||||
"examplesFile": "This is a framework-agnostic generator for adding component testing to a project.\n\n```bash\nnx g cypress-component-project --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-project` 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/cypress-component-project/cypress-component-project#cypressComponentProject.ts",
|
|
||||||
"aliases": [],
|
|
||||||
"path": "/packages/cypress/src/generators/cypress-component-project/schema.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "migrate-to-cypress-11",
|
|
||||||
"factory": "./src/generators/migrate-to-cypress-11/migrate-to-cypress-11#migrateCypressProject",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://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 @nrwl/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"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"executors": [
|
|
||||||
{
|
|
||||||
"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": {
|
|
||||||
"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 for cypress run).",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": true
|
|
||||||
},
|
|
||||||
"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": {
|
|
||||||
"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."
|
|
||||||
},
|
|
||||||
"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": true
|
|
||||||
},
|
|
||||||
"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": {
|
|
||||||
"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": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The reporter options used. Supported options depend on the reporter."
|
|
||||||
},
|
|
||||||
"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"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"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 [cypress-project](/packages/cypress/generators/cypress-project) and [cypress-component-project](/packages/cypress/generators/cypress-component-project) generators.\n\n{% tabs %}\n{% tab label=\"E2E Testing\" %}\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nrwl/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 [`@nrwl/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\": \"@nrwl/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 [`@nrwl/js:node` executor](/packages/js/executors/node)\n{% /callout %}\n\n```bash\nnx e2e my-app-e2e --configuration=ci\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\": \"@nrwl/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](/recipe/use-executor-configurations#use-executor-configurations) offers flexibility to set environment variables\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nrwl/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://locahost: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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
# Cypress Component Testing
|
# Cypress Component Testing
|
||||||
|
|
||||||
> Component testing requires Cypress v10 and above.
|
> Component testing requires Cypress v10 and above.
|
||||||
> See our [guide for more information](/cypress/v11-migration-guide) to migrate to Cypress v10.
|
> See our [guide for more information](/packages/cypress/documents/v11-migration-guide) to migrate to Cypress v10.
|
||||||
|
|
||||||
Unlike [E2E testing](/packages/cypress), component testing does not create a new project. Instead, Cypress component testing is added
|
Unlike [E2E testing](/packages/cypress), component testing does not create a new project. Instead, Cypress component testing is added
|
||||||
directly to a project, like [Jest](/packages/jest)
|
directly to a project, like [Jest](/packages/jest)
|
||||||
109
docs/generated/packages/cypress/documents/overview.md
Normal file
109
docs/generated/packages/cypress/documents/overview.md
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
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 Cypress
|
||||||
|
|
||||||
|
> Info about [Cypress Component Testing can be found here](/packages/cypress/documents/cypress-component-testing)
|
||||||
|
|
||||||
|
If the `@nrwl/cypress` package is not installed, install the version that matches your `nx` package version.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yarn add --dev @nrwl/cypress
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm install --save-dev @nrwl/cypress
|
||||||
|
```
|
||||||
|
|
||||||
|
## E2E Testing
|
||||||
|
|
||||||
|
By default, when creating a new frontend application, Nx will use Cypress to create the e2e tests project.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/web:app frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating a Cypress E2E project for an existing project
|
||||||
|
|
||||||
|
To generate an E2E project based on an existing project, run the following generator
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/cypress:cypress-project your-app-name-e2e --project=your-app-name
|
||||||
|
```
|
||||||
|
|
||||||
|
Optionally, you can use the `--baseUrl` option if you don't want cypress plugin to serve `your-app-name`.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/cypress:cypress-project your-app-name-e2e --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/recipe/use-executor-configurations#use-executor-configurations)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx e2e frontend-e2e --configuration=production
|
||||||
|
```
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
## 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](https://nx.dev/packages/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 [@nrwl/cypress:cypress](/packages/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"
|
||||||
|
```
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
# Migrating to Cypress V10
|
||||||
|
|
||||||
|
Cypress v10 introduce new features, like component testing, along with some breaking changes.
|
||||||
|
|
||||||
|
Before continuing, make sure you have all your changes committed and have a clean working tree.
|
||||||
|
|
||||||
|
You can migrate an E2E project to v10 by running the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/cypress:migrate-to-cypress-10
|
||||||
|
```
|
||||||
|
|
||||||
|
In general, these are the steps taken to migrate your project:
|
||||||
|
|
||||||
|
1. Migrates your existing `cypress.json` configuration to a new `cypress.config.ts` configuration file.
|
||||||
|
- The `pluginsFile` option has been replaced for `setupNodeEvents`. We will import the file and add it to
|
||||||
|
the `setupNodeEvents` config option. Double-check your plugins are working correctly.
|
||||||
|
2. Rename all test files from `.spec.ts` to `.cy.ts`
|
||||||
|
3. Rename the `support/index.ts` to `support/e2e.ts` and update any associated imports
|
||||||
|
4. Rename the `integrations` folder to the `e2e` folder
|
||||||
|
|
||||||
|
{% callout type="caution" title="Root cypress.json" %}
|
||||||
|
Keeping a root `cypress.json` file, will cause issues with [Cypress trying to load the project](https://github.com/nrwl/nx/issues/11512).
|
||||||
|
Instead, you can create a [root ts file and import it into each project's cypress config file](https://github.com/nrwl/nx/issues/11512#issuecomment-1213420638) to share values across projects.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
We take the best effort to make this migration seamless, but there can be edge cases we didn't anticipate. So feel free to [open an issue](https://github.com/nrwl/nx/issues/new?assignees=&labels=type%3A+bug&template=1-bug.md) if you come across any problems.
|
||||||
|
|
||||||
|
You can also consult the [official Cypress migration guide](https://docs.cypress.io/guides/references/migration-guide#Migrating-to-Cypress-version-10-0) if you get stuck and want to manually migrate your projects.
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
# Migrating to Cypress V11
|
||||||
|
|
||||||
|
Cypress v10 introduce new features, like component testing, along with some breaking changes. Nx can help you migrate from v8 or v9 of Cypress to v10 and then to v11.
|
||||||
|
|
||||||
|
Before continuing, make sure you have all your changes committed and have a clean working tree.
|
||||||
|
|
||||||
|
You can migrate an E2E project to v11 by running the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/cypress:migrate-to-cypress-11
|
||||||
|
```
|
||||||
|
|
||||||
|
In general, these are the steps taken to migrate your project:
|
||||||
|
|
||||||
|
1. Migrates your existing `cypress.json` configuration to a new `cypress.config.ts` configuration file.
|
||||||
|
- The `pluginsFile` option has been replaced for `setupNodeEvents`. We will import the file and add it to
|
||||||
|
the `setupNodeEvents` config option. Double-check your plugins are working correctly.
|
||||||
|
2. Rename all test files from `.spec.ts` to `.cy.ts`
|
||||||
|
3. Rename the `support/index.ts` to `support/e2e.ts` and update any associated imports
|
||||||
|
4. Rename the `integrations` folder to the `e2e` folder
|
||||||
|
|
||||||
|
{% callout type="caution" title="Root cypress.json" %}
|
||||||
|
Keeping a root `cypress.json` file, will cause issues with [Cypress trying to load the project](https://github.com/nrwl/nx/issues/11512).
|
||||||
|
Instead, you can create a [root ts file and import it into each project's cypress config file](https://github.com/nrwl/nx/issues/11512#issuecomment-1213420638) to share values across projects.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
We take the best effort to make this migration seamless, but there can be edge cases we didn't anticipate. So feel free to [open an issue](https://github.com/nrwl/nx/issues/new?assignees=&labels=type%3A+bug&template=1-bug.md) if you come across any problems.
|
||||||
|
|
||||||
|
You can also consult the [official Cypress migration guide](https://docs.cypress.io/guides/references/migration-guide#Migrating-to-Cypress-version-10-0) if you get stuck and want to manually migrate your projects.
|
||||||
141
docs/generated/packages/cypress/executors/cypress.json
Normal file
141
docs/generated/packages/cypress/executors/cypress.json
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"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": {
|
||||||
|
"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 for cypress run).",
|
||||||
|
"default": false,
|
||||||
|
"x-deprecated": true
|
||||||
|
},
|
||||||
|
"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": {
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"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": true
|
||||||
|
},
|
||||||
|
"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": {
|
||||||
|
"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": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The reporter options used. Supported options depend on the reporter."
|
||||||
|
},
|
||||||
|
"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"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 [cypress-project](/packages/cypress/generators/cypress-project) and [cypress-component-project](/packages/cypress/generators/cypress-component-project) generators.\n\n{% tabs %}\n{% tab label=\"E2E Testing\" %}\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nrwl/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 [`@nrwl/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\": \"@nrwl/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 [`@nrwl/js:node` executor](/packages/js/executors/node)\n{% /callout %}\n\n```bash\nnx e2e my-app-e2e --configuration=ci\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\": \"@nrwl/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](/recipe/use-executor-configurations#use-executor-configurations) offers flexibility to set environment variables\n\n```json\n\"targets\": {\n \"e2e\": {\n \"executor\": \"@nrwl/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://locahost: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"
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"name": "cypress-component-project",
|
||||||
|
"factory": "./src/generators/cypress-component-project/cypress-component-project#cypressComponentProject",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxCypressComponentProject",
|
||||||
|
"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 @nrwl/cypress:cypress-component-project --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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["project"],
|
||||||
|
"examplesFile": "This is a framework-agnostic generator for adding component testing to a project.\n\n```bash\nnx g cypress-component-project --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-project` 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/cypress-component-project/cypress-component-project#cypressComponentProject.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"path": "/packages/cypress/src/generators/cypress-component-project/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"name": "cypress-project",
|
||||||
|
"factory": "./src/generators/cypress-project/cypress-project#cypressProjectGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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" }
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"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 `<projectRoot>/project.json` rather than including it inside workspace.json.",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
},
|
||||||
|
"rootProject": {
|
||||||
|
"description": "Create a application at the root of the workspace",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"hidden": true
|
||||||
|
},
|
||||||
|
"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 cypress-project --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 cypress-project --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 `cypress-project` generator against API projects like a [Nest API](/packages/nest/generators/application#@nrwl/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 cypress-project --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 '@nrwl/cypress/plugins/cypress-preset';\n\nconst config = nxE2EPreset(__filename, { bundler: 'vite' });\nexport default defineConfig({\n e2e: {\n ...config,\n setupNodeEvents(on, config): {\n config.setupNodeEvents(on);\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#cypressProjectGenerator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"path": "/packages/cypress/src/generators/cypress-project/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
26
docs/generated/packages/cypress/generators/init.json
Normal file
26
docs/generated/packages/cypress/generators/init.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/init#cypressInitGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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": {
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Initialize the `@nrwl/cypress` plugin.",
|
||||||
|
"aliases": ["ng-add"],
|
||||||
|
"hidden": true,
|
||||||
|
"implementation": "/packages/cypress/src/generators/init/init#cypressInitGenerator.ts",
|
||||||
|
"path": "/packages/cypress/src/generators/init/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "migrate-to-cypress-10",
|
||||||
|
"factory": "./src/generators/migrate-to-cypress-ten/migrate-to-cypress-ten#migrateCypressProject",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxCypressMigrateToTen",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Migrate e2e project to Cypress 10",
|
||||||
|
"description": "Migrate Cypress e2e project from v8/v9 to Cypress v10.",
|
||||||
|
"type": "object",
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"command": "nx g @nrwl/cypress:migrate-to-cypress-10",
|
||||||
|
"description": "Migrate existing cypress projects to Cypress v10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {},
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Migrate existing Cypress e2e projects to Cypress v10",
|
||||||
|
"hidden": true,
|
||||||
|
"implementation": "/packages/cypress/src/generators/migrate-to-cypress-ten/migrate-to-cypress-ten#migrateCypressProject.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"path": "/packages/cypress/src/generators/migrate-to-cypress-ten/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "migrate-to-cypress-11",
|
||||||
|
"factory": "./src/generators/migrate-to-cypress-11/migrate-to-cypress-11#migrateCypressProject",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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 @nrwl/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"
|
||||||
|
}
|
||||||
@ -1,304 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "detox",
|
|
||||||
"packageName": "@nrwl/detox",
|
|
||||||
"description": "The Nx Plugin for Detox contains executors and generators for allowing your workspace to use the powerful Detox integration testing capabilities.",
|
|
||||||
"root": "/packages/detox",
|
|
||||||
"source": "/packages/detox/src",
|
|
||||||
"documentation": [
|
|
||||||
{
|
|
||||||
"id": "overview",
|
|
||||||
"name": "Overview",
|
|
||||||
"path": "/packages/detox",
|
|
||||||
"file": "shared/detox-plugin",
|
|
||||||
"content": "Detox is gray box end-to-end testing and automation library for mobile apps. It has a lot of great features:\n\n- Cross Platform\n- Runs on Devices\n- Automatically Synchronized\n- Test Runner Independent\n- Debuggable\n\n## Setting Up Detox\n\n### Install applesimutils (Mac only)\n\n[applesimutils](https://github.com/wix/AppleSimulatorUtils) is a collection of utils for Apple simulators.\n\n```sh\nbrew tap wix/brew\nbrew install applesimutils\n```\n\n### Install Jest Globally\n\n```sh\nnpm install -g jest\n```\n\n### Generating Applications\n\nBy default, when creating a mobile application, Nx will use Detox to create the e2e tests project.\n\n```shell\nnx g @nrwl/react-native:app frontend\n```\n\n### Creating a Detox E2E project for an existing project\n\nYou can create a new Detox E2E project for an existing mobile project.\n\nIf the `@nrwl/detox` package is not installed, install the version that matches your `@nrwl/workspace` version.\n\n{% tabs %}\n{%tab label=\"npm\"%}\n\n```sh\n# npm\nnpm install --save-dev @nrwl/detox\n```\n\n{% /tab %}\n{%tab label=\"yarn\"%}\n\n```sh\n# yarn\nyarn add --dev @nrwl/detox\n```\n\n{% /tab %}\n{% /tabs %}\n\nNext, generate an E2E project based on an existing project.\n\n```sh\nnx g @nrwl/detox:app your-app-name-e2e --project=your-app-name\n```\n\nReplace `your-app-name` with the app's name as defined in your `tsconfig.base.json` file or the `name` property of your `package.json`.\n\nIn addition, you need to follow [instructions at Detox](https://github.com/wix/Detox/blob/master/docs/Introduction.Android.md) to do manual setup for Android files.\n\n## Using Detox\n\n### Testing Applications\n\n- Run `nx test-ios frontend-e2e` to build the iOS app and execute e2e tests with Detox for iOS (Mac only)\n- Run `nx test-android frontend-e2e` to build the Android app and execute e2e tests with Detox for Android\n\nYou can run below commands:\n\n- `nx build-ios frontend-e2e`: build the iOS app (Mac only)\n- `nx build-android frontend-e2e`: build the Android app\n\n### Testing against Prod Build\n\nYou can run your e2e test against a production build:\n\n- `nx test-ios frontend-e2e --prod`: to build the iOS app and execute e2e tests with Detox for iOS with Release configuration (Mac only)\n- `nx test-android frontend-e2e`: rto build the Android app and execute e2e tests with Detox for Android with release build type\n- `nx build-ios frontend-e2e --prod`: build the iOS app using Release configuration (Mac only)\n- `nx build-android frontend-e2e --prod`: build the Android app using release build type\n\n## Configuration\n\n### Using .detoxrc.json\n\nIf you need to fine tune your Detox setup, you can do so by modifying `.detoxrc.json` in the e2e project.\n\n#### Change Testing Simulator/Emulator\n\nFor iOS, in terminal, run `xcrun simctl list` 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`.\n\nFor Android, in terminal, run `emulator -list-avds` to view a list of emulators installed. To open your emulator, run `emulator -avd <your emulator name>`. In `frontend-e2e/.detoxrc.json`, you could change the simulator under `devices.emulator.device`.\n\nIn addition, to override the device name specified in a configuration, you could use `--device-name` option: `nx test-ios <app-name-e2e> --device-name \"iPhone 11\"`. The `device-name` property provides you the ability to test an application run on specific device.\n\n```shell\nnx test-ios frontend-e2e --device-name \"iPhone 11\"\nnx test-android frontend-e2e --device-name \"Pixel_4a_API_30\"\n```\n"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"generators": [
|
|
||||||
{
|
|
||||||
"name": "init",
|
|
||||||
"factory": "./src/generators/init/init#detoxInitGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://json-schema.org/schema",
|
|
||||||
"title": "Add Detox Schematics",
|
|
||||||
"description": "Add Detox Schematics.",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"skipFormat": {
|
|
||||||
"description": "Skip formatting files.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [],
|
|
||||||
"presets": []
|
|
||||||
},
|
|
||||||
"description": "Initialize the `@nrwl/detox` plugin.",
|
|
||||||
"hidden": true,
|
|
||||||
"implementation": "/packages/detox/src/generators/init/init#detoxInitGenerator.ts",
|
|
||||||
"aliases": [],
|
|
||||||
"path": "/packages/detox/src/generators/init/schema.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "application",
|
|
||||||
"factory": "./src/generators/application/application#detoxApplicationGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://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?"
|
|
||||||
},
|
|
||||||
"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."
|
|
||||||
},
|
|
||||||
"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
|
|
||||||
},
|
|
||||||
"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#detoxApplicationGenerator.ts",
|
|
||||||
"hidden": false,
|
|
||||||
"path": "/packages/detox/src/generators/application/schema.json"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"executors": [
|
|
||||||
{
|
|
||||||
"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"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"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": "Run tests",
|
|
||||||
"keys": ["detoxConfiguration", "loglevel", "reuse"]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"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)"
|
|
||||||
},
|
|
||||||
"runnerConfig": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Test runner config file, defaults to `e2e/mocha.opts` for mocha and `e2e/config.json` for Jest.",
|
|
||||||
"alias": "o"
|
|
||||||
},
|
|
||||||
"deviceName": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Override the device name specified in a configuration. Useful for running a single build configuration on multiple devices.",
|
|
||||||
"alias": "n"
|
|
||||||
},
|
|
||||||
"loglevel": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["fatal", "error", "warn", "info", "verbose", "trace"],
|
|
||||||
"description": "Log level: `fatal`, `error`, `warn`, `info`, `verbose`, `trace`.",
|
|
||||||
"alias": "l"
|
|
||||||
},
|
|
||||||
"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."
|
|
||||||
},
|
|
||||||
"recordTimeline": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["all", "none"],
|
|
||||||
"description": "[Jest Only] Record tests and events timeline, for visual display on the `chrome://tracing` tool."
|
|
||||||
},
|
|
||||||
"captureViewHierarchy": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["enabled", "disabled"],
|
|
||||||
"description": "[iOS Only] Capture `*.uihierarchy` snapshots on view action errors and `device.captureViewHierarchy()` calls."
|
|
||||||
},
|
|
||||||
"retries": {
|
|
||||||
"type": "number",
|
|
||||||
"description": "[Jest Circus Only] Re-spawn the test runner for individual failing suite files until they pass, or `<N>` times at least."
|
|
||||||
},
|
|
||||||
"reuse": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Reuse existing installed app (do not delete + reinstall) for a faster run.",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"cleanup": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Shutdown simulator when test is over, useful for CI scripts, to make sure detox exists cleanly with no residue"
|
|
||||||
},
|
|
||||||
"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)."
|
|
||||||
},
|
|
||||||
"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."
|
|
||||||
},
|
|
||||||
"deviceLaunchArgs": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "A list of passthrough-arguments to use when (if) devices (Android emulator / iOS simulator) are launched by Detox."
|
|
||||||
},
|
|
||||||
"appLaunchArgs": {
|
|
||||||
"type": "number",
|
|
||||||
"description": "Custom arguments to pass (through) onto the app every time it is launched."
|
|
||||||
},
|
|
||||||
"noColor": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Disable colors in log output"
|
|
||||||
},
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["detoxConfiguration"]
|
|
||||||
},
|
|
||||||
"description": "Initiating your detox test suite.",
|
|
||||||
"aliases": [],
|
|
||||||
"hidden": false,
|
|
||||||
"path": "/packages/detox/src/executors/test/schema.json"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
107
docs/generated/packages/detox/documents/overview.md
Normal file
107
docs/generated/packages/detox/documents/overview.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
### 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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Generating Applications
|
||||||
|
|
||||||
|
By default, when creating a mobile application, Nx will use Detox to create the e2e tests project.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/react-native:app frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating a Detox E2E project for an existing project
|
||||||
|
|
||||||
|
You can create a new Detox E2E project for an existing mobile project.
|
||||||
|
|
||||||
|
If the `@nrwl/detox` package is not installed, install the version that matches your `@nrwl/workspace` version.
|
||||||
|
|
||||||
|
{% tabs %}
|
||||||
|
{%tab label="npm"%}
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# npm
|
||||||
|
npm install --save-dev @nrwl/detox
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{%tab label="yarn"%}
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# yarn
|
||||||
|
yarn add --dev @nrwl/detox
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% /tabs %}
|
||||||
|
|
||||||
|
Next, generate an E2E project based on an existing project.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
nx g @nrwl/detox:app your-app-name-e2e --project=your-app-name
|
||||||
|
```
|
||||||
|
|
||||||
|
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`.
|
||||||
|
|
||||||
|
In addition, you need to follow [instructions at Detox](https://github.com/wix/Detox/blob/master/docs/Introduction.Android.md) to do manual setup for Android files.
|
||||||
|
|
||||||
|
## 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`: rto 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` 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 <your emulator name>`. 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 <app-name-e2e> --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"
|
||||||
|
```
|
||||||
33
docs/generated/packages/detox/executors/build.json
Normal file
33
docs/generated/packages/detox/executors/build.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
157
docs/generated/packages/detox/executors/test.json
Normal file
157
docs/generated/packages/detox/executors/test.json
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
{
|
||||||
|
"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": "Run tests",
|
||||||
|
"keys": ["detoxConfiguration", "loglevel", "reuse"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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)"
|
||||||
|
},
|
||||||
|
"runnerConfig": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Test runner config file, defaults to `e2e/mocha.opts` for mocha and `e2e/config.json` for Jest.",
|
||||||
|
"alias": "o"
|
||||||
|
},
|
||||||
|
"deviceName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Override the device name specified in a configuration. Useful for running a single build configuration on multiple devices.",
|
||||||
|
"alias": "n"
|
||||||
|
},
|
||||||
|
"loglevel": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["fatal", "error", "warn", "info", "verbose", "trace"],
|
||||||
|
"description": "Log level: `fatal`, `error`, `warn`, `info`, `verbose`, `trace`.",
|
||||||
|
"alias": "l"
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"recordTimeline": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["all", "none"],
|
||||||
|
"description": "[Jest Only] Record tests and events timeline, for visual display on the `chrome://tracing` tool."
|
||||||
|
},
|
||||||
|
"captureViewHierarchy": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["enabled", "disabled"],
|
||||||
|
"description": "[iOS Only] Capture `*.uihierarchy` snapshots on view action errors and `device.captureViewHierarchy()` calls."
|
||||||
|
},
|
||||||
|
"retries": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "[Jest Circus Only] Re-spawn the test runner for individual failing suite files until they pass, or `<N>` times at least."
|
||||||
|
},
|
||||||
|
"reuse": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Reuse existing installed app (do not delete + reinstall) for a faster run.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"cleanup": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Shutdown simulator when test is over, useful for CI scripts, to make sure detox exists cleanly with no residue"
|
||||||
|
},
|
||||||
|
"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)."
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"deviceLaunchArgs": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A list of passthrough-arguments to use when (if) devices (Android emulator / iOS simulator) are launched by Detox."
|
||||||
|
},
|
||||||
|
"appLaunchArgs": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Custom arguments to pass (through) onto the app every time it is launched."
|
||||||
|
},
|
||||||
|
"noColor": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Disable colors in log output"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["detoxConfiguration"]
|
||||||
|
},
|
||||||
|
"description": "Initiating your detox test suite.",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/detox/src/executors/test/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
72
docs/generated/packages/detox/generators/application.json
Normal file
72
docs/generated/packages/detox/generators/application.json
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"name": "application",
|
||||||
|
"factory": "./src/generators/application/application#detoxApplicationGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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?"
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"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#detoxApplicationGenerator.ts",
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/detox/src/generators/application/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
25
docs/generated/packages/detox/generators/init.json
Normal file
25
docs/generated/packages/detox/generators/init.json
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/init#detoxInitGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"title": "Add Detox Schematics",
|
||||||
|
"description": "Add Detox Schematics.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Initialize the `@nrwl/detox` plugin.",
|
||||||
|
"hidden": true,
|
||||||
|
"implementation": "/packages/detox/src/generators/init/init#detoxInitGenerator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"path": "/packages/detox/src/generators/init/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
2409
docs/generated/packages/devkit/documents/index.md
Normal file
2409
docs/generated/packages/devkit/documents/index.md
Normal file
File diff suppressed because it is too large
Load Diff
118
docs/generated/packages/devkit/documents/ngcli_adapter.md
Normal file
118
docs/generated/packages/devkit/documents/ngcli_adapter.md
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# Module: ngcli-adapter
|
||||||
|
|
||||||
|
## Table of contents
|
||||||
|
|
||||||
|
### Ng CLI Adapter Classes
|
||||||
|
|
||||||
|
- [NxScopedHost](../../devkit/ngcli_adapter#nxscopedhost)
|
||||||
|
|
||||||
|
### Functions
|
||||||
|
|
||||||
|
- [mockSchematicsForTesting](../../devkit/ngcli_adapter#mockschematicsfortesting)
|
||||||
|
- [overrideCollectionResolutionForTesting](../../devkit/ngcli_adapter#overridecollectionresolutionfortesting)
|
||||||
|
- [wrapAngularDevkitSchematic](../../devkit/ngcli_adapter#wrapangulardevkitschematic)
|
||||||
|
|
||||||
|
## Ng CLI Adapter Classes
|
||||||
|
|
||||||
|
### NxScopedHost
|
||||||
|
|
||||||
|
• **NxScopedHost**: `Object`
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
### 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.md');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :----------- | :------- |
|
||||||
|
| `schematics` | `Object` |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### overrideCollectionResolutionForTesting
|
||||||
|
|
||||||
|
▸ **overrideCollectionResolutionForTesting**(`collections`): `void`
|
||||||
|
|
||||||
|
By default, Angular Devkit schematic collections will be resolved using the Node resolution.
|
||||||
|
This doesn't work if you are testing schematics that refer to other schematics in the
|
||||||
|
same repo.
|
||||||
|
|
||||||
|
This function can can be used to override the resolution behaviour.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
overrideCollectionResolutionForTesting({
|
||||||
|
'@nrwl/workspace': path.join(
|
||||||
|
__dirname,
|
||||||
|
'../../../../workspace/generators.json'
|
||||||
|
),
|
||||||
|
'@nrwl/angular': path.join(__dirname, '../../../../angular/generators.json'),
|
||||||
|
'@nrwl/linter': path.join(__dirname, '../../../../linter/generators.json'),
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :------------ | :------- |
|
||||||
|
| `collections` | `Object` |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### wrapAngularDevkitSchematic
|
||||||
|
|
||||||
|
▸ **wrapAngularDevkitSchematic**(`collectionName`, `generatorName`): (`host`: [`Tree`](../../devkit/index#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`](../../devkit/index#tree) |
|
||||||
|
| `generatorOptions` | `Object` |
|
||||||
|
|
||||||
|
##### Returns
|
||||||
|
|
||||||
|
`Promise`<`any`\>
|
||||||
@ -1,312 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "esbuild",
|
|
||||||
"packageName": "@nrwl/esbuild",
|
|
||||||
"description": "The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild",
|
|
||||||
"root": "/packages/esbuild",
|
|
||||||
"source": "/packages/esbuild/src",
|
|
||||||
"documentation": [
|
|
||||||
{
|
|
||||||
"name": "Overview",
|
|
||||||
"id": "overview",
|
|
||||||
"path": "/packages/esbuild",
|
|
||||||
"file": "shared/esbuild-plugin",
|
|
||||||
"content": "The Nx Plugin for [esbuild](https://esbuild.github.io/api/), an extremely fast JavaScript bundler.\n\nWhy should you use this plugin?\n\n- _Fast_ builds using esbuild.\n- Type-checking using TypeScript, which esbuild does not handle.\n- Intelligent `package.json` output.\n- Additional [assets](/packages/esbuild/executors/esbuild#assets) for the output.\n\n## Setting up esbuild\n\nTo create a new workspace, run `npx create-nx-workspace@latest --preset=npm`.\n\nTo add the esbuild plugin to an existing workspace, run the following:\n\n{% tabs %}\n{% tab label=\"npm\" %}\n\n```shell\nnpm install -D @nrwl/esbuild\n```\n\n{% /tab %}\n{% tab label=\"yarn\" %}\n\n```shell\nyarn add -D @nrwl/esbuild\n```\n\n{% /tab %}\n{% /tabs %}\n\n### Creating a new JS library\n\nYou can add a new library that builds using esbuild with:\n\n```shell\nnx g @nrwl/js:lib mylib --bundler=esbuild\n```\n\nThis command will install the esbuild plugin if needed, and set `@nrwl/esbuild:esbuild` executor for the `build` target.\n\n### Adding esbuild target to existing libraries\n\nIf you already have a JS project that you want to use esbuild for, run this command:\n\n```shell\nnx g esbuild-project mylib\n```\n\nThis generator validates there isn't an existing `build` target. If you want to overwrite the existing target you can pass the `--skipValidation` option.\n\n```shell\nnx g esbuild-project mylib --skipValidation\n```\n\n## Using esbuild\n\nYou can run builds with:\n\n```shell\nnx build mylib\n```\n\nReplace `mylib` with the name or your project. This command works for both applications and libraries.\n\n### Copying assets\n\nAssets are non-JS and non-TS files, such as images, CSS, etc. You can add them to the project configuration as follows.\n\n```jsonc\n\"build\": {\n \"executor\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n //...\n \"assets\": [\n { \"input\": \"libs/mylib\", \"glob\": \"README.md\", \"output\": \"/\" },\n { \"input\": \"libs/mylib\", \"glob\": \"logo.png\", \"output\": \"/\" },\n { \"input\": \"libs/mylib\", \"glob\": \"docs/**/*.md\", \"output\": \"/docs\" },\n //...\n ]\n }\n}\n```\n\nRunning `nx build mylib` outputs something like this.\n\n```text\ndist/libs/mylib/\n├── README.md\n├── docs\n│ ├── CONTRIBUTING.md\n│ └── TESTING.md\n├── index.js\n├── logo.png\n└── package.json\n```\n\n### Generating a metafile\n\nA 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).\n\n```shell\nnx build mylib --metafile\n```\n\nThis command will generate a `meta.json` file in the output directory.\n\n```text\ndist/libs/mylib/\n├── README.md\n├── index.js\n├── meta.json\n└── package.json\n```\n\n### Custom esbuild options\n\nExtra API options for esbuild can be passed in the `esbuildOptions` object for your project configuration.\n\n```jsonc\n\"build\": {\n \"executor\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n //...\n \"esbuildOptions\": {\n \"banner\": { \".js\": \"// banner\" },\n \"footer\": { \".js\": \"// footer\" }\n }\n }\n}\n```\n\n## More Documentation\n\n- [Using JS](/packages/js)\n"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"generators": [
|
|
||||||
{
|
|
||||||
"name": "init",
|
|
||||||
"factory": "./src/generators/init/init#esbuildInitGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://json-schema.org/schema",
|
|
||||||
"$id": "NxWebpackInit",
|
|
||||||
"cli": "nx",
|
|
||||||
"title": "Init Webpack Plugin",
|
|
||||||
"description": "Init Webpack Plugin.",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"compiler": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["babel", "swc", "tsc"],
|
|
||||||
"description": "The compiler to initialize for.",
|
|
||||||
"default": "babel"
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
|
||||||
"description": "Skip formatting files.",
|
|
||||||
"type": "boolean",
|
|
||||||
"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"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "esbuild-project",
|
|
||||||
"factory": "./src/generators/esbuild-project/esbuild-project#esbuildProjectGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "http://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?"
|
|
||||||
},
|
|
||||||
"main": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Path relative to the workspace root for the main entry file. Defaults to `<project-root>/src/main.ts` or `<project-root>src/index.ts`, whichever is found.",
|
|
||||||
"alias": "entryFile"
|
|
||||||
},
|
|
||||||
"tsConfig": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to `<project-root>/tsconfig.app.json` or `<project-root>/tsconfig.lib.json`, whichever is found."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
|
||||||
"description": "Skip formatting files.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"skipPackageJson": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"description": "Do not add dependencies to `package.json`."
|
|
||||||
},
|
|
||||||
"skipValidation": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"description": "Do not perform any validation on existing project."
|
|
||||||
},
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [],
|
|
||||||
"examplesFile": "```bash\nnx g @nrwl/esbuild:esbuild-project my-package\n```\n\n{% callout type=\"note\" title=\"Overwriting existing build option\" %}\nThe `esbuild-projet` 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 @nrwl/esbuild:esbuild-project 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.",
|
|
||||||
"hidden": true,
|
|
||||||
"implementation": "/packages/esbuild/src/generators/esbuild-project/esbuild-project#esbuildProjectGenerator.ts",
|
|
||||||
"aliases": [],
|
|
||||||
"path": "/packages/esbuild/src/generators/esbuild-project/schema.json"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"executors": [
|
|
||||||
{
|
|
||||||
"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)"
|
|
||||||
},
|
|
||||||
"outputPath": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The output path of the generated files.",
|
|
||||||
"x-completion-type": "directory"
|
|
||||||
},
|
|
||||||
"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"
|
|
||||||
},
|
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The path to package.json file."
|
|
||||||
},
|
|
||||||
"additionalEntryPoints": {
|
|
||||||
"type": "array",
|
|
||||||
"description": "List of additional entry points.",
|
|
||||||
"items": { "type": "string" },
|
|
||||||
"default": []
|
|
||||||
},
|
|
||||||
"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": {
|
|
||||||
"type": "boolean",
|
|
||||||
"alias": "sourceMap",
|
|
||||||
"description": "Generate sourcemap.",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"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
|
|
||||||
},
|
|
||||||
"thirdParty": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Includes third-party packages in the bundle (i.e. npm packages).",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"dependenciesFieldType": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "When `bundleInternalProjectsOnly` is true, this option determines whether external packages should be in 'dependencies' or 'peerDependencies' field in the generated package.json file.",
|
|
||||||
"enum": ["dependencies", "peerDependencies"],
|
|
||||||
"default": "dependencies"
|
|
||||||
},
|
|
||||||
"esbuildOptions": {
|
|
||||||
"type": "object",
|
|
||||||
"description": "Additional options to pass to esbuild. See https://esbuild.github.io/api/.",
|
|
||||||
"additionalProperties": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"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": "`<app-root>/project.json`:\n\n```json\n{\n //...\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\"\n }\n }\n }\n}\n```\n\n```bash\nnx build <app-name>\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 <app-name> --format=cjs\nnx build <app-name> --format=esm,cjs\nnx build <app-name> # defaults to es# defaults to esm\n```\n\n```json\n\"build\": {\n \"executor\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
136
docs/generated/packages/esbuild/documents/overview.md
Normal file
136
docs/generated/packages/esbuild/documents/overview.md
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
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](/packages/esbuild/executors/esbuild#assets) for the output.
|
||||||
|
|
||||||
|
## Setting up esbuild
|
||||||
|
|
||||||
|
To create a new workspace, run `npx create-nx-workspace@latest --preset=npm`.
|
||||||
|
|
||||||
|
To add the esbuild plugin to an existing workspace, run the following:
|
||||||
|
|
||||||
|
{% tabs %}
|
||||||
|
{% tab label="npm" %}
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm install -D @nrwl/esbuild
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% tab label="yarn" %}
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yarn add -D @nrwl/esbuild
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% /tabs %}
|
||||||
|
|
||||||
|
### Creating a new JS library
|
||||||
|
|
||||||
|
You can add a new library that builds using esbuild with:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx g @nrwl/js:lib mylib --bundler=esbuild
|
||||||
|
```
|
||||||
|
|
||||||
|
This command will install the esbuild plugin if needed, and set `@nrwl/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 esbuild-project 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 esbuild-project 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": "@nrwl/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": "@nrwl/esbuild:esbuild",
|
||||||
|
"options": {
|
||||||
|
//...
|
||||||
|
"esbuildOptions": {
|
||||||
|
"banner": { ".js": "// banner" },
|
||||||
|
"footer": { ".js": "// footer" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## More Documentation
|
||||||
|
|
||||||
|
- [Using JS](/packages/js)
|
||||||
197
docs/generated/packages/esbuild/executors/esbuild.json
Normal file
197
docs/generated/packages/esbuild/executors/esbuild.json
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
{
|
||||||
|
"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)"
|
||||||
|
},
|
||||||
|
"outputPath": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The output path of the generated files.",
|
||||||
|
"x-completion-type": "directory"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The path to package.json file."
|
||||||
|
},
|
||||||
|
"additionalEntryPoints": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "List of additional entry points.",
|
||||||
|
"items": { "type": "string" },
|
||||||
|
"default": []
|
||||||
|
},
|
||||||
|
"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": {
|
||||||
|
"type": "boolean",
|
||||||
|
"alias": "sourceMap",
|
||||||
|
"description": "Generate sourcemap.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
"thirdParty": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Includes third-party packages in the bundle (i.e. npm packages).",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"dependenciesFieldType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "When `bundleInternalProjectsOnly` is true, this option determines whether external packages should be in 'dependencies' or 'peerDependencies' field in the generated package.json file.",
|
||||||
|
"enum": ["dependencies", "peerDependencies"],
|
||||||
|
"default": "dependencies"
|
||||||
|
},
|
||||||
|
"esbuildOptions": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Additional options to pass to esbuild. See https://esbuild.github.io/api/.",
|
||||||
|
"additionalProperties": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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": "`<app-root>/project.json`:\n\n```json\n{\n //...\n \"targets\": {\n //...\n \"build\": {\n \"executor\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\"\n }\n }\n }\n}\n```\n\n```bash\nnx build <app-name>\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 <app-name> --format=cjs\nnx build <app-name> --format=esm,cjs\nnx build <app-name> # defaults to es# defaults to esm\n```\n\n```json\n\"build\": {\n \"executor\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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\": \"@nrwl/esbuild:esbuild\",\n \"options\": {\n \"main\": \"<app-root>\",\n \"tsConfig\": \"<app-root>/tsconfig.app.json\",\n \"outputPath\": \"dist/<app-root>\",\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"
|
||||||
|
}
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"name": "esbuild-project",
|
||||||
|
"factory": "./src/generators/esbuild-project/esbuild-project#esbuildProjectGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://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?"
|
||||||
|
},
|
||||||
|
"main": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path relative to the workspace root for the main entry file. Defaults to `<project-root>/src/main.ts` or `<project-root>src/index.ts`, whichever is found.",
|
||||||
|
"alias": "entryFile"
|
||||||
|
},
|
||||||
|
"tsConfig": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to `<project-root>/tsconfig.app.json` or `<project-root>/tsconfig.lib.json`, whichever is found."
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not add dependencies to `package.json`."
|
||||||
|
},
|
||||||
|
"skipValidation": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Do not perform any validation on existing project."
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"examplesFile": "```bash\nnx g @nrwl/esbuild:esbuild-project my-package\n```\n\n{% callout type=\"note\" title=\"Overwriting existing build option\" %}\nThe `esbuild-projet` 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 @nrwl/esbuild:esbuild-project 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.",
|
||||||
|
"hidden": true,
|
||||||
|
"implementation": "/packages/esbuild/src/generators/esbuild-project/esbuild-project#esbuildProjectGenerator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"path": "/packages/esbuild/src/generators/esbuild-project/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
33
docs/generated/packages/esbuild/generators/init.json
Normal file
33
docs/generated/packages/esbuild/generators/init.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/init#esbuildInitGenerator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxWebpackInit",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Init Webpack Plugin",
|
||||||
|
"description": "Init Webpack Plugin.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"compiler": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["babel", "swc", "tsc"],
|
||||||
|
"description": "The compiler to initialize for.",
|
||||||
|
"default": "babel"
|
||||||
|
},
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
|
||||||
"name": "eslint-plugin-nx",
|
|
||||||
"packageName": "@nrwl/eslint-plugin-nx",
|
|
||||||
"description": "The ESLint Plugin for Nx contains a collection of recommended ESLint rule configurations wrapped as ESLint plugins and an Nx specific enforce-module-boundaries rule.",
|
|
||||||
"root": "/packages/eslint-plugin-nx",
|
|
||||||
"source": "/packages/eslint-plugin-nx/src",
|
|
||||||
"documentation": [
|
|
||||||
{
|
|
||||||
"id": "overview",
|
|
||||||
"name": "Overview",
|
|
||||||
"path": "/packages/eslint-plugin-nx",
|
|
||||||
"file": "shared/eslint-plugin-nx",
|
|
||||||
"content": "A plugin containing a collection of recommended ESLint rule configurations wrapped as ESLint plugins and an Nx specific [enforce-module-boundaries](#enforce-module-boundaries) rule.\n\n## Setting Up ESLint Plugin\n\n### Installation\n\nIn any Nx workspace, you can install `@nrwl/eslint-plugin-nx` by running the following commands if the package is not already installed:\n\n{% tabs %}\n{%tab label=\"npm\"%}\n\n```shell\nnpm i --save-dev @nrwl/eslint-plugin-nx\n```\n\n{% /tab %}\n{%tab label=\"yarn\"%}\n\n```shell\nyarn add --dev @nrwl/eslint-plugin-nx\n```\n\n{% /tab %}\n{% /tabs %}\n\n## ESLint plugins\n\nThe plugin contains the following rule configurations divided into sub-plugins.\n\n### JavaScript\n\nThe `@nrwl/nx/javascript` ESLint plugin contains best practices when using JavaScript.\n\n### TypeScript\n\nThe `@nrwl/nx/typescript` ESLint plugin contains best practices when using TypeSript.\n\n### Angular\n\nContains configurations matching best practices when using Angular framework:\n\n- @nrwl/nx/angular\n- @nrwl/nx/angular-template\n\n### React\n\nContains configurations matching best practices when using React framework:\n\n- @nrwl/nx/react-base\n- @nrwl/nx/react-jsx\n- @nrwl/nx/react-typescript\n\nYou can also use `@nrwl/nx/react` which includes all three `@nrwl/nx/react-*` plugins\n\n## enforce-module-boundaries\n\nThe `@nrwl/nx/enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. By enforcing strict boundaries it helps keep prevent unplanned cross-dependencies.\n\n### Usage\n\nYou can use `enforce-module-boundaries` rule by adding it to your ESLint rules configuration:\n\n```jsonc\n{\n // ... more ESLint config here\n \"overrides\": [\n {\n \"files\": [\"*.ts\", \"*.tsx\", \"*.js\", \"*.jsx\"],\n \"rules\": {\n \"@nrwl/nx/enforce-module-boundaries\": [\n \"error\",\n {\n // ...rule specific configuration\n }\n ]\n }\n }\n // ... more ESLint overrides here\n ]\n}\n```\n\nRead more about proper usage of this rule:\n\n- [Enforce Project Boundaries](/core-features/enforce-project-boundaries)\n- [Ban Dependencies with Certain Tags](/recipes/other/ban-dependencies-with-tags)\n- [Tag in Multiple Dimensions](/recipes/other/tag-multiple-dimensions)\n- [Ban External Imports](/recipes/other/ban-external-imports)\n- [Tags Allow List](/recipes/other/tags-allow-list)\n- [Taming Code Organization with Module Boundaries in Nx](https://blog.nrwl.io/mastering-the-project-boundaries-in-nx-f095852f5bf4)\n"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"generators": [],
|
|
||||||
"executors": []
|
|
||||||
}
|
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
A plugin containing a collection of recommended ESLint rule configurations wrapped as ESLint plugins and an Nx specific [enforce-module-boundaries](#enforce-module-boundaries) rule.
|
||||||
|
|
||||||
|
## Setting Up ESLint Plugin
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
In any Nx workspace, you can install `@nrwl/eslint-plugin-nx` by running the following commands if the package is not already installed:
|
||||||
|
|
||||||
|
{% tabs %}
|
||||||
|
{%tab label="npm"%}
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm i --save-dev @nrwl/eslint-plugin-nx
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{%tab label="yarn"%}
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yarn add --dev @nrwl/eslint-plugin-nx
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% /tabs %}
|
||||||
|
|
||||||
|
## ESLint plugins
|
||||||
|
|
||||||
|
The plugin contains the following rule configurations divided into sub-plugins.
|
||||||
|
|
||||||
|
### JavaScript
|
||||||
|
|
||||||
|
The `@nrwl/nx/javascript` ESLint plugin contains best practices when using JavaScript.
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
The `@nrwl/nx/typescript` ESLint plugin contains best practices when using TypeSript.
|
||||||
|
|
||||||
|
### Angular
|
||||||
|
|
||||||
|
Contains configurations matching best practices when using Angular framework:
|
||||||
|
|
||||||
|
- @nrwl/nx/angular
|
||||||
|
- @nrwl/nx/angular-template
|
||||||
|
|
||||||
|
### React
|
||||||
|
|
||||||
|
Contains configurations matching best practices when using React framework:
|
||||||
|
|
||||||
|
- @nrwl/nx/react-base
|
||||||
|
- @nrwl/nx/react-jsx
|
||||||
|
- @nrwl/nx/react-typescript
|
||||||
|
|
||||||
|
You can also use `@nrwl/nx/react` which includes all three `@nrwl/nx/react-*` plugins
|
||||||
|
|
||||||
|
## enforce-module-boundaries
|
||||||
|
|
||||||
|
The `@nrwl/nx/enforce-module-boundaries` ESLint rule enables you to define strict rules for accessing resources between different projects in the repository. By enforcing strict boundaries it helps keep prevent unplanned cross-dependencies.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
You can use `enforce-module-boundaries` rule by adding it to your ESLint rules configuration:
|
||||||
|
|
||||||
|
```jsonc
|
||||||
|
{
|
||||||
|
// ... more ESLint config here
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||||
|
"rules": {
|
||||||
|
"@nrwl/nx/enforce-module-boundaries": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
// ...rule specific configuration
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ... more ESLint overrides here
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Read more about proper usage of this rule:
|
||||||
|
|
||||||
|
- [Enforce Project Boundaries](/core-features/enforce-project-boundaries)
|
||||||
|
- [Ban Dependencies with Certain Tags](/recipes/other/ban-dependencies-with-tags)
|
||||||
|
- [Tag in Multiple Dimensions](/recipes/other/tag-multiple-dimensions)
|
||||||
|
- [Ban External Imports](/recipes/other/ban-external-imports)
|
||||||
|
- [Tags Allow List](/recipes/other/tags-allow-list)
|
||||||
|
- [Taming Code Organization with Module Boundaries in Nx](https://blog.nrwl.io/mastering-the-project-boundaries-in-nx-f095852f5bf4)
|
||||||
File diff suppressed because it is too large
Load Diff
63
docs/generated/packages/expo/executors/build-android.json
Normal file
63
docs/generated/packages/expo/executors/build-android.json
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"name": "build-android",
|
||||||
|
"implementation": "/packages/expo/src/executors/build-android/build-android.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoBuildAndroid",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo Android Build executor",
|
||||||
|
"description": "Build and sign a standalone APK or App Bundle for the Google Play Store.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"clearCredentials": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Clear all credentials stored on Expo servers.",
|
||||||
|
"alias": "c"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"enum": ["app-bundle", "apk"],
|
||||||
|
"description": "Type of build: [app-bundle⎮apk].",
|
||||||
|
"alias": "t"
|
||||||
|
},
|
||||||
|
"releaseChannel": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Pull from specified release channel."
|
||||||
|
},
|
||||||
|
"noPublish": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Disable automatic publishing before building."
|
||||||
|
},
|
||||||
|
"noWait": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Exit immediately after scheduling build."
|
||||||
|
},
|
||||||
|
"keystorePath": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path to your Keystore: *.jks."
|
||||||
|
},
|
||||||
|
"keystoreAlias": { "type": "string", "description": "Keystore Alias" },
|
||||||
|
"publicUrl": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL of an externally hosted manifest (for self-hosted apps)."
|
||||||
|
},
|
||||||
|
"skipWorkflowCheck": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip warning about build service bare workflow limitations."
|
||||||
|
},
|
||||||
|
"sync": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Syncs npm dependencies to package.json (for React Native autolink). Always true when --install is used.",
|
||||||
|
"default": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Build and sign a standalone APK or App Bundle for the Google Play Store",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/build-android/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
100
docs/generated/packages/expo/executors/build-ios.json
Normal file
100
docs/generated/packages/expo/executors/build-ios.json
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
"name": "build-ios",
|
||||||
|
"implementation": "/packages/expo/src/executors/build-ios/build-ios.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoBuildIOS",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo iOS Build executor",
|
||||||
|
"description": "Build and sign a standalone IPA for the Apple App Store.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"clearCredentials": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Clear all credentials stored on Expo servers.",
|
||||||
|
"alias": "c"
|
||||||
|
},
|
||||||
|
"clearDistCert": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Remove Distribution Certificate stored on Expo servers."
|
||||||
|
},
|
||||||
|
"clearPushKey": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Remove Push Notifications Key stored on Expo servers."
|
||||||
|
},
|
||||||
|
"clearPushCert": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Remove Push Notifications Certificate stored on Expo servers. Use of Push Notifications Certificates is deprecated."
|
||||||
|
},
|
||||||
|
"clearProvisioningProfile": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Remove Provisioning Profile stored on Expo servers."
|
||||||
|
},
|
||||||
|
"revokeCredentials": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Revoke credentials on developer.apple.com, select appropriate using --clear-* options.",
|
||||||
|
"alias": "r"
|
||||||
|
},
|
||||||
|
"appleId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Apple ID username (please also set the Apple ID password as EXPO_APPLE_PASSWORD environment variable)."
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"enum": ["archive", "simulator"],
|
||||||
|
"description": "Type of build: [archive⎮simulator].",
|
||||||
|
"alias": "t"
|
||||||
|
},
|
||||||
|
"releaseChannel": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Pull from specified release channel."
|
||||||
|
},
|
||||||
|
"noPublish": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Disable automatic publishing before building."
|
||||||
|
},
|
||||||
|
"noWait": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Exit immediately after scheduling build."
|
||||||
|
},
|
||||||
|
"teamId": { "type": "string", "description": "Apple Team ID." },
|
||||||
|
"distP12Path": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path to your Distribution Certificate P12 (set password as EXPO_IOS_DIST_P12_PASSWORD environment variable)."
|
||||||
|
},
|
||||||
|
"pushP8Path": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path to your Push Key .p8 file."
|
||||||
|
},
|
||||||
|
"provisioningProfilePath": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Path to your Provisioning Profile."
|
||||||
|
},
|
||||||
|
"publicUrl": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL of an externally hosted manifest (for self-hosted apps)."
|
||||||
|
},
|
||||||
|
"skipCredentialsCheck": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip checking credentials."
|
||||||
|
},
|
||||||
|
"skipWorkflowCheck": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Skip warning about build service bare workflow limitations."
|
||||||
|
},
|
||||||
|
"sync": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Syncs npm dependencies to package.json (for React Native autolink). Always true when --install is used.",
|
||||||
|
"default": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Build and sign a standalone IPA for the Apple App Store",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/build-ios/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
84
docs/generated/packages/expo/executors/build-list.json
Normal file
84
docs/generated/packages/expo/executors/build-list.json
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"name": "build-list",
|
||||||
|
"implementation": "/packages/expo/src/executors/build-list/build-list.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoEasBuildList",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo EAS Build List executor",
|
||||||
|
"description": "List all EAS builds for your Expo project.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"platform": {
|
||||||
|
"enum": ["ios", "android", "all"],
|
||||||
|
"alias": "p",
|
||||||
|
"description": "The platform to build the app, example values: ios, android, all."
|
||||||
|
},
|
||||||
|
"json": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Enable JSON output, non-JSON messages will be printed to stderr"
|
||||||
|
},
|
||||||
|
"nonInteractive": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Run the command in non-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": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "List all EAS builds for your Expo project",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/build-list/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
27
docs/generated/packages/expo/executors/build-status.json
Normal file
27
docs/generated/packages/expo/executors/build-status.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"name": "build-status",
|
||||||
|
"implementation": "/packages/expo/src/executors/build-status/build-status.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoBuildStatus",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo web Build executor",
|
||||||
|
"description": "Get the status of the latest build for the project.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"publicUrl": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The URL of an externally hosted manifest (for self-hosted apps)."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Get the status of the latest build for the project",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/build-status/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
36
docs/generated/packages/expo/executors/build-web.json
Normal file
36
docs/generated/packages/expo/executors/build-web.json
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "build-web",
|
||||||
|
"implementation": "/packages/expo/src/executors/build-web/build-web.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoBuildWeb",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo web Build executor",
|
||||||
|
"description": "Build the web app for production.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"clear": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Clear all cached build files and assets.",
|
||||||
|
"alias": "c"
|
||||||
|
},
|
||||||
|
"noPwa": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Prevent webpack from generating the manifest.json and injecting meta into the index.html head."
|
||||||
|
},
|
||||||
|
"dev": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Turns dev flag on before bundling"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Build the web app for production",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/build-web/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
68
docs/generated/packages/expo/executors/build.json
Normal file
68
docs/generated/packages/expo/executors/build.json
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"name": "build",
|
||||||
|
"implementation": "/packages/expo/src/executors/build/build.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoEasBuild",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo EAS Build executor",
|
||||||
|
"description": "Start an EAS build for your expo project.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"platform": {
|
||||||
|
"enum": ["ios", "android", "all"],
|
||||||
|
"alias": "p",
|
||||||
|
"description": "The platform to build the app, example values: ios, android, all."
|
||||||
|
},
|
||||||
|
"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": ["PROFILE_NAME"]
|
||||||
|
},
|
||||||
|
"nonInteractive": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Run command in non-interactive mode",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"local": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Run build locally [experimental]",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"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": ["PROFILE_NAME"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Start an EAS build for your expo project",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/build/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
65
docs/generated/packages/expo/executors/download.json
Normal file
65
docs/generated/packages/expo/executors/download.json
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"name": "download",
|
||||||
|
"implementation": "/packages/expo/src/executors/download/download.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoDownloadEasBuild",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Download EAS Build executor",
|
||||||
|
"description": "Download an EAS build.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"platform": {
|
||||||
|
"enum": ["ios", "android"],
|
||||||
|
"alias": "p",
|
||||||
|
"description": "The platform to build the app, example values: ios, android, all."
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"output": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Output directory for the download build"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["output"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Download an EAS build",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/download/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
21
docs/generated/packages/expo/executors/ensure-symlink.json
Normal file
21
docs/generated/packages/expo/executors/ensure-symlink.json
Normal file
@ -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": "http://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"
|
||||||
|
}
|
||||||
57
docs/generated/packages/expo/executors/export.json
Normal file
57
docs/generated/packages/expo/executors/export.json
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"name": "export",
|
||||||
|
"implementation": "/packages/expo/src/executors/export/export.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"cli": "nx",
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$id": "NxExpoExport",
|
||||||
|
"$schema": "http://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"],
|
||||||
|
"alias": "p"
|
||||||
|
},
|
||||||
|
"dev": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Bundle for development environments without minifying code or stripping the __DEV__ boolean. Configure static files for developing locally using a non-https server."
|
||||||
|
},
|
||||||
|
"clear": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Clear the bundler cache before exporting"
|
||||||
|
},
|
||||||
|
"outputDir": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The directory to export the static files to. Default: dist"
|
||||||
|
},
|
||||||
|
"maxWorkers": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Maximum number of tasks to allow Metro to spawn"
|
||||||
|
},
|
||||||
|
"dumpAssetmap": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Dump the asset map for further processing"
|
||||||
|
},
|
||||||
|
"dumpSourcemap": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Dump the source map for debugging the JS bundle"
|
||||||
|
},
|
||||||
|
"bundler": {
|
||||||
|
"enum": ["metro", "webpack"],
|
||||||
|
"description": "Choose the bundler to compile for",
|
||||||
|
"default": "metro"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["bundler"],
|
||||||
|
"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"
|
||||||
|
}
|
||||||
39
docs/generated/packages/expo/executors/install.json
Normal file
39
docs/generated/packages/expo/executors/install.json
Normal file
@ -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": "http://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": true
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
37
docs/generated/packages/expo/executors/prebuild.json
Normal file
37
docs/generated/packages/expo/executors/prebuild.json
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "prebuild",
|
||||||
|
"implementation": "/packages/expo/src/executors/prebuild/prebuild.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"cli": "nx",
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$id": "NxExpoPrebuild",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"title": "Expo Prebuild",
|
||||||
|
"description": "Create native iOS and Android project files for building natively.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"install": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Installing npm packages and CocoaPods.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"platform": {
|
||||||
|
"description": "Platforms to sync",
|
||||||
|
"default": "all",
|
||||||
|
"enum": ["ios", "android", "all"],
|
||||||
|
"alias": "p"
|
||||||
|
},
|
||||||
|
"template": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Project template to clone from. File path pointing to a local tar file or a github repo"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
31
docs/generated/packages/expo/executors/publish-set.json
Normal file
31
docs/generated/packages/expo/executors/publish-set.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"name": "publish-set",
|
||||||
|
"implementation": "/packages/expo/src/executors/publish-set/publish-set.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"cli": "nx",
|
||||||
|
"$id": "NxExpoPublishSet",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"title": "Set Publish Channel for Expo",
|
||||||
|
"description": "Specify the channel to serve a published release.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"releaseChannel": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The release channel to publish to."
|
||||||
|
},
|
||||||
|
"publishId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The id of the published release to serve from the channel."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["releaseChannel", "publishId"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Specify the channel to serve a published release",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/publish-set/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
54
docs/generated/packages/expo/executors/publish.json
Normal file
54
docs/generated/packages/expo/executors/publish.json
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"name": "publish",
|
||||||
|
"implementation": "/packages/expo/src/executors/publish/publish.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"cli": "nx",
|
||||||
|
"$id": "NxExpoPublish",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"title": "Publish for Expo",
|
||||||
|
"description": "Deploy a project to Expo hosting.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"quiet": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Suppress verbose output from the Metro bundler",
|
||||||
|
"default": false,
|
||||||
|
"alias": "q"
|
||||||
|
},
|
||||||
|
"sendTo": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A phone number or email address to send a link to",
|
||||||
|
"alias": "s"
|
||||||
|
},
|
||||||
|
"clear": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Clear the Metro bundler cache",
|
||||||
|
"default": false,
|
||||||
|
"alias": "c"
|
||||||
|
},
|
||||||
|
"target": {
|
||||||
|
"enum": ["managed", "bare"],
|
||||||
|
"default": "managed",
|
||||||
|
"description": "Target environment for which this publish is intended. Options are managed or bare.",
|
||||||
|
"alias": "t"
|
||||||
|
},
|
||||||
|
"maxWorkers": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "Maximum number of tasks to allow Metro to spawn"
|
||||||
|
},
|
||||||
|
"releaseChannel": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The release channel to publish to. Default is 'default'.",
|
||||||
|
"default": "default"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Deploy a project to Expo hosting",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/publish/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
35
docs/generated/packages/expo/executors/rollback.json
Normal file
35
docs/generated/packages/expo/executors/rollback.json
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "rollback",
|
||||||
|
"implementation": "/packages/expo/src/executors/rollback/rollback.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"cli": "nx",
|
||||||
|
"$id": "NxExpoRollback",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"title": "Rollback Publish Command for Expo",
|
||||||
|
"description": "Undo an update to a channel.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"releaseChannel": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The release channel to publish to."
|
||||||
|
},
|
||||||
|
"sdkVersion": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The sdk version to rollback."
|
||||||
|
},
|
||||||
|
"platform": {
|
||||||
|
"enum": ["ios", "android"],
|
||||||
|
"description": "The platform to rollback."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["releaseChannel", "sdkVersion"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Undo an update to a channel",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/rollback/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
71
docs/generated/packages/expo/executors/run.json
Normal file
71
docs/generated/packages/expo/executors/run.json
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"name": "run",
|
||||||
|
"implementation": "/packages/expo/src/executors/run/run.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"cli": "nx",
|
||||||
|
"$id": "NxExpoRun",
|
||||||
|
"$schema": "http://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"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"sync": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Syncs npm dependencies to package.json (for React Native autolink). Always true when --install is used.",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"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": "Should install missing dependencies before building."
|
||||||
|
},
|
||||||
|
"buildCache": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Should use derived data for builds."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["platform"],
|
||||||
|
"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"
|
||||||
|
}
|
||||||
107
docs/generated/packages/expo/executors/start.json
Normal file
107
docs/generated/packages/expo/executors/start.json
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
"name": "start",
|
||||||
|
"implementation": "/packages/expo/src/executors/start/start.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"cli": "nx",
|
||||||
|
"$id": "NxExpoStart",
|
||||||
|
"$schema": "http://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"
|
||||||
|
},
|
||||||
|
"sentTo": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "An email address to send a link to",
|
||||||
|
"alias": "s",
|
||||||
|
"x-deprecated": true
|
||||||
|
},
|
||||||
|
"webpack": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Start a Webpack dev server for the web app.",
|
||||||
|
"x-deprecated": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
34
docs/generated/packages/expo/executors/sync-deps.json
Normal file
34
docs/generated/packages/expo/executors/sync-deps.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"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": "http://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."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Syncs dependencies to package.json (required for autolinking).",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/sync-deps/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
68
docs/generated/packages/expo/executors/update.json
Normal file
68
docs/generated/packages/expo/executors/update.json
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"name": "update",
|
||||||
|
"implementation": "/packages/expo/src/executors/update/update.impl.ts",
|
||||||
|
"schema": {
|
||||||
|
"version": 2,
|
||||||
|
"outputCapture": "direct-nodejs",
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"$id": "NxExpoEasUpdate",
|
||||||
|
"cli": "nx",
|
||||||
|
"title": "Expo EAS Update executor",
|
||||||
|
"description": "Start an EAS update for your expo project.",
|
||||||
|
"type": "object",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"nonInteractive": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Run command in non-interactive mode",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Start an EAS update for your expo project",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/expo/src/executors/update/schema.json",
|
||||||
|
"type": "executor"
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user