Compare commits

..

16 Commits

Author SHA1 Message Date
Max Kless c6bf6414ce feat(graph): write nx-console e2e tests for the new tooltip functionality 2023-08-09 16:45:58 +02:00
Max Kless 395c3562d0 cleanup(graph): remove unused var 2023-08-09 10:26:15 +02:00
Max Kless 5a2ea09d9b cleanup(graph): improve graph e2e test 2023-08-09 10:02:41 +02:00
Max Kless 9c5873c9fa fix(graph): adjust implementation to upstream changes 2023-08-09 09:50:19 +02:00
Max Kless 47d4eb8eb8 feat(graph): add e2e test to test expanded task inputs 2023-08-09 09:29:23 +02:00
Max Kless ad9344152f feat(graph): add task tooltip e2e test 2023-08-09 09:29:23 +02:00
Max Kless 491966b6e3 feat(graph): expand task inputs and display them in the UI 2023-08-09 09:29:20 +02:00
Jonathan Cammisuli cda123802f fix(core): update test to use ProjectGraphBuilder + createTaskGraph 2023-08-08 20:59:17 -04:00
Jonathan Cammisuli 9690aea0a8 fix(core): change the way we gather inputs for the graph view 2023-08-08 14:55:09 -04:00
FrozenPandaz 6a1164f7ae chore(core): update unit tests 2023-08-08 14:50:13 -04:00
Jonathan Cammisuli 0ce7acdf77 fix(core): change the way we gather inputs for the graph view 2023-08-08 14:16:59 -04:00
Jonathan Cammisuli 137ba06499 fix(core): revert changes to run-command 2023-08-08 11:27:07 -04:00
Jonathan Cammisuli 5df932b108 fix(core): review changes 2023-08-07 14:11:40 -04:00
Jonathan Cammisuli 62e75edd24 fix(core): update unit test 2023-08-07 14:11:40 -04:00
Jonathan Cammisuli 2145117b24 feat(core): add task inputs to task graph for graph view 2023-08-07 14:11:40 -04:00
Jonathan Cammisuli a42cabccf9 feat(core): gather task inputs 2023-08-07 14:11:39 -04:00
5007 changed files with 152757 additions and 290882 deletions
+119 -83
View File
@@ -4,9 +4,9 @@ version: 2.1
# ORBS
# -------------------------
orbs:
nx: nrwl/nx@1.6.2
nx: nrwl/nx@1.6.1
rust: circleci/rust@1.6.0
browser-tools: circleci/browser-tools@1.4.8
browser-tools: circleci/browser-tools@1.4.0
# -------------------------
# EXECUTORS
@@ -19,12 +19,12 @@ executors:
linux:
<<: *defaults
docker:
- image: cimg/rust:1.73.0-browsers
- image: cimg/rust:1.70.0-browsers
resource_class: medium+
macos:
<<: *defaults
resource_class: macos.m1.medium.gen1
resource_class: macos.x86.medium.gen2
macos:
xcode: '14.2.0'
@@ -48,7 +48,7 @@ commands:
- run:
name: Install pnpm package manager (linux)
command: |
npm install --prefix=$HOME/.local -g @pnpm/exe@8
npm install --prefix=$HOME/.local -g @pnpm/exe@8.3.1
- when:
condition:
equal: [<< parameters.os >>, macos]
@@ -56,12 +56,11 @@ commands:
- run:
name: Install pnpm package manager (macos)
command: |
npm install -g @pnpm/exe@8
npm install -g @pnpm/exe@8.3.1
- run:
name: Install Dependencies
command: |
pnpm install --frozen-lockfile
pnpm playwright install --with-deps
- save_cache:
name: Save pnpm Package Cache
key: node-deps-{{ arch }}-v3-{{ checksum "pnpm-lock.yaml" }}
@@ -69,54 +68,91 @@ commands:
- ~/.pnpm-store
- ~/.cache/Cypress
- node_modules
install-sdkman:
description: Install SDKMAN
steps:
- restore_cache:
name: Restore SDKMAN executable and binaries from cache
keys:
- sdkman-cli-{{ arch }}-v2
- run:
name: Installing SDKMAN
command: |
if [ ! -d ~/.sdkman ]
then
curl -s "https://get.sdkman.io?rcupdate=false" | bash
sed -i -e 's/sdkman_auto_answer=false/sdkman_auto_answer=true/g' ~/.sdkman/etc/config
fi
echo -e '\nsource "/home/circleci/.sdkman/bin/sdkman-init.sh"' >> $BASH_ENV
source $BASH_ENV
sdk version
- save_cache:
name: Save SDKMAN executable and binaries to cache
key: sdkman-cli-{{ arch }}-v2
paths:
- ~/.sdkman
install-gradle:
description: Install gradle
setup:
parameters:
gradle-version:
os:
type: string
default: ''
steps:
- restore_cache:
name: Restore Gradle binary from cache
keys:
- gradle-cli-{{ arch }}-v1
- run:
name: Installing Gradle
command: |
sdk install gradle << parameters.gradle-version >>
gradle --version
- save_cache:
name: Save Gradle binary to cache
key: gradle-cli-{{ arch }}-v1
paths:
- ~/.sdkman/candidates/gradle/
- checkout
- when:
condition:
equal: [<< parameters.os >>, macos]
steps:
- restore_cache:
name: Restore Homebrew packages
keys:
- nrwl-nx-homebrew-packages
- run:
name: Configure Detox Environment, Install applesimutils
command: |
HOMEBREW_NO_AUTO_UPDATE=1 brew tap wix/brew >/dev/null
HOMEBREW_NO_AUTO_UPDATE=1 brew install applesimutils >/dev/null
xcrun simctl shutdown all && xcrun simctl erase all
no_output_timeout: 20m
- save_cache:
name: Save Homebrew Cache
key: nrwl-nx-homebrew-packages
paths:
- /usr/local/Homebrew
- ~/Library/Caches/Homebrew
- when:
condition:
equal: [<< parameters.os >>, linux]
steps:
- run:
command: |
sudo apt-get update
sudo apt-get install -y ca-certificates lsof
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run-pnpm-install:
os: << parameters.os >>
# -------------------------
# JOBS
# -------------------------
jobs:
# -------------------------
# JOBS: Agent
# -------------------------
agent:
parameters:
os:
type: string
default: 'linux'
pm:
type: string
default: 'pnpm'
executor: << parameters.os >>
environment:
GIT_AUTHOR_EMAIL: test@test.com
GIT_AUTHOR_NAME: Test
GIT_COMMITTER_EMAIL: test@test.com
GIT_COMMITTER_NAME: Test
NX_E2E_CI_CACHE_KEY: e2e-circleci-<< parameters.os >>
SELECTED_PM: << parameters.pm >>
NX_E2E_RUN_E2E: 'true'
NX_VERBOSE_LOGGING: 'false'
NX_NATIVE_LOGGING: 'false'
NX_PERF_LOGGING: 'false'
steps:
- run:
name: Configure git metadata (needed for lerna smoke tests)
command: |
git config --global user.email test@test.com
git config --global user.name "Test Test"
- run:
name: Set dynamic nx run variable
command: |
echo "export NX_CI_EXECUTION_ENV=\"<< parameters.os >>\";" >> $BASH_ENV
- setup:
os: << parameters.os >>
- run:
name: Agent
command: pnpm nx-cloud start-agent
no_output_timeout: 60m
# -------------------------
# JOBS: Main Linux
# -------------------------
@@ -124,27 +160,20 @@ jobs:
executor: linux
environment:
NX_E2E_CI_CACHE_KEY: e2e-circleci-linux
NX_VERBOSE_LOGGING: 'false'
NX_DAEMON: 'true'
NX_PERF_LOGGING: 'false'
NX_NATIVE_LOGGING: 'false'
NX_E2E_RUN_E2E: 'true'
NX_CI_EXECUTION_ENV: 'linux'
steps:
- checkout
- run:
name: Set dynamic nx run variable
command: |
echo "export NX_CI_EXECUTION_ENV=\"linux\";" >> $BASH_ENV
- setup:
os: linux
- nx/set-shas:
main-branch-name: 'master'
- run: npx nx-cloud@next start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml" --stop-agents-after="e2e"
- run:
command: |
sudo apt-get update
sudo apt-get install -y ca-certificates lsof
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- install-sdkman
- install-gradle:
gradle-version: '8.5'
- run-pnpm-install:
os: linux
- run: pnpm nx-cloud start-ci-run --stop-agents-after="e2e"
- run:
name: Check Documentation
command: pnpm nx documentation --no-dte
@@ -161,8 +190,12 @@ jobs:
pnpm nx run-many -t check-imports check-commit check-lock-files check-codeowners documentation --parallel=1 --no-dte &
pids+=($!)
(pnpm nx affected --targets=lint,test,build --base=$NX_BASE --head=$NX_HEAD --parallel=3 &&
pnpm nx affected --targets=e2e,e2e-ci --base=$NX_BASE --head=$NX_HEAD --parallel=1) &
pnpm nx affected --target=lint --base=$NX_BASE --head=$NX_HEAD --parallel=3 &
pids+=($!)
pnpm nx affected --target=test --base=$NX_BASE --head=$NX_HEAD --parallel=1 &
pids+=($!)
(pnpm nx affected --target=build --base=$NX_BASE --head=$NX_HEAD --parallel=3 &&
pnpm nx affected --target=e2e --base=$NX_BASE --head=$NX_HEAD --parallel=1) &
pids+=($!)
for pid in "${pids[@]}"; do
@@ -175,29 +208,16 @@ jobs:
executor: macos
environment:
NX_E2E_CI_CACHE_KEY: e2e-circleci-macos
NX_DAEMON: 'false' # TODO: set to true after #18410
NX_PERF_LOGGING: 'false'
NX_CI_EXECUTION_ENV: 'macos'
SELECTED_PM: 'npm' # explicitly define npm for macOS tests
NX_SKIP_NX_CACHE: 'true' # TODO: Remove after #18410
steps:
- checkout
- restore_cache:
name: Restore Homebrew packages
keys:
- nrwl-nx-homebrew-packages
- run:
name: Configure Detox Environment, Install applesimutils
name: Set dynamic nx run variable
command: |
HOMEBREW_NO_AUTO_UPDATE=1 brew tap wix/brew >/dev/null
HOMEBREW_NO_AUTO_UPDATE=1 brew install applesimutils >/dev/null
xcrun simctl shutdown all && xcrun simctl erase all
no_output_timeout: 20m
- save_cache:
name: Save Homebrew Cache
key: nrwl-nx-homebrew-packages
paths:
- /usr/local/Homebrew
- ~/Library/Caches/Homebrew
- run-pnpm-install:
echo "export NX_CI_EXECUTION_ENV=\"macos\";" >> $BASH_ENV
- setup:
os: macos
- rust/install
- nx/set-shas:
@@ -216,6 +236,22 @@ workflows:
build:
jobs:
- agent:
name: 'agent1'
- agent:
name: 'agent2'
- agent:
name: 'agent3'
- agent:
name: 'agent4'
- agent:
name: 'agent5'
- agent:
name: 'agent6'
- agent:
name: 'agent7'
- agent:
name: 'agent8'
- main-linux
- mainmacos:
name: main-macos-e2e
+9 -11
View File
@@ -3,28 +3,26 @@
{
"name": "NxDevContainer",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/typescript-node:20-bullseye",
"image": "mcr.microsoft.com/devcontainers/typescript-node:0-18",
"features": {
"ghcr.io/devcontainers/features/rust:1": {}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// 4211 = nx graph port
"forwardPorts": [4211],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "./.devcontainer/postCreateCommand.sh",
// Configure tool-specific properties.
"postCreateCommand": "pnpm install",
"customizations": {
"vscode": {
"extensions": [
"nrwl.angular-console",
"firsttris.vscode-jest-runner",
"eamodio.gitlens"
],
"settings": {
"debug.javascript.autoAttachFilter": "onlyWithFlag" // workaround for that issue: https://github.com/microsoft/vscode-js-debug/issues/374#issuecomment-622239998
}
"extensions": ["nrwl.angular-console"]
}
}
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
-11
View File
@@ -1,11 +0,0 @@
#!/bin/sh
# Update the underlying (Debian) OS, to make sure we have the latest security patches and libraries like 'GLIBC'
sudo apt-get update && sudo apt-get -y upgrade
# Update pnpm
#npm install -g pnpm
# Install dependencies
pnpm install --frozen-lockfile
+1 -8
View File
@@ -1,6 +1,6 @@
name: 🐞 Bug Report
description: This form is to report unexpected behavior in Nx.
labels: ["type: bug"]
labels: [ "type: bug" ]
body:
- type: markdown
attributes:
@@ -53,13 +53,6 @@ body:
label: Failure Logs
description: Please include any relevant log snippets or files here. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: input
id: pm
attributes:
label: Package Manager Version
description: |
If `nx report` doesn't work, please provide the name and the version of your package manager.
You can get version information by running `yarn --version`, `pnpm --version` or `npm --version`, depending on the package manager used.
- type: checkboxes
id: os
attributes:
+23
View File
@@ -0,0 +1,23 @@
---
name: "\U0001F680 Feature Request"
about: Suggest a new feature.
labels: "type: feature"
---
<!-- Please do your best to fill out all of the sections below! -->
<!-- Use this issue type for concrete suggestions, otherwise, open a discussion type issue instead. -->
- [ ] I'd be willing to implement this feature ([contributing guide](https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md))
## Description
<!-- What is the behavior that you would like to see introduced? -->
## Motivation
<!-- Why do you believe this behavior would be beneficial? -->
## Suggested Implementation
<!-- How do you imagine this might work? -->
## Alternate Implementations
<!-- How else do you imagine this might work? -->
+9 -12
View File
@@ -1,17 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: "\U0001F680 Feature Request"
about: "Suggest a new feature to make Nx better"
url: https://github.com/nrwl/nx/discussions/new?category=feature-requests
- name: Start a Discussion
about: "Start a discussion to share your experience with Nx"
url: https://github.com/nrwl/nx/discussions/new/choose
- name: Join the Discord
url: https://go.nx.dev/community
about: "The Nx Official Discord Server is a great place for questions to be asked and answered. Please use the #forum if you need help with your workspace!"
- name: Are you looking for integration with a new tool?
url: https://nx.dev/community
about: "There are a lot of awesome Plugins for Nx provided by the community! Check here to see if there is a community plugin to integrate your tool."
- name: Read the community guidelines
about: "Please make sure you have read the submission guidelines before posting an issue"
url: https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-an-issue
- name: Want to start a discussion?
about: "Want to start a thread to discuss an idea? Use the discussions feature provided by GitHub."
url: https://github.com/nrwl/nx/discussions
- name: Have a question?
url: https://go.nrwl.io/join-slack
about: "The Community Slack is a great place for questions to be asked and answered. Please use the #support channel if you need help with your workspace!"
- name: Are you looking for integration with a new tool?
url: https://nx.dev/community
about: "There are a lot of awesome Plugins for Nx provided by the community! Check here to see if there is a community plugin to integrate your tool."
@@ -42,7 +42,7 @@ Example:
}]
```
Once merged, your plugin will be available when running the `nx list` command, and will also be available in the Plugin Registry on [nx.dev](https://nx.dev/plugin-registry)
Once merged, your plugin will be available when running the `nx list` command, and will also be available in the Plugin Registry on [nx.dev](https://nx.dev/extending-nx/registry)
-->
# Community Plugin Submission
+1 -1
View File
@@ -1,4 +1,4 @@
name: Unmergeable Labels Check
name: Unmergable Labels Check
on:
pull_request:
+103 -89
View File
@@ -2,7 +2,7 @@ name: E2E matrix
on:
schedule:
- cron: "0 5 * * *"
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
debug_enabled:
@@ -14,7 +14,7 @@ on:
env:
CYPRESS_CACHE_FOLDER: ${{ github.workspace }}/.cypress
permissions: { }
permissions: {}
jobs:
preinstall:
runs-on: ${{ matrix.os }}
@@ -24,21 +24,24 @@ jobs:
- ubuntu-latest
- macos-latest
node_version:
- 20
- 19
- 18
- 16
exclude:
# run just node v20 on macos
# run just node v18 on macos
- os: macos-latest
node_version: 18
node_version: 19
- os: macos-latest
node_version: 16
name: Cache install (${{ matrix.os }}, node v${{ matrix.node_version }})
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Install PNPM
run: |
npm install -g @pnpm/exe@8.14
npm install -g @pnpm/exe@8.3.1
- name: Set node
uses: actions/setup-node@v3
@@ -97,8 +100,9 @@ jobs:
- ubuntu-latest
- macos-latest
node_version:
- 20
- 19
- 18
- 16
package_manager:
- npm
- yarn
@@ -106,37 +110,28 @@ jobs:
project:
- e2e-angular-core
- e2e-angular-extensions
- e2e-angular-module-federation
- e2e-cypress
- e2e-detox
- e2e-esbuild
- e2e-eslint
- e2e-expo
- e2e-gradle
- e2e-jest
- e2e-js
- e2e-lerna-smoke-tests
- e2e-next-core
- e2e-next-extensions
- e2e-linter
- e2e-next
- e2e-node
- e2e-nuxt
- e2e-nx-init
- e2e-nx-misc
- e2e-nx-plugin
- e2e-nx-run
- e2e-playwright
- e2e-plugin
- e2e-react-core
- e2e-react-module-federation
- e2e-react-extensions
- e2e-react-native
- e2e-release
- e2e-remix
- e2e-web
- e2e-rollup
- e2e-storybook
- e2e-storybook-angular
- e2e-vite
- e2e-vue
- e2e-web
- e2e-webpack
- e2e-workspace-create
- e2e-workspace-create-npm
@@ -156,8 +151,6 @@ jobs:
codeowners: 'S04SS457V38'
- project: e2e-angular-extensions
codeowners: 'S04SS457V38'
- project: e2e-angular-module-federation
codeowners: 'S04SS457V38'
- project: e2e-cypress
codeowners: 'S04T16BTJJY'
- project: e2e-detox
@@ -166,19 +159,15 @@ jobs:
codeowners: 'S04SJ6HHP0X'
- project: e2e-expo
codeowners: 'S04TNCNJG5N'
- project: e2e-gradle
codeowners: 'S04TNCNJG5N'
- project: e2e-jest
codeowners: 'S04T16BTJJY'
- project: e2e-js
codeowners: 'S04SJ6HHP0X'
- project: e2e-lerna-smoke-tests
codeowners: 'S04TNCVEETS'
- project: e2e-eslint
- project: e2e-linter
codeowners: 'S04SYJGKSCT'
- project: e2e-next-core
codeowners: 'S04TNCNJG5N'
- project: e2e-next-extensions
- project: e2e-next
codeowners: 'S04TNCNJG5N'
- project: e2e-node
codeowners: 'S04SJ6HHP0X'
@@ -186,9 +175,7 @@ jobs:
codeowners: 'S04SYHYKGNP'
- project: e2e-nx-misc
codeowners: 'S04SYHYKGNP'
- project: e2e-plugin
codeowners: 'S04SYHYKGNP'
- project: e2e-release
- project: e2e-nx-plugin
codeowners: 'S04SYHYKGNP'
- project: e2e-nx-run
codeowners: 'S04SYHYKGNP'
@@ -204,18 +191,10 @@ jobs:
codeowners: 'S04SJ6PL98X'
- project: e2e-storybook
codeowners: 'S04SVQ8H0G5'
- project: e2e-playwright
codeowners: 'S04SVQ8H0G5'
- project: e2e-storybook-angular
codeowners: 'S04SVQ8H0G5'
- project: e2e-remix
codeowners: 'S04SVQ8H0G5'
- project: e2e-vite
codeowners: 'S04SJ6PL98X'
- project: e2e-vue
codeowners: 'S04SJ6PL98X'
- project: e2e-nuxt
codeowners: 'S04SJ6PL98X'
- project: e2e-webpack
codeowners: 'S04SJ6PL98X'
- project: e2e-workspace-create
@@ -231,88 +210,124 @@ jobs:
- os: ubuntu-latest
project: e2e-expo
# exclude non-CNW/Lerna tests from non-LTS node versions
- node_version: 18
- node_version: 16
project: e2e-angular-core
- node_version: 18
- node_version: 16
project: e2e-angular-extensions
- node_version: 18
project: e2e-angular-module-federation
- node_version: 18
- node_version: 16
project: e2e-cypress
- node_version: 18
- node_version: 16
project: e2e-detox
- node_version: 18
- node_version: 16
project: e2e-esbuild
- node_version: 18
- node_version: 16
project: e2e-expo
- node_version: 18
project: e2e-gradle
- node_version: 18
- node_version: 16
project: e2e-jest
- node_version: 18
- node_version: 16
project: e2e-js
- node_version: 18
project: e2e-eslint
- node_version: 18
project: e2e-next-core
- node_version: 18
project: e2e-next-extensions
- node_version: 18
- node_version: 16
project: e2e-linter
- node_version: 16
project: e2e-next
- node_version: 16
project: e2e-node
- node_version: 18
project: e2e-nuxt
- node_version: 18
- node_version: 16
project: e2e-nx-init
- node_version: 18
- node_version: 16
project: e2e-nx-misc
- node_version: 18
project: e2e-plugin
- node_version: 18
project: e2e-playwright
- node_version: 18
- node_version: 16
project: e2e-nx-plugin
- node_version: 16
project: e2e-lerna-smoke-tests
- node_version: 16
project: e2e-react-core
- node_version: 18
project: e2e-react-module-federation
- node_version: 18
- node_version: 16
project: e2e-react-extensions
- node_version: 18
- node_version: 16
project: e2e-react-native
- node_version: 18
- node_version: 16
project: e2e-web
- node_version: 18
project: e2e-remix
- node_version: 18
- node_version: 16
project: e2e-rollup
- node_version: 18
- node_version: 16
project: e2e-storybook
- node_version: 18
- node_version: 16
project: e2e-storybook-angular
- node_version: 18
- node_version: 16
project: e2e-vite
- node_version: 18
project: e2e-vue
- node_version: 18
- node_version: 16
project: e2e-webpack
# run just npm v20 on macos
- node_version: 19
project: e2e-angular-core
- node_version: 19
project: e2e-angular-extensions
- node_version: 19
project: e2e-cypress
- node_version: 19
project: e2e-detox
- node_version: 19
project: e2e-esbuild
- node_version: 19
project: e2e-expo
- node_version: 19
project: e2e-jest
- node_version: 19
project: e2e-js
- node_version: 19
project: e2e-linter
- node_version: 19
project: e2e-next
- node_version: 19
project: e2e-node
- node_version: 19
project: e2e-nx-init
- node_version: 19
project: e2e-nx-misc
- node_version: 19
project: e2e-nx-plugin
- node_version: 19
project: e2e-lerna-smoke-tests
- node_version: 19
project: e2e-react-core
- node_version: 19
project: e2e-react-extensions
- node_version: 19
project: e2e-react-native
- node_version: 19
project: e2e-web
- node_version: 19
project: e2e-rollup
- node_version: 19
project: e2e-storybook
- node_version: 19
project: e2e-storybook-angular
- node_version: 19
project: e2e-vite
- node_version: 19
project: e2e-webpack
# run just npm v18 on macos
- os: macos-latest
package_manager: yarn
- os: macos-latest
package_manager: pnpm
- os: macos-latest
node_version: 18
node_version: 16
- os: macos-latest
node_version: 19
fail-fast: false
name: ${{ matrix.os_name }}/${{ matrix.package_manager }}/${{ matrix.node_version }} ${{ join(matrix.project) }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Prepare dir for output
run: mkdir -p outputs
- name: Install PNPM
run: |
npm install -g @pnpm/exe@8.7.4
npm install -g @pnpm/exe@8.3.1
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v3
@@ -399,12 +414,11 @@ jobs:
npm_config_registry: http://localhost:4872
YARN_REGISTRY: http://localhost:4872
NX_CACHE_DIRECTORY: 'tmp'
NX_E2E_SKIP_CLEANUP: 'true'
NX_E2E_SKIP_BUILD_CLEANUP: 'true'
NX_E2E_RUN_E2E: 'true'
NX_E2E_VERBOSE_LOGGING: 'true'
NX_PERF_LOGGING: 'false'
NX_DAEMON: 'true'
NX_SKIP_LOG_GROUPING: 'true'
- name: Save matrix config in file
if: ${{ always() }}
@@ -485,7 +499,7 @@ jobs:
|--------------------------------|------|-------|------|`;
failedProjects.forEach(matrix => {
const project = matrix.project !== lastProject ? matrix.project : '...';
result += `\n| ${project.padEnd(30)} | ${matrix.package_manager.padEnd(4)} | ${matrix.os_name} | v${matrix.node_version} |`
result += `\n| ${project.padEnd(30)} | ${matrix.package_manager.padEnd(4)} | ${matrix.os_name} | v${matrix.node_version.toString().padEnd(3)} |`
lastProject = matrix.project;
});
result += `\`\`\``;
+86 -77
View File
@@ -2,7 +2,7 @@ name: E2E matrix (Windows)
on:
schedule:
- cron: "0 5 * * *"
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
debug_enabled:
@@ -14,25 +14,26 @@ on:
env:
CYPRESS_CACHE_FOLDER: ${{ github.workspace }}/.cypress
permissions: { }
permissions: {}
jobs:
preinstall:
runs-on: windows-latest
strategy:
matrix:
node_version:
- 20
- 19
- 18
- 16
name: Cache install (node v${{ matrix.node_version }})
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
name: Install pnpm
with:
version: 8
version: 8.3.1
run_install: false
- name: Set node
@@ -43,7 +44,7 @@ jobs:
- name: Cache node_modules
id: cache-modules
uses: actions/cache@v4
uses: actions/cache@v3
with:
lookup-only: true
path: '**/node_modules'
@@ -62,7 +63,7 @@ jobs:
- name: Install Cypress
if: steps.cache-cypress.outputs.cache-hit != 'true'
run: pnpm cypress install
run: npx cypress install
e2e:
needs: preinstall
@@ -72,40 +73,33 @@ jobs:
strategy:
matrix:
node_version:
- 20
- 19
- 18
- 16
package_manager:
- npm
project:
- e2e-angular-core
- e2e-angular-extensions
- e2e-angular-module-federation
- e2e-cypress
- e2e-esbuild
- e2e-eslint
- e2e-jest
- e2e-js
- e2e-lerna-smoke-tests
- e2e-next-core
- e2e-next-extensions
- e2e-linter
- e2e-next
- e2e-node
- e2e-nuxt
- e2e-nx-init
- e2e-nx-misc
- e2e-nx-run
- e2e-playwright
- e2e-plugin
- e2e-nx-run
- e2e-react-core
- e2e-react-module-federation
- e2e-react-extensions
- e2e-release
- e2e-remix
- e2e-web
- e2e-rollup
- e2e-storybook
- e2e-storybook-angular
- e2e-vite
- e2e-vue
- e2e-web
- e2e-webpack
- e2e-workspace-create
- e2e-workspace-create-npm
@@ -115,8 +109,6 @@ jobs:
codeowners: 'S04SS457V38'
- project: e2e-angular-extensions
codeowners: 'S04SS457V38'
- project: e2e-angular-module-federation
codeowners: 'S04SS457V38'
- project: e2e-cypress
codeowners: 'S04T16BTJJY'
- project: e2e-esbuild
@@ -127,11 +119,9 @@ jobs:
codeowners: 'S04SJ6HHP0X'
- project: e2e-lerna-smoke-tests
codeowners: 'S04TNCVEETS'
- project: e2e-eslint
- project: e2e-linter
codeowners: 'S04SYJGKSCT'
- project: e2e-next-core
codeowners: 'S04TNCNJG5N'
- project: e2e-next-extensions
- project: e2e-next
codeowners: 'S04TNCNJG5N'
- project: e2e-node
codeowners: 'S04SJ6HHP0X'
@@ -141,8 +131,6 @@ jobs:
codeowners: 'S04SYHYKGNP'
- project: e2e-plugin
codeowners: 'S04SYHYKGNP'
- project: e2e-release
codeowners: 'S04SYHYKGNP'
- project: e2e-nx-run
codeowners: 'S04SYHYKGNP'
- project: e2e-react-core
@@ -155,18 +143,10 @@ jobs:
codeowners: 'S04SJ6PL98X'
- project: e2e-storybook
codeowners: 'S04SVQ8H0G5'
- project: e2e-playwright
codeowners: 'S04SVQ8H0G5'
- project: e2e-storybook-angular
codeowners: 'S04SVQ8H0G5'
- project: e2e-remix
codeowners: 'S04SVQ8H0G5'
- project: e2e-vite
codeowners: 'S04SJ6PL98X'
- project: e2e-vue
codeowners: 'S04SJ6PL98X'
- project: e2e-nuxt
codeowners: 'S04SJ6PL98X'
- project: e2e-webpack
codeowners: 'S04SJ6PL98X'
- project: e2e-workspace-create
@@ -175,66 +155,96 @@ jobs:
codeowners: 'S04SYHYKGNP'
exclude:
# exclude non-CNW/Lerna tests from non-LTS node versions
- node_version: 18
- node_version: 16
project: e2e-angular-core
- node_version: 18
- node_version: 16
project: e2e-angular-extensions
- node_version: 18
project: e2e-angular-module-federation
- node_version: 18
- node_version: 16
project: e2e-cypress
- node_version: 18
- node_version: 16
project: e2e-esbuild
- node_version: 18
- node_version: 16
project: e2e-jest
- node_version: 18
- node_version: 16
project: e2e-js
- node_version: 18
project: e2e-eslint
- node_version: 18
project: e2e-next-core
- node_version: 18
project: e2e-next-extensions
- node_version: 18
- node_version: 16
project: e2e-linter
- node_version: 16
project: e2e-next
- node_version: 16
project: e2e-node
- node_version: 18
project: e2e-nuxt
- node_version: 18
- node_version: 16
project: e2e-nx-init
- node_version: 18
- node_version: 16
project: e2e-nx-misc
- node_version: 18
- node_version: 16
project: e2e-plugin
- node_version: 18
project: e2e-playwright
- node_version: 18
- node_version: 16
project: e2e-lerna-smoke-tests
- node_version: 16
project: e2e-react-core
- node_version: 18
project: e2e-react-module-federation
- node_version: 18
- node_version: 16
project: e2e-react-extensions
- node_version: 18
- node_version: 16
project: e2e-web
- node_version: 18
project: e2e-remix
- node_version: 18
- node_version: 16
project: e2e-rollup
- node_version: 18
- node_version: 16
project: e2e-storybook
- node_version: 18
- node_version: 16
project: e2e-storybook-angular
- node_version: 18
- node_version: 16
project: e2e-vite
- node_version: 18
project: e2e-vue
- node_version: 18
- node_version: 16
project: e2e-webpack
- node_version: 19
project: e2e-angular-core
- node_version: 19
project: e2e-angular-extensions
- node_version: 19
project: e2e-cypress
- node_version: 19
project: e2e-esbuild
- node_version: 19
project: e2e-jest
- node_version: 19
project: e2e-js
- node_version: 19
project: e2e-linter
- node_version: 19
project: e2e-next
- node_version: 19
project: e2e-node
- node_version: 19
project: e2e-nx-init
- node_version: 19
project: e2e-nx-misc
- node_version: 19
project: e2e-plugin
- node_version: 19
project: e2e-lerna-smoke-tests
- node_version: 19
project: e2e-react-core
- node_version: 19
project: e2e-react-extensions
- node_version: 19
project: e2e-web
- node_version: 19
project: e2e-rollup
- node_version: 19
project: e2e-storybook
- node_version: 19
project: e2e-storybook-angular
- node_version: 19
project: e2e-vite
- node_version: 19
project: e2e-webpack
fail-fast: false
name: ${{ matrix.project }} (v${{ matrix.node_version }})
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Prepare dir for output
run: mkdir -p outputs
@@ -242,7 +252,7 @@ jobs:
- uses: pnpm/action-setup@v2
name: Install pnpm
with:
version: 8.7.4
version: 8.3.1
run_install: false
- name: Use Node.js ${{ matrix.node_version }}
@@ -292,12 +302,11 @@ jobs:
SELECTED_PM: ${{ matrix.package_manager }}
npm_config_registry: http://localhost:4872
NX_CACHE_DIRECTORY: 'tmp'
NX_E2E_SKIP_CLEANUP: 'true'
NX_E2E_SKIP_BUILD_CLEANUP: 'true'
NX_E2E_RUN_E2E: 'true'
NX_E2E_VERBOSE_LOGGING: 'true'
NX_PERF_LOGGING: 'false'
NX_DAEMON: 'true'
NX_SKIP_LOG_GROUPING: 'true'
- name: Save matrix config in file
if: ${{ always() }}
@@ -372,7 +381,7 @@ jobs:
| Failed project | Node |
|--------------------------------|------|`;
failedProjects.forEach(matrix => {
result += `\n| ${matrix.project.padEnd(30)} | v${matrix.node_version} |`
result += `\n| ${matrix.project.padEnd(30)} | v${matrix.node_version.toString().padEnd(3)} |`
});
result += `\`\`\``;
const message = result.split('\n').map(l => l.trim()).join('\n');
+66 -110
View File
@@ -1,19 +1,15 @@
name: publish
on:
schedule:
- cron: "0 3 * * 2-6" # Tuesdays - Saturdays, at 3am UTC
workflow_dispatch:
release:
types: [ published ]
env:
DEBUG: napi:*
NX_RUN_GROUP: ${{ github.run_id }}-${{ github.run_attempt }}
NPM_CONFIG_PROVENANCE: true
on:
workflow_dispatch:
release:
types: [published]
jobs:
build:
if: ${{ github.repository_owner == 'nrwl' }}
if: "!contains(github.event.head_commit.message, 'skip ci')"
strategy:
fail-fast: false
matrix:
@@ -86,14 +82,14 @@ jobs:
name: stable - ${{ matrix.settings.target }} - node@18
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8
version: 8.2
- name: Setup node
uses: actions/setup-node@v4
uses: actions/setup-node@v3
if: ${{ !matrix.settings.docker }}
with:
node-version: 18
@@ -132,7 +128,7 @@ jobs:
run: pnpm install --frozen-lockfile
timeout-minutes: 30
- name: Setup node x86
uses: actions/setup-node@v4
uses: actions/setup-node@v3
if: matrix.settings.target == 'i686-pc-windows-msvc'
with:
node-version: 18
@@ -156,95 +152,74 @@ jobs:
name: bindings-${{ matrix.settings.target }}
path: packages/**/*.node
if-no-files-found: error
build-freebsd:
if: ${{ github.repository_owner == 'nrwl' }}
runs-on: macos-13-large
name: Build FreeBSD
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
if: ${{ github.event_name != 'schedule' }}
- name: Build
id: build
if: ${{ github.event_name != 'schedule' }}
uses: cross-platform-actions/action@v0.22.0
env:
DEBUG: napi:*
RUSTUP_IO_THREADS: 1
NX_PREFER_TS_NODE: true
PLAYWRIGHT_BROWSERS_PATH: 0
with:
operating_system: freebsd
version: '13.2'
architecture: x86-64
environment_variables: DEBUG RUSTUP_IO_THREADS CI NX_PREFER_TS_NODE PLAYWRIGHT_BROWSERS_PATH
shell: bash
run: |
env
whoami
sudo pkg install -y -f node libnghttp2 npm git
sudo npm install --location=global --ignore-scripts pnpm
curl https://sh.rustup.rs -sSf --output rustup.sh
sh rustup.sh -y --profile minimal --default-toolchain stable
source "$HOME/.cargo/env"
echo "~~~~ rustc --version ~~~~"
rustc --version
echo "~~~~ node -v ~~~~"
node -v
echo "~~~~ pnpm --version ~~~~"
pnpm --version
pwd
ls -lah
whoami
env
freebsd-version
mkdir -p /Users/runner/work/_temp/_github_workflow
echo "{}" > /Users/runner/work/_temp/_github_workflow/event.json
pnpm install --frozen-lockfile --ignore-scripts
pnpm nx run-many --outputStyle stream --target=build-native -- --target=x86_64-unknown-freebsd
pnpm nx reset
rm -rf node_modules
rm -rf dist
echo "KILL ALL NODE PROCESSES"
killall node || true
echo "COMPLETE"
- name: Upload artifact
if: ${{ github.event_name != 'schedule' }}
uses: actions/upload-artifact@v3
with:
name: bindings-freebsd
path: packages/**/*.node
if-no-files-found: error
runs-on: macos-12
name: Build FreeBSD
steps:
- uses: actions/checkout@v3
- name: Build
id: build
uses: vmactions/freebsd-vm@v0
env:
DEBUG: napi:*
RUSTUP_HOME: /usr/local/rustup
CARGO_HOME: /usr/local/cargo
RUSTUP_IO_THREADS: 1
with:
envs: DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS
usesh: true
mem: 4096
prepare: |
pkg install -y -f curl node libnghttp2 npm
npm install --location=global --ignore-scripts pnpm
curl https://sh.rustup.rs -sSf --output rustup.sh
sh rustup.sh -y --profile minimal --default-toolchain stable
export PATH="/usr/local/cargo/bin:$PATH"
echo "~~~~ rustc --version ~~~~"
rustc --version
echo "~~~~ node -v ~~~~"
node -v
echo "~~~~ pnpm --version ~~~~"
pnpm --version
run: |
export PATH="/usr/local/cargo/bin:$PATH"
pwd
ls -lah
whoami
env
freebsd-version
mkdir -p /Users/runner/work/_temp/_github_workflow
echo "{}" > /Users/runner/work/_temp/_github_workflow/event.json
pnpm install --frozen-lockfile --ignore-scripts
pnpm nx run-many --target=build-native -- --target=x86_64-unknown-freebsd
rm -rf node_modules
rm -rf dist
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: bindings-freebsd
path: packages/**/*.node
if-no-files-found: error
publish:
if: ${{ github.repository_owner == 'nrwl' }}
if: ${{ github.event_name == 'release' && github.repository_owner == 'nrwl' }}
name: Publish
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
needs:
- build-freebsd
- build
env:
GH_TOKEN: ${{ github.token }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_CONFIG_PROVENANCE: true
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8
version: 8.2
- name: Setup node
uses: actions/setup-node@v4
uses: actions/setup-node@v3
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
check-latest: true
cache: 'pnpm'
- name: Check NPM Credentials
run: npm whoami && echo "NPM credentials are valid" || (echo "NPM credentials are invalid or have expired." && exit 1)
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download all artifacts
@@ -257,27 +232,8 @@ jobs:
- name: Publish
run: |
git checkout -b publish/$GITHUB_REF_NAME
# If triggered by the cron, create a canary release
if [ "${{ github.event_name }}" = "schedule" ]; then
VERSION="canary"
else
# Otherwise, use the tag name (if triggered via release), or explicit version (if triggered via workflow_dispatch)
VERSION="${GITHUB_REF_NAME}"
fi
# If triggered via workflow_dispatch, perform a dry-run
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
DRY_RUN="--dry-run"
else
DRY_RUN=""
fi
pnpm nx-release --local=false $VERSION $DRY_RUN
- name: Trigger Docs Release
# Publish docs only on a full release
if: ${{ !github.event.release.prerelease }}
run: |
# The GITHUB_REF_NAME is a full version (i.e. 17.3.2). The branchName will only use the major version number.
# We will publish docs to the website branch based on the current tag (i.e. website-17)
branchName=website-${GITHUB_REF_NAME%.*.*}
# We force recreate the branch in order to always be up to date and avoid merge conflicts within the automated workflow
git branch -f $branchName
git push -f origin $branchName
npm config set //registry.npmjs.org/:_authToken=$NPM_TOKEN
pnpm nx-release --local=false $GITHUB_REF_NAME
env:
GH_TOKEN: ${{ github.token }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+1 -22
View File
@@ -12,26 +12,19 @@ tmp
jest.debug.config.js
.tool-versions
/.nx-cache
/.nx
/.verdaccio/build/local-registry
/graph/client/src/assets/environment.js
/graph/client/src/assets/dev/environment.js
/graph/client/src/assets/generated-project-graphs
/graph/client/src/assets/generated-task-graphs
/graph/client/src/assets/generated-task-inputs
/graph/client/src/assets/generated-source-maps
/nx-dev/nx-dev/public/documentation
/nx-dev/nx-dev/public/images/open-graph
# Issues scraper creates these files, stored by github's cache
/scripts/issues-scraper/cached
# We don't commit a CHANELGELOG.md file to the repo, we only create Github releases
# Lerna creates this
CHANGELOG.md
# Next.js
.next
out
# Angular Cache
.angular
@@ -39,19 +32,5 @@ out
# Local dev files
.env
.bashrc
.nx
*.node
# Fix for issue when working on the repo in a dev container
.pnpm-store
.nx/cache
.cargo/.package-cache
.cargo/bin/
.cargo/env
.cargo/registry/
.local/
.npm/
.profile
.rustup/
-74
View File
@@ -1,74 +0,0 @@
launch-templates:
linux-medium:
resource-class: 'docker_linux_amd64/medium+'
image: 'ubuntu22.04-node20.11-v3'
env:
GIT_AUTHOR_EMAIL: test@test.com
GIT_AUTHOR_NAME: Test
GIT_COMMITTER_EMAIL: test@test.com
GIT_COMMITTER_NAME: Test
SELECTED_PM: 'pnpm'
NPM_CONFIG_PREFIX: '/home/workflows/.npm-global'
init-steps:
- name: Checkout
uses: 'nrwl/nx-cloud-workflows/v3.6/workflow-steps/checkout/main.yaml'
- name: Cache restore
uses: 'nrwl/nx-cloud-workflows/v3.6/workflow-steps/cache/main.yaml'
env:
KEY: 'pnpm-lock.yaml'
PATHS: |
node_modules
~/.cache/Cypress
~/.cache/ms-playwright
~/.pnpm-store
~/.sdkman
~/.sdkman/candidates/gradle
BASE_BRANCH: 'master'
- name: Install e2e deps
script: |
sudo apt-get update
sudo apt-get install -y ca-certificates lsof
- name: Install Pnpm
script: |
npm install -g pnpm@8.15.5
- name: Pnpm Install
script: |
pnpm install --frozen-lockfile
- name: Install Browsers
script: |
pnpm exec cypress install
pnpm exec playwright install
- name: Install Rust
script: |
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env"
rustup toolchain install 1.70.0
- name: Configure git metadata (needed for lerna smoke tests)
script: |
git config --global user.email test@test.com
git config --global user.name "Test Test"
- name: Load Cargo Env
script: echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV
- name: Install zip and unzip
script: sudo apt-get -yqq install zip unzip
- name: Install SDKMAN and gradle
script: |
if [ ! -d $HOME/.sdkman ]
then
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
fi
sdk version
if [ ! -d $HOME/.sdkman/candidates/gradle/8.5 ]
then
sdk install gradle 8.5
fi
gradle --version
echo "PATH=$HOME/.sdkman/candidates/gradle/8.5/bin:$PATH" >> $NX_CLOUD_ENV
-4
View File
@@ -1,4 +0,0 @@
distribute-on:
small-changeset: 8 linux-medium
medium-changeset: 10 linux-medium
large-changeset: 12 linux-medium
+1 -7
View File
@@ -16,9 +16,7 @@ packages/jest/src/schematics/**/files/**/*.json
packages/nx/src/plugins/js/lock-file/__fixtures__/**/*.*
packages/**/schematics/**/files/**/*.html
packages/**/generators/**/files/**/*.html
packages/nx/src/native/**/*.rs
packages/nx/src/native/index.js
packages/nx/src/native/index.d.ts
packages/nx/src/native/
nx-dev/nx-dev/.next/
nx-dev/nx-dev/public/documentation
graph/client/src/assets/environment.js
@@ -36,7 +34,3 @@ graph/client/src/assets/generated-task-graphs
/dist
/.env
CODEOWNERS
/.nx/cache
.pnpm-store
+11 -33
View File
@@ -6,12 +6,11 @@
/tools/**/* @FrozenPandaz @vsavkin @AgentEnder @jaysoo @JamesHenry
package.json @nrwl/nx-core-reviewers
pnpm-lock.yaml @nrwl/nx-core-reviewers
rust-toolchain @nrwl/nx-native-reviewers
# Docs Site + Graph
/docs @nrwl/nx-docs-reviewers
/docs/nx-cloud @StalkAltan @rarmatei @nrwl/nx-docs-reviewers
/graph/** @philipjfulcher @FrozenPandaz @bcabanes @MaxKless @xiongemi
/graph/** @philipjfulcher @FrozenPandaz @bcabanes
/images @nrwl/nx-docs-reviewers
/nx-dev/** @nrwl/nx-docs-reviewers
/typedoc-theme @nrwl/nx-docs-reviewers
@@ -24,7 +23,6 @@ rust-toolchain @nrwl/nx-native-reviewers
/packages/angular/** @nrwl/nx-angular-reviewers
/e2e/angular-core/** @nrwl/nx-angular-reviewers
/e2e/angular-extensions/** @nrwl/nx-angular-reviewers
/e2e/angular-module-federation/** @nrwl/nx-angular-reviewers
/packages/angular/plugins/component-testing.ts @nrwl/nx-angular-reviewers @nrwl/nx-testing-tools-reviewers
/packages/angular/src/generators/cypress-component-configuration/** @nrwl/nx-angular-reviewers @nrwl/nx-testing-tools-reviewers
/packages/angular/src/generators/component-test/** @nrwl/nx-angular-reviewers @nrwl/nx-testing-tools-reviewers
@@ -36,11 +34,9 @@ rust-toolchain @nrwl/nx-native-reviewers
/docs/shared/packages/next/** @nrwl/nx-react-reviewers @nrwl/nx-docs-reviewers
/packages/react/** @nrwl/nx-react-reviewers
/e2e/react-core/** @nrwl/nx-react-reviewers
/e2e/react-module-federation/** @nrwl/nx-react-reviewers @coly010
/e2e/react-extensions/** @nrwl/nx-react-reviewers
/packages/next/** @nrwl/nx-react-reviewers
/e2e/next-core/** @nrwl/nx-react-reviewers
/e2e/next-extensions/** @nrwl/nx-react-reviewers
/e2e/next/** @nrwl/nx-react-reviewers
/packages/react/plugins/component-testing/** @nrwl/nx-react-reviewers @nrwl/nx-testing-tools-reviewers
/packages/react/src/generators/cypress-component-configuration/** @nrwl/nx-react-reviewers @nrwl/nx-testing-tools-reviewers
/packages/react/src/generators/component-test/** @nrwl/nx-react-reviewers @nrwl/nx-testing-tools-reviewers
@@ -57,17 +53,6 @@ rust-toolchain @nrwl/nx-native-reviewers
/packages/react-native/** @nrwl/nx-react-reviewers
/e2e/react-native/** @nrwl/nx-react-reviewers
## remix
/docs/generated/packages/remix/** @nrwl/nx-react-reviewers @nrwl/nx-docs-reviewers @Coly010
/packages/remix/** @nrwl/nx-react-reviewers @Coly010
/e2e/remix/** @nrwl/nx-react-reviewers @Coly010
# Vue
/packages/vue/** @nrwl/nx-vue-reviewers
/e2e/vue/** @nrwl/nx-vue-reviewers
/packages/nuxt/** @nrwl/nx-vue-reviewers
/e2e/nuxt/** @nrwl/nx-vue-reviewers
## Node
/docs/generated/packages/node/** @nrwl/nx-node-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/nest/** @nrwl/nx-node-reviewers @nrwl/nx-docs-reviewers
@@ -97,7 +82,6 @@ rust-toolchain @nrwl/nx-native-reviewers
/packages/web/** @nrwl/nx-js-reviewers
/e2e/web/** @nrwl/nx-js-reviewers
/packages/webpack/** @nrwl/nx-js-reviewers
/packages/webpack/src/utils/module-federation @jaysoo @Coly010
/e2e/webpack/** @nrwl/nx-js-reviewers
/packages/esbuild/** @nrwl/nx-js-reviewers
/e2e/esbuild/** @nrwl/nx-js-reviewers
@@ -108,11 +92,9 @@ rust-toolchain @nrwl/nx-native-reviewers
## Tools
/docs/generated/packages/cypress/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/cypress/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/jest/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/jest/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/playwright/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/playwright/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/cypress/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/packages/cypress/** @nrwl/nx-testing-tools-reviewers
/e2e/cypress/** @nrwl/nx-testing-tools-reviewers
/packages/jest/** @nrwl/nx-testing-tools-reviewers
@@ -122,11 +104,11 @@ rust-toolchain @nrwl/nx-native-reviewers
# Linter
/docs/generated/packages/eslint-plugin/** @nrwl/nx-linter-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/eslint/** @nrwl/nx-linter-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/eslint/** @nrwl/nx-linter-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/linter/** @nrwl/nx-linter-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/linter/** @nrwl/nx-linter-reviewers @nrwl/nx-docs-reviewers
/packages/eslint-plugin/** @nrwl/nx-linter-reviewers
/packages/eslint/** @nrwl/nx-linter-reviewers
/e2e/eslint/** @nrwl/nx-linter-reviewers
/packages/linter/** @nrwl/nx-linter-reviewers
/e2e/linter/** @nrwl/nx-linter-reviewers
.eslint* @nrwl/nx-linter-reviewers
# Storybook
@@ -140,13 +122,11 @@ rust-toolchain @nrwl/nx-native-reviewers
/docs/generated/devkit/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers
/docs/generated/packages/devkit/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers
/packages/devkit/** @nrwl/nx-devkit-reviewers
/packages/devkit/index.ts @FrozenPandaz @vsavkin
/packages/devkit/index.js @FrozenPandaz @vsavkin
/packages/devkit/index.d.ts @FrozenPandaz @vsavkin
/packages/devkit/public-api.ts @FrozenPandaz @vsavkin
/packages/devkit/nx.ts @FrozenPandaz @vsavkin
# Gradle
/packages/gradle/** @FrozenPandaz @xiongemi
/e2e/gradle/** @FrozenPandaz @xiongemi
/packages/devkit/src/utils/module-federation @jaysoo @Coly010
# Nx-Plugin
/docs/generated/packages/plugin/** @nrwl/nx-devkit-reviewers @nrwl/nx-docs-reviewers
@@ -171,12 +151,11 @@ rust-toolchain @nrwl/nx-native-reviewers
/packages/workspace/** @nrwl/nx-core-reviewers
/e2e/workspace-create/** @nrwl/nx-core-reviewers
/e2e/workspace-create-npm/** @nrwl/nx-core-reviewers
/e2e/release/** @nrwl/nx-core-reviewers
# Misc
/e2e/lerna-smoke-tests/** @vsavkin @JamesHenry
/e2e/utils/** @meeroslav @nrwl/nx-testing-tools-reviewers @vsavkin @mandarini
/community @nrwl/nx-docs-reviewers
/community @nrwl/nx-devkit-reviewers
/CONTRIBUTING.md @FrozenPandaz @isaacplmann
/CODE_OF_CONDUCT.md @FrozenPandaz @isaacplmann
/CODEOWNERS @FrozenPandaz @AgentEnder
@@ -187,7 +166,6 @@ rust-toolchain @nrwl/nx-native-reviewers
# CI
/.circleci/** @nrwl/nx-pipelines-reviewers
/.nx/workflows/** @nrwl/nx-pipelines-reviewers
/.github/** @nrwl/nx-pipelines-reviewers
/.husky/** @nrwl/nx-pipelines-reviewers
/packages/workspace/src/generators/ci-workflow/** @nrwl/nx-pipelines-reviewers
+1 -1
View File
@@ -2,7 +2,7 @@
As contributors and maintainers of the Nx project, we pledge to respect everyone who contributes by posting issues, updating documentation, submitting pull requests, providing feedback in comments, and any other activities.
Communication through any of Nx's channels (GitHub, Gitter, Discord, IRC, mailing lists, Twitter, etc.) must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
Communication through any of Nx's channels (GitHub, Gitter, Slack, IRC, mailing lists, Twitter, etc.) must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
We promise to extend courtesy and respect to everyone involved in this project regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the Nx project to do the same.
+10 -12
View File
@@ -76,13 +76,13 @@ Check out [this video for a live walkthrough](https://youtu.be/Tx257WpNsxc) or f
- Run `pnpm local-registry` in Terminal 1 (keep it running)
- Run `npm adduser --registry http://localhost:4873` in Terminal 2 (real credentials are not required, you just need to
be logged in. You can use test/test/test@test.io.)
- Run `pnpm nx-release 18.0.0 --local` in Terminal 2 - you can choose any nonexistent version number here, but it's recommended to use the next major
- Run `pnpm nx-release 17.0.0 --local` in Terminal 2 - you can choose any nonexistent version number here, but it's recommended to use the next major
- Run `cd ./tmp` in Terminal 2
- Run `npx create-nx-workspace@18.0.0` in Terminal 2
- Run `npx create-nx-workspace@17.0.0` in Terminal 2
If you have problems publishing, make sure you use Node 18 and NPM 8.
**NOTE:** To use this newly published local version, you need to make a new workspace, run `nx migrate` or change all of your target packages to this new version, eg: `"nx": "^18.0.0",` and re-run `pnpm i` in your testing project.
**NOTE:** To use this newly published local version, you need to make a new workspace or change all of your target packages to this new version, eg: `"nx": "^17.0.0",` and re-run `pnpm i` in your testing project.
### Publishing for Yarn 2+ (Berry)
@@ -112,7 +112,9 @@ Yarn Berry operates slightly differently than Yarn Classic. In order to publish
- localhost
```
- Run `pnpm nx-release minor --local` in Terminal 2 to publish next minor version. The output will report the version of published packages.
- Run `pnpm nx-release --local` in Terminal 2 to publish next minor version. If this version already exists, you can
bump the minor version in `lerna.json` to toggle the next minor. The output will report the version of published
packages.
- Go to your target folder (e.g. `cd ./tmp`) in Terminal 2
- Run `yarn dlx create-nx-workspace@123.4.5` in Terminal 2 (replace `123.4.5` with the version that got published).
@@ -177,8 +179,6 @@ The `docs/map.json` file is considered our source of truth for our site's struct
new page to our documentation to ensure that it is included in the documentation site. We also run automated scripts
based on this `map.json` data to safeguard against common human errors that could break our site.
When you make a change to the `map.json` file, make sure to run `pnpm documentation` to propagate your changes to the `nx-dev` application.
#### Nx-Dev Application
Our public `nx.dev` documentation site is a [Next.js](https://nextjs.org/) application, that can be found in
@@ -211,10 +211,10 @@ adjusting the docs.
To run `nx-dev` locally, run the command:
```bash
npx nx serve-docs nx-dev
npx nx serve nx-dev
```
You can then access the application locally at `localhost:4200`. Changes to markdown documentation files will be automatically applied to the site when you refresh the browser.
You can then access the application locally at `localhost:4200`.
#### Troubleshooting: `JavaScript heap out of memory`
@@ -318,17 +318,15 @@ The scope must be one of the following:
- nest - anything Nest specific
- nextjs - anything Next specific
- node - anything Node specific
- nx-cloud - anything Nx Cloud specific
- nx-cloud - anything NxCloud specific
- nx-plugin - anything Nx Plugin specific
- nx-dev - anything related to docs infrastructure
- react - anything React specific
- react-native - anything React Native specific
- release - anything related to nx release
- repo - anything related to managing the Nx repo itself
- storybook - anything Storybook specific
- testing - anything testing specific (e.g., Jest or Cypress)
- vite - anything Vite specific
- vue - anything Vue specific
- web - anything Web specific
- webpack - anything Webpack specific
- misc - misc stuff
@@ -345,7 +343,7 @@ Including the issue number that the PR relates to also helps with tracking.
```plain
feat(angular): add an option to generate lazy-loadable modules
`nx generate lib mylib --lazy` provisions the mylib project in .eslintrc.json
`nx generate lib mylib --lazy` provisions the mylib project in tslint.json
Closes #157
```
Generated
+315 -782
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -1,8 +1,7 @@
[workspace]
resolver = '2'
members = [
'packages/nx',
'packages/nx'
]
[profile.release]
+1 -1
View File
@@ -1,6 +1,6 @@
(The MIT License)
Copyright (c) 2017-2024 Narwhal Technologies Inc.
Copyright (c) 2017-2023 Narwhal Technologies Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
+10 -10
View File
@@ -1,7 +1,7 @@
<p style="text-align: center;">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-dark.svg">
<img alt="Nx - Smart Monorepos · Fast CI" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
<img alt="Nx - Smart, Fast and Extensible Build System" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
</picture>
</p>
@@ -13,15 +13,15 @@
[![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)]()
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![Join the chat at https://gitter.im/nrwl-nx/community](https://badges.gitter.im/nrwl-nx/community.svg)](https://gitter.im/nrwl-nx/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Join the Official Nx Discord Server](https://img.shields.io/discord/1143497901675401286?label=discord)](https://go.nx.dev/community)
[![Join us @nrwl/community on slack](https://img.shields.io/badge/slack-%40nrwl%2Fcommunity-brightgreen)](https://go.nrwl.io/join-slack)
</div>
<hr>
# Smart Monorepos · Fast CI
# Smart, Fast and Extensible Build System
Nx is a build system with built-in tooling and advanced CI capabilities. It helps you maintain and scale monorepos, both locally and on CI.
Nx is a next generation build system with first class monorepo support and powerful integrations.
A few links to help you get started:
@@ -32,11 +32,11 @@ A few links to help you get started:
- [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="./images/nx-courses-and-videos.svg"
width="100%" alt="Nx - Smart Monorepos · Fast CI"></a></p>
width="100%" alt="Nx - Smart, Fast and Extensible Build System"></a></p>
# Engage with the Core Team and the Community
- [Nx.Dev Community Page: Community Discord Channel, Newsletter, etc.](https://nx.dev/community)
- [Nx.Dev Community Page: Community Slack Channel, Newsletter, etc.](https://nx.dev/community)
- [The Nx Show Playlist on YouTube](https://www.youtube.com/playlist?list=PLakNactNC1dE8KLQ5zd3fQwu_yQHjTmR5). It's a
regular YouTube stream where we talk all things Nx. Join the stream, ask questions, etc.
- [Follow Nx on Twitter](https://twitter.com/NxDevTools)
@@ -73,7 +73,7 @@ help you get started.
| ![Emily Xiong](https://avatars.githubusercontent.com/u/16211801?s=160) | ![Miroslav Jonaš](https://avatars.githubusercontent.com/u/881612?s=160) | ![Leosvel Pérez Espinosa](https://avatars.githubusercontent.com/u/12051310?s=160) | ![Zachary DeRose](https://avatars.githubusercontent.com/u/3788405?s=160) |
| [xiongemi](https://github.com/xiongemi) | [meeroslav](https://github.com/meeroslav) | [leosvelperez](https://github.com/leosvelperez) | [ZackDeRose](https://github.com/ZackDeRose) |
| Craigory Coppola | Chau Tran | Nicholas Cunningham | Max Kless |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| ![Craigory Coppola](https://avatars.githubusercontent.com/u/6933928?s=160) | ![Chau Tran](https://avatars.githubusercontent.com/u/25516557?s=160) | ![Nicholas Cunningham](https://avatars.githubusercontent.com/u/338948?s=160) | ![Max Kless](https://avatars.githubusercontent.com/u/34165455?s=160) |
| [AgentEnder](https://github.com/AgentEnder) | [nartc](https://github.com/nartc) | [ndcunningham](https://github.com/ndcunningham) | [MaxKless](https://github.com/MaxKless) |
| Craigory Coppola | Chau Tran | Nicholas Cunningham |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| ![Craigory Coppola](https://avatars.githubusercontent.com/u/6933928?s=160) | ![Chau Tran](https://avatars.githubusercontent.com/u/25516557?s=160) | ![Nicholas Cunningham](https://avatars.githubusercontent.com/u/338948?s=160) |
| [AgentEnder](https://github.com/AgentEnder) | [nartc](https://github.com/nartc) | [ndcunningham](https://github.com/ndcunningham) |
+24 -79
View File
@@ -34,21 +34,6 @@
"description": "An nx plugin for the aws-cdk v2.",
"url": "https://github.com/adrian-goe/nx-aws-cdk-v2"
},
{
"name": "@berenddeboer/nx-aws-cdk",
"description": "Nx plugin to generate a CDK stack with support for the vitest runner. Supports all CDK commands.",
"url": "https://github.com/berenddeboer/nx-plugins/tree/main/packages/nx-aws-cdk"
},
{
"name": "@nx-iac/aws-cdk",
"description": "Empowers your Nx workspace with AWS CDK capabilities ⚡",
"url": "https://github.com/joelklint/nx-aws-cdk"
},
{
"name": "@routineless/nx-aws-cdk",
"description": "Nx plugin to generate and manage aws cdk app and lambdas.",
"url": "https://github.com/KozelAnatoliy/routineless/tree/main/packages/nx-aws-cdk"
},
{
"name": "@berenddeboer/nx-sst",
"description": "Nx plugin to generate an SST stack and execute all SST commands.",
@@ -150,9 +135,9 @@
"url": "https://github.com/nxext/nx-extensions/tree/master/packages/stencil"
},
{
"name": "@nxext/vue",
"description": "Nx plugin to use VueJS 3 within nx workspaces",
"url": "https://github.com/nxext/nx-extensions/tree/master/packages/vue"
"name": "@nxext/vite",
"description": "Nx plugin to use ViteJS within nx workspaces",
"url": "https://github.com/nxext/nx-extensions/tree/master/packages/vite"
},
{
"name": "@nxext/solid",
@@ -284,21 +269,21 @@
"description": "Nx plugin for deploying your resources with Pulumi",
"url": "https://github.com/tripss/nx-extend/tree/master/packages/pulumi"
},
{
"name": "@nx-extend/react-email",
"description": "Nx plugin for developing email templates with react.email",
"url": "https://github.com/tripss/nx-extend/tree/master/packages/react-email"
},
{
"name": "@nx-extend/shadcn-ui",
"description": "Nx plugin for working with shadcn/ui",
"url": "https://github.com/tripss/nx-extend/tree/master/packages/shadcn-ui"
},
{
"name": "@nativescript/nx",
"description": "Nx Plugin adding first class support for NativeScript in your Nx workspace",
"url": "https://github.com/nativescript/nx"
},
{
"name": "@jnxplus/nx-boot-gradle",
"description": "Nx plugin to add Spring Boot and Gradle multi-project builds support to Nx workspace",
"url": "https://github.com/khalilou88/jnxplus/tree/main/packages/nx-boot-gradle"
},
{
"name": "@jnxplus/nx-boot-maven",
"description": "Nx plugin to add Spring Boot and Maven multi-module project support to Nx workspace",
"url": "https://github.com/khalilou88/jnxplus/tree/main/packages/nx-boot-maven"
},
{
"name": "@nxtensions/astro",
"description": "Nx plugin adding first class support for Astro (https://astro.build).",
@@ -346,7 +331,7 @@
},
{
"name": "@koliveira15/nx-sonarqube",
"description": "Nx plugin that scans projects using SonarQube / SonarCloud.",
"description": "Nx plugin that analyses projects using SonarQube / SonarCloud.",
"url": "https://github.com/koliveira15/nx-sonarqube"
},
{
@@ -414,6 +399,16 @@
"description": "Adds size-limit support for Nx (performance budget tool for JavaScript)",
"url": "https://github.com/LironHazan/nx-size-limit"
},
{
"name": "@jnxplus/nx-quarkus-gradle",
"description": "Nx plugin to add Quarkus and Gradle multi-project builds support to Nx workspace",
"url": "https://github.com/khalilou88/jnxplus/tree/main/packages/nx-quarkus-gradle"
},
{
"name": "@jnxplus/nx-quarkus-maven",
"description": "Nx plugin to add Quarkus and Maven multi-module project support to Nx workspace",
"url": "https://github.com/khalilou88/jnxplus/tree/main/packages/nx-quarkus-maven"
},
{
"name": "@loft-orbital/terraform",
"description": "Terraform executors and generators",
@@ -423,55 +418,5 @@
"name": "@nxlv/python",
"description": "Nx plugin designed to extend the Nx features to work with Python projects based on Poetry.",
"url": "https://github.com/lucasvieirasilva/nx-plugins/tree/main/packages/nx-python"
},
{
"name": "nx-gcp-cache",
"description": "Nx plugin to use Google Cloud Storage as distributed remote cache",
"url": "https://github.com/davidgarciab/nx-gcp-cache"
},
{
"name": "@jnxplus/nx-gradle",
"description": "Nx plugin to add Gradle multi-project builds support to Nx workspace",
"url": "https://github.com/khalilou88/jnxplus/tree/main/packages/nx-gradle"
},
{
"name": "@jnxplus/nx-maven",
"description": "Nx plugin to add Maven multi-module project support to Nx workspace",
"url": "https://github.com/khalilou88/jnxplus/tree/main/packages/nx-maven"
},
{
"name": "@naxodev/nx-cloudflare",
"description": "Nx plugin for Cloudflare, in particular Cloudflare workers. It allows to generate build and run Cloudflare workers in your Nx workspace.",
"url": "https://github.com/naxodev/oss/tree/main/packages/plugins/nx-cloudflare"
},
{
"name": "@ziacik/azure-func",
"description": "Generating, serving and publishing Azure Functions 4 apps.",
"url": "https://github.com/ziacik/nx-tools/tree/master/packages/azure-func"
},
{
"name": "@simondotm/nx-firebase",
"description": "Nx plugin to support Firebase Apps and Cloud Functions in Nx workspaces",
"url": "https://github.com/simondotm/nx-firebase"
},
{
"name": "@dman926/nx-python-pdm",
"description": "Use Python in NX workspaces with PDM",
"url": "https://github.com/dman926/nx-python-pdm"
},
{
"name": "@gnuechtel/nx-cucumber",
"description": "Plugin to use Cucumber within Nx workspaces",
"url": "https://gitlab.com/gnuechtel/open-source/-/tree/main/libs/nx-cucumber"
},
{
"name": "@analogjs/platform",
"description": "Official plugin to add Analog to your Nx monorepo.",
"url": "https://analogjs.org/docs/integrations/nx"
},
{
"name": "@getlarge/nx-heroku",
"description": "Plugin to deploy and promote Nx apps on Heroku",
"url": "https://github.com/getlarge/nx-heroku"
}
]
+11 -150
View File
@@ -1,59 +1,5 @@
# Documentation
## Structure of the Documentation
When writing documentation, it is important to know the audience you are writing for and what kind of document you are writing. We try to follow the framework listed below, but there are always some exceptions since the documentation is always changing. This framework is valuable to keep in mind, but we also follow the principle that if a PR is better than the existing content on the site, we'll merge it in and follow up to make it better later if it doesn't perfectly match the standards.
### Types of Documents
We are generally following the [Diataxis](https://diataxis.fr) model where documents are divided into tutorials, concept guides, recipes and reference.
- Tutorial - Focused on explaining a concept through step by step instructions.
- Concept guide - Explains why something works the way it does or how to think about something.
- Recipe - Focused directions to accomplish a specific task. Describes how to do something.
- Reference - Lists what you can do with the tool (i.e. API docs).
### Audiences
We also have different audiences in mind when writing docs:
👶 New user starting from scratch
- They know their framework of choice
- They have probably heard the term monorepo but don't really know what it is
- They're smart and eager to learn
👶 New user migrating an existing repo
- They know their framework of choice
- They know how npm workspaces work
- They're smart and eager to learn
👦 Intermediate User
- They know how to create an Nx repo or add Nx to an existing repo
- They have heard the terms integrated and package-based
- They know what a project is and how to make one
- They understand how to run a task and the basics of caching
- They can launch the graph
- They know that it is possible to enforce project boundaries
👨‍🦳 Advanced User
- They know everything about Nx except the specific piece of knowledge that is being taught by this document.
### Outline
- Getting Started - These documents assume a new user and are generally concept guides with a lot of links to other parts of the site. There are some elements of recipes mixed in, but those should be kept to a minimum.
- Tutorials - These are tutorials written for a new user. After completing one of these tutorials, the user should have enough knowledge to be an intermediate user.
- Core Features - These are primarily recipes with a little concept mixed in. These documents should be short and provide the basic information that people will want 80% of the time and link to anything more complex. A new user should be able to click through these documents and skim them to get a good understanding of what Nx does without getting overwhelmed with details.
- Concepts - These are concept guides written for a new user. Any recipe content should be split into a recipe document and linked.
- More Concepts (or other categories under Concepts) - These are concept guides written for an intermediate user.
- Recipes - These are recipes written for an advanced user.
- Nx with Your Favorite Tech - These are tutorials written for an intermediate user.
- Benchmarks - Reference documents linking to external resources.
- Reference - Reference documents.
## Markdown syntax available
The default markdown syntax is supported when writing documentation.
@@ -74,12 +20,6 @@ description: This is a custom description
---
```
### Social Media Images
You can specify a custom social media image for a page by specifying `mediaImage` in the `map.json` entry for that page. `mediaImage` is a path relative to `/docs`.
Note that you won't see the social media image in the preview generated for your PR, because it loads from the live `nx.dev` site. You can make sure the image is correct by looking at `[preview-url]/images/open-graph/[page-url].[image-extension]`.
### Custom markdown syntax
The documentation website [nx.dev](https://nx.dev) is using custom Markdown syntax to enable the authors to add functionality to its content.
@@ -94,16 +34,6 @@ Your content goes here.
{% /callout %}
```
#### Disclosure
A disclosure can be used for less important information that is initially collapsed.
```markdown
{% disclosure title="string" %}
Your content goes here.
{% /disclosure %}
```
#### Cards
Cards allow showing content in a grid system with a title, a description, a type and an url (internal/external).
@@ -137,42 +67,6 @@ You can add specific languages and a filename on the code snippet displayed.
```
````
#### Line Highlighting
You can define groups of lines that can be interactively highlighted to illustrate a point.
````
```javascript {% lineGroups={ first:[2,3],second:[4,5] } %}
const code = "goes here";
This is in the first group
This is also in the first group
This is in the second group
This is also in the second group
```
````
The line groups can be highlighted using a button on the code fence itself, or by clicking on a link that you provide that changes the url fragment.
For example:
```
[This will highlight the first group.](#first)
```
You can also statically highlight a set of lines (the user won't be able to change what is highlighted):
````
```javascript {% highlightLines=[2,3] %}
const code = "goes here";
This is highlighted
This is also highlighted
This is not highlighted
Neither is this
```
````
You can also specify ranges like `highlightLines=[2,3,"8-10"]`.
#### Terminal command
To display a terminal command, use:
@@ -246,6 +140,16 @@ We can display a special button inviting the reader to go to a VSCode marketplac
{% install-nx-console /%}
```
#### Nx Cloud section
We can display Nx Cloud related content in the documentation with a visual cue.
```markdown
{% nx-cloud-section %}
Your content goes here.
{% /nx-cloud-section %}
```
#### Side by side
You can show content in a grid of 2 columns, via the `side-by-side` shortcode.
@@ -275,7 +179,7 @@ Yarn related information.
##### Youtube
Embed a YouTube video directly with the following shortcode, control the title and the associated width. `src` can be the Youtube URL from the browser, the "share" button (short YT url) or the embed URL.
Embed a YouTube video directly with the following shortcode, control the title and the associated width.
```markdown
{% youtube
@@ -292,49 +196,6 @@ Have a more decent button-like widget that you can place below sections of a tut
{% video-link link="https://youtu.be/OQ-Zc5tcxJE?t=64" /%}
```
#### Project Details View
Embed a Project Details View that is identical what is shown in Nx Console or `nx show project myproject --web`
````markdown
{% project-details title="Test" height="100px" %}
```json
{
"project": {
"name": "demo",
"data": {
"root": " packages/demo",
"projectType": "application",
"targets": {
"dev": {
"executor": "nx:run-commands",
"options": {
"command": "vite dev"
}
},
"build": {
"executor": "nx:run-commands",
"inputs": ["production", "^production"],
"outputs": ["{projectRoot}/dist"],
"options": {
"command": "vite build"
}
}
}
}
},
"sourceMap": {
"targets": ["packages/demo/vite.config.ts", "@nx/vite"],
"targets.dev": ["packages/demo/vite.config.ts", "@nx/vite"],
"targets.build": ["packages/demo/vite.config.ts", "@nx/vite"]
}
}
```
{% /project-details %}
````
#### Graph
Embed an Nx Graph visualization that can be panned by the user.
+5 -10
View File
@@ -4,21 +4,16 @@
Here are some of our feature highlights:
{% youtube
src="https://youtu.be/ZST_rmhzRXI"
title="Nx Console Run UI Form"
width="100%" /%}
{% cards cols="2" %}
{% card title="Combine the Power of Nx Graph and Nx Console" type="video" url="https://youtu.be/ZST_rmhzRXI" /%}
{% /cards %}
## Breaking Changes
Use [the `nx migrate` command](/features/automate-updating-dependencies) to automatically account for these breaking changes.
{% cards cols="1" smCols="2" mdCols="3" %}
Use [the `nx migrate` command](/core-features/automate-updating-dependencies) to automatically account for these breaking changes.
{% cards cols="2" %}
{% card title="Removed UMD format support for rollup" type="external" url="https://github.com/nrwl/nx/pull/12426" /%}
{% card title="Removed --only-failed option" type="external" url="https://github.com/nrwl/nx/pull/12471" /%}
{% card title="Infer projects from package.json and project.json" description="Nx will now also include folders with package.json/project.json in its graph of projects. You can ignore any unwanted projects by adding the directory to .nxignore." type="external" url="https://github.com/nrwl/nx/releases/tag/15.0.0" /%}
{% /cards %}
+1 -1
View File
@@ -8,7 +8,7 @@ title="What&#39;s new in Nx 15.3?"
/%}
Here are some of our feature highlights:
{% cards cols="1" smCols="2" mdCols="2" lgCols="3" %}
{% cards cols="2" %}
{% card title="Introducing the Nx Task Graph Visualization" type="video" url="https://youtu.be/wOE3r4299fs" /%}
{% card title="Standalone Applications with Nx" type="video" url="https://youtu.be/qEaVzh-oBBc" /%}
{% card title="Add Nx to any Project" type="video" url="https://youtu.be/VmGCZ77ao_I" /%}
+1 -1
View File
@@ -9,6 +9,6 @@ title="Nx 15.4 is out! Here&#39;s all you need to know"
Here are some of our feature highlights:
{% cards cols="2" smCol="2" mdCol="2" lgCol="2" %}
{% cards cols="2" %}
{% card title="One Command to Run Multiple Tasks in Parallel" type="video" url="https://youtu.be/ROTO89i5m_4" /%}
{% /cards %}
+1 -1
View File
@@ -30,7 +30,7 @@ Here are some of our feature highlights:
## Breaking Changes
Use [the `nx migrate` command](/features/automate-updating-dependencies) to automatically account for these breaking changes.
Use [the `nx migrate` command](/core-features/automate-updating-dependencies) to automatically account for these breaking changes.
{% cards cols="2" %}
{% card title="Removed @nrwl/cypress/plugins/preprocessor" type="external" url="https://github.com/nrwl/nx/pull/16170" /%}
-5
View File
@@ -1,5 +0,0 @@
## New Features:
{% cards cols="2" %}
{% card title="Official Playwright Support" type="video" url="https://www.youtube.com/watch?v=k1U3PuBrZFQ" /%}
{% /cards %}
-6
View File
@@ -1,6 +0,0 @@
## New Features:
{% cards cols="2" %}
{% card title="ESLint Flat Config Generator" type="video" url="https://youtu.be/32XH909CZrY" /%}
{% card title="Convert To Monorepo Generator" type="video" url="https://www.youtube.com/watch?v=ztNpLf2Zl-c" /%}
{% /cards %}
-14
View File
@@ -1,14 +0,0 @@
# Nx 16.8
[Read the 16.8 release blog post](https://blog.nrwl.io/nx-16-8-release-e38e3bb503b5)
{% youtube
src="https://www.youtube.com/embed/bw8pRh0iC4A"
title="Nx 16.8 Launch!!!"
/%}
## New Features:
{% cards cols="2" %}
{% card title="Interactive Graphs In Nx Console" type="video" url="https://www.youtube.com/watch?v=QJ53RJhSCD0" /%}
{% /cards %}
-32
View File
@@ -1,32 +0,0 @@
# Nx 17
Nx 17.0 is here!! From a brand new Vue plugin, enhancements to Module Federation Support ensuring better type safety and a new generator to federate anything, to more consistent generator paths when scaffolding new components. Dive into the details and explore more on what's fresh in Nx 17.0 on [official blog post](https://dev.to/nx/nx-170-has-landed-p60) or watch the video below:
{% youtube
src="https://www.youtube.com/embed/1Z0iA9K1o8M"
title="Nx 17.0 Has Landed!!!"
/%}
## Features
{% cards cols="2" %}
{% card title="Official @nx/vue plugin" type="document" url="/nx-api/vue" /%}
{% card title="Module Federation Improvements" type="document" url="/concepts/module-federation/module-federation-and-nx" /%}
{% card title="Show Task Inputs in the Task Graph Visualizer" type="external" url="https://github.com/nrwl/nx/pull/19597" /%}
{% card title="Move properties from tasksRunnerOptions up to the root of nx.json" type="external" url="https://github.com/nrwl/nx/pull/19243" /%}
{% card title="Each task has its own cache property" type="document" url="/reference/project-configuration#cache" /%}
{% /cards %}
## Breaking Changes
Use [the `nx migrate` command](/features/automate-updating-dependencies) to automatically account for these breaking changes.
{% cards cols="2" %}
{% card title="Rename @nx/linter to @nx/eslint" type="document" url="/recipes/other/rescope#rename" /%}
{% card title="Removed workspace generator command" type="external" url="https://github.com/nrwl/nx/pull/19541" /%}
{% card title="Removed workspace-lint command" type="external" url="https://github.com/nrwl/nx/pull/16212" /%}
{% card title="Removed defaultCollection property" type="external" url="https://github.com/nrwl/nx/pull/19708" /%}
{% card title="Removed npmScope property" type="external" url="https://github.com/nrwl/nx/pull/19708" /%}
{% card title="Removed ability for Angular CLI to use our generators and executors" type="external" url="/deprecated/angular-schematics-builders" /%}
{% card title="Removed exported code from @nrwl/workspace that has been moved elsewhere" type="external" url="https://github.com/nrwl/nx/pull/19588" /%}
{% /cards %}
-17
View File
@@ -1,17 +0,0 @@
# Nx 17.2
[Read the 17.2 release blog post](https://blog.nrwl.io/nx-17-2-update-b8f23ec42cbb?source=friends_link&sk=b2ea5cd1e07352936556a6ef5431a091)
{% youtube
src="https://www.youtube.com/embed/cWIFVWKhpHQ"
title="Nx 17.2 Has Landed!!"
/%}
## New Features:
{% cards cols="2" %}
{% card title="Module Federation Updates" type="external" url="https://github.com/nrwl/nx/pull/20006" /%}
{% card title="Nx Release Programmatic API" type="document" url="features/manage-releases#using-the-programmatic-api-for-nx-release" /%}
{% card title="Angular 17 Support" type="external" url="https://github.com/nrwl/nx/pull/19689" /%}
{% card title="Nx Canary Releases" type="external" url="https://github.com/nrwl/nx/pull/20540" /%}
{% /cards %}
-28
View File
@@ -1,28 +0,0 @@
# Nx 18
We were so excited about the features in Nx 18 that we created a whole [Launch Nx Week](https://nx.dev/launch-nx) to share our excitement with you. During the launch week, we made the following announcements:
- [Project Crystal](https://blog.nrwl.io/what-if-nx-plugins-were-more-like-vscode-extensions-dcdad140ae09?source=friends_link&sk=ade76fe8d50d44aafb4d4d89ab882e24&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) allows you to use inferred tasks
- A new [`@nx/nuxt`](https://blog.nrwl.io/introducing-nx-nuxt-enhanced-nuxt-js-support-in-nx-01eac78034fc?source=friends_link&sk=91582cdbd0719dc23375338ad92afa9b&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) plugin is available
- [Nx Agents](https://blog.nrwl.io/fast-effortless-ci-67812514ffb4?source=friends_link&sk=89e1b5c0388dda077e64a2eab5495d95&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) are publicly available
- [`nx release`](https://blog.nrwl.io/versioning-and-releasing-packages-in-a-monorepo-45ee194378d1?source=friends_link&sk=934e4c5321774c8a9f88433e0dea578b&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) is out of beta
{% youtube
src="https://youtu.be/Ed1ZCNqWF1Q"
title="Nx 18.0!!!"
/%}
## Features
{% cards cols="2" %}
{% card title="Inferred tasks (Project Crystal)" type="document" url="/concepts/inferred-tasks" /%}
{% card title="Project Details View" type="document" url="/features/explore-graph#explore-projects-in-your-workspace" /%}
{% card title="New @nx/nuxt plugin" type="document" url="/nx-api/nuxt" /%}
{% card title="Distribute tasks on Nx Agents" type="document" url="/ci/features/distribute-task-execution" /%}
{% card title="Automatically split e2e tasks (Atomizer)" type="document" url="/ci/features/split-e2e-tasks" /%}
{% card title="Re-run flaky tasks" type="document" url="/ci/features/flaky-tasks" /%}
{% /cards %}
## Breaking Changes
Note: Though this is a major version, there are no removals of previous deprecations. Any deprecations which were previously scheduled for Nx 18 are now scheduled for Nx 19 which will still be coming out around April 2024.
-68
View File
@@ -1,68 +0,0 @@
---
title: 'add - CLI command'
description: 'Install a plugin and initialize it.'
---
# add
Install a plugin and initialize it.
## Usage
```shell
nx add <packageSpecifier>
```
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
### Examples
Install the `@nx/react` package matching the installed version of the `nx` package and run its `@nx/react:init` generator:
```shell
nx add @nx/react
```
Install the latest version of the `non-core-nx-plugin` package and run its `non-core-nx-plugin:init` generator if available:
```shell
nx add non-core-nx-plugin
```
Install version `17.0.0` of the `@nx/react` package and run its `@nx/react:init` generator:
```shell
nx add @nx/react@17.0.0
```
## Options
### help
Type: `boolean`
Show help
### packageSpecifier
Type: `string`
The package name and optional version (e.g. `@nx/react` or `@nx/react@latest`) to install and initialize. If the version is not specified it will install the same version as the `nx` package for Nx core plugins or the latest version for other packages
### updatePackageScripts
Type: `boolean`
Update `package.json` scripts with inferred targets. Defaults to `true` when the package is a core Nx plugin
### verbose
Type: `boolean`
Prints additional information about the commands (e.g., stack traces)
### version
Type: `boolean`
Show version number
+1 -1
View File
@@ -5,7 +5,7 @@ description: 'Graph dependencies affected by changes'
# affected:graph
**Deprecated:** Use `nx graph --affected`, or `nx affected --graph` instead depending on which best suits your use case. The `affected:graph` command will be removed in Nx 19.
**Deprecated:** Use `nx graph --affected`, or `nx affected --graph` instead depending on which best suits your use case. The `affected:graph` command will be removed in Nx 18.
Graph dependencies affected by changes
+10 -12
View File
@@ -29,6 +29,12 @@ Run tests in parallel:
nx affected -t test --parallel=5
```
Run the test target for all projects:
```shell
nx affected -t test --all
```
Run lint, test, and build targets for affected projects. Requires Nx v15.4+:
```shell
@@ -56,7 +62,7 @@ Run tests for all the projects affected by the last commit on main:
Run build for only projects with the tag `dotnet`:
```shell
nx affected -t=build --exclude='*,!tag:dotnet'
nx affected -t build --exclude '*,!tag:dotnet'
```
Use the currently executing project name in your command.:
@@ -79,14 +85,6 @@ Type: `string`
Base of the current branch (usually main)
### batch
Type: `boolean`
Default: `false`
Run task(s) in batches for executors which support batches
### configuration
Type: `string`
@@ -123,7 +121,7 @@ Type: `boolean`
Show help
### nxBail
### nx-bail
Type: `boolean`
@@ -131,7 +129,7 @@ Default: `false`
Stop command execution after the first failed task
### nxIgnoreCycles
### nx-ignore-cycles
Type: `boolean`
@@ -159,7 +157,7 @@ Type: `string`
This is the name of the tasks runner configured in nx.json
### skipNxCache
### skip-nx-cache
Type: `boolean`
+11 -27
View File
@@ -37,6 +37,14 @@ Type: `string`
Bundler to be used to build the app
### ci
Type: `string`
Choices: [github, circleci, azure, bitbucket-pipelines, gitlab]
Generate a CI workflow file
### commit.email
Type: `string`
@@ -111,19 +119,11 @@ Type: `boolean`
Enable the App Router for Next.js
### nextSrcDir
### nxCloud
Type: `boolean`
Generate a 'src/' directory for Next.js
### nxCloud
Type: `string`
Choices: [yes, github, circleci, skip]
Do you want Nx Cloud to make your CI fast?
Enable distributed caching to make your CI faster
### packageManager
@@ -135,24 +135,16 @@ Default: `npm`
Package manager to use
### prefix
Type: `string`
Prefix to use for Angular component and directive selectors.
### preset
Type: `string`
Customizes the initial content of your workspace. Default presets include: ["apps", "empty", "core", "npm", "ts", "web-components", "angular-monorepo", "angular-standalone", "react-monorepo", "react-standalone", "vue-monorepo", "vue-standalone", "nuxt", "nuxt-standalone", "next", "nextjs-standalone", "remix-monorepo", "remix-standalone", "react-native", "expo", "nest", "express", "react", "vue", "angular", "node-standalone", "node-monorepo", "ts-standalone"]. To build your own see https://nx.dev/extending-nx/recipes/create-preset
Customizes the initial content of your workspace. Default presets include: ["apps", "empty", "core", "npm", "ts", "web-components", "angular-monorepo", "angular-standalone", "react-monorepo", "react-standalone", "next", "nextjs-standalone", "react-native", "expo", "nest", "express", "react", "angular", "node-standalone", "node-monorepo", "ts-standalone"]. To build your own see https://nx.dev/plugins/recipes/create-preset
### routing
Type: `boolean`
Default: `true`
Add a routing setup for an Angular app
### skipGit
@@ -163,18 +155,10 @@ Default: `false`
Skip initializing a git repository
### ssr
Type: `boolean`
Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application
### standaloneApi
Type: `boolean`
Default: `true`
Use Standalone Components if generating an Angular app
### style
+19 -73
View File
@@ -5,79 +5,23 @@ description: 'Executes any command as if it was a target on the project'
# exec
- Executes any command as if it was a target on the project
- Executes an arbitrary command in each package
Executes any command as if it was a target on the project
## Usage
In package.json, adding a script with `nx exec` will run the command as if it is a target that project:
```json
{
"name": "myorg",
"version": "0.0.1",
"scripts": {
"build": "nx exec -- <command> [..args]"
}
}
```
It will run the command for `myorg`.
When run from the terminal, `nx exec` will run the command for all projects in the workspace:
```
nx exec -- <command> [..args] # runs the command in all projects
nx exec -- tsc
nx exec -- echo \$NX_PROJECT_NAME
nx exec -- echo \$NX_PROJECT_ROOT_PATH
```shell
nx exec
```
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
## Examples
You can use `npm run <command>` for a project and leverage the caching by wrap your command with `nx exec`.
For example, you can run `npm run docs` as a Nx target for `myorg`:
```
{
"name": "myorg",
"nx": {},
"scripts": {
"docs": "nx exec -- node ./scripts/some-script.js"
}
}
```
You may also run a script located in the project directory for all projects:
```
nx exec -- node ./scripts/some-script.js
```
The name of the current project is available through the environment variable $NX_PROJECT_NAME:
```
nx exec -- echo \$NX_PROJECT_NAME
```
The location of current project is available through the environment variable $NX_PROJECT_ROOT_PATH:
```
nx exec -- echo \$NX_PROJECT_ROOT_PATH
```
## Options
### all
### configuration
Type: `boolean`
Type: `string`
Default: `true`
[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required.
This is the configuration to use when performing tasks on projects
### exclude
@@ -91,13 +35,7 @@ Type: `string`
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser.
### help
Type: `boolean`
Show help
### nxBail
### nx-bail
Type: `boolean`
@@ -105,7 +43,7 @@ Default: `false`
Stop command execution after the first failed task
### nxIgnoreCycles
### nx-ignore-cycles
Type: `boolean`
@@ -113,17 +51,25 @@ Default: `false`
Ignore cycles in the task graph
### output-style
Type: `string`
Choices: [dynamic, static, stream, stream-without-prefixes, compact]
Defines how Nx emits outputs tasks logs
### parallel
Type: `string`
Max number of parallel processes [default is 3]
### projects
### project
Type: `string`
Projects to run. (comma/space delimited project names and/or patterns)
Target project
### runner
@@ -131,7 +77,7 @@ Type: `string`
This is the name of the tasks runner configured in nx.json
### skipNxCache
### skip-nx-cache
Type: `boolean`
-6
View File
@@ -93,12 +93,6 @@ When false, disables interactive input prompts.
Show help and display available generators in the default collection.
### quiet
Default: `false`
When true, disables Nx specific logging related to running the generator or its outputs.
### version
Show version number
+34 -2
View File
@@ -1,11 +1,11 @@
---
title: 'init - CLI command'
description: 'Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up remote caching. For more info, check https://nx.dev/recipes/adopting-nx.'
description: 'Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up distributed caching. For more info, check https://nx.dev/recipes/adopting-nx.'
---
# init
Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up remote caching. For more info, check https://nx.dev/recipes/adopting-nx.
Adds Nx to any type of workspace. It installs nx, creates an nx.json configuration file and optionally sets up distributed caching. For more info, check https://nx.dev/recipes/adopting-nx.
## Usage
@@ -17,12 +17,36 @@ Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`
## Options
### addE2e
Type: `boolean`
Default: `false`
Set up Cypress E2E tests in integrated workspaces. Only for CRA projects.
### force
Type: `boolean`
Default: `false`
Force the migration to continue and ignore custom webpack setup or uncommitted changes. Only for CRA projects.
### help
Type: `boolean`
Show help
### integrated
Type: `boolean`
Default: `false`
Migrate to an Nx integrated layout workspace. Only for Angular CLI workspaces and CRA projects.
### interactive
Type: `boolean`
@@ -50,3 +74,11 @@ Initialize an Nx workspace setup in the .nx directory of the current repository.
Type: `boolean`
Show version number
### vite
Type: `boolean`
Default: `true`
Use Vite as the bundler. Only for CRA projects.
+1 -1
View File
@@ -5,7 +5,7 @@ description: 'Prints information about the projects and targets affected by chan
# print-affected
**Deprecated:** Use `nx show projects --affected`, `nx affected --graph -t build` or `nx graph --affected` depending on which best suits your use case. The `print-affected` command will be removed in Nx 19.
**Deprecated:** Use `nx show projects --affected`, `nx affected --graph -t build` or `nx graph --affected` depending on which best suits your use case. The `print-affected` command will be removed in Nx 18.
Prints information about the projects and targets affected by changes
-390
View File
@@ -1,390 +0,0 @@
---
title: 'release - CLI command'
description: 'Orchestrate versioning and publishing of applications and libraries'
---
# release
Orchestrate versioning and publishing of applications and libraries
## Usage
```shell
nx release
```
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
## Shared Options
### dry-run
Type: `boolean`
Default: `false`
Preview the changes without updating files/creating releases
### first-release
Type: `boolean`
Indicates that this is the first release for the selected release group. If the current version cannot be determined as usual, the version on disk will be used as a fallback. This is useful when using git or the registry to determine the current version of packages, since those sources are only available after the first release. Also indicates that changelog generation should not assume a previous git tag exists and that publishing should not check for the existence of the package before running.
### groups
Type: `string`
One or more release groups to target with the current command.
### help
Type: `boolean`
Show help
### projects
Type: `string`
Projects to run. (comma/space delimited project names and/or patterns)
### verbose
Type: `boolean`
Prints additional information about the commands (e.g., stack traces)
### version
Type: `boolean`
Show version number
## Subcommands
### Base Command Options
Create a version and release for the workspace, generate a changelog, and optionally publish the packages
```shell
nx release [specifier]
```
#### Options
##### help
Type: `boolean`
Show help
##### skip-publish
Type: `boolean`
Skip publishing by automatically answering no to the confirmation prompt for publishing
##### specifier
Type: `string`
Exact version or semver keyword to apply to the selected release group.
##### version
Type: `boolean`
Show version number
##### yes
Type: `boolean`
Automatically answer yes to the confirmation prompt for publishing
### version
Create a version and release for one or more applications and libraries
```shell
nx release version [specifier]
```
#### Options
##### git-commit
Type: `boolean`
Whether or not to automatically commit the changes made by this command
##### git-commit-args
Type: `string`
Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes
##### git-commit-message
Type: `string`
Custom git commit message to use when committing the changes made by this command. {version} will be dynamically interpolated when performing fixed releases, interpolated tags will be appended to the commit body when performing independent releases.
##### git-tag
Type: `boolean`
Whether or not to automatically tag the changes made by this command
##### git-tag-args
Type: `string`
Additional arguments to pass to the `git tag` command invoked behind the scenes
##### git-tag-message
Type: `string`
Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself.
##### help
Type: `boolean`
Show help
##### preid
Type: `string`
The optional prerelease identifier to apply to the version, in the case that specifier has been set to prerelease.
##### specifier
Type: `string`
Exact version or semver keyword to apply to the selected release group.
##### stage-changes
Type: `boolean`
Whether or not to stage the changes made by this command. Always treated as true if git-commit is true.
##### version
Type: `boolean`
Show version number
### changelog
Generate a changelog for one or more projects, and optionally push to Github
```shell
nx release changelog [version]
```
#### Options
##### from
Type: `string`
The git reference to use as the start of the changelog. If not set it will attempt to resolve the latest tag and use that
##### git-commit
Type: `boolean`
Whether or not to automatically commit the changes made by this command
##### git-commit-args
Type: `string`
Additional arguments (added after the --message argument, which may or may not be customized with --git-commit-message) to pass to the `git commit` command invoked behind the scenes
##### git-commit-message
Type: `string`
Custom git commit message to use when committing the changes made by this command. {version} will be dynamically interpolated when performing fixed releases, interpolated tags will be appended to the commit body when performing independent releases.
##### git-remote
Type: `string`
Default: `origin`
Alternate git remote in the form {user}/{repo} on which to create the Github release (useful for testing)
##### git-tag
Type: `boolean`
Whether or not to automatically tag the changes made by this command
##### git-tag-args
Type: `string`
Additional arguments to pass to the `git tag` command invoked behind the scenes
##### git-tag-message
Type: `string`
Custom git tag message to use when tagging the changes made by this command. This defaults to be the same value as the tag itself.
##### help
Type: `boolean`
Show help
##### interactive
Type: `string`
Choices: [all, workspace, projects]
Interactively modify changelog markdown contents in your code editor before applying the changes. You can set it to be interactive for all changelogs, or only the workspace level, or only the project level
##### stage-changes
Type: `boolean`
Whether or not to stage the changes made by this command. Always treated as true if git-commit is true.
##### to
Type: `string`
Default: `HEAD`
The git reference to use as the end of the changelog
##### version
Type: `string`
The version to create a Github release and changelog for
### publish
Publish a versioned project to a registry
```shell
nx release publish
```
#### Options
##### all
Type: `boolean`
Default: `true`
[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required.
##### exclude
Type: `string`
Exclude certain projects from being processed
##### graph
Type: `string`
Show the task graph of the command. Pass a file path to save the graph data instead of viewing it in the browser.
##### help
Type: `boolean`
Show help
##### nxBail
Type: `boolean`
Default: `false`
Stop command execution after the first failed task
##### nxIgnoreCycles
Type: `boolean`
Default: `false`
Ignore cycles in the task graph
##### otp
Type: `number`
A one-time password for publishing to a registry that requires 2FA
##### output-style
Type: `string`
Choices: [dynamic, static, stream, stream-without-prefixes]
Defines how Nx emits outputs tasks logs
##### parallel
Type: `string`
Max number of parallel processes [default is 3]
##### projects
Type: `string`
Projects to run. (comma/space delimited project names and/or patterns)
##### registry
Type: `string`
The registry to publish to
##### runner
Type: `string`
This is the name of the tasks runner configured in nx.json
##### skipNxCache
Type: `boolean`
Default: `false`
Rerun the tasks even when the results are available in the cache
##### tag
Type: `string`
The distribution tag to apply to the published package
##### verbose
Type: `boolean`
Prints additional information about the commands (e.g., stack traces)
##### version
Type: `boolean`
Show version number
+1 -18
View File
@@ -1,29 +1,12 @@
---
title: 'repair - CLI command'
description: 'Repair any configuration that is no longer supported by Nx.
Specifically, this will run every migration within the `nx` package
against the current repository. Doing so should fix any configuration
details left behind if the repository was previously updated to a new
Nx version without using `nx migrate`.
If your repository has only ever updated to newer versions of Nx with
`nx migrate`, running `nx repair` should do nothing.
'
description: 'Repair any configuration that is no longer supported by Nx.'
---
# repair
Repair any configuration that is no longer supported by Nx.
Specifically, this will run every migration within the `nx` package
against the current repository. Doing so should fix any configuration
details left behind if the repository was previously updated to a new
Nx version without using `nx migrate`.
If your repository has only ever updated to newer versions of Nx with
`nx migrate`, running `nx repair` should do nothing.
## Usage
```shell
+5 -13
View File
@@ -68,7 +68,7 @@ Test all projects with a `type:feature` or `type:ui` tag:
Run lint, test, and build targets for all projects. Requires Nx v15.4+:
```shell
nx run-many --targets=lint,test,build
nx run-many --targets=lint,test,build --all
```
## Options
@@ -79,15 +79,7 @@ Type: `boolean`
Default: `true`
[deprecated] `run-many` runs all targets on all projects in the workspace if no projects are provided. This option is no longer required.
### batch
Type: `boolean`
Default: `false`
Run task(s) in batches for executors which support batches
[deprecated] Run the target on all projects in the workspace
### configuration
@@ -113,7 +105,7 @@ Type: `boolean`
Show help
### nxBail
### nx-bail
Type: `boolean`
@@ -121,7 +113,7 @@ Default: `false`
Stop command execution after the first failed task
### nxIgnoreCycles
### nx-ignore-cycles
Type: `boolean`
@@ -155,7 +147,7 @@ Type: `string`
This is the name of the tasks runner configured in nx.json
### skipNxCache
### skip-nx-cache
Type: `boolean`
+2 -40
View File
@@ -41,16 +41,10 @@ Show affected projects in the workspace:
nx show projects --affected
```
Show affected apps in the workspace:
```shell
nx show projects --affected --type app
```
Show affected projects in the workspace, excluding end-to-end projects:
```shell
nx show projects --affected --exclude=*-e2e
nx show projects --affected --exclude *-e2e
```
Show detailed information about "my-app" in a json format.:
@@ -65,13 +59,7 @@ Show information about "my-app" in a human readable format.:
nx show project my-app --json false
```
Opens a web browser to explore the configuration of "my-app":
```shell
nx show project my-app --web
```
## Shared Options
## Options
### help
@@ -145,14 +133,6 @@ Type: `string`
Show only projects that match a given pattern.
##### type
Type: `string`
Choices: [app, lib, e2e]
Select only projects of the given type
##### uncommitted
Type: `boolean`
@@ -165,12 +145,6 @@ Type: `boolean`
Untracked changes
##### verbose
Type: `boolean`
Prints additional information about the commands (e.g., stack traces)
##### version
Type: `boolean`
@@ -205,20 +179,8 @@ Type: `string`
Which project should be viewed?
##### verbose
Type: `boolean`
Prints additional information about the commands (e.g., stack traces)
##### version
Type: `boolean`
Show version number
##### web
Type: `boolean`
Show project details in the browser
+66
View File
@@ -0,0 +1,66 @@
---
title: 'workspace-generator - CLI command'
description: 'Runs a workspace generator from the tools/generators directory'
---
# workspace-generator
**Deprecated:** Use a local plugin instead. See: https://nx.dev/deprecated/workspace-generators
Runs a workspace generator from the tools/generators directory
## Usage
```shell
nx workspace-generator [generator]
```
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
## Options
### dryRun
Type: `boolean`
Default: `false`
Preview the changes without updating files
### generator
Type: `string`
Name of the generator (e.g., @nx/js:library, library)
### help
Type: `boolean`
Show help
### interactive
Type: `boolean`
Default: `true`
When false disables interactive input prompts for options
### quiet
Type: `boolean`
Hides logs from tree operations (e.g. `CREATE package.json`)
### verbose
Type: `boolean`
Prints additional information about the commands (e.g., stack traces)
### version
Type: `boolean`
Show version number
+18
View File
@@ -0,0 +1,18 @@
---
title: 'workspace-lint - CLI command'
description: 'Lint nx specific workspace files (nx.json, workspace.json)'
---
# workspace-lint
**Deprecated:** workspace-lint is deprecated, and will be removed in v17. The checks it used to perform are no longer relevant. See: https://nx.dev/deprecated/workspace-lint
Lint nx specific workspace files (nx.json, workspace.json)
## Usage
```shell
nx workspace-lint [files..]
```
Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`, `yarn nx`, or `pnpm nx`.
-20
View File
@@ -1,20 +0,0 @@
# Enumeration: ChangeType
## Table of contents
### Enumeration Members
- [Delete](../../devkit/documents/ChangeType#delete)
- [Insert](../../devkit/documents/ChangeType#insert)
## Enumeration Members
### Delete
**Delete** = `"Delete"`
---
### Insert
**Insert** = `"Insert"`
@@ -1,27 +0,0 @@
# Type alias: CreateDependencies\<T\>
Ƭ **CreateDependencies**\<`T`\>: (`options`: `T` \| `undefined`, `context`: [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext)) => [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\>
A function which parses files in the workspace to create dependencies in the [ProjectGraph](../../devkit/documents/ProjectGraph)
Use [validateDependency](../../devkit/documents/validateDependency) to validate dependencies
#### Type parameters
| Name | Type |
| :--- | :-------- |
| `T` | `unknown` |
#### Type declaration
▸ (`options`, `context`): [`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\>
##### Parameters
| Name | Type |
| :-------- | :------------------------------------------------------------------------------ |
| `options` | `T` \| `undefined` |
| `context` | [`CreateDependenciesContext`](../../devkit/documents/CreateDependenciesContext) |
##### Returns
[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[] \| `Promise`\<[`RawProjectGraphDependency`](../../devkit/documents/RawProjectGraphDependency)[]\>
@@ -1,60 +0,0 @@
# Interface: CreateDependenciesContext
Context for [CreateDependencies](../../devkit/documents/CreateDependencies)
## Table of contents
### Properties
- [externalNodes](../../devkit/documents/CreateDependenciesContext#externalnodes): Record<string, ProjectGraphExternalNode>
- [fileMap](../../devkit/documents/CreateDependenciesContext#filemap): FileMap
- [filesToProcess](../../devkit/documents/CreateDependenciesContext#filestoprocess): FileMap
- [nxJsonConfiguration](../../devkit/documents/CreateDependenciesContext#nxjsonconfiguration): NxJsonConfiguration<string[] | "\*">
- [projects](../../devkit/documents/CreateDependenciesContext#projects): Record<string, ProjectConfiguration>
- [workspaceRoot](../../devkit/documents/CreateDependenciesContext#workspaceroot): string
## Properties
### externalNodes
`Readonly` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\>
The external nodes that have been added to the graph.
---
### fileMap
`Readonly` **fileMap**: [`FileMap`](../../devkit/documents/FileMap)
All files in the workspace
---
### filesToProcess
`Readonly` **filesToProcess**: [`FileMap`](../../devkit/documents/FileMap)
Files changes since last invocation
---
### nxJsonConfiguration
`Readonly` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
The `nx.json` configuration from the workspace
---
### projects
`Readonly` **projects**: `Record`\<`string`, [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)\>
The configuration of each project in the workspace.
---
### workspaceRoot
`Readonly` **workspaceRoot**: `string`
-11
View File
@@ -1,11 +0,0 @@
# Type alias: CreateNodes\<T\>
Ƭ **CreateNodes**\<`T`\>: readonly [configFilePattern: string, createNodesFunction: CreateNodesFunction\<T\>]
A pair of file patterns and [CreateNodesFunction](../../devkit/documents/CreateNodesFunction)
#### Type parameters
| Name | Type |
| :--- | :-------- |
| `T` | `unknown` |
@@ -1,31 +0,0 @@
# Interface: CreateNodesContext
Context for [CreateNodesFunction](../../devkit/documents/CreateNodesFunction)
## Table of contents
### Properties
- [configFiles](../../devkit/documents/CreateNodesContext#configfiles): string[]
- [nxJsonConfiguration](../../devkit/documents/CreateNodesContext#nxjsonconfiguration): NxJsonConfiguration<string[] | "\*">
- [workspaceRoot](../../devkit/documents/CreateNodesContext#workspaceroot): string
## Properties
### configFiles
`Readonly` **configFiles**: `string`[]
The subset of configuration files which match the createNodes pattern
---
### nxJsonConfiguration
`Readonly` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
---
### workspaceRoot
`Readonly` **workspaceRoot**: `string`
@@ -1,28 +0,0 @@
# Type alias: CreateNodesFunction\<T\>
Ƭ **CreateNodesFunction**\<`T`\>: (`projectConfigurationFile`: `string`, `options`: `T` \| `undefined`, `context`: [`CreateNodesContext`](../../devkit/documents/CreateNodesContext)) => [`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\>
A function which parses a configuration file into a set of nodes.
Used for creating nodes for the [ProjectGraph](../../devkit/documents/ProjectGraph)
#### Type parameters
| Name | Type |
| :--- | :-------- |
| `T` | `unknown` |
#### Type declaration
▸ (`projectConfigurationFile`, `options`, `context`): [`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\>
##### Parameters
| Name | Type |
| :------------------------- | :---------------------------------------------------------------- |
| `projectConfigurationFile` | `string` |
| `options` | `T` \| `undefined` |
| `context` | [`CreateNodesContext`](../../devkit/documents/CreateNodesContext) |
##### Returns
[`CreateNodesResult`](../../devkit/documents/CreateNodesResult) \| `Promise`\<[`CreateNodesResult`](../../devkit/documents/CreateNodesResult)\>
@@ -1,24 +0,0 @@
# Interface: CreateNodesResult
## Table of contents
### Properties
- [externalNodes](../../devkit/documents/CreateNodesResult#externalnodes): Record<string, ProjectGraphExternalNode>
- [projects](../../devkit/documents/CreateNodesResult#projects): Record<string, Optional<ProjectConfiguration, "root">>
## Properties
### externalNodes
`Optional` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\>
A map of external node name -> external node. External nodes do not have a root, so the key is their name.
---
### projects
`Optional` **projects**: `Record`\<`string`, `Optional`\<[`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration), `"root"`\>\>
A map of project root -> project configuration
-18
View File
@@ -1,18 +0,0 @@
# Type alias: CustomHasher
Ƭ **CustomHasher**: (`task`: [`Task`](../../devkit/documents/Task), `context`: [`HasherContext`](../../devkit/documents/HasherContext)) => `Promise`\<[`Hash`](../../devkit/documents/Hash)\>
#### Type declaration
▸ (`task`, `context`): `Promise`\<[`Hash`](../../devkit/documents/Hash)\>
##### Parameters
| Name | Type |
| :-------- | :------------------------------------------------------ |
| `task` | [`Task`](../../devkit/documents/Task) |
| `context` | [`HasherContext`](../../devkit/documents/HasherContext) |
##### Returns
`Promise`\<[`Hash`](../../devkit/documents/Hash)\>
@@ -1,76 +0,0 @@
# Interface: DefaultTasksRunnerOptions
## Table of contents
### Properties
- [batch](../../devkit/documents/DefaultTasksRunnerOptions#batch): boolean
- [cacheDirectory](../../devkit/documents/DefaultTasksRunnerOptions#cachedirectory): string
- [cacheableOperations](../../devkit/documents/DefaultTasksRunnerOptions#cacheableoperations): string[]
- [cacheableTargets](../../devkit/documents/DefaultTasksRunnerOptions#cacheabletargets): string[]
- [captureStderr](../../devkit/documents/DefaultTasksRunnerOptions#capturestderr): boolean
- [lifeCycle](../../devkit/documents/DefaultTasksRunnerOptions#lifecycle): LifeCycle
- [parallel](../../devkit/documents/DefaultTasksRunnerOptions#parallel): number
- [remoteCache](../../devkit/documents/DefaultTasksRunnerOptions#remotecache): RemoteCache
- [runtimeCacheInputs](../../devkit/documents/DefaultTasksRunnerOptions#runtimecacheinputs): string[]
- [skipNxCache](../../devkit/documents/DefaultTasksRunnerOptions#skipnxcache): boolean
## Properties
### batch
`Optional` **batch**: `boolean`
---
### cacheDirectory
`Optional` **cacheDirectory**: `string`
---
### cacheableOperations
`Optional` **cacheableOperations**: `string`[]
---
### cacheableTargets
`Optional` **cacheableTargets**: `string`[]
---
### captureStderr
`Optional` **captureStderr**: `boolean`
---
### lifeCycle
**lifeCycle**: `LifeCycle`
---
### parallel
`Optional` **parallel**: `number`
---
### remoteCache
`Optional` **remoteCache**: [`RemoteCache`](../../devkit/documents/RemoteCache)
---
### runtimeCacheInputs
`Optional` **runtimeCacheInputs**: `string`[]
---
### skipNxCache
`Optional` **skipNxCache**: `boolean`
-35
View File
@@ -1,35 +0,0 @@
# Enumeration: DependencyType
Type of dependency between projects
## Table of contents
### Enumeration Members
- [dynamic](../../devkit/documents/DependencyType#dynamic)
- [implicit](../../devkit/documents/DependencyType#implicit)
- [static](../../devkit/documents/DependencyType#static)
## Enumeration Members
### dynamic
**dynamic** = `"dynamic"`
Dynamic dependencies are brought in by the module at run time
---
### implicit
**implicit** = `"implicit"`
Implicit dependencies are inferred
---
### static
**static** = `"static"`
Static dependencies are tied to the loading of the module
@@ -1,16 +0,0 @@
# Type alias: DynamicDependency
Ƭ **DynamicDependency**: `Object`
A dynamic [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects
This type of dependency indicates the source project MAY OR MAY NOT load the target project.
#### Type declaration
| Name | Type | Description |
| :----------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |
| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) depending on the target project |
| `sourceFile` | `string` | The path of a file (relative from the workspace root) where the dependency is made |
| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) that the source project depends on |
| `type` | typeof [`dynamic`](../../devkit/documents/DependencyType#dynamic) | - |
-26
View File
@@ -1,26 +0,0 @@
# Type alias: Executor\<T\>
Ƭ **Executor**\<`T`\>: (`options`: `T`, `context`: [`ExecutorContext`](../../devkit/documents/ExecutorContext)) => `Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\>
Implementation of a target of a project
#### Type parameters
| Name | Type |
| :--- | :---- |
| `T` | `any` |
#### Type declaration
▸ (`options`, `context`): `Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\>
##### Parameters
| Name | Type |
| :-------- | :---------------------------------------------------------- |
| `options` | `T` |
| `context` | [`ExecutorContext`](../../devkit/documents/ExecutorContext) |
##### Returns
`Promise`\<\{ `success`: `boolean` }\> \| `AsyncIterableIterator`\<\{ `success`: `boolean` }\>
-126
View File
@@ -1,126 +0,0 @@
# Interface: ExecutorContext
Context that is passed into an executor
## Table of contents
### Properties
- [configurationName](../../devkit/documents/ExecutorContext#configurationname): string
- [cwd](../../devkit/documents/ExecutorContext#cwd): string
- [isVerbose](../../devkit/documents/ExecutorContext#isverbose): boolean
- [nxJsonConfiguration](../../devkit/documents/ExecutorContext#nxjsonconfiguration): NxJsonConfiguration<string[] | "\*">
- [projectGraph](../../devkit/documents/ExecutorContext#projectgraph): ProjectGraph
- [projectName](../../devkit/documents/ExecutorContext#projectname): string
- [projectsConfigurations](../../devkit/documents/ExecutorContext#projectsconfigurations): ProjectsConfigurations
- [root](../../devkit/documents/ExecutorContext#root): string
- [target](../../devkit/documents/ExecutorContext#target): TargetConfiguration<any>
- [targetName](../../devkit/documents/ExecutorContext#targetname): string
- [taskGraph](../../devkit/documents/ExecutorContext#taskgraph): TaskGraph
- [workspace](../../devkit/documents/ExecutorContext#workspace): ProjectsConfigurations & NxJsonConfiguration<string[] | "\*">
## Properties
### configurationName
`Optional` **configurationName**: `string`
The name of the configuration being executed
---
### cwd
**cwd**: `string`
The current working directory
---
### isVerbose
**isVerbose**: `boolean`
Enable verbose logging
---
### nxJsonConfiguration
`Optional` **nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
The contents of nx.json.
@todo(vsavkin): mark this as required for v17
---
### projectGraph
`Optional` **projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph)
A snapshot of the project graph as
it existed when the Nx command was kicked off
@todo(vsavkin) mark this required for v17
---
### projectName
`Optional` **projectName**: `string`
The name of the project being executed on
---
### projectsConfigurations
`Optional` **projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations)
Projects config
@todo(vsavkin): mark this as required for v17
---
### root
**root**: `string`
The root of the workspace
---
### target
`Optional` **target**: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\<`any`\>
The configuration of the target being executed
---
### targetName
`Optional` **targetName**: `string`
The name of the target being executed
---
### taskGraph
`Optional` **taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph)
A snapshot of the task graph as
it existed when the Nx command was kicked off
---
### workspace
`Optional` **workspace**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations) & [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
Deprecated. Use projectsConfigurations or nxJsonConfiguration
The full workspace configuration
@todo(vsavkin): remove after v17
-20
View File
@@ -1,20 +0,0 @@
# Interface: ExecutorsJson
## Table of contents
### Properties
- [builders](../../devkit/documents/ExecutorsJson#builders): Record<string, ExecutorsJsonEntry>
- [executors](../../devkit/documents/ExecutorsJson#executors): Record<string, ExecutorsJsonEntry>
## Properties
### builders
`Optional` **builders**: `Record`\<`string`, `ExecutorsJsonEntry`\>
---
### executors
`Optional` **executors**: `Record`\<`string`, `ExecutorsJsonEntry`\>
-44
View File
@@ -1,44 +0,0 @@
# Interface: FileChange
Description of a file change in the Nx virtual file system/
## Table of contents
### Properties
- [content](../../devkit/documents/FileChange#content): Buffer
- [options](../../devkit/documents/FileChange#options): TreeWriteOptions
- [path](../../devkit/documents/FileChange#path): string
- [type](../../devkit/documents/FileChange#type): "CREATE" | "DELETE" | "UPDATE"
## Properties
### content
**content**: `Buffer`
The content of the file or null in case of delete.
---
### options
`Optional` **options**: `TreeWriteOptions`
Options to set on the file being created or updated.
---
### path
**path**: `string`
Path relative to the workspace root
---
### type
**type**: `"CREATE"` \| `"DELETE"` \| `"UPDATE"`
Type of change: 'CREATE' | 'DELETE' | 'UPDATE'
-35
View File
@@ -1,35 +0,0 @@
# Interface: FileData
Some metadata about a file
## Table of contents
### Properties
- [deps](../../devkit/documents/FileData#deps): FileDataDependency[]
- [file](../../devkit/documents/FileData#file): string
- [hash](../../devkit/documents/FileData#hash): string
## Properties
### deps
`Optional` **deps**: `FileDataDependency`[]
An array of dependencies. If an element is just a string,
the dependency is assumed to be a static dependency targetting
that string. If the element is a tuple with two elements, the first element
inside of it is the target project, with the second element being the type of dependency.
If the tuple has 3 elements, the first is preceded by a source.
---
### file
**file**: `string`
---
### hash
**hash**: `string`
-20
View File
@@ -1,20 +0,0 @@
# Interface: FileMap
## Table of contents
### Properties
- [nonProjectFiles](../../devkit/documents/FileMap#nonprojectfiles): FileData[]
- [projectFileMap](../../devkit/documents/FileMap#projectfilemap): ProjectFileMap
## Properties
### nonProjectFiles
**nonProjectFiles**: [`FileData`](../../devkit/documents/FileData)[]
---
### projectFileMap
**projectFileMap**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap)
-26
View File
@@ -1,26 +0,0 @@
# Type alias: Generator\<T\>
Ƭ **Generator**\<`T`\>: (`tree`: `any`, `schema`: `T`) => `void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\>
A function that schedules updates to the filesystem to be done atomically
#### Type parameters
| Name | Type |
| :--- | :-------- |
| `T` | `unknown` |
#### Type declaration
▸ (`tree`, `schema`): `void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\>
##### Parameters
| Name | Type |
| :------- | :---- |
| `tree` | `any` |
| `schema` | `T` |
##### Returns
`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback) \| `Promise`\<`void` \| [`GeneratorCallback`](../../devkit/documents/GeneratorCallback)\>
@@ -1,13 +0,0 @@
# Type alias: GeneratorCallback
Ƭ **GeneratorCallback**: () => `void` \| `Promise`\<`void`\>
A callback function that is executed after changes are made to the file system
#### Type declaration
▸ (): `void` \| `Promise`\<`void`\>
##### Returns
`void` \| `Promise`\<`void`\>
-27
View File
@@ -1,27 +0,0 @@
# Interface: GeneratorsJson
## Table of contents
### Properties
- [extends](../../devkit/documents/GeneratorsJson#extends): string
- [generators](../../devkit/documents/GeneratorsJson#generators): Record<string, GeneratorsJsonEntry>
- [schematics](../../devkit/documents/GeneratorsJson#schematics): Record<string, GeneratorsJsonEntry>
## Properties
### extends
`Optional` **extends**: `string`
---
### generators
`Optional` **generators**: `Record`\<`string`, `GeneratorsJsonEntry`\>
---
### schematics
`Optional` **schematics**: `Record`\<`string`, `GeneratorsJsonEntry`\>
-31
View File
@@ -1,31 +0,0 @@
# Interface: Hash
A data structure returned by the default hasher.
## Table of contents
### Properties
- [details](../../devkit/documents/Hash#details): Object
- [value](../../devkit/documents/Hash#value): string
## Properties
### details
**details**: `Object`
#### Type declaration
| Name | Type |
| :-------------- | :----------------------------------- |
| `command` | `string` |
| `implicitDeps?` | \{ `[fileName: string]`: `string`; } |
| `nodes` | \{ `[name: string]`: `string`; } |
| `runtime?` | \{ `[input: string]`: `string`; } |
---
### value
**value**: `string`
-3
View File
@@ -1,3 +0,0 @@
# Type alias: Hasher
Ƭ **Hasher**: [`TaskHasher`](../../devkit/documents/TaskHasher)
-41
View File
@@ -1,41 +0,0 @@
# Interface: HasherContext
## Table of contents
### Properties
- [hasher](../../devkit/documents/HasherContext#hasher): TaskHasher
- [nxJsonConfiguration](../../devkit/documents/HasherContext#nxjsonconfiguration): NxJsonConfiguration<string[] | "\*">
- [projectGraph](../../devkit/documents/HasherContext#projectgraph): ProjectGraph
- [projectsConfigurations](../../devkit/documents/HasherContext#projectsconfigurations): ProjectsConfigurations
- [taskGraph](../../devkit/documents/HasherContext#taskgraph): TaskGraph
## Properties
### hasher
**hasher**: [`TaskHasher`](../../devkit/documents/TaskHasher)
---
### nxJsonConfiguration
**nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
---
### projectGraph
**projectGraph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph)
---
### projectsConfigurations
**projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations)
---
### taskGraph
**taskGraph**: [`TaskGraph`](../../devkit/documents/TaskGraph)
@@ -1,15 +0,0 @@
# Type alias: ImplicitDependency
Ƭ **ImplicitDependency**: `Object`
An implicit [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects
This type of dependency indicates a connection without an explicit reference in code
#### Type declaration
| Name | Type | Description |
| :------- | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------- |
| `source` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) depending on the target project |
| `target` | `string` | The name of a [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) that the source project depends on |
| `type` | typeof [`implicit`](../../devkit/documents/DependencyType#implicit) | - |
@@ -1,13 +0,0 @@
# Type alias: ImplicitDependencyEntry\<T\>
Ƭ **ImplicitDependencyEntry**\<`T`\>: `Object`
#### Type parameters
| Name | Type |
| :--- | :------------------ |
| `T` | `"*"` \| `string`[] |
#### Index signature
▪ [key: `string`]: `T` \| [`ImplicitJsonSubsetDependency`](../../devkit/documents/ImplicitJsonSubsetDependency)\<`T`\>
@@ -1,11 +0,0 @@
# Interface: ImplicitJsonSubsetDependency\<T\>
## Type parameters
| Name | Type |
| :--- | :------------------ |
| `T` | `"*"` \| `string`[] |
## Indexable
▪ [key: `string`]: `T` \| [`ImplicitJsonSubsetDependency`](../../devkit/documents/ImplicitJsonSubsetDependency)\<`T`\>
-70
View File
@@ -1,70 +0,0 @@
# Interface: JsonParseOptions
## Hierarchy
- `ParseOptions`
**`JsonParseOptions`**
## Table of contents
### Properties
- [allowEmptyContent](../../devkit/documents/JsonParseOptions#allowemptycontent): boolean
- [allowTrailingComma](../../devkit/documents/JsonParseOptions#allowtrailingcomma): boolean
- [disallowComments](../../devkit/documents/JsonParseOptions#disallowcomments): boolean
- [expectComments](../../devkit/documents/JsonParseOptions#expectcomments): boolean
## Properties
### allowEmptyContent
`Optional` **allowEmptyContent**: `boolean`
#### Inherited from
ParseOptions.allowEmptyContent
---
### allowTrailingComma
`Optional` **allowTrailingComma**: `boolean`
Allow trailing commas in the JSON content
#### Overrides
ParseOptions.allowTrailingComma
---
### disallowComments
`Optional` **disallowComments**: `boolean`
Disallow javascript-style
**`Default`**
```ts
false;
```
#### Overrides
ParseOptions.disallowComments
---
### expectComments
`Optional` **expectComments**: `boolean`
Expect JSON with javascript-style
**`Default`**
```ts
false;
```
@@ -1,21 +0,0 @@
# Interface: JsonSerializeOptions
## Table of contents
### Properties
- [spaces](../../devkit/documents/JsonSerializeOptions#spaces): number
## Properties
### spaces
`Optional` **spaces**: `number`
the whitespaces to add as indentation to make the output more readable.
**`Default`**
```ts
2;
```
-56
View File
@@ -1,56 +0,0 @@
# Interface: MigrationsJson
## Table of contents
### Properties
- [collection](../../devkit/documents/MigrationsJson#collection): string
- [generators](../../devkit/documents/MigrationsJson#generators): Object
- [name](../../devkit/documents/MigrationsJson#name): string
- [packageJsonUpdates](../../devkit/documents/MigrationsJson#packagejsonupdates): PackageJsonUpdates
- [schematics](../../devkit/documents/MigrationsJson#schematics): Object
- [version](../../devkit/documents/MigrationsJson#version): string
## Properties
### collection
`Optional` **collection**: `string`
---
### generators
`Optional` **generators**: `Object`
#### Index signature
▪ [name: `string`]: `MigrationsJsonEntry`
---
### name
`Optional` **name**: `string`
---
### packageJsonUpdates
`Optional` **packageJsonUpdates**: `PackageJsonUpdates`
---
### schematics
`Optional` **schematics**: `Object`
#### Index signature
▪ [name: `string`]: `MigrationsJsonEntry`
---
### version
`Optional` **version**: `string`
-7
View File
@@ -1,7 +0,0 @@
# Variable: NX_VERSION
`Const` **NX_VERSION**: `string`
**`Description`**
The version of Nx used by the workspace. Returns null if no version is found.
-19
View File
@@ -1,19 +0,0 @@
# Interface: NxAffectedConfig
**`Deprecated`**
Use [NxJsonConfiguration#defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead
## Table of contents
### Properties
- [defaultBase](../../devkit/documents/NxAffectedConfig#defaultbase): string
## Properties
### defaultBase
`Optional` **defaultBase**: `string`
Default based branch used by affected commands.
@@ -1,271 +0,0 @@
# Interface: NxJsonConfiguration\<T\>
Nx.json configuration
## Type parameters
| Name | Type |
| :--- | :------------------ |
| `T` | `"*"` \| `string`[] |
## Hierarchy
- **`NxJsonConfiguration`**
↳ [`Workspace`](../../devkit/documents/Workspace)
## Table of contents
### Properties
- [affected](../../devkit/documents/NxJsonConfiguration#affected): NxAffectedConfig
- [cacheDirectory](../../devkit/documents/NxJsonConfiguration#cachedirectory): string
- [cli](../../devkit/documents/NxJsonConfiguration#cli): Object
- [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase): string
- [defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject): string
- [extends](../../devkit/documents/NxJsonConfiguration#extends): string
- [generators](../../devkit/documents/NxJsonConfiguration#generators): Object
- [implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies): ImplicitDependencyEntry<T>
- [installation](../../devkit/documents/NxJsonConfiguration#installation): NxInstallationConfiguration
- [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs): Object
- [nxCloudAccessToken](../../devkit/documents/NxJsonConfiguration#nxcloudaccesstoken): string
- [nxCloudEncryptionKey](../../devkit/documents/NxJsonConfiguration#nxcloudencryptionkey): string
- [nxCloudUrl](../../devkit/documents/NxJsonConfiguration#nxcloudurl): string
- [parallel](../../devkit/documents/NxJsonConfiguration#parallel): number
- [plugins](../../devkit/documents/NxJsonConfiguration#plugins): PluginConfiguration[]
- [pluginsConfig](../../devkit/documents/NxJsonConfiguration#pluginsconfig): Record<string, Record<string, unknown>>
- [release](../../devkit/documents/NxJsonConfiguration#release): NxReleaseConfiguration
- [targetDefaults](../../devkit/documents/NxJsonConfiguration#targetdefaults): TargetDefaults
- [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions): Object
- [useDaemonProcess](../../devkit/documents/NxJsonConfiguration#usedaemonprocess): boolean
- [useInferencePlugins](../../devkit/documents/NxJsonConfiguration#useinferenceplugins): boolean
- [workspaceLayout](../../devkit/documents/NxJsonConfiguration#workspacelayout): Object
## Properties
### affected
`Optional` **affected**: [`NxAffectedConfig`](../../devkit/documents/NxAffectedConfig)
Default options for `nx affected`
**`Deprecated`**
use [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase) instead. For more information see https://nx.dev/deprecated/affected-config#affected-config
---
### cacheDirectory
`Optional` **cacheDirectory**: `string`
Changes the directory used by Nx to store its cache.
---
### cli
`Optional` **cli**: `Object`
Default generator collection. It is used when no collection is provided.
#### Type declaration
| Name | Type |
| :-------------------- | :-------------------------------------------------------- |
| `defaultProjectName?` | `string` |
| `packageManager?` | [`PackageManager`](../../devkit/documents/PackageManager) |
---
### defaultBase
`Optional` **defaultBase**: `string`
Default value for --base used by `nx affected` and `nx format`.
---
### defaultProject
`Optional` **defaultProject**: `string`
Default project. When project isn't provided, the default project
will be used. Convenient for small workspaces with one main application.
---
### extends
`Optional` **extends**: `string`
Optional (additional) Nx.json configuration file which becomes a base for this one
---
### generators
`Optional` **generators**: `Object`
List of default values used by generators.
These defaults are global. They are used when no other defaults are configured.
Example:
```
{
"@nx/react": {
"library": {
"style": "scss"
}
}
}
```
#### Index signature
▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; }
---
### implicitDependencies
`Optional` **implicitDependencies**: [`ImplicitDependencyEntry`](../../devkit/documents/ImplicitDependencyEntry)\<`T`\>
Map of files to projects that implicitly depend on them
**`Deprecated`**
use [namedInputs](../../devkit/documents/NxJsonConfiguration#namedinputs) instead. For more information see https://nx.dev/deprecated/global-implicit-dependencies#global-implicit-dependencies
---
### installation
`Optional` **installation**: `NxInstallationConfiguration`
Configures the Nx installation for a repo. Useful for maintaining a separate
set of dependencies for Nx + Plugins compared to the base package.json, but also
useful for workspaces that don't have a root package.json + node_modules.
---
### namedInputs
`Optional` **namedInputs**: `Object`
Named inputs targets can refer to reduce duplication
#### Index signature
▪ [inputName: `string`]: (`string` \| `InputDefinition`)[]
---
### nxCloudAccessToken
`Optional` **nxCloudAccessToken**: `string`
If specified Nx will use nx-cloud by default with the given token.
To use a different runner that accepts an access token, define it in [tasksRunnerOptions](../../devkit/documents/NxJsonConfiguration#tasksrunneroptions)
---
### nxCloudEncryptionKey
`Optional` **nxCloudEncryptionKey**: `string`
Specifies the encryption key used to encrypt artifacts data before sending it to nx cloud.
---
### nxCloudUrl
`Optional` **nxCloudUrl**: `string`
Specifies the url pointing to an instance of nx cloud. Used for remote
caching and displaying run links.
---
### parallel
`Optional` **parallel**: `number`
Specifies how many tasks can be run in parallel.
---
### plugins
`Optional` **plugins**: [`PluginConfiguration`](../../devkit/documents/PluginConfiguration)[]
Plugins for extending the project graph
---
### pluginsConfig
`Optional` **pluginsConfig**: `Record`\<`string`, `Record`\<`string`, `unknown`\>\>
Configuration for Nx Plugins
---
### release
`Optional` **release**: `NxReleaseConfiguration`
Configuration for `nx release` (versioning and publishing of applications and libraries)
---
### targetDefaults
`Optional` **targetDefaults**: [`TargetDefaults`](../../devkit/documents/TargetDefaults)
Dependencies between different target names across all projects
---
### tasksRunnerOptions
`Optional` **tasksRunnerOptions**: `Object`
Available Task Runners
#### Index signature
▪ [tasksRunnerName: `string`]: \{ `options?`: `any` ; `runner?`: `string` }
---
### useDaemonProcess
`Optional` **useDaemonProcess**: `boolean`
Set this to false to disable the daemon.
---
### useInferencePlugins
`Optional` **useInferencePlugins**: `boolean`
Set this to false to disable adding inference plugins when generating new projects
---
### workspaceLayout
`Optional` **workspaceLayout**: `Object`
Where new apps + libs should be placed
#### Type declaration
| Name | Type |
| :--------- | :------- |
| `appsDir?` | `string` |
| `libsDir?` | `string` |
-5
View File
@@ -1,5 +0,0 @@
# Type alias: NxPlugin
Ƭ **NxPlugin**: [`NxPluginV1`](../../devkit/documents/NxPluginV1) \| [`NxPluginV2`](../../devkit/documents/NxPluginV2)
A plugin for Nx
-16
View File
@@ -1,16 +0,0 @@
# Type alias: NxPluginV1
Ƭ **NxPluginV1**: `Object`
**`Deprecated`**
Use [NxPluginV2](../../devkit/documents/NxPluginV2) instead. This will be removed in Nx 19
#### Type declaration
| Name | Type | Description |
| :------------------------ | :------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name` | `string` | - |
| `processProjectGraph?` | `ProjectGraphProcessor` | **`Deprecated`** Use [CreateNodes](../../devkit/documents/CreateNodes) and [CreateDependencies](../../devkit/documents/CreateDependencies) instead. This will be removed in Nx 19 |
| `projectFilePatterns?` | `string`[] | A glob pattern to search for non-standard project files. @example: ["*.csproj", "pom.xml"] **`Deprecated`** Use [CreateNodes](../../devkit/documents/CreateNodes) instead. This will be removed in Nx 19 |
| `registerProjectTargets?` | [`ProjectTargetConfigurator`](../../devkit/documents/ProjectTargetConfigurator) | **`Deprecated`** Add targets to the projects inside of [CreateNodes](../../devkit/documents/CreateNodes) instead. This will be removed in Nx 19 |
-19
View File
@@ -1,19 +0,0 @@
# Type alias: NxPluginV2\<TOptions\>
Ƭ **NxPluginV2**\<`TOptions`\>: `Object`
A plugin for Nx which creates nodes and dependencies for the [ProjectGraph](../../devkit/documents/ProjectGraph)
#### Type parameters
| Name | Type |
| :--------- | :-------- |
| `TOptions` | `unknown` |
#### Type declaration
| Name | Type | Description |
| :-------------------- | :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- |
| `createDependencies?` | [`CreateDependencies`](../../devkit/documents/CreateDependencies)\<`TOptions`\> | Provides a function to analyze files to create dependencies for the [ProjectGraph](../../devkit/documents/ProjectGraph) |
| `createNodes?` | [`CreateNodes`](../../devkit/documents/CreateNodes) | Provides a file pattern and function that retrieves configuration info from those files. e.g. { '\*_/_.csproj': buildProjectsFromCsProjFile } |
| `name` | `string` | - |
-3
View File
@@ -1,3 +0,0 @@
# Type alias: PackageManager
Ƭ **PackageManager**: `"yarn"` \| `"pnpm"` \| `"npm"`
@@ -1,3 +0,0 @@
# Type alias: PluginConfiguration
Ƭ **PluginConfiguration**: `string` \| \{ `exclude?`: `string`[] ; `include?`: `string`[] ; `options?`: `unknown` ; `plugin`: `string` }
@@ -1,144 +0,0 @@
# Interface: ProjectConfiguration
Project configuration
## Table of contents
### Properties
- [generators](../../devkit/documents/ProjectConfiguration#generators): Object
- [implicitDependencies](../../devkit/documents/ProjectConfiguration#implicitdependencies): string[]
- [metadata](../../devkit/documents/ProjectConfiguration#metadata): Object
- [name](../../devkit/documents/ProjectConfiguration#name): string
- [namedInputs](../../devkit/documents/ProjectConfiguration#namedinputs): Object
- [projectType](../../devkit/documents/ProjectConfiguration#projecttype): ProjectType
- [release](../../devkit/documents/ProjectConfiguration#release): Object
- [root](../../devkit/documents/ProjectConfiguration#root): string
- [sourceRoot](../../devkit/documents/ProjectConfiguration#sourceroot): string
- [tags](../../devkit/documents/ProjectConfiguration#tags): string[]
- [targets](../../devkit/documents/ProjectConfiguration#targets): Object
## Properties
### generators
`Optional` **generators**: `Object`
List of default values used by generators.
These defaults are project specific.
Example:
```
{
"@nx/react": {
"library": {
"style": "scss"
}
}
}
```
#### Index signature
▪ [collectionName: `string`]: \{ `[generatorName: string]`: `any`; }
---
### implicitDependencies
`Optional` **implicitDependencies**: `string`[]
List of projects which are added as a dependency
---
### metadata
`Optional` **metadata**: `Object`
#### Type declaration
| Name | Type |
| :-------------- | :------------------------------- |
| `targetGroups?` | `Record`\<`string`, `string`[]\> |
| `technologies?` | `string`[] |
---
### name
`Optional` **name**: `string`
Project's name. Optional if specified in workspace.json
---
### namedInputs
`Optional` **namedInputs**: `Object`
Named inputs targets can refer to reduce duplication
#### Index signature
▪ [inputName: `string`]: (`string` \| `InputDefinition`)[]
---
### projectType
`Optional` **projectType**: [`ProjectType`](../../devkit/documents/ProjectType)
Project type
---
### release
`Optional` **release**: `Object`
Project specific configuration for `nx release`
#### Type declaration
| Name | Type |
| :--------- | :------------------------------------------------------------------------------- |
| `version?` | `Pick`\<`NxReleaseVersionConfiguration`, `"generator"` \| `"generatorOptions"`\> |
---
### root
**root**: `string`
Project's location relative to the root of the workspace
---
### sourceRoot
`Optional` **sourceRoot**: `string`
The location of project's sources relative to the root of the workspace
---
### tags
`Optional` **tags**: `string`[]
List of tags used by enforce-module-boundaries / project graph
---
### targets
`Optional` **targets**: `Object`
Project's targets
#### Index signature
▪ [targetName: `string`]: [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)
-7
View File
@@ -1,7 +0,0 @@
# Interface: ProjectFileMap
A list of files separated by the project they belong to
## Indexable
▪ [projectName: `string`]: [`FileData`](../../devkit/documents/FileData)[]
-36
View File
@@ -1,36 +0,0 @@
# Interface: ProjectGraph
A Graph of projects in the workspace and dependencies between them
## Table of contents
### Properties
- [dependencies](../../devkit/documents/ProjectGraph#dependencies): Record<string, ProjectGraphDependency[]>
- [externalNodes](../../devkit/documents/ProjectGraph#externalnodes): Record<string, ProjectGraphExternalNode>
- [nodes](../../devkit/documents/ProjectGraph#nodes): Record<string, ProjectGraphProjectNode>
- [version](../../devkit/documents/ProjectGraph#version): string
## Properties
### dependencies
**dependencies**: `Record`\<`string`, [`ProjectGraphDependency`](../../devkit/documents/ProjectGraphDependency)[]\>
---
### externalNodes
`Optional` **externalNodes**: `Record`\<`string`, [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)\>
---
### nodes
**nodes**: `Record`\<`string`, [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode)\>
---
### version
`Optional` **version**: `string`
@@ -1,288 +0,0 @@
# Class: ProjectGraphBuilder
A class which builds up a project graph
**`Deprecated`**
The ProjectGraphProcessor has been deprecated. Use a [CreateNodes](../../devkit/documents/CreateNodes) and/or a [CreateDependencies](../../devkit/documents/CreateDependencies) instead. This will be removed in Nx 19.
## Table of contents
### Constructors
- [constructor](../../devkit/documents/ProjectGraphBuilder#constructor)
### Properties
- [graph](../../devkit/documents/ProjectGraphBuilder#graph): ProjectGraph
- [removedEdges](../../devkit/documents/ProjectGraphBuilder#removededges): Object
### Methods
- [addDependency](../../devkit/documents/ProjectGraphBuilder#adddependency)
- [addDynamicDependency](../../devkit/documents/ProjectGraphBuilder#adddynamicdependency)
- [addExplicitDependency](../../devkit/documents/ProjectGraphBuilder#addexplicitdependency)
- [addExternalNode](../../devkit/documents/ProjectGraphBuilder#addexternalnode)
- [addImplicitDependency](../../devkit/documents/ProjectGraphBuilder#addimplicitdependency)
- [addNode](../../devkit/documents/ProjectGraphBuilder#addnode)
- [addStaticDependency](../../devkit/documents/ProjectGraphBuilder#addstaticdependency)
- [getUpdatedProjectGraph](../../devkit/documents/ProjectGraphBuilder#getupdatedprojectgraph)
- [mergeProjectGraph](../../devkit/documents/ProjectGraphBuilder#mergeprojectgraph)
- [removeDependency](../../devkit/documents/ProjectGraphBuilder#removedependency)
- [removeNode](../../devkit/documents/ProjectGraphBuilder#removenode)
- [setVersion](../../devkit/documents/ProjectGraphBuilder#setversion)
## Constructors
### constructor
**new ProjectGraphBuilder**(`graph?`, `projectFileMap?`, `nonProjectFiles?`): [`ProjectGraphBuilder`](../../devkit/documents/ProjectGraphBuilder)
#### Parameters
| Name | Type |
| :----------------- | :-------------------------------------------------------- |
| `graph?` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) |
| `projectFileMap?` | [`ProjectFileMap`](../../devkit/documents/ProjectFileMap) |
| `nonProjectFiles?` | [`FileData`](../../devkit/documents/FileData)[] |
#### Returns
[`ProjectGraphBuilder`](../../devkit/documents/ProjectGraphBuilder)
## Properties
### graph
`Readonly` **graph**: [`ProjectGraph`](../../devkit/documents/ProjectGraph)
---
### removedEdges
`Readonly` **removedEdges**: `Object` = `{}`
#### Index signature
▪ [source: `string`]: `Set`\<`string`\>
## Methods
### addDependency
**addDependency**(`source`, `target`, `type`, `sourceFile?`): `void`
#### Parameters
| Name | Type |
| :------------ | :-------------------------------------------------------- |
| `source` | `string` |
| `target` | `string` |
| `type` | [`DependencyType`](../../devkit/documents/DependencyType) |
| `sourceFile?` | `string` |
#### Returns
`void`
---
### addDynamicDependency
**addDynamicDependency**(`sourceProjectName`, `targetProjectName`, `sourceProjectFile`): `void`
Adds dynamic dependency from source project to target project
#### Parameters
| Name | Type |
| :------------------ | :------- |
| `sourceProjectName` | `string` |
| `targetProjectName` | `string` |
| `sourceProjectFile` | `string` |
#### Returns
`void`
---
### addExplicitDependency
**addExplicitDependency**(`sourceProjectName`, `sourceProjectFile`, `targetProjectName`): `void`
Add an explicit dependency from a file in source project to target project
#### Parameters
| Name | Type |
| :------------------ | :------- |
| `sourceProjectName` | `string` |
| `sourceProjectFile` | `string` |
| `targetProjectName` | `string` |
#### Returns
`void`
**`Deprecated`**
this method will be removed in v17. Use [addStaticDependency](../../devkit/documents/ProjectGraphBuilder#addstaticdependency) or [addDynamicDependency](../../devkit/documents/ProjectGraphBuilder#adddynamicdependency) instead
---
### addExternalNode
**addExternalNode**(`node`): `void`
Adds a external node to the project graph
#### Parameters
| Name | Type |
| :----- | :---------------------------------------------------------------------------- |
| `node` | [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode) |
#### Returns
`void`
---
### addImplicitDependency
**addImplicitDependency**(`sourceProjectName`, `targetProjectName`): `void`
Adds implicit dependency from source project to target project
#### Parameters
| Name | Type |
| :------------------ | :------- |
| `sourceProjectName` | `string` |
| `targetProjectName` | `string` |
#### Returns
`void`
---
### addNode
**addNode**(`node`): `void`
Adds a project node to the project graph
#### Parameters
| Name | Type |
| :----- | :-------------------------------------------------------------------------- |
| `node` | [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) |
#### Returns
`void`
---
### addStaticDependency
**addStaticDependency**(`sourceProjectName`, `targetProjectName`, `sourceProjectFile?`): `void`
Adds static dependency from source project to target project
#### Parameters
| Name | Type |
| :------------------- | :------- |
| `sourceProjectName` | `string` |
| `targetProjectName` | `string` |
| `sourceProjectFile?` | `string` |
#### Returns
`void`
---
### getUpdatedProjectGraph
**getUpdatedProjectGraph**(): [`ProjectGraph`](../../devkit/documents/ProjectGraph)
#### Returns
[`ProjectGraph`](../../devkit/documents/ProjectGraph)
---
### mergeProjectGraph
**mergeProjectGraph**(`p`): `void`
Merges the nodes and dependencies of p into the built project graph.
#### Parameters
| Name | Type |
| :--- | :---------------------------------------------------- |
| `p` | [`ProjectGraph`](../../devkit/documents/ProjectGraph) |
#### Returns
`void`
---
### removeDependency
**removeDependency**(`sourceProjectName`, `targetProjectName`): `void`
Removes a dependency from source project to target project
#### Parameters
| Name | Type |
| :------------------ | :------- |
| `sourceProjectName` | `string` |
| `targetProjectName` | `string` |
#### Returns
`void`
---
### removeNode
**removeNode**(`name`): `void`
Removes a node and all of its dependency edges from the graph
#### Parameters
| Name | Type |
| :----- | :------- |
| `name` | `string` |
#### Returns
`void`
---
### setVersion
**setVersion**(`version`): `void`
Set version of the project graph
#### Parameters
| Name | Type |
| :-------- | :------- |
| `version` | `string` |
#### Returns
`void`
@@ -1,33 +0,0 @@
# Interface: ProjectGraphDependency
A dependency between two projects
## Table of contents
### Properties
- [source](../../devkit/documents/ProjectGraphDependency#source): string
- [target](../../devkit/documents/ProjectGraphDependency#target): string
- [type](../../devkit/documents/ProjectGraphDependency#type): string
## Properties
### source
**source**: `string`
The project importing the other
---
### target
**target**: `string`
The project being imported by the other
---
### type
**type**: `string`
@@ -1,44 +0,0 @@
# Interface: ProjectGraphExternalNode
A node describing an external dependency
`name` has as form of:
- `npm:packageName` for root dependencies or
- `npm:packageName@version` for nested transitive dependencies
This is vital for our node discovery to always point to root dependencies,
while allowing tracking of the full tree of different nested versions
## Table of contents
### Properties
- [data](../../devkit/documents/ProjectGraphExternalNode#data): Object
- [name](../../devkit/documents/ProjectGraphExternalNode#name): `npm:${string}`
- [type](../../devkit/documents/ProjectGraphExternalNode#type): "npm"
## Properties
### data
**data**: `Object`
#### Type declaration
| Name | Type |
| :------------ | :------- |
| `hash?` | `string` |
| `packageName` | `string` |
| `version` | `string` |
---
### name
**name**: \`npm:$\{string}\`
---
### type
**type**: `"npm"`
@@ -1,7 +0,0 @@
# Type alias: ProjectGraphNode
Ƭ **ProjectGraphNode**: [`ProjectGraphProjectNode`](../../devkit/documents/ProjectGraphProjectNode) \| [`ProjectGraphExternalNode`](../../devkit/documents/ProjectGraphExternalNode)
**`Deprecated`**
this type will be removed in v16. Use [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode) or [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode) instead
@@ -1,57 +0,0 @@
# Interface: ProjectGraphProcessorContext
Additional information to be used to process a project graph
**`Deprecated`**
The ProjectGraphProcessor is deprecated. This will be removed in Nx 19.
## Table of contents
### Properties
- [fileMap](../../devkit/documents/ProjectGraphProcessorContext#filemap): ProjectFileMap
- [filesToProcess](../../devkit/documents/ProjectGraphProcessorContext#filestoprocess): ProjectFileMap
- [nxJsonConfiguration](../../devkit/documents/ProjectGraphProcessorContext#nxjsonconfiguration): NxJsonConfiguration<string[] | "\*">
- [projectsConfigurations](../../devkit/documents/ProjectGraphProcessorContext#projectsconfigurations): ProjectsConfigurations
- [workspace](../../devkit/documents/ProjectGraphProcessorContext#workspace): Workspace
## Properties
### fileMap
**fileMap**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap)
All files in the workspace
---
### filesToProcess
**filesToProcess**: [`ProjectFileMap`](../../devkit/documents/ProjectFileMap)
Files changes since last invocation
---
### nxJsonConfiguration
**nxJsonConfiguration**: [`NxJsonConfiguration`](../../devkit/documents/NxJsonConfiguration)\<`string`[] \| `"*"`\>
---
### projectsConfigurations
**projectsConfigurations**: [`ProjectsConfigurations`](../../devkit/documents/ProjectsConfigurations)
---
### workspace
**workspace**: [`Workspace`](../../devkit/documents/Workspace)
Workspace information such as projects and configuration
**`Deprecated`**
use [projectsConfigurations](../../devkit/documents/ProjectGraphProcessorContext#projectsconfigurations) or [nxJsonConfiguration](../../devkit/documents/ProjectGraphProcessorContext#nxjsonconfiguration) instead
@@ -1,31 +0,0 @@
# Interface: ProjectGraphProjectNode
A node describing a project in a workspace
## Table of contents
### Properties
- [data](../../devkit/documents/ProjectGraphProjectNode#data): ProjectConfiguration & Object
- [name](../../devkit/documents/ProjectGraphProjectNode#name): string
- [type](../../devkit/documents/ProjectGraphProjectNode#type): "app" | "e2e" | "lib"
## Properties
### data
**data**: [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration) & \{ `description?`: `string` }
Additional metadata about a project
---
### name
**name**: `string`
---
### type
**type**: `"app"` \| `"e2e"` \| `"lib"`
@@ -1,21 +0,0 @@
# Type alias: ProjectTargetConfigurator
Ƭ **ProjectTargetConfigurator**: (`file`: `string`) => `Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\>
**`Deprecated`**
Add targets to the projects in a [CreateNodes](../../devkit/documents/CreateNodes) function instead. This will be removed in Nx 19
#### Type declaration
▸ (`file`): `Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\>
##### Parameters
| Name | Type |
| :----- | :------- |
| `file` | `string` |
##### Returns
`Record`\<`string`, [`TargetConfiguration`](../../devkit/documents/TargetConfiguration)\>
-5
View File
@@ -1,5 +0,0 @@
# Type alias: ProjectType
Ƭ **ProjectType**: `"library"` \| `"application"`
Type of project supported
@@ -1,36 +0,0 @@
# Interface: ProjectsConfigurations
Projects Configurations
## Hierarchy
- **`ProjectsConfigurations`**
↳ [`Workspace`](../../devkit/documents/Workspace)
## Table of contents
### Properties
- [projects](../../devkit/documents/ProjectsConfigurations#projects): Object
- [version](../../devkit/documents/ProjectsConfigurations#version): number
## Properties
### projects
**projects**: `Object`
Projects' projects
#### Index signature
▪ [projectName: `string`]: [`ProjectConfiguration`](../../devkit/documents/ProjectConfiguration)
---
### version
**version**: `number`
Version of the configuration format
-158
View File
@@ -1,158 +0,0 @@
# @nx/devkit
The Nx Devkit is the underlying technology used to customize Nx to support
different technologies and custom use-cases. It contains many utility
functions for reading and writing files, updating configuration,
working with Abstract Syntax Trees(ASTs), and more.
As with most things in Nx, the core of Nx Devkit is very simple.
It only uses language primitives and immutable objects
(the tree being the only exception).
## Table of contents
### Enumerations
- [ChangeType](../../devkit/documents/ChangeType)
- [DependencyType](../../devkit/documents/DependencyType)
### Classes
- [ProjectGraphBuilder](../../devkit/documents/ProjectGraphBuilder)
- [Workspaces](../../devkit/documents/Workspaces)
### Interfaces
- [CreateDependenciesContext](../../devkit/documents/CreateDependenciesContext)
- [CreateNodesContext](../../devkit/documents/CreateNodesContext)
- [CreateNodesResult](../../devkit/documents/CreateNodesResult)
- [DefaultTasksRunnerOptions](../../devkit/documents/DefaultTasksRunnerOptions)
- [ExecutorContext](../../devkit/documents/ExecutorContext)
- [ExecutorsJson](../../devkit/documents/ExecutorsJson)
- [FileChange](../../devkit/documents/FileChange)
- [FileData](../../devkit/documents/FileData)
- [FileMap](../../devkit/documents/FileMap)
- [GeneratorsJson](../../devkit/documents/GeneratorsJson)
- [Hash](../../devkit/documents/Hash)
- [HasherContext](../../devkit/documents/HasherContext)
- [ImplicitJsonSubsetDependency](../../devkit/documents/ImplicitJsonSubsetDependency)
- [JsonParseOptions](../../devkit/documents/JsonParseOptions)
- [JsonSerializeOptions](../../devkit/documents/JsonSerializeOptions)
- [MigrationsJson](../../devkit/documents/MigrationsJson)
- [NxAffectedConfig](../../devkit/documents/NxAffectedConfig)
- [NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration)
- [ProjectConfiguration](../../devkit/documents/ProjectConfiguration)
- [ProjectFileMap](../../devkit/documents/ProjectFileMap)
- [ProjectGraph](../../devkit/documents/ProjectGraph)
- [ProjectGraphDependency](../../devkit/documents/ProjectGraphDependency)
- [ProjectGraphExternalNode](../../devkit/documents/ProjectGraphExternalNode)
- [ProjectGraphProcessorContext](../../devkit/documents/ProjectGraphProcessorContext)
- [ProjectGraphProjectNode](../../devkit/documents/ProjectGraphProjectNode)
- [ProjectsConfigurations](../../devkit/documents/ProjectsConfigurations)
- [RemoteCache](../../devkit/documents/RemoteCache)
- [StringDeletion](../../devkit/documents/StringDeletion)
- [StringInsertion](../../devkit/documents/StringInsertion)
- [Target](../../devkit/documents/Target)
- [TargetConfiguration](../../devkit/documents/TargetConfiguration)
- [TargetDependencyConfig](../../devkit/documents/TargetDependencyConfig)
- [Task](../../devkit/documents/Task)
- [TaskGraph](../../devkit/documents/TaskGraph)
- [TaskHasher](../../devkit/documents/TaskHasher)
- [Tree](../../devkit/documents/Tree)
- [Workspace](../../devkit/documents/Workspace)
### Type Aliases
- [CreateDependencies](../../devkit/documents/CreateDependencies)
- [CreateNodes](../../devkit/documents/CreateNodes)
- [CreateNodesFunction](../../devkit/documents/CreateNodesFunction)
- [CustomHasher](../../devkit/documents/CustomHasher)
- [DynamicDependency](../../devkit/documents/DynamicDependency)
- [Executor](../../devkit/documents/Executor)
- [Generator](../../devkit/documents/Generator)
- [GeneratorCallback](../../devkit/documents/GeneratorCallback)
- [Hasher](../../devkit/documents/Hasher)
- [ImplicitDependency](../../devkit/documents/ImplicitDependency)
- [ImplicitDependencyEntry](../../devkit/documents/ImplicitDependencyEntry)
- [NxPlugin](../../devkit/documents/NxPlugin)
- [NxPluginV1](../../devkit/documents/NxPluginV1)
- [NxPluginV2](../../devkit/documents/NxPluginV2)
- [PackageManager](../../devkit/documents/PackageManager)
- [PluginConfiguration](../../devkit/documents/PluginConfiguration)
- [ProjectGraphNode](../../devkit/documents/ProjectGraphNode)
- [ProjectTargetConfigurator](../../devkit/documents/ProjectTargetConfigurator)
- [ProjectType](../../devkit/documents/ProjectType)
- [RawProjectGraphDependency](../../devkit/documents/RawProjectGraphDependency)
- [StaticDependency](../../devkit/documents/StaticDependency)
- [StringChange](../../devkit/documents/StringChange)
- [TargetDefaults](../../devkit/documents/TargetDefaults)
- [TaskGraphExecutor](../../devkit/documents/TaskGraphExecutor)
- [ToJSOptions](../../devkit/documents/ToJSOptions)
- [WorkspaceJsonConfiguration](../../devkit/documents/WorkspaceJsonConfiguration)
### Variables
- [NX_VERSION](../../devkit/documents/NX_VERSION): string
- [appRootPath](../../devkit/documents/appRootPath): string
- [cacheDir](../../devkit/documents/cacheDir): string
- [logger](../../devkit/documents/logger): Object
- [output](../../devkit/documents/output): CLIOutput
- [workspaceRoot](../../devkit/documents/workspaceRoot): string
### Functions
- [addDependenciesToPackageJson](../../devkit/documents/addDependenciesToPackageJson)
- [addProjectConfiguration](../../devkit/documents/addProjectConfiguration)
- [applyChangesToString](../../devkit/documents/applyChangesToString)
- [convertNxExecutor](../../devkit/documents/convertNxExecutor)
- [convertNxGenerator](../../devkit/documents/convertNxGenerator)
- [createProjectFileMapUsingProjectGraph](../../devkit/documents/createProjectFileMapUsingProjectGraph)
- [createProjectGraphAsync](../../devkit/documents/createProjectGraphAsync)
- [defaultTasksRunner](../../devkit/documents/defaultTasksRunner)
- [detectPackageManager](../../devkit/documents/detectPackageManager)
- [ensurePackage](../../devkit/documents/ensurePackage)
- [extractLayoutDirectory](../../devkit/documents/extractLayoutDirectory)
- [formatFiles](../../devkit/documents/formatFiles)
- [generateFiles](../../devkit/documents/generateFiles)
- [getOutputsForTargetAndConfiguration](../../devkit/documents/getOutputsForTargetAndConfiguration)
- [getPackageManagerCommand](../../devkit/documents/getPackageManagerCommand)
- [getPackageManagerVersion](../../devkit/documents/getPackageManagerVersion)
- [getProjects](../../devkit/documents/getProjects)
- [getWorkspaceLayout](../../devkit/documents/getWorkspaceLayout)
- [glob](../../devkit/documents/glob)
- [hashArray](../../devkit/documents/hashArray)
- [installPackagesTask](../../devkit/documents/installPackagesTask)
- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled)
- [joinPathFragments](../../devkit/documents/joinPathFragments)
- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory)
- [names](../../devkit/documents/names)
- [normalizePath](../../devkit/documents/normalizePath)
- [offsetFromRoot](../../devkit/documents/offsetFromRoot)
- [parseJson](../../devkit/documents/parseJson)
- [parseTargetString](../../devkit/documents/parseTargetString)
- [readCachedProjectGraph](../../devkit/documents/readCachedProjectGraph)
- [readJson](../../devkit/documents/readJson)
- [readJsonFile](../../devkit/documents/readJsonFile)
- [readNxJson](../../devkit/documents/readNxJson)
- [readProjectConfiguration](../../devkit/documents/readProjectConfiguration)
- [readProjectsConfigurationFromProjectGraph](../../devkit/documents/readProjectsConfigurationFromProjectGraph)
- [readTargetOptions](../../devkit/documents/readTargetOptions)
- [removeDependenciesFromPackageJson](../../devkit/documents/removeDependenciesFromPackageJson)
- [removeProjectConfiguration](../../devkit/documents/removeProjectConfiguration)
- [reverse](../../devkit/documents/reverse)
- [runExecutor](../../devkit/documents/runExecutor)
- [runTasksInSerial](../../devkit/documents/runTasksInSerial)
- [serializeJson](../../devkit/documents/serializeJson)
- [stripIndents](../../devkit/documents/stripIndents)
- [stripJsonComments](../../devkit/documents/stripJsonComments)
- [targetToTargetString](../../devkit/documents/targetToTargetString)
- [toJS](../../devkit/documents/toJS)
- [updateJson](../../devkit/documents/updateJson)
- [updateNxJson](../../devkit/documents/updateNxJson)
- [updateProjectConfiguration](../../devkit/documents/updateProjectConfiguration)
- [updateTsConfigsToJs](../../devkit/documents/updateTsConfigsToJs)
- [validateDependency](../../devkit/documents/validateDependency)
- [visitNotIgnoredFiles](../../devkit/documents/visitNotIgnoredFiles)
- [workspaceLayout](../../devkit/documents/workspaceLayout)
- [writeJson](../../devkit/documents/writeJson)
- [writeJsonFile](../../devkit/documents/writeJsonFile)
@@ -1,7 +0,0 @@
# Type alias: RawProjectGraphDependency
Ƭ **RawProjectGraphDependency**: [`ImplicitDependency`](../../devkit/documents/ImplicitDependency) \| [`StaticDependency`](../../devkit/documents/StaticDependency) \| [`DynamicDependency`](../../devkit/documents/DynamicDependency)
A [ProjectGraph](../../devkit/documents/ProjectGraph) dependency between 2 projects
See [DynamicDependency](../../devkit/documents/DynamicDependency), [ImplicitDependency](../../devkit/documents/ImplicitDependency), or [StaticDependency](../../devkit/documents/StaticDependency)

Some files were not shown because too many files have changed in this diff Show More