docs(core): rename enforce project boundaries (#18421)
This commit is contained in:
parent
d63d3573c4
commit
8c723380a7
@ -826,9 +826,9 @@
|
|||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Enforce Project Boundaries",
|
"name": "Enforce Module Boundaries",
|
||||||
"path": "/core-features/enforce-project-boundaries",
|
"path": "/core-features/enforce-module-boundaries",
|
||||||
"id": "enforce-project-boundaries",
|
"id": "enforce-module-boundaries",
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"children": [],
|
"children": [],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
@ -918,9 +918,9 @@
|
|||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Enforce Project Boundaries",
|
"name": "Enforce Module Boundaries",
|
||||||
"path": "/core-features/enforce-project-boundaries",
|
"path": "/core-features/enforce-module-boundaries",
|
||||||
"id": "enforce-project-boundaries",
|
"id": "enforce-module-boundaries",
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"children": [],
|
"children": [],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
|
|||||||
@ -1025,14 +1025,14 @@
|
|||||||
"tags": ["automate-updating-dependencies"]
|
"tags": ["automate-updating-dependencies"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "enforce-project-boundaries",
|
"id": "enforce-module-boundaries",
|
||||||
"name": "Enforce Project Boundaries",
|
"name": "Enforce Module Boundaries",
|
||||||
"description": "",
|
"description": "",
|
||||||
"file": "shared/core-features/enforce-project-boundaries",
|
"file": "shared/core-features/enforce-module-boundaries",
|
||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/core-features/enforce-project-boundaries",
|
"path": "/core-features/enforce-module-boundaries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "plugin-features",
|
"id": "plugin-features",
|
||||||
@ -1140,15 +1140,15 @@
|
|||||||
"path": "/core-features/automate-updating-dependencies",
|
"path": "/core-features/automate-updating-dependencies",
|
||||||
"tags": ["automate-updating-dependencies"]
|
"tags": ["automate-updating-dependencies"]
|
||||||
},
|
},
|
||||||
"/core-features/enforce-project-boundaries": {
|
"/core-features/enforce-module-boundaries": {
|
||||||
"id": "enforce-project-boundaries",
|
"id": "enforce-module-boundaries",
|
||||||
"name": "Enforce Project Boundaries",
|
"name": "Enforce Module Boundaries",
|
||||||
"description": "",
|
"description": "",
|
||||||
"file": "shared/core-features/enforce-project-boundaries",
|
"file": "shared/core-features/enforce-module-boundaries",
|
||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/core-features/enforce-project-boundaries",
|
"path": "/core-features/enforce-module-boundaries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/core-features/plugin-features": {
|
"/core-features/plugin-features": {
|
||||||
"id": "plugin-features",
|
"id": "plugin-features",
|
||||||
@ -1351,7 +1351,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/monorepo-nx-enterprise",
|
"path": "/concepts/more-concepts/monorepo-nx-enterprise",
|
||||||
"tags": ["enforce-project-boundaries", "use-code-generators"]
|
"tags": ["enforce-module-boundaries", "use-code-generators"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "nx-daemon",
|
"id": "nx-daemon",
|
||||||
@ -1426,7 +1426,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/applications-and-libraries",
|
"path": "/concepts/more-concepts/applications-and-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "creating-libraries",
|
"id": "creating-libraries",
|
||||||
@ -1436,7 +1436,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/creating-libraries",
|
"path": "/concepts/more-concepts/creating-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "library-types",
|
"id": "library-types",
|
||||||
@ -1446,7 +1446,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/library-types",
|
"path": "/concepts/more-concepts/library-types",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "grouping-libraries",
|
"id": "grouping-libraries",
|
||||||
@ -1456,7 +1456,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/grouping-libraries",
|
"path": "/concepts/more-concepts/grouping-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "buildable-and-publishable-libraries",
|
"id": "buildable-and-publishable-libraries",
|
||||||
@ -1652,7 +1652,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/monorepo-nx-enterprise",
|
"path": "/concepts/more-concepts/monorepo-nx-enterprise",
|
||||||
"tags": ["enforce-project-boundaries", "use-code-generators"]
|
"tags": ["enforce-module-boundaries", "use-code-generators"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "nx-daemon",
|
"id": "nx-daemon",
|
||||||
@ -1722,7 +1722,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/applications-and-libraries",
|
"path": "/concepts/more-concepts/applications-and-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "creating-libraries",
|
"id": "creating-libraries",
|
||||||
@ -1732,7 +1732,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/creating-libraries",
|
"path": "/concepts/more-concepts/creating-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "library-types",
|
"id": "library-types",
|
||||||
@ -1742,7 +1742,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/library-types",
|
"path": "/concepts/more-concepts/library-types",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "grouping-libraries",
|
"id": "grouping-libraries",
|
||||||
@ -1752,7 +1752,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/grouping-libraries",
|
"path": "/concepts/more-concepts/grouping-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "buildable-and-publishable-libraries",
|
"id": "buildable-and-publishable-libraries",
|
||||||
@ -1877,7 +1877,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/monorepo-nx-enterprise",
|
"path": "/concepts/more-concepts/monorepo-nx-enterprise",
|
||||||
"tags": ["enforce-project-boundaries", "use-code-generators"]
|
"tags": ["enforce-module-boundaries", "use-code-generators"]
|
||||||
},
|
},
|
||||||
"/concepts/more-concepts/nx-daemon": {
|
"/concepts/more-concepts/nx-daemon": {
|
||||||
"id": "nx-daemon",
|
"id": "nx-daemon",
|
||||||
@ -1947,7 +1947,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/applications-and-libraries",
|
"path": "/concepts/more-concepts/applications-and-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/concepts/more-concepts/creating-libraries": {
|
"/concepts/more-concepts/creating-libraries": {
|
||||||
"id": "creating-libraries",
|
"id": "creating-libraries",
|
||||||
@ -1957,7 +1957,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/creating-libraries",
|
"path": "/concepts/more-concepts/creating-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/concepts/more-concepts/library-types": {
|
"/concepts/more-concepts/library-types": {
|
||||||
"id": "library-types",
|
"id": "library-types",
|
||||||
@ -1967,7 +1967,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/library-types",
|
"path": "/concepts/more-concepts/library-types",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/concepts/more-concepts/grouping-libraries": {
|
"/concepts/more-concepts/grouping-libraries": {
|
||||||
"id": "grouping-libraries",
|
"id": "grouping-libraries",
|
||||||
@ -1977,7 +1977,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/concepts/more-concepts/grouping-libraries",
|
"path": "/concepts/more-concepts/grouping-libraries",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/concepts/more-concepts/buildable-and-publishable-libraries": {
|
"/concepts/more-concepts/buildable-and-publishable-libraries": {
|
||||||
"id": "buildable-and-publishable-libraries",
|
"id": "buildable-and-publishable-libraries",
|
||||||
@ -2395,7 +2395,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags",
|
"path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "tag-multiple-dimensions",
|
"id": "tag-multiple-dimensions",
|
||||||
@ -2405,7 +2405,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions",
|
"path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "ban-external-imports",
|
"id": "ban-external-imports",
|
||||||
@ -2415,7 +2415,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/ban-external-imports",
|
"path": "/recipes/enforce-module-boundaries/ban-external-imports",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "tags-allow-list",
|
"id": "tags-allow-list",
|
||||||
@ -2425,7 +2425,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/tags-allow-list",
|
"path": "/recipes/enforce-module-boundaries/tags-allow-list",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
@ -3573,7 +3573,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags",
|
"path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "tag-multiple-dimensions",
|
"id": "tag-multiple-dimensions",
|
||||||
@ -3583,7 +3583,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions",
|
"path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "ban-external-imports",
|
"id": "ban-external-imports",
|
||||||
@ -3593,7 +3593,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/ban-external-imports",
|
"path": "/recipes/enforce-module-boundaries/ban-external-imports",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "tags-allow-list",
|
"id": "tags-allow-list",
|
||||||
@ -3603,7 +3603,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/tags-allow-list",
|
"path": "/recipes/enforce-module-boundaries/tags-allow-list",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
@ -3618,7 +3618,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags",
|
"path": "/recipes/enforce-module-boundaries/ban-dependencies-with-tags",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/recipes/enforce-module-boundaries/tag-multiple-dimensions": {
|
"/recipes/enforce-module-boundaries/tag-multiple-dimensions": {
|
||||||
"id": "tag-multiple-dimensions",
|
"id": "tag-multiple-dimensions",
|
||||||
@ -3628,7 +3628,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions",
|
"path": "/recipes/enforce-module-boundaries/tag-multiple-dimensions",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/recipes/enforce-module-boundaries/ban-external-imports": {
|
"/recipes/enforce-module-boundaries/ban-external-imports": {
|
||||||
"id": "ban-external-imports",
|
"id": "ban-external-imports",
|
||||||
@ -3638,7 +3638,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/ban-external-imports",
|
"path": "/recipes/enforce-module-boundaries/ban-external-imports",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/recipes/enforce-module-boundaries/tags-allow-list": {
|
"/recipes/enforce-module-boundaries/tags-allow-list": {
|
||||||
"id": "tags-allow-list",
|
"id": "tags-allow-list",
|
||||||
@ -3648,7 +3648,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/recipes/enforce-module-boundaries/tags-allow-list",
|
"path": "/recipes/enforce-module-boundaries/tags-allow-list",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/recipes/ci": {
|
"/recipes/ci": {
|
||||||
"id": "ci",
|
"id": "ci",
|
||||||
@ -4842,7 +4842,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/reference/nxignore",
|
"path": "/reference/nxignore",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "environment-variables",
|
"id": "environment-variables",
|
||||||
@ -4897,7 +4897,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/reference/nxignore",
|
"path": "/reference/nxignore",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/reference/environment-variables": {
|
"/reference/environment-variables": {
|
||||||
"id": "environment-variables",
|
"id": "environment-variables",
|
||||||
@ -5346,7 +5346,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": true,
|
"isExternal": true,
|
||||||
"path": "/reference/nx-json#workspace-layout",
|
"path": "/reference/nx-json#workspace-layout",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "nxjson-generator-defaults",
|
"id": "nxjson-generator-defaults",
|
||||||
@ -5431,7 +5431,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": true,
|
"isExternal": true,
|
||||||
"path": "/reference/nx-json#workspace-layout",
|
"path": "/reference/nx-json#workspace-layout",
|
||||||
"tags": ["enforce-project-boundaries"]
|
"tags": ["enforce-module-boundaries"]
|
||||||
},
|
},
|
||||||
"/reference/nx-json#generators": {
|
"/reference/nx-json#generators": {
|
||||||
"id": "nxjson-generator-defaults",
|
"id": "nxjson-generator-defaults",
|
||||||
|
|||||||
@ -1652,7 +1652,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/packages/nx/documents/format-check",
|
"path": "/packages/nx/documents/format-check",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"originalFilePath": "generated/cli/format-check"
|
"originalFilePath": "generated/cli/format-check"
|
||||||
},
|
},
|
||||||
"/packages/nx/documents/format-write": {
|
"/packages/nx/documents/format-write": {
|
||||||
@ -1663,7 +1663,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/packages/nx/documents/format-write",
|
"path": "/packages/nx/documents/format-write",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"originalFilePath": "generated/cli/format-write"
|
"originalFilePath": "generated/cli/format-write"
|
||||||
},
|
},
|
||||||
"/packages/nx/documents/migrate": {
|
"/packages/nx/documents/migrate": {
|
||||||
@ -1707,7 +1707,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "/packages/nx/documents/workspace-lint",
|
"path": "/packages/nx/documents/workspace-lint",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"originalFilePath": "generated/cli/workspace-lint"
|
"originalFilePath": "generated/cli/workspace-lint"
|
||||||
},
|
},
|
||||||
"/packages/nx/documents/workspace-generator": {
|
"/packages/nx/documents/workspace-generator": {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -307,13 +307,13 @@
|
|||||||
"path": "/packages/nx/documents/migrate"
|
"path": "/packages/nx/documents/migrate"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enforce-project-boundaries": [
|
"enforce-module-boundaries": [
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
"file": "shared/core-features/enforce-project-boundaries",
|
"file": "shared/core-features/enforce-module-boundaries",
|
||||||
"id": "enforce-project-boundaries",
|
"id": "enforce-module-boundaries",
|
||||||
"name": "Enforce Project Boundaries",
|
"name": "Enforce Module Boundaries",
|
||||||
"path": "/core-features/enforce-project-boundaries"
|
"path": "/core-features/enforce-module-boundaries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
|
|||||||
@ -1633,7 +1633,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "nx/documents/format-check",
|
"path": "nx/documents/format-check",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"originalFilePath": "generated/cli/format-check"
|
"originalFilePath": "generated/cli/format-check"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1644,7 +1644,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "nx/documents/format-write",
|
"path": "nx/documents/format-write",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"originalFilePath": "generated/cli/format-write"
|
"originalFilePath": "generated/cli/format-write"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1688,7 +1688,7 @@
|
|||||||
"itemList": [],
|
"itemList": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"path": "nx/documents/workspace-lint",
|
"path": "nx/documents/workspace-lint",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"originalFilePath": "generated/cli/workspace-lint"
|
"originalFilePath": "generated/cli/workspace-lint"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -53,7 +53,7 @@ The `depConstraints` is an array of objects representing the constraints defined
|
|||||||
|
|
||||||
Read more about the proper usage of this rule:
|
Read more about the proper usage of this rule:
|
||||||
|
|
||||||
- [Enforce Project Boundaries](/core-features/enforce-project-boundaries)
|
- [Enforce Module Boundaries](/core-features/enforce-module-boundaries)
|
||||||
- [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags)
|
- [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags)
|
||||||
- [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions)
|
- [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions)
|
||||||
- [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports)
|
- [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports)
|
||||||
|
|||||||
@ -312,10 +312,10 @@
|
|||||||
"file": "shared/core-features/automate-updating-dependencies"
|
"file": "shared/core-features/automate-updating-dependencies"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Enforce Project Boundaries",
|
"name": "Enforce Module Boundaries",
|
||||||
"id": "enforce-project-boundaries",
|
"id": "enforce-module-boundaries",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/core-features/enforce-project-boundaries"
|
"file": "shared/core-features/enforce-module-boundaries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Plugin Features",
|
"name": "Plugin Features",
|
||||||
@ -425,7 +425,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Using Nx at Enterprises",
|
"name": "Using Nx at Enterprises",
|
||||||
"id": "monorepo-nx-enterprise",
|
"id": "monorepo-nx-enterprise",
|
||||||
"tags": ["enforce-project-boundaries", "use-code-generators"],
|
"tags": ["enforce-module-boundaries", "use-code-generators"],
|
||||||
"file": "shared/monorepo-nx-enterprise"
|
"file": "shared/monorepo-nx-enterprise"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -468,25 +468,25 @@
|
|||||||
{
|
{
|
||||||
"name": "Applications and Libraries",
|
"name": "Applications and Libraries",
|
||||||
"id": "applications-and-libraries",
|
"id": "applications-and-libraries",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/workspace/applications-and-libraries"
|
"file": "shared/workspace/applications-and-libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Creating Libraries",
|
"name": "Creating Libraries",
|
||||||
"id": "creating-libraries",
|
"id": "creating-libraries",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/workspace/creating-libraries"
|
"file": "shared/workspace/creating-libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Library Types",
|
"name": "Library Types",
|
||||||
"id": "library-types",
|
"id": "library-types",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/workspace/library-types"
|
"file": "shared/workspace/library-types"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Grouping Libraries",
|
"name": "Grouping Libraries",
|
||||||
"id": "grouping-libraries",
|
"id": "grouping-libraries",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/workspace/grouping-libraries"
|
"file": "shared/workspace/grouping-libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -732,25 +732,25 @@
|
|||||||
{
|
{
|
||||||
"name": "Ban Dependencies with Certain Tags",
|
"name": "Ban Dependencies with Certain Tags",
|
||||||
"id": "ban-dependencies-with-tags",
|
"id": "ban-dependencies-with-tags",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/recipes/ban-dependencies-with-tags"
|
"file": "shared/recipes/ban-dependencies-with-tags"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Tag in Multiple Dimensions",
|
"name": "Tag in Multiple Dimensions",
|
||||||
"id": "tag-multiple-dimensions",
|
"id": "tag-multiple-dimensions",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/recipes/tag-multiple-dimensions"
|
"file": "shared/recipes/tag-multiple-dimensions"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Ban External Imports",
|
"name": "Ban External Imports",
|
||||||
"id": "ban-external-imports",
|
"id": "ban-external-imports",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/recipes/ban-external-imports"
|
"file": "shared/recipes/ban-external-imports"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Tags Allow List",
|
"name": "Tags Allow List",
|
||||||
"id": "tags-allow-list",
|
"id": "tags-allow-list",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/recipes/tags-allow-list"
|
"file": "shared/recipes/tags-allow-list"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1098,7 +1098,7 @@
|
|||||||
{
|
{
|
||||||
"name": ".nxignore",
|
"name": ".nxignore",
|
||||||
"id": "nxignore",
|
"id": "nxignore",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "shared/reference/nxignore"
|
"file": "shared/reference/nxignore"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1257,7 +1257,7 @@
|
|||||||
"name": "nx.json workspaceLayout property",
|
"name": "nx.json workspaceLayout property",
|
||||||
"id": "nxjson-workspaceLayout",
|
"id": "nxjson-workspaceLayout",
|
||||||
"file": "",
|
"file": "",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"path": "/reference/nx-json#workspace-layout",
|
"path": "/reference/nx-json#workspace-layout",
|
||||||
"isExternal": true
|
"isExternal": true
|
||||||
},
|
},
|
||||||
@ -1629,13 +1629,13 @@
|
|||||||
{
|
{
|
||||||
"name": "format:check",
|
"name": "format:check",
|
||||||
"id": "format-check",
|
"id": "format-check",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "generated/cli/format-check"
|
"file": "generated/cli/format-check"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "format:write",
|
"name": "format:write",
|
||||||
"id": "format-write",
|
"id": "format-write",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "generated/cli/format-write"
|
"file": "generated/cli/format-write"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1657,7 +1657,7 @@
|
|||||||
{
|
{
|
||||||
"name": "workspace-lint",
|
"name": "workspace-lint",
|
||||||
"id": "workspace-lint",
|
"id": "workspace-lint",
|
||||||
"tags": ["enforce-project-boundaries"],
|
"tags": ["enforce-module-boundaries"],
|
||||||
"file": "generated/cli/workspace-lint"
|
"file": "generated/cli/workspace-lint"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -813,7 +813,7 @@ If you have the ESLint plugin installed in your IDE you should immediately see a
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Learn more about how to [enforce module boundaries](/core-features/enforce-project-boundaries).
|
Learn more about how to [enforce module boundaries](/core-features/enforce-module-boundaries).
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# Enforce Project Boundaries
|
# Enforce Module Boundaries
|
||||||
|
|
||||||
If you partition your code into well-defined cohesive units, even a small organization will end up with a dozen apps and dozens or hundreds of libs. If all of them can depend on each other freely, chaos will ensue, and the workspace will become unmanageable.
|
If you partition your code into well-defined cohesive units, even a small organization will end up with a dozen apps and dozens or hundreds of libs. If all of them can depend on each other freely, chaos will ensue, and the workspace will become unmanageable.
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ The starting point of any non-trivial monorepo management tool is to be able to
|
|||||||
|
|
||||||
- Turborepo only analyzes package.json files to understand how projects relate to each other. Built-in Nx plugins also analyze package.json files but in addition they analyze JS/TS files, so you don't have to have bogus package.json files (that you don’t use for the purposes of installing packages or publishing) in your repo. There are plugins for Nx that do that for other languages (e.g., Golang, .Net).
|
- Turborepo only analyzes package.json files to understand how projects relate to each other. Built-in Nx plugins also analyze package.json files but in addition they analyze JS/TS files, so you don't have to have bogus package.json files (that you don’t use for the purposes of installing packages or publishing) in your repo. There are plugins for Nx that do that for other languages (e.g., Golang, .Net).
|
||||||
- Since the computation of the project graph can take a lot of time for complex workspaces, both Nx and Turborepo have a daemon process to create the graph in the background.
|
- Since the computation of the project graph can take a lot of time for complex workspaces, both Nx and Turborepo have a daemon process to create the graph in the background.
|
||||||
- **Nx has [project boundary rules](/core-features/enforce-project-boundaries), which are essential for any monorepo with multiple teams contributing.** You can say that some things in the monorepo are private to your team so they cannot be depended on by other teams. Turborepo doesn't have project boundary rules. **Project boundary rules prevent the monorepo from becoming a “big ball of mud”.**
|
- **Nx has [module boundary rules](/core-features/enforce-module-boundaries), which are essential for any monorepo with multiple teams contributing.** You can say that some things in the monorepo are private to your team so they cannot be depended on by other teams. Turborepo doesn't have project boundary rules. **Project boundary rules prevent the monorepo from becoming a “big ball of mud”.**
|
||||||
|
|
||||||
#### 3. Project graph visualization
|
#### 3. Project graph visualization
|
||||||
|
|
||||||
|
|||||||
@ -73,7 +73,7 @@ For example, your generated application should have four [tasks available](/core
|
|||||||
|
|
||||||
These workspace configuration files can seem a little long and intimidating. The Nx Console can help you navigate it more easily with its Workspace JSON panel. By clicking on a project in your workspace, it will navigate you to the right place in the workspace file to begin making edits.
|
These workspace configuration files can seem a little long and intimidating. The Nx Console can help you navigate it more easily with its Workspace JSON panel. By clicking on a project in your workspace, it will navigate you to the right place in the workspace file to begin making edits.
|
||||||
|
|
||||||
Additionally, there is an `nx.json` file that contains metadata about your projects. [This metadata includes tags](/core-features/enforce-project-boundaries) that can help you impose constraints on your applications and library dependencies.
|
Additionally, there is an `nx.json` file that contains metadata about your projects. [This metadata includes tags](/core-features/enforce-module-boundaries) that can help you impose constraints on your applications and library dependencies.
|
||||||
|
|
||||||
## Migrating your code
|
## Migrating your code
|
||||||
|
|
||||||
@ -196,4 +196,4 @@ It’s important to remember: don’t just drop your code anywhere! Always gener
|
|||||||
|
|
||||||
If you’re consolidating multiple repositories or libraries into a single Nx workspace, you may have concerns about code boundaries. Previously, you may have had well-established boundaries by separating code into different repositories or having a public API for a library. Nx features a tagging system that allows you to enforce these code boundaries in a granular way. Each project can be tagged, and you can constrain dependencies based on these tags.
|
If you’re consolidating multiple repositories or libraries into a single Nx workspace, you may have concerns about code boundaries. Previously, you may have had well-established boundaries by separating code into different repositories or having a public API for a library. Nx features a tagging system that allows you to enforce these code boundaries in a granular way. Each project can be tagged, and you can constrain dependencies based on these tags.
|
||||||
|
|
||||||
[Learn more about tags and dependency constraints](/core-features/enforce-project-boundaries)
|
[Learn more about tags and dependency constraints](/core-features/enforce-module-boundaries)
|
||||||
|
|||||||
@ -148,7 +148,7 @@ For a large organization it's crucial to establish how projects can depend on ea
|
|||||||
feature libraries.
|
feature libraries.
|
||||||
|
|
||||||
Nx provides a feature called tags that can be used to codify and statically-enforce these rules. Read more about
|
Nx provides a feature called tags that can be used to codify and statically-enforce these rules. Read more about
|
||||||
tags [here](/core-features/enforce-project-boundaries).
|
tags [here](/core-features/enforce-module-boundaries).
|
||||||
|
|
||||||
## Code Ownership
|
## Code Ownership
|
||||||
|
|
||||||
|
|||||||
@ -53,7 +53,7 @@ The `depConstraints` is an array of objects representing the constraints defined
|
|||||||
|
|
||||||
Read more about the proper usage of this rule:
|
Read more about the proper usage of this rule:
|
||||||
|
|
||||||
- [Enforce Project Boundaries](/core-features/enforce-project-boundaries)
|
- [Enforce Module Boundaries](/core-features/enforce-module-boundaries)
|
||||||
- [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags)
|
- [Ban Dependencies with Certain Tags](/recipes/enforce-module-boundaries/ban-dependencies-with-tags)
|
||||||
- [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions)
|
- [Tag in Multiple Dimensions](/recipes/enforce-module-boundaries/tag-multiple-dimensions)
|
||||||
- [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports)
|
- [Ban External Imports](/recipes/enforce-module-boundaries/ban-external-imports)
|
||||||
|
|||||||
@ -818,7 +818,7 @@ If you have the ESLint plugin installed in your IDE you should immediately see a
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Learn more about how to [enforce module boundaries](/core-features/enforce-project-boundaries).
|
Learn more about how to [enforce module boundaries](/core-features/enforce-module-boundaries).
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ Because we are not using an Nx plugin for Lit, there are few items we'll have to
|
|||||||
{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %}
|
{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %}
|
||||||
{% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %}
|
{% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %}
|
||||||
{% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %}
|
{% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %}
|
||||||
{% pill url="/core-features/enforce-project-boundaries" %}✅ Enforce Project Boundaries{% /pill %}
|
{% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %}
|
||||||
{% pill url="/core-features/plugin-features/use-task-executors" %}🚫 Use Task Executors{% /pill %}
|
{% pill url="/core-features/plugin-features/use-task-executors" %}🚫 Use Task Executors{% /pill %}
|
||||||
{% pill url="/core-features/plugin-features/use-code-generators" %}🚫 Use Code Generators{% /pill %}
|
{% pill url="/core-features/plugin-features/use-code-generators" %}🚫 Use Code Generators{% /pill %}
|
||||||
{% pill url="/core-features/automate-updating-dependencies" %}🚫 Automate Updating Framework Dependencies{% /pill %}
|
{% pill url="/core-features/automate-updating-dependencies" %}🚫 Automate Updating Framework Dependencies{% /pill %}
|
||||||
|
|||||||
@ -636,7 +636,7 @@ You can annotate your projects with `tags` as follows:
|
|||||||
{% /tab %}
|
{% /tab %}
|
||||||
{% /tabs %}
|
{% /tabs %}
|
||||||
|
|
||||||
You can [configure lint rules using these tags](/core-features/enforce-project-boundaries) to, for instance, ensure that libraries
|
You can [configure lint rules using these tags](/core-features/enforce-module-boundaries) to, for instance, ensure that libraries
|
||||||
belonging to `myteam` are not depended on by libraries belong to `theirteam`.
|
belonging to `myteam` are not depended on by libraries belong to `theirteam`.
|
||||||
|
|
||||||
### implicitDependencies
|
### implicitDependencies
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
- [Distribute Task Execution](/core-features/distribute-task-execution)
|
- [Distribute Task Execution](/core-features/distribute-task-execution)
|
||||||
- [Integrate with Editors](/core-features/integrate-with-editors)
|
- [Integrate with Editors](/core-features/integrate-with-editors)
|
||||||
- [Automate Updating Dependencies](/core-features/automate-updating-dependencies)
|
- [Automate Updating Dependencies](/core-features/automate-updating-dependencies)
|
||||||
- [Enforce Project Boundaries](/core-features/enforce-project-boundaries)
|
- [Enforce Module Boundaries](/core-features/enforce-module-boundaries)
|
||||||
- [Plugin Features](/core-features/plugin-features)
|
- [Plugin Features](/core-features/plugin-features)
|
||||||
- [Use Task Executors](/core-features/plugin-features/use-task-executors)
|
- [Use Task Executors](/core-features/plugin-features/use-task-executors)
|
||||||
- [Use Code Generators](/core-features/plugin-features/use-code-generators)
|
- [Use Code Generators](/core-features/plugin-features/use-code-generators)
|
||||||
|
|||||||
@ -16,7 +16,7 @@ The `nx graph` command generates a graph of how apps and libraries depend on eac
|
|||||||
|
|
||||||
### 3. Enforcing Constraints
|
### 3. Enforcing Constraints
|
||||||
|
|
||||||
You can enforce constraints on how different types of libraries depend on each other [using tags](/core-features/enforce-project-boundaries). Following pre-determined conventions on what kind of code can go in different types of libraries allows your tagging system to enforce good architectural patterns.
|
You can enforce constraints on how different types of libraries depend on each other [using tags](/core-features/enforce-module-boundaries). Following pre-determined conventions on what kind of code can go in different types of libraries allows your tagging system to enforce good architectural patterns.
|
||||||
|
|
||||||
Also, each library defines its own API, which allows for encapsulating logic that other parts of codebase can not access. You can even use a [CODEOWNERS file](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners) to assign ownership of a certain library to a user or team.
|
Also, each library defines its own API, which allows for encapsulating logic that other parts of codebase can not access. You can even use a [CODEOWNERS file](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners) to assign ownership of a certain library to a user or team.
|
||||||
|
|
||||||
|
|||||||
@ -247,7 +247,9 @@ const diataxis = {
|
|||||||
'/structure/grouping-libraries': '/concepts/more-concepts/grouping-libraries',
|
'/structure/grouping-libraries': '/concepts/more-concepts/grouping-libraries',
|
||||||
'/structure/buildable-and-publishable-libraries':
|
'/structure/buildable-and-publishable-libraries':
|
||||||
'/concepts/more-concepts/buildable-and-publishable-libraries',
|
'/concepts/more-concepts/buildable-and-publishable-libraries',
|
||||||
'/structure/monorepo-tags': '/core-features/enforce-project-boundaries',
|
'/structure/monorepo-tags': '/core-features/enforce-module-boundaries',
|
||||||
|
'/core-features/enforce-project-boundaries':
|
||||||
|
'/core-features/enforce-module-boundaries',
|
||||||
'/structure/dependency-graph': '/core-features/explore-graph',
|
'/structure/dependency-graph': '/core-features/explore-graph',
|
||||||
'/structure/project-graph-plugins':
|
'/structure/project-graph-plugins':
|
||||||
'/recipes/advanced-plugins/project-graph-plugins',
|
'/recipes/advanced-plugins/project-graph-plugins',
|
||||||
|
|||||||
@ -86,7 +86,7 @@ export function ConfScheduleShort(): JSX.Element {
|
|||||||
title: 'Package-based to Integrated: One Small Step or One Giant Leap?',
|
title: 'Package-based to Integrated: One Small Step or One Giant Leap?',
|
||||||
description: `When you have a package-based repo, it can feel like the features of an integrated repo are all the way on the moon. But, in the same way that Neil Armstrong had a whole team of people enabling him to take his one small step, you can take advantage of the hard work of the Nx team to incrementally move your package-based repo toward an integrated repo.
|
description: `When you have a package-based repo, it can feel like the features of an integrated repo are all the way on the moon. But, in the same way that Neil Armstrong had a whole team of people enabling him to take his one small step, you can take advantage of the hard work of the Nx team to incrementally move your package-based repo toward an integrated repo.
|
||||||
|
|
||||||
Starting from a package-based repo, we'll enforce project boundaries, create and use code generators and, finally, use task executors and automate updating dependencies. Together, these improvements add up to one giant leap forward in developer experience.`,
|
Starting from a package-based repo, we'll enforce module boundaries, create and use code generators and, finally, use task executors and automate updating dependencies. Together, these improvements add up to one giant leap forward in developer experience.`,
|
||||||
speakers: ['Isaac Mann'],
|
speakers: ['Isaac Mann'],
|
||||||
videoUrl: '',
|
videoUrl: '',
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user