Compare commits

..

74 Commits

Author SHA1 Message Date
FrozenPandaz ae7b37b6fe chore(js): add logging to typescript parsing 2024-07-17 14:41:32 -04:00
Jason Jean 064eb714cf chore(repo): update nx to 19.5.0-beta.5 (#26925)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `19.4.0-rc.1`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `19.5.0-beta.5`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-17 11:12:21 -04:00
Isaac Mann a0baab0d47 docs(core): update nx connect feature page (#26957)
Fix the title of "Connect to Nx Cloud" to be consistent

Old inconsistent titles:
![Screenshot 2024-07-16 at 10 09
47 AM](https://github.com/user-attachments/assets/8122aa79-edaf-46a9-b278-a3c4e2fa214d)

Also adds a sentence explaining the `nx-cloud record` line in step 3,
since that isn't obvious what it is doing.
2024-07-17 08:08:12 -04:00
Johanna Pearce 3a40d37f5e fix(nx-dev): website copy corrections and changes 2024-07-17 02:28:46 -07:00
Jason Jean 039f91dde4 fix(core): disable isolation in wasm (#26960)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Something is causing plugin isolation to fail on wasm environments.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Plugin isolation is disabled on wasm environments pending a fix.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 18:12:46 -05:00
Emily Xiong ccb0d7d244 feat(gradle): change test glob to include Tests and Test (#26913)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 18:31:36 -04:00
Jason Jean fa83b36131 fix(core): properly handle reading target defaults (#26959)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When targets have executors, they cannot be matched with a glob pattern

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

When targets have executors, they can still be matched with a glob if
the executor does not have target defaults set.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 17:25:32 -05:00
Jason Jean 87021ecb85 fix(core): decrease initial memory for wasm (#26956)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Nx fails to import Wasm if there is not 16 gigs of memory available
which is.. pretty often.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Nx fails to import wasm if there 1 gig of memory available which should
be not often.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 18:20:10 -04:00
Jason Jean 31bef6a85a fix(misc): finalize ab testing (#26958)
## Current Behavior
<!-- This is the behavior we have today -->

There is ab testing for different messages for connecting to cloud.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There is no ab testing for connecting to cloud prompts

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 16:10:52 -04:00
Benjamin Cabanes 85d310a8c2 feat(nx-dev): update home page (#26893)
Add new sections and update information about Nx.

---------

Co-authored-by: Juri <juri.strumpflohner@gmail.com>
2024-07-16 15:43:41 -04:00
Craigory Coppola facfc147f8 fix(core): running just 'nx' should show help (#26871)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
Running `nx` errors

## Expected Behavior
`nx` show's help

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 13:49:28 -04:00
Jason Jean 51f5fe4434 fix(core): merge package.json plugins and updated project.json plugin… (#26952)
… using v2

## Current Behavior
<!-- This is the behavior we have today -->

The `package.json` handling is split between before and after plugins so
it's confusing. Also, `package.json` nodes will get overwritten by
plugins while others won't.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The `package.json` handling is merged. Also, the `package.json` nodes
will always overwrite plugins as intended.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 12:46:57 -05:00
Jack Hsu 1a9429643f feat(core): ci-workflow adds workflow file to sharedGlobal inputs (#26948)
When we generate the workflow file, users should also add the new
workflow file to the `sharedGlobals` named input, otherwise changes may
land without verifying that all tasks are successful.

This is already called out in the CI tutorials, and doing it
automatically improves the DX.

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-16 13:38:32 -04:00
Jack Hsu 34da542ce6 fix(rollup): always generate package.json when using @nx/rollup:rollup (#26940)
Prior to Nx 19.4, the `@nx/rollup:rollup` executor generates
`package.json` outside of the actual Rollup build. Nx 19.4 changed this
to be a proper Rollup plugin in order to support inferred targets
better. This led to a slight regression, where projects that override
`plugins` array in their `rollup.config.js` file will also remove the
`generatePackageJson` plugin.

This PR brings the behavior back, so the `package.json` file is _always_
generated regardless of how the `plugins` array is customized.

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-15 16:33:05 -04:00
Philip Fulcher 46497356ce chore: migrate links to blog (#26892)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
Blog links point to Medium and dev.to blogs
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Blog links point to internal blog
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-15 15:28:06 -04:00
Gunter Chou a41a8d68cf fix(linter): Correctly collect lintable files for project in @nx/eslint plugin (#26638) 2024-07-15 12:48:20 -04:00
Jason Jean f3fa705b82 fix(core): do not mutate target defaults (#26941)
## Current Behavior
<!-- This is the behavior we have today -->

Target defaults is mutated when the target is normalized. Subsequent
targets are normalized with the mutated version yielding the incorrect
projects configuration.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Target defaults is not mutated and all targets are correct.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-15 11:12:36 -05:00
MaxKless 33d2bece53 fix(misc): add NX_E2E_RUN_E2E env to e2eInputs (#26939) 2024-07-15 08:46:34 -06:00
Nicholas Cunningham 6f50d9f4c3 fix(nx-dev): Update Next.js version (#26912)
Fix nx-dev hmr not working.
2024-07-12 21:02:27 +00:00
Emily Xiong 39e104b6c3 feat(core): add parallelism to target configuration (#26820)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 16:35:45 -04:00
Jason Jean 37f0ccaa20 chore(repo): update freebsd publish to run on ubuntu and use latest f… (#26924)
…reebsd to fix issue

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

There's an issue with running `npm` when building on freebsd

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There are no issues building on freebsd

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 15:26:09 -05:00
Craigory Coppola 92d0e15d1f feat(core): pattern matching for target defaults (#26870)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
TargetDefaults can be specified by keys matching either executor or
target name only

## Expected Behavior
TargetDefaults can match based on a glob pattern that may match the
target name. This is useful for things like `e2e-ci--*`. Only 1 target
default will ever apply to a given target. We recognize this may be
confusing, but is inline with current handling. If no default matches
the target name or key, the first default that matches by pattern will
be used.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 16:25:32 -04:00
Nicholas Cunningham f2e1f0fad9 feat(nx-dev): Add more OSS logos (#26922) 2024-07-12 13:52:33 -06:00
Emily Xiong fc1c04918b feat(gradle): add help metadata (#26810)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 14:28:28 -04:00
Emily Xiong 638647d77c chore(core): add check to run macos tests if packages changed (#26894)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 14:22:26 -04:00
Emily Xiong aa7c5dc3ea chore(core): add unit tests for not connected to nx cloud (#26885)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 13:25:55 -04:00
Jason Jean adacd983b7 fix(misc): add more ab testing for setting up ci and nx cloud (#26907)
## Current Behavior

There is AB testing

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There is more AB testing

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-12 13:03:56 -04:00
Jonathan Cammisuli 26c3d21f1e docs(core): add documentation for "Explain With AI" (#26656)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

---------

Co-authored-by: Caleb Ukle <caleb@nrwl.io>
2024-07-12 11:40:57 -04:00
Nicholas Cunningham 82831bcee6 feat(nx-dev): add customers & company pages (#26813)
Co-authored-by: Juri <juri.strumpflohner@gmail.com>
2024-07-12 11:22:35 -04:00
Craigory Coppola 0b0db782f7 fix(core): report should work if project graph errors (#26858) 2024-07-11 17:35:02 -04:00
Leosvel Pérez Espinosa 58ba1ffc6d feat(angular): support angular v18.1.0 (#26504)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

## Current Behavior
<!-- This is the behavior we have today -->

Angular v18.1.0 is not supported.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Angular v18.1.0 should be supported.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-11 11:17:00 -04:00
Craigory Coppola 2c4c2ae8ca feat(core): enable plugin isolation by default (#26888)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-10 17:16:13 -04:00
Craigory Coppola b3d2d957a2 feat(core): avoid forking process for nx:noop (#26869)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
When we run a task with executor nx:noop we still fork a process for
that executor to run.

## Expected Behavior
`nx:noop` is a fixed executor which never does anything. We can skip
forking the process.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-10 17:01:35 -04:00
Jason Jean 1cb4f65210 fix(misc): properly set the value of the bitbucket option for ci work… (#26890) 2024-07-10 16:58:34 -04:00
Craigory Coppola a6fde9ba95 fix(core): load isolated plugins in parallel (#26874)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
Plugins are not loading in parallel correctly

## Expected Behavior
Plugins should load in parallel

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-10 16:57:57 -04:00
Rares Matei 550de60446 docs(nx-cloud): bitbucket data center docs (#26862)
- Adds docs for the new bitbucket data center integration + auth
- Refactors some of the other integration docs to be consistent with
each other and link to the Helm repo where possible
2024-07-10 09:47:15 -06:00
Leosvel Pérez Espinosa e31b1689c4 feat(js): add createNodesV2 for typescript plugin (#26788)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

There is no implementation for the `CreateNodesV2` API.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There should be an implementation for the `CreateNodesV2` API.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
<!-- Fixes NXC-790 -->
<!-- Fixes NXC-791 -->

Fixes #
2024-07-10 10:21:58 +02:00
Emily Xiong 2b7b5231fb feat(core): uncomment start-ci-run (#26645)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-09 19:22:50 -04:00
Jasper McCulloch 8fd38cba9a fix(vite): Only attempt to amend test object if one exists (#26822)
Test object is assigned using optional chaining but previously did not
check that any value had actually been assigned which would cause the
`getStart` call to fail resulting in a failed migration.

## Current Behavior
Migration fails if no matching test object is found.

## Expected Behavior
Migration should not fail.

## Related Issue(s)
I haven't opened an issue, just the PR. I can open an issue if required
for tracking.
2024-07-09 07:47:37 -06:00
Leosvel Pérez Espinosa 73858a094e fix(vue): bump vue-tsc version to 2.x.x (#26867)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Building a newly created Nuxt workspace/application fails with:

```bash
Nuxt Build Error: Cannot find module '@volar/typescript/lib/node/proxyCreateProgram'
```

This can be seen in current CI runs like the following:
https://staging.nx.app/runs/bszKddEenc/task/e2e-nuxt%3Ae2e-ci--src%2Fnuxt.test.ts.

This is happening because the `vite-plugin-checker` (used by Nuxt)
requires `vue-tsc@>=2.0.0`, but the `@nx/vue` plugin installs
`vue-tsc@^1.8.8`.

```bash
└─┬ nuxt 3.12.3
  └─┬ @nuxt/vite-builder 3.12.3
    └─┬ vite-plugin-checker 0.7.1
      └── ✕ unmet peer vue-tsc@>=2.0.0: found 1.8.27
```

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Newly created Nuxt workspaces/applications should build successfully.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-09 15:33:36 +02:00
Jason Jean 92e09d9322 fix(misc): adjust nx cloud ab test (#26866)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->


![image](https://github.com/nrwl/nx/assets/8104246/98c3b475-d213-4e81-8c80-4010714ad4f7)


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->


![image](https://github.com/nrwl/nx/assets/8104246/2a67ae6b-2718-45f3-adfe-2dcc88c8ecbd)


## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-08 18:28:59 -04:00
Pavlo 3e0d2de468 feat(core): add support for wildcards in dependsOn (#19611)
Now it is possible to define targets like this:

```
{
  "targets": {
    "build-css": {},
    "build-js": {},
    "test": {
      "dependsOn": ["build-*"]
    },
  }
}
```

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

## Current Behavior
No support for wildcard target dependencies.

## Expected Behavior
This PR is an example of what I described here:
https://github.com/nrwl/nx/issues/19414.

## Related Issue(s)
Closes #19414

---------

Co-authored-by: Craigory Coppola <craigorycoppola@gmail.com>
2024-07-08 18:16:01 -04:00
Ben Snyder 81fe13250a feat(linter): support eslint.config.cjs and *.cjs extension with flat config (#26637) 2024-07-08 12:51:13 -04:00
Craigory Coppola 3cbe2abc25 fix(core): ensure better create nodes error messaging (#26811)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
We see a stack trace pointing to where the aggregate create nodes error
is thrown rather than the messaging about the individual errors

<img width="911" alt="image"
src="https://github.com/nrwl/nx/assets/6933928/61907d8c-bb77-4a39-b55f-42fa38c0ed19">

## Expected Behavior
The message is shown

<img width="946" alt="image"
src="https://github.com/nrwl/nx/assets/6933928/f79f5aeb-e5b2-4ff1-9cbc-a7f10e8f910e">


## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-08 09:57:10 -04:00
Emily Xiong 4ae16b361f fix(gradle): fix gradle exclude src/test (#26741)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-05 16:09:54 -04:00
LongYinan 981eb30a0f feat(core): support compile to wasi target (#22870)
This pull request is trying to add wasm32-wasi target support for the
nx/native

To test the build, you can run the following commands:

- `rustup target add wasm32-wasip1-threads`
- `pnpm exec napi build --release --platform --package-json-path
packages/nx/package.json --manifest-path packages/nx/Cargo.toml --js
./native-bindings.js -o packages/nx/src/native --target
wasm32-wasip1-threads`

And the wasm file will be built at
packages/nx/src/native/nx.wasm32-wasi.wasm

Blocked by:

- Support @napi-rs/cli 3.0  Cammisuli/monodon#48
- https://github.com/napi-rs/napi-rs/issues/2009

The pseudo_terminal mod is excluded on the wasm32 targets, which is as
expected.

The watch mod is excluded because of the upstream `watchexec` deps
introduced by ignore-files don't support the wasi target at this moment
(but we can improve it).

## Related Issues
Fixes https://github.com/nrwl/nx/issues/21860
Fixes https://github.com/nrwl/nx/issues/23821

---------

Co-authored-by: FrozenPandaz <jasonjean1993@gmail.com>
2024-07-05 15:55:35 -04:00
Jonathan Gelin 23ce6af2cc fix(nx-plugin): tslib is not set as a dependency when using create-package generator (#22429)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

## Current Behavior
The linting failed on clean `create-nx-plugin` generation:

![image](https://github.com/nrwl/nx/assets/954509/80bfbaeb-0994-48d9-a6dc-20f8f723a95d)

## Expected Behavior
After a clean generation, build, test, and lint should be successful

Co-authored-by: Emily Xiong <xiongemi@gmail.com>
2024-07-05 15:29:48 -04:00
Emily Xiong 62baf4f307 feat(gradle): gradle atomizer (#26663)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-05 15:22:37 -04:00
Naymi e15479b691 fix(core): recursive resolve deps on create command graph (#22989)
## introductory
<img width="620" alt="image"
src="https://github.com/nrwl/nx/assets/21343944/1ef5e2a2-0f65-4fde-aa7d-b52152af59a7">


## Current Behavior

```shell
nx exec --projects=my-node-app -- pwd
TypeError: graph.dependencies[id] is not iterable
    at _findCycle (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/tasks-runner/task-graph-utils.js:8:39)
    at _findCycle (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/tasks-runner/task-graph-utils.js:11:23)
    at findCycle (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/tasks-runner/task-graph-utils.js:23:23)
    at createCommandGraph (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/commands-runner/create-command-graph.js:25:52)
    at getCommandProjects (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/commands-runner/get-command-projects.js:7:72)
    at runScriptAsNxTarget (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/command-line/exec/exec.js:60:73)
    at Object.nxExecCommand (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/command-line/exec/exec.js:44:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Object.handler (/Users/anatolijfedorov/prjcts/tmp/nx-nest-workspace/node_modules/nx/src/command-line/exec/command-object.js:11:13)

```


## Expected Behavior

```shell
nx exec --projects=my-node-app -- pwd
/tmp/nx-nest-workspace/my-node-lib-2
/tmp/nx-nest-workspace/my-node-lib
/tmp/nx-nest-workspace/apps/my-node-app
```

Fixes https://github.com/nrwl/nx/issues/22994
Added function that resolves dependencies recursively

Co-authored-by: afedorov <afedorov@rvision.ru>
2024-07-05 14:21:06 -04:00
Jack Hsu 2baf672b61 docs(nx-cloud): update onboarding flow to use "nx connect" (#26842)
The new Nx Cloud onboarding flow is to run `nx connect` and follow the
prompts. There's no need to explain beyond that in the docs since the
flow is prone to changes in nx.app.
2024-07-05 14:19:04 -04:00
Colum Ferry a6522f71a1 feat(module-federation): use @module-federation/enhanced for withModuleFederation (#26777)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
We currently use the `ModuleFederationPlugin` from `webpack` itself. 
This doesn't receive the same attention as the new
`@module-federation/enhanced` package, which is where all new work by
Zack Jackson and Bytedance is being conducted.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Our `withModuleFederation` utils should use the
`@module-federation/enhanced` package.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
#26322 
Fixes #
2024-07-05 09:48:17 -04:00
Jack Hsu c7878533ed docs(misc): disable prefetch on page load for links (#26837)
This PR changes `<Link>` to use `prefetch={false}` in the following
components:

1. Header
2. Sidebar
3. Docs header
4. Markdown content

This means that prefetch happens on hover of the link rather than page
load, and will reduce the amount of edge requests made from the app.

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-05 09:29:08 -04:00
Jack Hsu 653cad2492 feat(react): add support for React Compiler in @nx/react/babel (#26826)
This PR adds a check in `@nx/react/babel` preset to enable React
Compiler when `babel-plugin-react-compiler` is installed.

This affects:

- React apps using Webpack + Babel
- React libs using Rollup + Babel
- React Native apps using Webpack + Babel

If SWC is used, there is no way to use React Compiler currently.

Also adds a [new
recipe](https://nx-dev-git-feat-react-compiler-nrwl.vercel.app/recipes/react/react-compiler)
showing how to enable the compiler using `@nx/react/babel`.

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-04 16:18:34 -04:00
Jack Hsu 7caf9017f0 feat(react-native): update react-native-svg to 15.3.0 (#26827)
There's a bug in 15.2.0 so this PR updates the version. See:
https://github.com/software-mansion/react-native-svg/issues/2241#issuecomment-2115255421

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-04 15:27:28 -04:00
Emily Xiong 311710e56c feat(graph): add copy button for entire target configuration (#26284)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
<img width="540" alt="Screenshot 2024-07-03 at 5 29 12 PM"
src="https://github.com/nrwl/nx/assets/16211801/bed98c56-3bd5-4170-893b-cefe5fe292f9">

<img width="1195" alt="Screenshot 2024-07-03 at 5 29 03 PM"
src="https://github.com/nrwl/nx/assets/16211801/544a4c4e-299f-40fc-a767-215d9c758dd8">



## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-04 10:16:13 -04:00
MaxKless e09bad9363 fix(core): ignore errors from cleanupNativeFileCache (revert to previous behaviour) (#26806) 2024-07-04 14:59:16 +02:00
Nicholas Cunningham 295c4229db fix(node): Enable e2e test (#23508)
Re-enables e2e tests for node 

Docker changes to be merged first: https://github.com/nrwl/nx/pull/26365
2024-07-04 08:57:27 -04:00
Juri Strumpflohner 929a57c127 feat(nx-dev): update next to fix img fetchpriority error (#26766)
## Current Behavior

`fetchpriority` attribute error in Next image loading cmp. 

<img width="1260" alt="image"
src="https://github.com/nrwl/nx/assets/542458/9ba9f539-e0ad-4fe1-9a6a-64db856fd25c">

## Expected Behavior

Upgrading patch version of next fixes it.

//Edit: some context:
https://github.com/vercel/next.js/issues/65161#issuecomment-2087899325

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-04 08:53:32 -04:00
Juri Strumpflohner 6ce107d6e1 fix(nx-dev): plugin-registry menu (#26767)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When on https://nx.dev/plugin-registry the side-bar menu doesn't open on
mobile.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Should obviously open. Also adjusted the top-level header menu
"Documentation" -> "Docs" (just sounds better)

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-04 08:19:31 -04:00
Jason Jean 28939dd982 fix(core): always inherit output from plugins (#26797) 2024-07-03 17:04:59 -04:00
Jack Hsu 8cf96cc5b2 fix(core): register swc transpiler once per compilerOptions (#26807)
Apply the same patch for `@swc-node/register` that we did for `ts-node`.
This prevent errors during graph construction.

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #26798
2024-07-03 14:55:48 -04:00
Craigory Coppola 2ae57dcfbe feat(core): move target defaults back to post graph step (#26596)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
We moved target defaults to a graph plugin around the release of Nx 18.
It never fit really perfectly, but because we wanted to apply them
before project.json / package.json configuration results which **_are_**
plugins and do make sense as a plugin it made sense at the time.

## Expected Behavior
We want to expand the behavior of target defaults in the near future to
better handle pattern matching. In doing this, we need more flexibility
in how its applied and that process will need to be aware of which
targets are going to be created by plugins. As such, we are moving it
back to being a post-step in the project configuration construction.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-03 14:50:12 -04:00
Isaac Mann 65c3e560e2 docs(core): react standalone tutorial (#26304)
Update the react standalone tutorial to start from `npm create vite --
--template=react-ts`
2024-07-03 14:34:56 -04:00
EugeneKruglei 6e84cbfac0 fix(core): cannot read properties of undefined (reading 'options') (#26721) 2024-07-03 14:10:08 -04:00
Isaac Mann 7cd35e0ca1 docs(core): sync top menu features with sidebar (#26814)
- Syncs top menu features drop down names with sidebar
- Moves Setup enterprise feature under Enterprise -> On Premise
- Collapse concepts section in CI tab
2024-07-03 14:04:58 -04:00
Isaac Mann fa3c5c42cd docs(core): vue cli tutorial (#26451)
Update the Vue standalone tutorial to start from a Vue CLI generated
project
2024-07-03 10:19:55 -04:00
Leosvel Pérez Espinosa adb81afa91 fix(js): normalize excluded paths to task inputs correctly in typescript plugin (#26801) 2024-07-03 14:26:17 +04:00
Katerina Skroumpelou 4c76b95271 fix(nx-cloud): onboarding cloud version handling (#26790)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-02 20:26:36 +03:00
Colum Ferry 54036397c8 fix(testing): pin cypress to 13.12.0 and re-enable skipped tests (#26751) 2024-07-02 11:46:00 -04:00
Colum Ferry 8f65944405 fix(vite): remove deprecated cache.dir from vitest generation (#26756)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
The `cache.dir` option for `vitest` is deprecated in favour of
`config.cacheDir` which we already generate.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Remove the deprecated option

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-02 16:24:00 +01:00
Jason Jean 0eed1bdf2c chore(repo): use the async api of getJestProjects (#26792)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses `getJestProjects` rather than `getJestProjectsAsync`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses `getJestProjectsAsync`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-02 09:49:46 -04:00
Jason Jean cf396f71a9 chore(repo): update nx to 19.4.0-rc.1 (#26763)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `19.4.0-rc.0`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `19.4.0-rc.1`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-02 09:16:21 -04:00
MaxKless 86da1b5936 fix(gradle): pass process.env when running gradle (#26776) 2024-07-01 17:19:59 +02:00
Isaac Mann de68084db2 docs(core): add jonathan gelin to champions (#26779)
Adds Jonathan Gelin (@jogelin) as an Nx Champion
2024-07-01 09:43:36 -04:00
688 changed files with 25615 additions and 13435 deletions
+6 -1
View File
@@ -158,7 +158,12 @@ jobs:
- run:
name: Run E2E Tests for macOS
command: |
pnpm nx affected -t e2e-macos-ci --parallel=1 --base=$NX_BASE --head=$NX_HEAD
HAS_CHANGED=$(node ./scripts/check-react-native-changes.js $NX_BASE $NX_HEAD);
if $HAS_CHANGED; then
pnpm nx affected -t e2e-macos-ci --parallel=1 --base=$NX_BASE --head=$NX_HEAD
else
echo "Skip E2E tests for macOS as there are no changes in React Native projects."
fi
no_output_timeout: 45m
# -------------------------
-1
View File
@@ -1 +0,0 @@
NX_ISOLATE_PLUGINS=true
+12 -11
View File
@@ -175,7 +175,7 @@ jobs:
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf -y
build: |
pnpm nx run-many --target=build-native -- --target=armv7-unknown-linux-gnueabihf
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc pnpm nx run-many --target=build-native -- --target=armv7-unknown-linux-gnueabihf
# Android (not needed)
# - host: ubuntu-latest
# target: aarch64-linux-android
@@ -203,7 +203,7 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
repository: ${{ needs.resolve-required-data.outputs.repo }}
repository: ${{ needs.resolve-required-data.outputs.repo }}
ref: ${{ needs.resolve-required-data.outputs.ref }}
- uses: pnpm/action-setup@v4
@@ -281,26 +281,28 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: packages/**/*.node
path: |
packages/**/*.node
packages/**/*.wasm
if-no-files-found: error
build-freebsd:
needs: [resolve-required-data]
if: ${{ github.repository_owner == 'nrwl' }}
runs-on: macos-13-large
runs-on: ubuntu-latest
name: Build FreeBSD
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
if: ${{ github.event_name != 'schedule' && !github.event.inputs.pr }}
with:
repository: ${{ needs.resolve-required-data.outputs.repo }}
repository: ${{ needs.resolve-required-data.outputs.repo }}
ref: ${{ needs.resolve-required-data.outputs.ref }}
- name: Build
id: build
if: ${{ github.event_name != 'schedule' && !github.event.inputs.pr }}
uses: cross-platform-actions/action@v0.22.0
uses: cross-platform-actions/action@v0.25.0
env:
DEBUG: napi:*
RUSTUP_IO_THREADS: 1
@@ -308,14 +310,14 @@ jobs:
PLAYWRIGHT_BROWSERS_PATH: 0
with:
operating_system: freebsd
version: '13.2'
version: '14.0'
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 pkg install -y -f node libnghttp2 www/npm git
sudo npm install --location=global --ignore-scripts pnpm@8.15.7
curl https://sh.rustup.rs -sSf --output rustup.sh
sh rustup.sh -y --profile minimal --default-toolchain stable
@@ -331,8 +333,6 @@ jobs:
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 --verbose --outputStyle stream --target=build-native -- --target=x86_64-unknown-freebsd
pnpm nx reset
@@ -396,7 +396,8 @@ jobs:
- name: List artifacts
run: ls -R artifacts
shell: bash
- name: Build Wasm
run: pnpm build:wasm
- name: Publish
env:
VERSION: ${{ needs.resolve-required-data.outputs.version }}
+2
View File
@@ -56,3 +56,5 @@ out
.npm/
.profile
.rustup/
target
*.wasm
+5
View File
@@ -17,6 +17,11 @@ 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/browser.js
packages/nx/src/native/nx.wasi-browser.js
packages/nx/src/native/nx.wasi.cjs
packages/nx/src/native/wasi-worker-browser.mjs
packages/nx/src/native/wasi-worker.mjs
packages/nx/src/native/native-bindings.js
packages/nx/src/native/index.d.ts
nx-dev/nx-dev/.next/
Generated
+421 -684
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -29,7 +29,7 @@ A few links to help you get started:
- [Nx.Dev: Core Tutorials](https://nx.dev/getting-started/intro)
- [Recipe: Adding Nx to an Existing Monorepo](https://nx.dev/recipes/adopting-nx/adding-to-monorepo)
- [Official Nx YouTube Channel](https://www.youtube.com/@NxDevtools)
- [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
- [Blog Posts About Nx](https://nx.dev/blog)
<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>
+8
View File
@@ -183,6 +183,14 @@ To display a terminal command, use:
```
````
You can also add a title to the shell as follows:
````
```shell {% title="Build the app" %}
npx nx build
```
````
#### Terminal Output
You can display your terminal output with a dedicated component the same way you would show code.
+2 -2
View File
@@ -183,7 +183,7 @@ Weve been working hard at reducing and simplifying all the configuration requ
At Nx Conf in New York City, we unveiled the next big step for Nx: **Nx Workflows**.
If you missed it, Simon Critchley walks you through in his [Nx Conf](https://dev.to/nx/nx-conf-2023-recap-53ep) talk:
If you missed it, Simon Critchley walks you through in his [Nx Conf](/blog/nx-conf-2023-recap) talk:
{% youtube src="https://www.youtube.com/embed/JG1FWfZFByM?si=7_NzxJP8nA7RbFhl" /%}
@@ -231,7 +231,7 @@ In Nx 17, we removed any remaining traces of `tslint` from our linter package, s
As we solidify this command, we intend to bring robust support for various versioning and publishing strategies, as well as built-in support for publishing packages or modules to a variety of languages, registries, and platforms.
For more [checkout our API docs](/nx-api/nx/documents/release), and be sure to catch James Henrys announcement of this new command at [Nx Conf](https://dev.to/nx/nx-conf-2023-recap-53ep):
For more [checkout our API docs](/nx-api/nx/documents/release), and be sure to catch James Henrys announcement of this new command at [Nx Conf](/blog/nx-conf-2023-recap):
{% youtube src="https://www.youtube.com/embed/p5qW5-2nKqI?si=FzpGMJwPVINc1hgL" /%}
+3 -3
View File
@@ -95,7 +95,7 @@ Nx Console has evolved from an experimental side project of the Nx team to a cor
![](/blog/images/2023-12-28/bodyimg2.webp)
This year we not only added a lot of new features to Nx Console, but also rewrote its [internals](https://blog.nrwl.io/nx-console-gets-lit-ca339743ff4f) which paved the way to expand Nx Console to other code editors: **JetBrains IDEs.**
This year we not only added a lot of new features to Nx Console, but also rewrote its [internals](/blog/nx-console-gets-lit) which paved the way to expand Nx Console to other code editors: **JetBrains IDEs.**
Yes, this means you can now use the latest Nx Console directly in your [Webstorm IDE](https://www.jetbrains.com/webstorm/). Read the [announcement blog post](https://blog.nrwl.io/expanding-nx-console-to-jetbrains-ides-8a5b80fff2d7) for all the details or go ahead and install Nx Console if you didnt already:
@@ -329,7 +329,7 @@ You can also browse them in the [nx-recipes](https://github.com/nrwl/nx-recipes)
{% tweet url="https://twitter.com/juristr/status/1726977598218199302" /%}
And obviously, we jumped on the AI train as well. A couple of months ago, we added the [Nx Assistant](/ai-chat). A ChatGPT-powered interface trained on our docs. [Katerina](https://twitter.com/psybercity) wrote about it [on our blog](https://blog.nrwl.io/nx-docs-ai-assistant-433d238e45d4). The AI chat allows to interactively ask questions about Nx and will give you relevant answers from our docs (including linking to the sources).
And obviously, we jumped on the AI train as well. A couple of months ago, we added the [Nx Assistant](/ai-chat). A ChatGPT-powered interface trained on our docs. [Katerina](https://twitter.com/psybercity) wrote about it [on our blog](/blog/nx-docs-ai-assistant). The AI chat allows to interactively ask questions about Nx and will give you relevant answers from our docs (including linking to the sources).
## New Tagline: Smart Monorepos — Fast CI
@@ -349,7 +349,7 @@ We did it again! The second in-person Nx Conf was a resounding success, this tim
![](/blog/images/2023-12-28/bodyimg9.webp)
Theres not much to say. Check out some of the amazing talks. I did a [Nx Conf 2023 recap blog post](https://dev.to/nx/nx-conf-2023-recap-53ep).
Theres not much to say. Check out some of the amazing talks. I did a [Nx Conf 2023 recap blog post](/blog/nx-conf-2023-recap).
## Looking ahead — 2024
+4 -4
View File
@@ -2,10 +2,10 @@
We were so excited about the features in Nx 18 that we created a whole [Launch Nx Week](/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
- [Project Crystal](/blog/what-if-nx-plugins-were-more-like-vscode-extensions) allows you to use inferred tasks
- A new [`@nx/nuxt`](/blog/introducing-nx-nuxt-enhanced-nuxt-js-support-in-nx) plugin is available
- [Nx Agents](/blog/fast-effortless-ci) are publicly available
- [`nx release`](/blog/versioning-and-releasing-packages-in-a-monorepo) is out of beta
{% youtube
src="https://youtu.be/Ed1ZCNqWF1Q"
+2 -2
View File
@@ -121,9 +121,9 @@ Generate a 'src/' directory for Next.js
Type: `string`
Choices: [yes, github, circleci, skip]
Choices: [github, circleci, gitlab, azure, bitbucket-pipelines, skip, yes]
Do you want Nx Cloud to make your CI fast?
Which CI provider would you like to use?
### packageManager
+1
View File
@@ -135,6 +135,7 @@ It only uses language primitives and immutable objects
- [globAsync](../../devkit/documents/globAsync)
- [hashArray](../../devkit/documents/hashArray)
- [installPackagesTask](../../devkit/documents/installPackagesTask)
- [isDaemonEnabled](../../devkit/documents/isDaemonEnabled)
- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled)
- [joinPathFragments](../../devkit/documents/joinPathFragments)
- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory)
@@ -22,6 +22,7 @@ Target's configuration
- [metadata](../../devkit/documents/TargetConfiguration#metadata): TargetMetadata
- [options](../../devkit/documents/TargetConfiguration#options): T
- [outputs](../../devkit/documents/TargetConfiguration#outputs): string[]
- [parallelism](../../devkit/documents/TargetConfiguration#parallelism): boolean
## Properties
@@ -109,3 +110,12 @@ Target's options. They are passed in to the executor.
List of the target's outputs. The outputs will be cached by the Nx computation
caching engine.
---
### parallelism
`Optional` **parallelism**: `boolean`
Whether this target can be run in parallel with other tasks
Default is true
+9
View File
@@ -13,6 +13,7 @@ A representation of the invocation of an Executor
- [id](../../devkit/documents/Task#id): string
- [outputs](../../devkit/documents/Task#outputs): string[]
- [overrides](../../devkit/documents/Task#overrides): any
- [parallelism](../../devkit/documents/Task#parallelism): boolean
- [projectRoot](../../devkit/documents/Task#projectroot): string
- [startTime](../../devkit/documents/Task#starttime): number
- [target](../../devkit/documents/Task#target): Object
@@ -84,6 +85,14 @@ Overrides for the configured options of the target
---
### parallelism
**parallelism**: `boolean`
Determines if a given task should be parallelizable.
---
### projectRoot
`Optional` **projectRoot**: `string`
+7
View File
@@ -0,0 +1,7 @@
# Function: isDaemonEnabled
**isDaemonEnabled**(): `boolean`
#### Returns
`boolean`
+167 -68
View File
@@ -28,6 +28,17 @@
"path": "/ci/intro/why-nx-cloud",
"tags": []
},
{
"id": "connect-to-nx-cloud",
"name": "Connect to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/intro/connect-to-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/intro/connect-to-nx-cloud",
"tags": []
},
{
"id": "tutorials",
"name": "Tutorials",
@@ -89,6 +100,17 @@
"path": "/ci/intro/why-nx-cloud",
"tags": []
},
"/ci/intro/connect-to-nx-cloud": {
"id": "connect-to-nx-cloud",
"name": "Connect to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/intro/connect-to-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/intro/connect-to-nx-cloud",
"tags": []
},
"/ci/intro/tutorials": {
"id": "tutorials",
"name": "Tutorials",
@@ -185,6 +207,17 @@
"path": "/ci/features/distribute-task-execution",
"tags": []
},
{
"id": "nx-cloud-ai",
"name": "Nx Cloud AI",
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
"mediaImage": "",
"file": "nx-cloud/features/ai-features",
"itemList": [],
"isExternal": false,
"path": "/ci/features/nx-cloud-ai",
"tags": []
},
{
"id": "dynamic-agents",
"name": "Dynamically Allocate Agents",
@@ -217,17 +250,6 @@
"isExternal": false,
"path": "/ci/features/flaky-tasks",
"tags": []
},
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/features/on-premise",
"tags": ["on-premise"]
}
],
"isExternal": false,
@@ -267,6 +289,17 @@
"path": "/ci/features/distribute-task-execution",
"tags": []
},
"/ci/features/nx-cloud-ai": {
"id": "nx-cloud-ai",
"name": "Nx Cloud AI",
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
"mediaImage": "",
"file": "nx-cloud/features/ai-features",
"itemList": [],
"isExternal": false,
"path": "/ci/features/nx-cloud-ai",
"tags": []
},
"/ci/features/dynamic-agents": {
"id": "dynamic-agents",
"name": "Dynamically Allocate Agents",
@@ -300,17 +333,6 @@
"path": "/ci/features/flaky-tasks",
"tags": []
},
"/ci/features/on-premise": {
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/features/on-premise",
"tags": ["on-premise"]
},
"/ci/concepts": {
"id": "concepts",
"name": "Concepts",
@@ -425,17 +447,6 @@
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "connect-to-cloud",
"name": "Connect Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/recipes/connect-to-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/set-up/connect-to-cloud",
"tags": []
},
{
"id": "monorepo-ci-azure",
"name": "Setting up Azure Pipelines",
@@ -571,14 +582,14 @@
"tags": []
},
{
"id": "bitbucket-cloud",
"name": "Enable Bitbucket Cloud PR Integration",
"id": "bitbucket",
"name": "Enable Bitbucket PR Integration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/set-up/bitbucket-cloud",
"file": "nx-cloud/set-up/bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
"path": "/ci/recipes/source-control-integration/bitbucket",
"tags": []
},
{
@@ -622,6 +633,17 @@
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
{
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
@@ -677,6 +699,17 @@
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"tags": []
},
{
"id": "auth-bitbucket-data-center",
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"tags": []
},
{
"id": "auth-saml",
"name": "Authenticate via SAML",
@@ -855,17 +888,6 @@
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "connect-to-cloud",
"name": "Connect Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/recipes/connect-to-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/set-up/connect-to-cloud",
"tags": []
},
{
"id": "monorepo-ci-azure",
"name": "Setting up Azure Pipelines",
@@ -937,17 +959,6 @@
"path": "/ci/recipes/set-up",
"tags": ["distribute-task-execution"]
},
"/ci/recipes/set-up/connect-to-cloud": {
"id": "connect-to-cloud",
"name": "Connect Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/recipes/connect-to-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/set-up/connect-to-cloud",
"tags": []
},
"/ci/recipes/set-up/monorepo-ci-azure": {
"id": "monorepo-ci-azure",
"name": "Setting up Azure Pipelines",
@@ -1111,14 +1122,14 @@
"tags": []
},
{
"id": "bitbucket-cloud",
"name": "Enable Bitbucket Cloud PR Integration",
"id": "bitbucket",
"name": "Enable Bitbucket PR Integration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/set-up/bitbucket-cloud",
"file": "nx-cloud/set-up/bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
"path": "/ci/recipes/source-control-integration/bitbucket",
"tags": []
},
{
@@ -1159,15 +1170,15 @@
"path": "/ci/recipes/source-control-integration/github",
"tags": []
},
"/ci/recipes/source-control-integration/bitbucket-cloud": {
"id": "bitbucket-cloud",
"name": "Enable Bitbucket Cloud PR Integration",
"/ci/recipes/source-control-integration/bitbucket": {
"id": "bitbucket",
"name": "Enable Bitbucket PR Integration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/set-up/bitbucket-cloud",
"file": "nx-cloud/set-up/bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
"path": "/ci/recipes/source-control-integration/bitbucket",
"tags": []
},
"/ci/recipes/source-control-integration/gitlab": {
@@ -1206,6 +1217,17 @@
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
{
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
@@ -1261,6 +1283,17 @@
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"tags": []
},
{
"id": "auth-bitbucket-data-center",
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"tags": []
},
{
"id": "auth-saml",
"name": "Authenticate via SAML",
@@ -1400,6 +1433,17 @@
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
{
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
@@ -1455,6 +1499,17 @@
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"tags": []
},
{
"id": "auth-bitbucket-data-center",
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"tags": []
},
{
"id": "auth-saml",
"name": "Authenticate via SAML",
@@ -1504,6 +1559,17 @@
"path": "/ci/recipes/enterprise/on-premise",
"tags": []
},
"/ci/recipes/enterprise/on-premise/on-premise": {
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
"/ci/recipes/enterprise/on-premise/auth-single-admin": {
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
@@ -1559,6 +1625,17 @@
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"tags": []
},
"/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center": {
"id": "auth-bitbucket-data-center",
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"tags": []
},
"/ci/recipes/enterprise/on-premise/auth-saml": {
"id": "auth-saml",
"name": "Authenticate via SAML",
@@ -1964,6 +2041,17 @@
"isExternal": false,
"path": "/ci/troubleshooting/ci-execution-failed",
"tags": []
},
{
"id": "explain-with-ai",
"name": "Explain With AI",
"description": "",
"mediaImage": "",
"file": "nx-cloud/troubleshooting/explain-with-ai",
"itemList": [],
"isExternal": false,
"path": "/ci/troubleshooting/explain-with-ai",
"tags": []
}
],
"isExternal": false,
@@ -1980,5 +2068,16 @@
"isExternal": false,
"path": "/ci/troubleshooting/ci-execution-failed",
"tags": []
},
"/ci/troubleshooting/explain-with-ai": {
"id": "explain-with-ai",
"name": "Explain With AI",
"description": "",
"mediaImage": "",
"file": "nx-cloud/troubleshooting/explain-with-ai",
"itemList": [],
"isExternal": false,
"path": "/ci/troubleshooting/explain-with-ai",
"tags": []
}
}
+147 -75
View File
@@ -284,7 +284,7 @@
"disableCollapsible": false
},
{
"name": "Explore your Workspace",
"name": "Explore Your Workspace",
"path": "/features/explore-graph",
"id": "explore-graph",
"isExternal": false,
@@ -376,14 +376,6 @@
"isExternal": true,
"children": [],
"disableCollapsible": false
},
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/features/on-premise",
"id": "on-premise",
"isExternal": true,
"children": [],
"disableCollapsible": false
}
],
"disableCollapsible": false
@@ -408,7 +400,7 @@
"disableCollapsible": false
},
{
"name": "Explore your Workspace",
"name": "Explore Your Workspace",
"path": "/features/explore-graph",
"id": "explore-graph",
"isExternal": false,
@@ -500,14 +492,6 @@
"isExternal": true,
"children": [],
"disableCollapsible": false
},
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/features/on-premise",
"id": "on-premise",
"isExternal": true,
"children": [],
"disableCollapsible": false
}
],
"disableCollapsible": false
@@ -560,14 +544,6 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/features/on-premise",
"id": "on-premise",
"isExternal": true,
"children": [],
"disableCollapsible": false
},
{
"name": "Concepts",
"path": "/concepts",
@@ -1283,6 +1259,14 @@
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "React Compiler with Nx",
"path": "/recipes/react/react-compiler",
"id": "react-compiler",
"isExternal": false,
"children": [],
"disableCollapsible": false
}
],
"disableCollapsible": false
@@ -2385,6 +2369,14 @@
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "React Compiler with Nx",
"path": "/recipes/react/react-compiler",
"id": "react-compiler",
"isExternal": false,
"children": [],
"disableCollapsible": false
}
],
"disableCollapsible": false
@@ -2445,6 +2437,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "React Compiler with Nx",
"path": "/recipes/react/react-compiler",
"id": "react-compiler",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Angular",
"path": "/recipes/angular",
@@ -5169,6 +5169,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Connect to Nx Cloud",
"path": "/ci/intro/connect-to-nx-cloud",
"id": "connect-to-nx-cloud",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Tutorials",
"path": "/ci/intro/tutorials",
@@ -5213,6 +5221,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Connect to Nx Cloud",
"path": "/ci/intro/connect-to-nx-cloud",
"id": "connect-to-nx-cloud",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Tutorials",
"path": "/ci/intro/tutorials",
@@ -5284,6 +5300,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Nx Cloud AI",
"path": "/ci/features/nx-cloud-ai",
"id": "nx-cloud-ai",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Dynamically Allocate Agents",
"path": "/ci/features/dynamic-agents",
@@ -5307,14 +5331,6 @@
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/features/on-premise",
"id": "on-premise",
"isExternal": false,
"children": [],
"disableCollapsible": false
}
],
"disableCollapsible": false
@@ -5343,6 +5359,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Nx Cloud AI",
"path": "/ci/features/nx-cloud-ai",
"id": "nx-cloud-ai",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Dynamically Allocate Agents",
"path": "/ci/features/dynamic-agents",
@@ -5367,14 +5391,6 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/features/on-premise",
"id": "on-premise",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Concepts",
"path": "/ci/concepts",
@@ -5460,14 +5476,6 @@
"id": "set-up",
"isExternal": false,
"children": [
{
"name": "Connect Nx Cloud",
"path": "/ci/recipes/set-up/connect-to-cloud",
"id": "connect-to-cloud",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Setting up Azure Pipelines",
"path": "/ci/recipes/set-up/monorepo-ci-azure",
@@ -5567,9 +5575,9 @@
"disableCollapsible": false
},
{
"name": "Enable Bitbucket Cloud PR Integration",
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
"id": "bitbucket-cloud",
"name": "Enable Bitbucket PR Integration",
"path": "/ci/recipes/source-control-integration/bitbucket",
"id": "bitbucket",
"isExternal": false,
"children": [],
"disableCollapsible": false
@@ -5605,6 +5613,14 @@
"id": "on-premise",
"isExternal": false,
"children": [
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"id": "on-premise",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with a Single Admin",
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
@@ -5645,6 +5661,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with BitBucket Data Center",
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"id": "auth-bitbucket-data-center",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate via SAML",
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
@@ -5774,14 +5798,6 @@
"id": "set-up",
"isExternal": false,
"children": [
{
"name": "Connect Nx Cloud",
"path": "/ci/recipes/set-up/connect-to-cloud",
"id": "connect-to-cloud",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Setting up Azure Pipelines",
"path": "/ci/recipes/set-up/monorepo-ci-azure",
@@ -5833,14 +5849,6 @@
],
"disableCollapsible": false
},
{
"name": "Connect Nx Cloud",
"path": "/ci/recipes/set-up/connect-to-cloud",
"id": "connect-to-cloud",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Setting up Azure Pipelines",
"path": "/ci/recipes/set-up/monorepo-ci-azure",
@@ -5961,9 +5969,9 @@
"disableCollapsible": false
},
{
"name": "Enable Bitbucket Cloud PR Integration",
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
"id": "bitbucket-cloud",
"name": "Enable Bitbucket PR Integration",
"path": "/ci/recipes/source-control-integration/bitbucket",
"id": "bitbucket",
"isExternal": false,
"children": [],
"disableCollapsible": false
@@ -5996,9 +6004,9 @@
"disableCollapsible": false
},
{
"name": "Enable Bitbucket Cloud PR Integration",
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
"id": "bitbucket-cloud",
"name": "Enable Bitbucket PR Integration",
"path": "/ci/recipes/source-control-integration/bitbucket",
"id": "bitbucket",
"isExternal": false,
"children": [],
"disableCollapsible": false
@@ -6031,6 +6039,14 @@
"id": "on-premise",
"isExternal": false,
"children": [
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"id": "on-premise",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with a Single Admin",
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
@@ -6071,6 +6087,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with BitBucket Data Center",
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"id": "auth-bitbucket-data-center",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate via SAML",
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
@@ -6172,6 +6196,14 @@
"id": "on-premise",
"isExternal": false,
"children": [
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"id": "on-premise",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with a Single Admin",
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
@@ -6212,6 +6244,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with BitBucket Data Center",
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"id": "auth-bitbucket-data-center",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate via SAML",
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
@@ -6247,6 +6287,14 @@
],
"disableCollapsible": false
},
{
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"id": "on-premise",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with a Single Admin",
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
@@ -6287,6 +6335,14 @@
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate with BitBucket Data Center",
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"id": "auth-bitbucket-data-center",
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Authenticate via SAML",
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
@@ -6583,6 +6639,14 @@
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Explain With AI",
"path": "/ci/troubleshooting/explain-with-ai",
"id": "explain-with-ai",
"isExternal": false,
"children": [],
"disableCollapsible": false
}
],
"disableCollapsible": false
@@ -6594,6 +6658,14 @@
"isExternal": false,
"children": [],
"disableCollapsible": false
},
{
"name": "Explain With AI",
"path": "/ci/troubleshooting/explain-with-ai",
"id": "explain-with-ai",
"isExternal": false,
"children": [],
"disableCollapsible": false
}
]
},
+35 -35
View File
@@ -385,7 +385,7 @@
},
{
"id": "explore-graph",
"name": "Explore your Workspace",
"name": "Explore Your Workspace",
"description": "",
"mediaImage": "",
"file": "shared/features/explore-graph",
@@ -510,17 +510,6 @@
"isExternal": true,
"path": "/ci/features/flaky-tasks",
"tags": []
},
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "",
"itemList": [],
"isExternal": true,
"path": "/ci/features/on-premise",
"tags": []
}
],
"isExternal": false,
@@ -556,7 +545,7 @@
},
"/features/explore-graph": {
"id": "explore-graph",
"name": "Explore your Workspace",
"name": "Explore Your Workspace",
"description": "",
"mediaImage": "",
"file": "shared/features/explore-graph",
@@ -681,17 +670,6 @@
"isExternal": true,
"path": "/ci/features/flaky-tasks",
"tags": []
},
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "",
"itemList": [],
"isExternal": true,
"path": "/ci/features/on-premise",
"tags": []
}
],
"isExternal": false,
@@ -764,17 +742,6 @@
"path": "/ci/features/flaky-tasks",
"tags": []
},
"/ci/features/on-premise": {
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "",
"itemList": [],
"isExternal": true,
"path": "/ci/features/on-premise",
"tags": []
},
"/concepts": {
"id": "concepts",
"name": "Concepts",
@@ -1753,6 +1720,17 @@
"isExternal": false,
"path": "/recipes/react/deploy-nextjs-to-vercel",
"tags": []
},
{
"id": "react-compiler",
"name": "React Compiler with Nx",
"description": "",
"mediaImage": "",
"file": "shared/guides/react-compiler",
"itemList": [],
"isExternal": false,
"path": "/recipes/react/react-compiler",
"tags": []
}
],
"isExternal": false,
@@ -3262,6 +3240,17 @@
"isExternal": false,
"path": "/recipes/react/deploy-nextjs-to-vercel",
"tags": []
},
{
"id": "react-compiler",
"name": "React Compiler with Nx",
"description": "",
"mediaImage": "",
"file": "shared/guides/react-compiler",
"itemList": [],
"isExternal": false,
"path": "/recipes/react/react-compiler",
"tags": []
}
],
"isExternal": false,
@@ -3345,6 +3334,17 @@
"path": "/recipes/react/deploy-nextjs-to-vercel",
"tags": []
},
"/recipes/react/react-compiler": {
"id": "react-compiler",
"name": "React Compiler with Nx",
"description": "",
"mediaImage": "",
"file": "shared/guides/react-compiler",
"itemList": [],
"isExternal": false,
"path": "/recipes/react/react-compiler",
"tags": []
},
"/recipes/angular": {
"id": "angular",
"name": "Angular",
+2 -2
View File
@@ -248,7 +248,7 @@
"description": "",
"file": "shared/features/explore-graph",
"id": "explore-graph",
"name": "Explore your Workspace",
"name": "Explore Your Workspace",
"path": "/features/explore-graph"
},
{
@@ -1134,7 +1134,7 @@
"file": "nx-cloud/features/nx-enterprise-on-prem",
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/features/on-premise"
"path": "/ci/recipes/enterprise/on-premise/on-premise"
}
],
"docker": [
@@ -14,6 +14,7 @@ We provide a recommended version, and it is usually the latest minor version of
| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ |
| --------------- | ------------------------------ | ---------------------------------------- |
| ~18.1.0 | **latest** | >=19.5.0 <=latest |
| ~18.0.0 | **latest** | >=19.1.0 <=latest |
| ~17.3.0 | **latest** | >=18.2.0 <=latest |
| ~17.2.0 | **latest** | >=18.1.1 <=latest |
@@ -110,6 +110,17 @@
"description": "Force the development server to use the 'browser-esbuild' builder when building. This is a developer preview option for the esbuild-based build system. _Note: this is only supported in Angular versions >= 16.1.0_.",
"default": false
},
"inspect": {
"default": false,
"description": "Activate debugging inspector. This option only has an effect when 'SSR' or 'SSG' are enabled. _Note: this is only supported in Angular versions >= 18.1.0_.",
"oneOf": [
{
"type": "string",
"description": "Activate the inspector on host and port in the format of `[[host:]port]`. See the security warning in https://nodejs.org/docs/latest-v22.x/api/cli.html#warning-binding-inspector-to-a-public-ipport-combination-is-insecure regarding the host parameter usage."
},
{ "type": "boolean" }
]
},
"prebundle": {
"description": "Enable and control the Vite-based development server's prebundling capabilities. To enable prebundling, the Angular CLI cache must also be enabled. This option has no effect when using the 'browser' or other Webpack-based builders. _Note: this is only supported in Angular versions >= 17.2.0_.",
"oneOf": [
@@ -135,6 +135,7 @@ It only uses language primitives and immutable objects
- [globAsync](../../devkit/documents/globAsync)
- [hashArray](../../devkit/documents/hashArray)
- [installPackagesTask](../../devkit/documents/installPackagesTask)
- [isDaemonEnabled](../../devkit/documents/isDaemonEnabled)
- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled)
- [joinPathFragments](../../devkit/documents/joinPathFragments)
- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory)
@@ -121,9 +121,9 @@ Generate a 'src/' directory for Next.js
Type: `string`
Choices: [yes, github, circleci, skip]
Choices: [github, circleci, gitlab, azure, bitbucket-pipelines, skip, yes]
Do you want Nx Cloud to make your CI fast?
Which CI provider would you like to use?
### packageManager
+37 -24
View File
@@ -99,7 +99,7 @@
"file": "shared/features/cache-task-results"
},
{
"name": "Explore your Workspace",
"name": "Explore Your Workspace",
"id": "explore-graph",
"tags": ["explore-graph"],
"file": "shared/features/explore-graph"
@@ -179,14 +179,6 @@
"file": "",
"path": "/ci/features/flaky-tasks",
"isExternal": true
},
{
"name": "Set up Nx Cloud On-Premise",
"id": "on-premise",
"description": "Set up Nx Cloud on machines that you control",
"file": "",
"path": "/ci/features/on-premise",
"isExternal": true
}
]
}
@@ -504,6 +496,11 @@
"name": "Deploying Next.js applications to Vercel",
"id": "deploy-nextjs-to-vercel",
"file": "shared/recipes/deployment/deploy-nextjs-to-vercel"
},
{
"name": "React Compiler with Nx",
"id": "react-compiler",
"file": "shared/guides/react-compiler"
}
]
},
@@ -1572,6 +1569,11 @@
"id": "why-nx-cloud",
"file": "nx-cloud/intro/why-nx-cloud"
},
{
"name": "Connect to Nx Cloud",
"id": "connect-to-nx-cloud",
"file": "nx-cloud/intro/connect-to-cloud"
},
{
"name": "Tutorials",
"id": "tutorials",
@@ -1616,6 +1618,12 @@
"description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.",
"file": "shared/features/distribute-task-execution"
},
{
"name": "Nx Cloud AI",
"id": "nx-cloud-ai",
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
"file": "nx-cloud/features/ai-features"
},
{
"name": "Dynamically Allocate Agents",
"description": "Learn how to dynamically allocate agents based on the size of a PR, keeping the balance of speed and cost.",
@@ -1633,13 +1641,6 @@
"id": "flaky-tasks",
"description": "Learn how Nx Cloud is able to automatically identify flaky tasks and re-run them for you.",
"file": "nx-cloud/features/flaky-tasks"
},
{
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"id": "on-premise",
"tags": ["on-premise"],
"file": "nx-cloud/features/nx-enterprise-on-prem"
}
]
},
@@ -1684,11 +1685,6 @@
"description": "Learn how to set up Nx Cloud for your workspace.",
"tags": ["distribute-task-execution"],
"itemList": [
{
"name": "Connect Nx Cloud",
"id": "connect-to-cloud",
"file": "nx-cloud/recipes/connect-to-cloud"
},
{
"name": "Setting up Azure Pipelines",
"id": "monorepo-ci-azure",
@@ -1754,9 +1750,9 @@
"file": "nx-cloud/set-up/github"
},
{
"name": "Enable Bitbucket Cloud PR Integration",
"id": "bitbucket-cloud",
"file": "nx-cloud/set-up/bitbucket-cloud"
"name": "Enable Bitbucket PR Integration",
"id": "bitbucket",
"file": "nx-cloud/set-up/bitbucket"
},
{
"name": "Enable GitLab MR Integration",
@@ -1780,6 +1776,13 @@
"id": "on-premise",
"description": "Manage an on-premise installation of Nx Cloud",
"itemList": [
{
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"id": "on-premise",
"tags": ["on-premise"],
"file": "nx-cloud/features/nx-enterprise-on-prem"
},
{
"name": "Authenticate with a Single Admin",
"id": "auth-single-admin",
@@ -1805,6 +1808,11 @@
"id": "auth-bitbucket",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket"
},
{
"name": "Authenticate with BitBucket Data Center",
"id": "auth-bitbucket-data-center",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center"
},
{
"name": "Authenticate via SAML",
"id": "auth-saml",
@@ -1932,6 +1940,11 @@
"name": "CI Execution Failed",
"id": "ci-execution-failed",
"file": "nx-cloud/troubleshooting/ci-execution-failed"
},
{
"name": "Explain With AI",
"id": "explain-with-ai",
"file": "nx-cloud/troubleshooting/explain-with-ai"
}
]
}
@@ -2,15 +2,7 @@
## Troubleshooting and Verbose Logging
To help troubleshoot installations, add the following env variables when starting the container:
```
-e NX_VERBOSE_LOGGING=true
-e NX_API_LOG_LEVEL=DEBUG
-e NX_MONGO_LOG_LEVEL=DEBUG
```
or if using helm set `verboseLogging` to `'true'`:
To help troubleshoot installations set `verboseLogging` to `'true'`:
```yaml
image:
@@ -30,10 +22,6 @@ source [MongoDB Kubernetes Operator](https://github.com/mongodb/mongodb-kubernet
your own deployment of MongoDB. See [the Nx Cloud Kubernetes example](https://github.com/nrwl/nxcloud-k8s-setup) for
more information.
### Using CosmosDB
If you are deploying to Azure, you might have access to CosmosDB. See here for more information.
### Using Mongo Atlas
[Mongo Atlas](https://mongodb.com/) is a great option for deploying MongoDB.
@@ -116,6 +116,7 @@ nxCloudAppURL: 'https://nx-cloud.on.my-domain.ca' # make sure no backslash is at
# we do not support self-hosted bitbucket instances
#bitbucket:
# apiUrl: '' (if using Data Center/on-prem)
# auth:
# enabled: false
@@ -0,0 +1,23 @@
# BitBucket Data Center Auth
This page is for configuring auth via BitBucket Data Center (on-prem). If you are using BitBucket Cloud please refer to the docs [here](/ci/recipes/enterprise/on-premise/auth-bitbucket).
Before creating your container, your Bitbucket Data Center admin will need to create an "Application Link".
## Creating an Application Link
Your BitBucket installation admin will need to navigate to their installation settings:
![Step 1](/nx-cloud/enterprise/on-premise/images/bitbucket_onprem_1.png)
Then "Application Links":
![Step 2](/nx-cloud/enterprise/on-premise/images/bitbucket_onprem_2.png)
And create a new link using the settings below (make sure the callback URL is pointed to your BitBucket installation):
![Step 3](/nx-cloud/enterprise/on-premise/images/bitbucket_onprem_3.png)
## Connect your Nx Cloud installation to your new app
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
@@ -1,8 +1,8 @@
# BitBucket Auth
# BitBucket Cloud Auth
Nx Private Cloud currently only support **public** BitBucket auth. On-prem installation of BitBucket Server are currently not supported.
This page is only for BitBucket Cloud (bitbucket.org). If you have an on-premise version of BitBucket Data Center please refer to the docs [here](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center).
Before creating your container, you'll need to create a BitBucket "OAuth consumer" for your organisation.
First, you'll need to create a BitBucket "OAuth consumer" for your organisation.
## Creating a BitBucket OAuth consumer
@@ -45,11 +45,4 @@ Once you create, keep a note of the Key and the Secret:
## Connect your Nx Cloud installation to your new app
Provide the following env variables to the `nx-cloud-frontend` container:
- `BITBUCKET_APP_ID`
- `BITBUCKET_APP_SECRET`
{% callout title="Helm Chart Environment Variables" %}
If you are using our Helm chart, you can find all the information you need about env variables in [the Helm chart repository](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md).
{% /callout %}
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
@@ -41,49 +41,4 @@ And then generate a new client secret, and save it somewhere secure (we'll use i
## Configure Nx Cloud Installation
### Using Helm:
```yaml
image:
tag: 'latest'
nxCloudAppURL: 'https://nx-cloud.myorg.com'
github:
auth:
enabled: true
secret:
name: 'cloudsecret'
nxCloudMongoServerEndpoint: 'NX_CLOUD_MONGO_SERVER_ENDPOINT'
githubAuthClientId: 'GITHUB_AUTH_CLIENT_ID'
githubAuthClientSecret: 'GITHUB_AUTH_CLIENT_SECRET'
```
Note that the secret must contain `GITHUB_AUTH_CLIENT_ID` and `GITHUB_AUTH_CLIENT_SECRET` (
see [Nx Cloud Helm Charts](https://github.com/nrwl/nx-cloud-helm) for more context).
### Not using Helm:
Provide the following env variables to the `nx-cloud-frontend` container:
- `GITHUB_AUTH_CLIENT_ID`
- `GITHUB_AUTH_CLIENT_SECRET`
{% callout title="Helm Chart Environment Variables" %}
If you are using our Helm chart, you can find all the information you need about env variables in [the Helm chart repository](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md).
{% /callout %}
## GitHub Enterprise
If you are running a self-hosted version of GitHub (Enterprise Server), you will need to configure one additional
environment variable:
`GITHUB_API_URL=https://custom-github-instance.com`
This will point all auth endpoints to your GitHub server (rather the public one).
{% callout type="check" title="Good to know!" %}
The above environment variable, also helps with setting up the GitHub app integration, so you can have Nx Cloud build
stats directly on your pull request. See full set up instructions [here](/ci/recipes/source-control-integration/github).
{% /callout %}
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
@@ -37,19 +37,4 @@ Once you create, keep a note of the Client ID and the Secret:
## Connect your Nx Cloud installation to your new app
Provide the following env variables to the `nx-cloud-frontend` container:
- `GITLAB_APP_ID`
- `GITLAB_APP_SECRET`
{% callout title="Helm Chart Environment Variables" %}
If you are using our Helm chart, you can find all the information you need about env variables in [the Helm chart repository](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md).
{% /callout %}
## Self-hosted GitLab
If you are running a self-hosted version of GitLab, you will need to configure one additional environment variable:
`GITLAB_API_URL=https://custom-gitlab-instance.com`
This will point all the auth endpoints to your GitLab server (rather the public one).
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
@@ -130,30 +130,6 @@ if you are interested.
![Okta 10](/nx-cloud/enterprise/on-premise/images/saml/okta_10.png)
12. Then add these two env vars to your secrets (see [Helm config](#helm-config) below):
1. `SAML_CERT=<your-cert-string-from-above>`
2. `SAML_ENTRY_POINT=<your-login-url-from-above>`
## Helm config
If you are using [Helm to deploy Nx Cloud](https://github.com/nrwl/nx-cloud-helm) you
will need to configure the below two values, as well as make the `SAML_CERT` and `SAML_ENTRY_POINT`
env vars as secrets:
```yaml
# helm-values.yml
addonUnlockKey: '<your-unlock-key>'
saml:
enabled: true
# secrets.yml
apiVersion: v1
kind: Secret
metadata:
name: nxcloudsecret
type: Opaque
stringData:
SAML_CERT: '-----BEGIN CERTIFICATE-----\nblablablabla\n-----END CERTIFICATE-----\n'
SAML_ENTRY_POINT: 'https://some-oktaurl.com/sso/saml'
```
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
@@ -36,6 +36,7 @@ For instructions on how to set up third-party auth providers, please refer to th
- [GitHub Auth](/ci/recipes/enterprise/on-premise/auth-github)
- [GitLab Auth](/ci/recipes/enterprise/on-premise/auth-gitlab)
- [BitBucket Auth](/ci/recipes/enterprise/on-premise/auth-bitbucket)
- [BitBucket Data Center Auth](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center)
- [SAML Auth](/ci/recipes/enterprise/on-premise/auth-saml)
## Inviting users
Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

+37
View File
@@ -0,0 +1,37 @@
# Nx Cloud AI
To use AI in Nx Cloud, you need to enable AI features in your organization settings. This will unlock advanced capabilities designed to enhance your development workflow.
### How to Enable AI Features
1. **Navigate to Organization Settings**:
- Go to your [Nx Cloud dashboard](https://cloud.nx.app/orgs?utm_source=nx.dev&utm_campaign=ai).
- Select your organization from the list.
- Access the settings by clicking on the settings icon.
2. **Enable AI Features**:
- In the settings menu, locate the **AI Features** section.
- Toggle the setting to **On**.
![enable ai features](/nx-cloud/features/ai-features.png)
3. **Accept AI Terms**:
- Once the AI features are enabled, a terms and conditions prompt will appear.
- Review and accept the terms and conditions related to AI usage to proceed.
### AI Driven Capabilities
Once AI features are enabled, you gain access to several powerful tools designed to optimize your development process:
#### Explain with AI
This feature leverages AI to provide detailed explanations and insights about failed tasks. [Learn more about "Explain with AI" here.](/ci/troubleshooting/explain-with-ai)
#### Automatic Resource Allocation (Coming Soon)
This feature leverages custom AI/ML models to dynamically allocate resources based on your projects specific needs. It optimizes performance by efficiently assigning Nx Agents to achieve target durations for main and PR branches.
### Transform Your Workflow
By enabling AI features in Nx Cloud, youre setting your organization up for a more intelligent and efficient development workflow. Stay tuned for the release of these powerful AI driven tools and take your development process to the next level.
Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

+4
View File
@@ -14,6 +14,10 @@ Implementing an efficient CI setup for monorepos - while crucial - can be challe
[Create an account on Nx Cloud](https://cloud.nx.app) and connect your repository.
```shell
npx nx connect
```
## Learn about Nx on CI
{% cards cols="2" lgCols="4" mdCols="4" smCols="2" %}
+44
View File
@@ -0,0 +1,44 @@
# Connect to Nx Cloud
Nx Cloud directly integrates with your existing CI setup.
![Nx Cloud Overview](/shared/images/nx-cloud/nx-cloud-overview.webp)
In a nutshell, here's how this works:
**Step 1: Connect your workspace to Nx Cloud**
This can be done by signing up on [nx.app](https://nx.app) and then connecting to your git repository.
```shell
npx nx connect
```
**Step 2: Your CI script triggers Nx Cloud**
```yml
- name: Start CI run
run: 'npx nx-cloud start-ci-run --distribute-on="8 linux-medium-js"'
```
Let us generate the workflow file for you, if you don't already have one.
```shell
npx nx g ci-workflow
```
Or, check out our [recipes for the various CI providers](/ci/recipes/set-up).
**Step 3: Run your Nx commands as usual**
```yml
- run: npx nx-cloud record -- node tools/custom-script.js
- run: npx nx affected -t lint test build
- run: npx nx affected -t e2e-ci --parallel 1
```
All these commands are automatically picked up by Nx Cloud, split up into smaller tasks and distributed across the specified number of machines. Nx Cloud works with Nx tasks automatically, or you can [record non-Nx commands with `nx-cloud record`](/ci/recipes/other/record-commands).
**Step 4: All results are played back automatically**
Nx Cloud automatically plays back all results to your CI system, as if distribution never happened. You can continue doing post-processing on the results, like uploading test reports, deploying artifacts etc.
+4 -34
View File
@@ -5,7 +5,7 @@ src="https://youtu.be/4VI-q943J3o"
title="Fast CI for monorepos"
width="100%" /%}
If CI feels challenging to you, **it might not be your fault**. It's a fundamental issue with how the current, traditional CI execution model works. Nx Cloud adopts a new **task-based** CI model which allows you to overcome both the slowness and unreliability of the current VM-based CI model. _(Dive deeper into the task based CI execution model [in this blog post](https://blog.nrwl.io/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness-6849fd4b4037))_
If CI feels challenging to you, **it might not be your fault**. It's a fundamental issue with how the current, traditional CI execution model works. Nx Cloud adopts a new **task-based** CI model which allows you to overcome both the slowness and unreliability of the current VM-based CI model. _(Dive deeper into the task based CI execution model [in this blog post](/blog/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness))_
Nx Cloud addresses critical aspects of CI/CD, including:
@@ -21,43 +21,13 @@ All this is possible because Nx Cloud directly integrates with Nx and has knowle
Read more about individual features of Nx Cloud in the [features section](/ci/features).
## How does Nx Cloud integrate into my existing CI setup
## Integrate Nx Cloud into my CI setup
Nx Cloud directly integrates with your existing CI setup.
![Nx Cloud Overview](/shared/images/nx-cloud/nx-cloud-overview.webp)
In a nutshell, here's how this works:
**Step 1: Connect your workspace to Nx Cloud**
This can be done by signing up on [nx.app](https://nx.app) and then connecting to your git repository. Read more about all the details [on this doc page](/ci/recipes/set-up/connect-to-cloud).
**Step 2: Your CI script triggers Nx Cloud**
```yml
- name: Start CI run
run: 'npx nx-cloud start-ci-run --distribute-on="8 linux-medium-js"'
```
Check out our [recipes for the various CI providers](/ci/recipes/set-up).
**Step 3: Run your Nx command as usual**
```yml
- run: npx nx-cloud record -- nx format:check
- run: npx nx affected -t lint test build e2e-ci
```
All these commands are automatically picked up by Nx Cloud, split up into smaller tasks and distributed across the specified number of machines.
**Step 4: All results are played back automatically**
Nx Cloud automatically plays back all results to your CI system, as if distribution never happened. You can continue doing post-processing on the results, like uploading test reports, deploying artifacts etc.
Ready to experience fast CI? Read the [connect to Nx Cloud](/ci/intro/connect-to-nx-cloud) page for more details.
## Learn more
- [Blog post: Reliable CI: A new execution model fixing both flakiness and slowness](https://blog.nrwl.io/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness-6849fd4b4037?source=friends_link&sk=6747bb77c92772a5f885a61127cb5c0b)
- [Blog post: Reliable CI: A new execution model fixing both flakiness and slowness](/blog/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness)
- [Live stream: Unlock the secret of fast CI - Hands-on session](https://www.youtube.com/live/rkLKaqLeDa0)
- [Webinar: Nx Agents Walkthrough: Effortlessly Fast CI Built for Monorepos](https://go.nx.dev/march-webinar?utm_source=nx_cloud&utm_medium=nxdocs&utm_campaign=nx_agents&utm_id=devrel)
- [Youtube: 10x Faster e2e Tests](https://www.youtube.com/watch?v=0YxcxIR7QU0)
-33
View File
@@ -1,33 +0,0 @@
# Connect to Nx Cloud
Create an account on [nx.app](https://nx.app). There are several ways to connect your repository to Nx Cloud.
#### Connect Directly Through GitHub
If your repository is hosted on GitHub, we recommend you create an Nx Cloud organization based on your GitHub organization.
![Connect Your VCS Account](/nx-cloud/tutorial/connect-vcs-account.png)
After that, connect you repository.
![Connect Your Repository](/nx-cloud/tutorial/connect-repository.png)
This will send a pull request to your repository that will add the `nxCloudAccessToken` property to `nx.json`.
![Nx Cloud Setup PR](/nx-cloud/tutorial/nx-cloud-setup-pr.png)
This wires up all the CI for you and configures access. Folks who can see your repository can see your workspace on nx.app.
## Manually Connect Your Workspace
If your repository is hosted on a different source control provider, you can also connect to Nx Cloud manually. You'll need to add a source control integration later to enable [Nx Agents](/ci/features/distribute-task-execution).
Run the following command in your repository:
```shell
pnpm nx connect
```
Click the link in the terminal to claim your workspace on [nx.app](https://nx.app).
The command generates an `nxCloudAccessToken` property inside of `nx.json`. This is a read-only token that should be committed to the repository.
+1 -1
View File
@@ -22,5 +22,5 @@ Data is encrypted both at rest and in transit.
- Every communication with the Nx Cloud API is encrypted in transit, including fetching/storing artifacts.
- When using Nx Public Cloud, the stored metadata is encrypted.
- When using Nx Public Cloud and e2e encryption, stored artifacts are encrypted.
- When using the on-prem version of Nx Cloud, the stored metadata is encrypted if you run MongoDB yourself with encryption on (or if you, for instance, use CosmosDB)
- When using the on-prem version of Nx Cloud, the stored metadata is encrypted if you run MongoDB yourself with encryption on
- When using the on-prem version of Nx Cloud, stored artifacts are encrypted using e2e encryption.
+2 -2
View File
@@ -286,7 +286,7 @@ This is one of our biggest Nx Cloud On-Prem releases. It also marks a change in
A few months ago we announced a complete re-design of the Nx Cloud UI! It's faster, easier to use and pleasant to look at! We're now bringing this to On-Prem users as well:
You can read more about it in our [announcement blog post](https://blog.nrwl.io/nx-cloud-3-0-faster-more-efficient-modernized-36ac5ae33b86).
You can read more about it in our [announcement blog post](/blog/nx-cloud-3-0-faster-more-efficient-modernized).
##### Pricing updates
@@ -310,7 +310,7 @@ We completely re-wrote our Task Distribution engine, which should result in much
We've also added a new internal task queueing system, which should further improve the performance of DTE. While this is an implementation detail which will be automatically enabled in future releases, you can test it out today by setting [`enableMessageQueue: true`](https://github.com/nrwl/nx-cloud-helm/blob/main/charts/nx-cloud/values.yaml#L18) in your Helm config.
You can read more about the recent DTE improvements in our [Nx Cloud 3.0 blog post](https://blog.nrwl.io/nx-cloud-3-0-faster-more-efficient-modernized-36ac5ae33b86).
You can read more about the recent DTE improvements in our [Nx Cloud 3.0 blog post](/blog/nx-cloud-3-0-faster-more-efficient-modernized).
##### Misc updates
Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

-35
View File
@@ -1,35 +0,0 @@
# Enable Bitbucket Cloud PR Integration
## Get Started
The Nx Cloud + Bitbucket Cloud Integration lets you access the result of every run—with all its logs and build insights—straight from your PR.
## Connecting Your Workspace
![Access VCS Setup](/nx-cloud/set-up/access-vcs-setup.webp)
Once on the VCS Integrations setup page, select "Bitbucket". You will be prompted to enter the name of your workspace and its repository slug.
Identifying your workspace name and repository slug can be done by looking at the URL from Bitbucket.
```
https://bitbucket.org/[workspace]/[repository-slug]/src/main/
```
For example, the url `https://bitbucket.org/nrwl/large-monorepo/src/main/` has a workspace name of "nrwl", and a repository slug of "large-monorepo".
![Add Bitbucket Cloud Repository](/nx-cloud/set-up/add-bitbucket-cloud-repository.webp)
### Configuring Authentication
#### Using an App Password
To use an app password for authentication, one must be generated with proper permissions. The minimum required permissions are write access to PRs.
![Create App Password](/nx-cloud/set-up/minimal-bitbucket-cloud-app-password.webp)
Once the app password is created, verify the username is correct, paste the value, and then click "Connect". This will verify that Nx Cloud can connect to your repo. Upon a successful test, your configuration is saved, and setup is complete.
{% callout type="note" title="Use the correct username" %}
Make sure that you are using your Bitbucket username, found on the [account settings](https://bitbucket.org/account/settings/) screen, and not your email address.
{% /callout %}
Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

+46
View File
@@ -0,0 +1,46 @@
# Enable Bitbucket Integration
## Get Started
The Nx Cloud + Bitbucket Integration lets you access the result of every run—with all its logs and build insights—straight from your PR.
### Allow NxCloud to authenticate to your BitBucket repository
#### Using an App Password
If you are using BitBucket Cloud (bitbucket.org) and are not self-hosting it, you can enable an ["app password" for authentication](https://support.atlassian.com/bitbucket-cloud/docs/create-an-app-password).
The minimum required permissions are write access to PRs:
![Create App Password](/nx-cloud/set-up/minimal-bitbucket-cloud-app-password.webp)
Once the app password is created, save it in a secure location and then head back to your workspace settings on NxCloud and let's set up a BitBucket integration:
![Access VCS Setup](/nx-cloud/set-up/access-vcs-setup.webp)
1. Fill-in all the required fields for selecting your Bitbucket repository
2. Username is found on the [account settings](https://bitbucket.org/account/settings/) screen (it is not your email address)
3. Paste your app password created earlier into the Access Token box
4. That's it!
#### Using an HTTP Access Tokens
If you are using BitBucket Data Center (on-prem) you need to enable ["HTTP Access Tokens" for authentication](https://confluence.atlassian.com/bitbucketserver/http-access-tokens-939515499.html).
{% callout type="note" title="User linked access tokens" %}
Due to the type of APIs NxCloud needs to call, we need to create an access [**at the user level**](https://confluence.atlassian.com/bitbucketserver/http-access-tokens-939515499.html). Repo level access tokens will not work.
{% /callout %}
The minimum required permissions are write access to the repository:
![Create an HTTP Access Token](/nx-cloud/set-up/bitbucket-data-center-access-token.png)
Once the token is created, save it in a secure location and then head back to your workspace settings on NxCloud and let's set up a BitBucket integration:
![Access VCS Setup](/nx-cloud/set-up/access-vcs-setup.webp)
1. Fill-in all the required fields for selecting your Bitbucket repository
2. Username is found on the [account settings](https://your-bitbucket-instance.com/profile) screen (it is not your email address)
3. Paste your access token created earlier into the Access Token box
4. Make sure you give NxCloud the URL of your BitBucket instance (this can be in the simple form of `https://your-bitbucket-instance.com`)
5. That's it!
Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

@@ -0,0 +1,78 @@
# Explain with AI (beta)
"Explain with AI" in Nx Cloud leverages artificial intelligence to provide detailed explanations and insights for failed task outputs.
This feature helps developers understand complex errors quickly and offers suggestions for improvements, making the debugging process more efficient.
With the power of Nx Cloud, all explanations will be provided with additional context from Nx targets and metadata. This ensures that the AI responses have the correct context related to your failed task. This means that if you're trying to debug failed Gradle tasks, the AI will know to help you specifically with Gradle.
## What You Need to Enable This Feature
To use the "Explain with AI" feature, you need to [enable AI features for your organization](/ci/features/nx-cloud-ai).
- For enterprise on-prem customers, this feature is not enabled by default. You need to explicitly [enable AI features through environment flags](#how-to-enable-ai-features-for-enterprise-onprem-installations).
- For public cloud users, the AI feature is enabled automatically, [except for those in the EU due to regional restrictions](#regional-availability).
- This feature is not available for hobby (free) plans on Nx Cloud.
## How to Use
{% callout type="check" title="Authentication Required" %}
If you don't see the "Explain with AI" button, make sure that you are logged into the application.
{% /callout %}
1. **Access the Task**:
- First, navigate to the Nx Cloud dashboard and locate the task that failed.
- Click on the task to open the detailed view.
2. **Initiate AI Explanation**:
- Within the task details, find the "Explain with AI" button.
- Click on this button to start the AI analysis.
![explain with ai button](/nx-cloud/troubleshooting/explain-with-ai-1.png)
3. **Review the Explanation**:
- The AI will analyze the error log with additional context from the project task and provide a detailed explanation of the failure.
- It will also offer suggestions on how to resolve the issue.
![explain response](/nx-cloud/troubleshooting/explain-with-ai-2.png)
4. **Implement the Suggestions**:
- Go through the AI-generated suggestions carefully.
- Apply the recommended changes to your codebase.
5. **Verify the Fix**:
- After making the changes, rerun the task to see if the issue is resolved.
6. **Mark answer as not helpful** (optional):
- If the suggested changes did not help you, click on "Set answer as not helpful". This allows us to continuously improve the responses.
## How to Enable AI Features for Enterprise On-Prem Installations
To enable AI features for enterprise on-prem installations, add the following configuration to your `helm-values.yaml` file:
```yaml
nxApi
deployment:
env:
- name: NX_CLOUD_AI_ENABLED
value: 'true'
frontend
deployment:
env:
- name: OPENAI_SECRET_KEY
valueFrom:
secretKeyRef:
name: open-ai-secrets
key: OPENAI_SECRET_KEY
- name: NX_CLOUD_AI_ENABLED
value: 'true'
```
Make sure your OpenAI secret key is correctly configured to provide the necessary credits for `gpt-3.5-turbo` and `gpt-4o`.
### Regional Availability
This feature is not available for the EU cluster in public cloud installations due to regional restrictions. However, on-prem customers in the EU can still use this feature by providing their own OpenAI secret key and enabling the required environment variables.
@@ -37,7 +37,7 @@ For a more thorough explanation of how Nx Agents optimizes your CI pipeline, rea
To enable task distribution with Nx Agents, there are two requirements:
1. Enable version control system integration. The integrations currently available are [GitHub](/ci/recipes/source-control-integration/github), [GitLab](/ci/recipes/source-control-integration/gitlab), [Bitbucket](/ci/recipes/source-control-integration/bitbucket-cloud) and [Azure DevOps](/ci/recipes/source-control-integration/azure-devops). These integrations can be enabled from your [Nx Cloud dashboard](https://nx.app).
1. Enable version control system integration. The integrations currently available are [GitHub](/ci/recipes/source-control-integration/github), [GitLab](/ci/recipes/source-control-integration/gitlab), [Bitbucket](/ci/recipes/source-control-integration/bitbucket) and [Azure DevOps](/ci/recipes/source-control-integration/azure-devops). These integrations can be enabled from your [Nx Cloud dashboard](https://nx.app).
2. Add a single line to your CI pipeline configuration.
Add the `start-ci-run` command to your CI pipeline configuration after checking out the repository and before installing `node_modules`:
+1 -1
View File
@@ -10,7 +10,7 @@ In this diagram, Teika runs the build once on his machine, then CI, Kimiko and J
## Setting Up Nx Cloud
To use **Nx Replay** you need to connect your workspace to Nx Cloud. See the [connect to Nx Cloud recipe](/ci/recipes/set-up/connect-to-cloud).
To use **Nx Replay** you need to connect your workspace to Nx Cloud. See the [connect to Nx Cloud recipe](/ci/intro/connect-to-nx-cloud).
## See Remote Caching in Action
+24 -22
View File
@@ -17,10 +17,32 @@ Find out more about [why you should use Nx](/getting-started/why-nx) or browse o
## Try Nx Yourself!
```shell
npx create-nx-workspace@latest
{% side-by-side %}
```shell {% title="Create a new workspace" %}
npx create-nx-workspace
```
```shell {% title="Add Nx to an existing workspace" %}
npx nx init
```
{% /side-by-side %}
Also, here are some recipes that give you more details based on the technology stack you're using:
{% cards cols="2" mdCols="4" smCols="2" moreLink="/recipes/adopting-nx" %}
{% link-card title="Add to Existing Monorepo" appearance="small" url="/recipes/adopting-nx/adding-to-monorepo" icon="pnpm" /%}
{% link-card title="Add to Any Project" appearance="small" url="/recipes/adopting-nx/adding-to-existing-project" icon="nx" /%}
{% link-card title="Migrate from Angular CLI" appearance="small" url="/recipes/angular/migration/angular" icon="angular" /%}
{% /cards %}
{% /tab %}
{% /tabs %}
## Learn Nx
{% cards cols="2" lgCols="4" mdCols="4" smCols="2" %}
@@ -57,26 +79,6 @@ npx create-nx-workspace@latest
{% /cards %}
## Have an Existing Project? Add Nx to it!
If you have an existing project and want to adopt Nx or migrate to Nx just run the following command which guides you through the migration process:
```shell
npx nx@latest init
```
Alternatively, here are some recipes that give you more details based on the technology stack you're using:
{% cards cols="2" mdCols="4" smCols="2" moreLink="/recipes/adopting-nx" %}
{% link-card title="Add to Existing Monorepo" appearance="small" url="/recipes/adopting-nx/adding-to-monorepo" icon="pnpm" /%}
{% link-card title="Add to Any Project" appearance="small" url="/recipes/adopting-nx/adding-to-existing-project" icon="nx" /%}
{% link-card title="Migrate from Angular CLI" appearance="small" url="/recipes/angular/migration/angular" icon="angular" /%}
{% /cards %}
## Pick Your Stack!
{% cards cols="3" lgCols="8" mdCols="6" smCols="5" moreLink="/showcase/example-repos" %}
+43
View File
@@ -0,0 +1,43 @@
# React Compiler with Nx
React 19 comes with an experimental compiler that optimizes application code to automatically memoize code. Read the [official React Compiler documentation](https://react.dev/learn/react-compiler) for more information.
## Enabling React Compiler in Nx Projects
For Nx projects using Babel and the `@nx/react/babel` preset, install the `babel-plugin-react-compiler` package and enable it with the `reactCompiler` option.
```json {% highlightLines=[7] %}
{
"presets": [
[
"@nx/react/babel",
{
"runtime": "automatic",
"reactCompiler": true
}
]
],
"plugins": []
}
```
You can also pass an object to set compiler options.
```json {% highlightLines=["7-9"] %}
{
"presets": [
[
"@nx/react/babel",
{
"runtime": "automatic",
"reactCompiler": {
"compilationMode": "annotation"
}
}
]
],
"plugins": []
}
```
Check the [React Compiler usage docs](https://react.dev/learn/react-compiler#installation) for all support setups, such as Vite, Remix, etc.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 KiB

@@ -14,6 +14,7 @@ We provide a recommended version, and it is usually the latest minor version of
| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ |
| --------------- | ------------------------------ | ---------------------------------------- |
| ~18.1.0 | **latest** | >=19.5.0 <=latest |
| ~18.0.0 | **latest** | >=19.1.0 <=latest |
| ~17.3.0 | **latest** | >=18.2.0 <=latest |
| ~17.2.0 | **latest** | >=18.1.1 <=latest |
+8 -4
View File
@@ -16,7 +16,7 @@
- [Features](/features)
- [Run Tasks](/features/run-tasks)
- [Cache Task Results](/features/cache-task-results)
- [Explore your Workspace](/features/explore-graph)
- [Explore Your Workspace](/features/explore-graph)
- [Generate Code](/features/generate-code)
- [Automate Updating Dependencies](/features/automate-updating-dependencies)
- [Enforce Module Boundaries](/features/enforce-module-boundaries)
@@ -76,6 +76,7 @@
- [Adding Images, Fonts, and Files](/recipes/react/adding-assets-react)
- [Setup Module Federation with SSR for React](/recipes/react/module-federation-with-ssr)
- [Deploying Next.js applications to Vercel](/recipes/react/deploy-nextjs-to-vercel)
- [React Compiler with Nx](/recipes/react/react-compiler)
- [Angular](/recipes/angular)
- [Migration](/recipes/angular/migration)
- [Migrating from Angular CLI](/recipes/angular/migration/angular)
@@ -245,6 +246,7 @@
- [Intro](/ci/intro)
- [CI with Nx](/ci/intro/ci-with-nx)
- [Why Nx Cloud?](/ci/intro/why-nx-cloud)
- [Connect to Nx Cloud](/ci/intro/connect-to-nx-cloud)
- [Tutorials](/ci/intro/tutorials)
- [Circle CI with Nx](/ci/intro/tutorials/circle)
- [GitHub Actions with Nx](/ci/intro/tutorials/github-actions)
@@ -252,10 +254,10 @@
- [Run Only Tasks Affected by a PR](/ci/features/affected)
- [Use Remote Caching (Nx Replay)](/ci/features/remote-cache)
- [Distribute Task Execution (Nx Agents)](/ci/features/distribute-task-execution)
- [Nx Cloud AI](/ci/features/nx-cloud-ai)
- [Dynamically Allocate Agents](/ci/features/dynamic-agents)
- [Automatically Split E2E Tasks (Atomizer)](/ci/features/split-e2e-tasks)
- [Identify and Re-run Flaky Tasks](/ci/features/flaky-tasks)
- [Set up Nx Cloud On-Premise](/ci/features/on-premise)
- [Concepts](/ci/concepts)
- [The Building Blocks of Fast CI](/ci/concepts/building-blocks-fast-ci)
- [Reduce Wasted Time in CI](/ci/concepts/reduce-waste)
@@ -263,7 +265,6 @@
- [Cache Security](/ci/concepts/cache-security)
- [Recipes](/ci/recipes)
- [Set Up CI](/ci/recipes/set-up)
- [Connect Nx Cloud](/ci/recipes/set-up/connect-to-cloud)
- [Setting up Azure Pipelines](/ci/recipes/set-up/monorepo-ci-azure)
- [Setting up CircleCI](/ci/recipes/set-up/monorepo-ci-circle-ci)
- [Setting up GitHub Actions](/ci/recipes/set-up/monorepo-ci-github-actions)
@@ -276,16 +277,18 @@
- [Enable End to End Encryption](/ci/recipes/security/encryption)
- [Source Control Integration](/ci/recipes/source-control-integration)
- [Enable GitHub PR Integration](/ci/recipes/source-control-integration/github)
- [Enable Bitbucket Cloud PR Integration](/ci/recipes/source-control-integration/bitbucket-cloud)
- [Enable Bitbucket PR Integration](/ci/recipes/source-control-integration/bitbucket)
- [Enable GitLab MR Integration](/ci/recipes/source-control-integration/gitlab)
- [Enable Azure DevOps PR Integration](/ci/recipes/source-control-integration/azure-devops)
- [Enterprise](/ci/recipes/enterprise)
- [On-Premise](/ci/recipes/enterprise/on-premise)
- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise)
- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin)
- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github)
- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup)
- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab)
- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket)
- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center)
- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml)
- [Authenticate via SAML on Managed Version](/ci/recipes/enterprise/on-premise/auth-saml-managed)
- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config)
@@ -309,6 +312,7 @@
- [Release Notes](/ci/reference/release-notes)
- [Troubleshooting](/ci/troubleshooting)
- [CI Execution Failed](/ci/troubleshooting/ci-execution-failed)
- [Explain With AI](/ci/troubleshooting/explain-with-ai)
- Nx-api
- [angular](/nx-api/angular)
+1 -1
View File
@@ -1307,5 +1307,5 @@ Also, make sure you
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
- [Read our Nx blog](https://blog.nrwl.io/)
- [Read our Nx blog](/blog)
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
+1 -1
View File
@@ -1114,5 +1114,5 @@ Also, make sure you
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
- [Read our Nx blog](https://blog.nrwl.io/)
- [Read our Nx blog](/blog)
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
+1 -1
View File
@@ -343,5 +343,5 @@ Connect with the rest of the Nx community with these resources:
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about
Nx.
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
- [Read our Nx blog](https://blog.nrwl.io/)
- [Read our Nx blog](/blog)
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
+1 -1
View File
@@ -444,5 +444,5 @@ Connect with the rest of the Nx community with these resources:
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
- [Read our Nx blog](https://blog.nrwl.io/)
- [Read our Nx blog](/blog)
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
+3 -5
View File
@@ -509,7 +509,7 @@ export default App;
Serving your app (`nx serve react-store`) and then navigating to `/products` should give you the following result:
![products route](/shared/images/tutorial-react-standalone/react-tutorial-products-route.png)
![products route](/shared/tutorials/react-tutorial-products-route.png)
Let's apply the same for our `orders` library.
@@ -1026,9 +1026,7 @@ NX Ran target lint for 7 projects (2s)
- nx run products:lint
```
If you have the ESLint plugin installed in your IDE you should immediately see an error:
![ESLint module boundary error](/shared/images/tutorial-react-standalone/react-standalone-module-boundaries.png)
If you have the ESLint plugin installed in your IDE you should also immediately see an error.
Learn more about how to [enforce module boundaries](/features/enforce-module-boundaries).
@@ -1106,5 +1104,5 @@ Also, make sure you
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
- [Read our Nx blog](https://blog.nrwl.io/)
- [Read our Nx blog](/blog)
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
@@ -0,0 +1,248 @@
{
"project": {
"name": "react-app",
"type": "lib",
"data": {
"root": ".",
"targets": {
"vite:build": {
"options": {
"cwd": ".",
"command": "vite build"
},
"cache": true,
"dependsOn": ["^vite:build"],
"inputs": [
"default",
"^default",
{
"externalDependencies": ["vite"]
}
],
"outputs": ["{projectRoot}/dist"],
"executor": "nx:run-commands",
"configurations": {}
},
"build": {
"executor": "nx:run-script",
"metadata": {
"scriptContent": "nx vite:build",
"runCommand": "npm run build"
},
"cache": true,
"dependsOn": ["typecheck"],
"options": {
"script": "build"
},
"configurations": {}
}
},
"sourceRoot": ".",
"name": "react-app",
"projectType": "library",
"metadata": {
"targetGroups": {
"NPM Scripts": ["build"]
}
},
"implicitDependencies": [],
"tags": []
}
},
"sourceMap": {
"root": ["package.json", "nx/core/package-json-workspaces"],
"targets": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.options": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.cache": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.dependsOn": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.inputs": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.outputs": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.executor": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.options.command": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve.options": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve.executor": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve.options.command": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:preview": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:preview.options": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:preview.executor": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:preview.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:preview.options.command": [
"vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve-static": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve-static.executor": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve-static.options": ["vite.config.ts", "@nx/vite/plugin"],
"targets.serve-static.options.buildTarget": [
"vite.config.ts",
"@nx/vite/plugin"
],
"targets.serve-static.options.spa": ["vite.config.ts", "@nx/vite/plugin"],
"targets.eslint:lint": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.cache": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.options": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.inputs": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.outputs": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.executor": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.options.cwd": [".eslintrc.cjs", "@nx/eslint/plugin"],
"targets.eslint:lint.options.command": [
".eslintrc.cjs",
"@nx/eslint/plugin"
],
"targets.typecheck": ["package.json", "nx/core/package-json-workspaces"],
"targets.typecheck.executor": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.typecheck.options": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.typecheck.metadata": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.typecheck.cache": ["nx.json", "nx/core/target-defaults"],
"targets.typecheck.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.typecheck.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.typecheck.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build": ["package.json", "nx/core/package-json-workspaces"],
"targets.build.executor": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.options": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.metadata": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.cache": ["nx.json", "nx/core/target-defaults"],
"targets.build.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.lint": ["package.json", "nx/core/package-json-workspaces"],
"targets.lint.executor": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.lint.options": ["package.json", "nx/core/package-json-workspaces"],
"targets.lint.metadata": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.lint.cache": ["nx.json", "nx/core/target-defaults"],
"targets.lint.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.lint.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.lint.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
],
"sourceRoot": ["package.json", "nx/core/package-json-workspaces"],
"name": ["package.json", "nx/core/package-json-workspaces"],
"projectType": ["package.json", "nx/core/package-json-workspaces"],
"metadata.targetGroups": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.0": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.1": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.2": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.3": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.4": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.dev": ["package.json", "nx/core/package-json-workspaces"],
"targets.dev.executor": ["package.json", "nx/core/package-json-workspaces"],
"targets.dev.options": ["package.json", "nx/core/package-json-workspaces"],
"targets.dev.metadata": ["package.json", "nx/core/package-json-workspaces"],
"targets.dev.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.dev.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.dev.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.dependsOn": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.preview": ["package.json", "nx/core/package-json-workspaces"],
"targets.preview.executor": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.preview.options": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.preview.metadata": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.preview.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.preview.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.preview.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 166 KiB

+186
View File
@@ -0,0 +1,186 @@
{
"project": {
"name": "vue-app",
"type": "lib",
"data": {
"root": ".",
"targets": {
"vite:build": {
"options": {
"cwd": ".",
"command": "vite build"
},
"cache": true,
"dependsOn": ["^vite:build"],
"inputs": [
"default",
"^default",
{
"externalDependencies": ["vite"]
}
],
"outputs": ["{projectRoot}/dist"],
"executor": "nx:run-commands",
"configurations": {}
},
"build-only": {
"executor": "nx:run-script",
"metadata": {
"scriptContent": "nx vite:build",
"runCommand": "npm run build-only"
},
"outputs": ["{projectRoot}/dist"],
"cache": true,
"options": {
"script": "build-only"
},
"configurations": {}
},
"build": {
"executor": "nx:run-script",
"metadata": {
"scriptContent": "nx exec -- echo 'Ran type-check and build-only'",
"runCommand": "npm run build"
},
"dependsOn": [
"type-check",
{
"target": "build-only",
"params": "forward"
}
],
"options": {
"script": "build"
},
"configurations": {}
}
},
"sourceRoot": ".",
"name": "vue-app",
"projectType": "library",
"metadata": {
"targetGroups": {
"NPM Scripts": ["build", "build-only"]
}
},
"implicitDependencies": [],
"tags": []
}
},
"sourceMap": {
"root": ["package.json", "nx/core/package-json-workspaces"],
"targets": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.options": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.cache": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.dependsOn": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.inputs": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.outputs": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.executor": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
"targets.vite:build.options.command": ["vite.config.ts", "@nx/vite/plugin"],
"targets.build-only": ["package.json", "nx/core/package-json-workspaces"],
"targets.build-only.executor": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build-only.options": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build-only.metadata": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build-only.outputs": ["nx.json", "nx/core/target-defaults"],
"targets.build-only.cache": ["nx.json", "nx/core/target-defaults"],
"targets.build-only.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build-only.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build-only.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
],
"sourceRoot": ["package.json", "nx/core/package-json-workspaces"],
"name": ["package.json", "nx/core/package-json-workspaces"],
"projectType": ["package.json", "nx/core/package-json-workspaces"],
"metadata.targetGroups": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.0": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.1": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.2": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.3": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.4": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.5": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.6": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.7": [
"package.json",
"nx/core/package-json-workspaces"
],
"metadata.targetGroups.NPM Scripts.8": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build": ["package.json", "nx/core/package-json-workspaces"],
"targets.build.executor": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.metadata": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.dependsOn": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.options": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.options.script": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.metadata.scriptContent": [
"package.json",
"nx/core/package-json-workspaces"
],
"targets.build.metadata.runCommand": [
"package.json",
"nx/core/package-json-workspaces"
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

File diff suppressed because it is too large Load Diff
+2 -58
View File
@@ -4,62 +4,6 @@
"sourceRoot": "e2e/angular",
"projectType": "application",
"implicitDependencies": ["angular"],
"targets": {
"e2e-ci--src/config.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/cypress-component-tests.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/misc.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/module-federation.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/ng-add.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/projects.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/tailwind.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/ngrx.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-angular --web",
"targets": {}
}
+2 -2
View File
@@ -408,7 +408,7 @@ describe('Angular Projects', () => {
let mainBundle = readFile(`dist/${esbuildApp}/browser/main.js`);
expect(mainBundle).toContain(
'this.buildDefined = "Value was provided at build time";'
'buildDefined = "Value was provided at build time";'
);
// check @nx/angular:browser-esbuild
@@ -426,7 +426,7 @@ describe('Angular Projects', () => {
mainBundle = readFile(`dist/${esbuildApp}/main.js`);
expect(mainBundle).toContain(
'this.buildDefined = "Value was provided at build time";'
'buildDefined = "Value was provided at build time";'
);
});
+2 -16
View File
@@ -4,20 +4,6 @@
"sourceRoot": "e2e/cypress",
"projectType": "application",
"implicitDependencies": ["cypress", "react"],
"targets": {
"e2e-ci--src/cypress.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/cypress-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-cypress --web",
"targets": {}
}
+1 -2
View File
@@ -9,8 +9,7 @@ import {
const TEN_MINS_MS = 600_000;
// TODO(colum): Re-enable after investigation into Cypress 13.12 and Xvfb
xdescribe('Cypress E2E Test runner (legacy)', () => {
describe('Cypress E2E Test runner (legacy)', () => {
beforeAll(() => {
newProject({ packages: ['@nx/angular', '@nx/react'] });
});
-14
View File
@@ -18,20 +18,6 @@
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/detox-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/detox.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
}
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/esbuild",
"projectType": "application",
"implicitDependencies": ["esbuild"],
"targets": {
"e2e-ci--src/esbuild.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-esbuild --web",
"targets": {}
}
+2 -16
View File
@@ -4,20 +4,6 @@
"sourceRoot": "e2e/eslint",
"projectType": "application",
"implicitDependencies": ["eslint"],
"targets": {
"e2e-ci--src/linter.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/linter-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-eslint --web",
"targets": {}
}
-14
View File
@@ -10,20 +10,6 @@
},
"e2e-macos-ci--src/expo-legacy.test.ts": {
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/expo-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/expo.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
}
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/gradle",
"projectType": "application",
"implicitDependencies": ["eslint"],
"targets": {
"e2e-ci--src/gradle.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-gradle --web",
"targets": {}
}
+2 -23
View File
@@ -4,27 +4,6 @@
"sourceRoot": "e2e/jest",
"projectType": "application",
"implicitDependencies": ["jest"],
"targets": {
"e2e-ci--src/jest.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/jest-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/jest-root.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-jest --web",
"targets": {}
}
-35
View File
@@ -5,47 +5,12 @@
"projectType": "application",
"implicitDependencies": ["jest"],
"targets": {
"e2e-ci--src/js-executor-node.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/js-executor-swc.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/js-executor-tsc.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/js-generators.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs"]
},
"e2e-ci--src/js-inlining.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/js-packaging.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
}
+6 -1
View File
@@ -60,7 +60,12 @@ describe('js:tsc executor', () => {
});
const libBuildProcess = await runCommandUntil(
`build ${lib} --watch`,
(output) => output.includes(`Watching for file changes`)
(output) => output.includes(`Watching for file changes`),
{
env: {
NX_DAEMON: 'true',
},
}
);
updateFile(`libs/${lib}/README.md`, `Hello, World!`);
updateJson(`libs/${lib}/package.json`, (json) => {
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/lerna-smoke-tests",
"projectType": "application",
"implicitDependencies": ["nx", "devkit"],
"targets": {
"e2e-ci--src/lerna-smoke-tests.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-lerna-smoke-tests --web",
"targets": {}
}
+2 -72
View File
@@ -4,76 +4,6 @@
"sourceRoot": "e2e/next/src",
"projectType": "application",
"implicitDependencies": ["next"],
"targets": {
"e2e-ci--src/next.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-appdir.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-component-tests.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-playwright.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-playwright-standalone-eslint.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-storybook.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-styles.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-svgr.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/next-webpack.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-next --web",
"targets": {}
}
-28
View File
@@ -5,40 +5,12 @@
"projectType": "application",
"implicitDependencies": ["node", "nest", "webpack"],
"targets": {
"e2e-ci--src/node.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/node-esbuild.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/node-server.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/webpack.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs"]
},
"e2e-ci--src/node-webpack.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
}
@@ -0,0 +1,29 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Node Applications + webpack should generate a Dockerfile 1`] = `
"# This file is generated by Nx.
#
# Build the docker image with \`npx nx docker-build docker-express-app\`.
# Tip: Modify "docker-build" options in project.json to change docker build args.
#
# Run the container with \`docker run -p 3000:3000 -t docker-express-app\`.
FROM docker.io/node:lts-alpine
ENV HOST=0.0.0.0
ENV PORT=3000
WORKDIR /app
RUN addgroup --system docker-express-app && \\
adduser --system -G docker-express-app docker-express-app
COPY dist/apps/docker-express-app docker-express-app/
RUN chown -R docker-express-app:docker-express-app .
# You can remove this install step if you build with \`--bundle\` option.
# The bundled output will include external dependencies.
RUN npm --prefix docker-express-app --omit=dev -f install
CMD [ "node", "docker-express-app" ]
"
`;
+87 -61
View File
@@ -2,6 +2,7 @@ import {
checkFilesDoNotExist,
checkFilesExist,
cleanupProject,
getSelectedPackageManager,
killPort,
newProject,
promisifiedTreeKill,
@@ -14,11 +15,19 @@ import {
} from '@nx/e2e/utils';
import { join } from 'path';
xdescribe('Node Applications + webpack', () => {
describe('Node Applications + webpack', () => {
let proj: string;
const selectedPm = getSelectedPackageManager();
// TODO(nicholas): Look into how this can work with npm instead of forcing pnpm.
beforeAll(() => {
proj = newProject({
packages: ['@nx/node'],
// npm has resolution for ajv some packages require ajv6 and some require ajv8 and npm resolves it to ajv6 (Error: Cannot find module 'ajv/dist/compile/codegen')
// - ajv@6 (fork-ts-checker-webpack-plugin, terser-webpack-plugin, webpack)
// - ajv@8 (babel-loader)
// Solution is to use pnpm or run fix it via npm ex.(npm dedupe --force)
packageManager: selectedPm === 'npm' ? 'pnpm' : selectedPm,
});
});
@@ -47,10 +56,10 @@ xdescribe('Node Applications + webpack', () => {
}
}
async function runE2eTests(appName: string) {
process.env.PORT = '5000';
async function runE2eTests(appName: string, port: number = 5000) {
process.env.PORT = `${port}`;
const childProcess = await runCommandUntil(`serve ${appName}`, (output) => {
return output.includes('http://localhost:5000');
return output.includes(`http://localhost:${port}`);
});
const result = runCLI(`e2e ${appName}-e2e --verbose`);
expect(result).toContain('Setting up...');
@@ -58,13 +67,11 @@ xdescribe('Node Applications + webpack', () => {
expect(result).toContain('Successfully ran target e2e');
await promisifiedTreeKill(childProcess.pid, 'SIGKILL');
await killPort(5000);
await killPort(port);
process.env.PORT = '';
}
// Disabled due to flakiness of ajv disabled (Error: Cannot find module 'ajv/dist/compile/codegen')
// TODO: (nicholas) Re-enable when the flakiness is resolved
xit('should generate an app using webpack', async () => {
describe('frameworks', () => {
const testLib1 = uniq('test1');
const testLib2 = uniq('test2');
const expressApp = uniq('expressapp');
@@ -72,79 +79,98 @@ xdescribe('Node Applications + webpack', () => {
const koaApp = uniq('koaapp');
const nestApp = uniq('nest');
runCLI(`generate @nx/node:lib ${testLib1}`);
runCLI(`generate @nx/node:lib ${testLib2} --importPath=@acme/test2`);
runCLI(
`generate @nx/node:app ${expressApp} --framework=express --no-interactive`
);
runCLI(
`generate @nx/node:app ${fastifyApp} --framework=fastify --no-interactive`
);
runCLI(`generate @nx/node:app ${koaApp} --framework=koa --no-interactive`);
runCLI(
`generate @nx/node:app ${nestApp} --framework=nest --bundler=webpack --no-interactive`
);
beforeAll(() => {
runCLI(`generate @nx/node:lib ${testLib1}`);
runCLI(`generate @nx/node:lib ${testLib2} --importPath=@acme/test2`);
runCLI(
`generate @nx/node:app ${expressApp} --framework=express --port=7000 --no-interactive`
);
runCLI(
`generate @nx/node:app ${fastifyApp} --framework=fastify --port=7001 --no-interactive`
);
runCLI(
`generate @nx/node:app ${koaApp} --framework=koa --port=7002 --no-interactive`
);
runCLI(
`generate @nx/node:app ${nestApp} --framework=nest --port=7003 --bundler=webpack --no-interactive`
);
// Use esbuild by default
checkFilesDoNotExist(`apps/${expressApp}/webpack.config.js`);
checkFilesDoNotExist(`apps/${fastifyApp}/webpack.config.js`);
checkFilesDoNotExist(`apps/${koaApp}/webpack.config.js`);
addLibImport(expressApp, testLib1);
addLibImport(expressApp, testLib2, '@acme/test2');
addLibImport(fastifyApp, testLib1);
addLibImport(fastifyApp, testLib2, '@acme/test2');
addLibImport(koaApp, testLib1);
addLibImport(koaApp, testLib2, '@acme/test2');
// Uses only webpack
checkFilesExist(`apps/${nestApp}/webpack.config.js`);
addLibImport(nestApp, testLib1);
addLibImport(nestApp, testLib2, '@acme/test2');
});
expect(() => runCLI(`lint ${expressApp}`)).not.toThrow();
expect(() => runCLI(`lint ${fastifyApp}`)).not.toThrow();
expect(() => runCLI(`lint ${koaApp}`)).not.toThrow();
expect(() => runCLI(`lint ${nestApp}`)).not.toThrow();
it('should generate an app defaults using webpack or esbuild', async () => {
// Use esbuild by default
checkFilesDoNotExist(`apps/${expressApp}/webpack.config.js`);
checkFilesDoNotExist(`apps/${fastifyApp}/webpack.config.js`);
checkFilesDoNotExist(`apps/${koaApp}/webpack.config.js`);
expect(() => runCLI(`lint ${expressApp}-e2e`)).not.toThrow();
expect(() => runCLI(`lint ${fastifyApp}-e2e`)).not.toThrow();
expect(() => runCLI(`lint ${koaApp}-e2e`)).not.toThrow();
expect(() => runCLI(`lint ${nestApp}-e2e`)).not.toThrow();
// Uses only webpack
checkFilesExist(`apps/${nestApp}/webpack.config.js`);
// Only Fastify generates with unit tests since it supports them without additional libraries.
expect(() => runCLI(`test ${fastifyApp}`)).not.toThrow();
expect(() => runCLI(`lint ${expressApp}`)).not.toThrow();
expect(() => runCLI(`lint ${fastifyApp}`)).not.toThrow();
expect(() => runCLI(`lint ${koaApp}`)).not.toThrow();
expect(() => runCLI(`lint ${nestApp}`)).not.toThrow();
// https://github.com/nrwl/nx/issues/16601
const nestMainContent = readFile(`apps/${nestApp}/src/main.ts`);
updateFile(
`apps/${nestApp}/src/main.ts`,
`
expect(() => runCLI(`lint ${expressApp}-e2e`)).not.toThrow();
expect(() => runCLI(`lint ${fastifyApp}-e2e`)).not.toThrow();
expect(() => runCLI(`lint ${koaApp}-e2e`)).not.toThrow();
expect(() => runCLI(`lint ${nestApp}-e2e`)).not.toThrow();
// Only Fastify generates with unit tests since it supports them without additional libraries.
expect(() => runCLI(`test ${fastifyApp}`)).not.toThrow();
// https://github.com/nrwl/nx/issues/16601
const nestMainContent = readFile(`apps/${nestApp}/src/main.ts`);
updateFile(
`apps/${nestApp}/src/main.ts`,
`
${nestMainContent}
// Make sure this is not replaced during build time
console.log('env: ' + process.env['NODE_ENV']);
`
);
runCLI(`build ${nestApp}`);
expect(readFile(`dist/apps/${nestApp}/main.js`)).toContain(
`'env: ' + process.env['NODE_ENV']`
);
);
runCLI(`build ${nestApp}`);
expect(readFile(`dist/apps/${nestApp}/main.js`)).toContain(
`'env: ' + process.env['NODE_ENV']`
);
}, 300_000);
addLibImport(expressApp, testLib1);
addLibImport(expressApp, testLib2, '@acme/test2');
addLibImport(fastifyApp, testLib1);
addLibImport(fastifyApp, testLib2, '@acme/test2');
addLibImport(koaApp, testLib1);
addLibImport(koaApp, testLib2, '@acme/test2');
it('should e2e test express app', async () => {
await runE2eTests(expressApp, 7000);
});
addLibImport(nestApp, testLib1);
addLibImport(nestApp, testLib2, '@acme/test2');
it('should e2e test fastify app', async () => {
await runE2eTests(fastifyApp, 7001);
});
await runE2eTests(expressApp);
await runE2eTests(fastifyApp);
await runE2eTests(koaApp);
await runE2eTests(nestApp);
}, 900_000);
it('should e2e test koa app', async () => {
await runE2eTests(koaApp, 7002);
});
it('should e2e test nest app', async () => {
await runE2eTests(nestApp, 7003);
});
});
it('should generate a Dockerfile', async () => {
const expressApp = uniq('expressapp');
const expressApp = 'docker-express-app'; // needs to be consistent for the Dockerfile snapshot
runCLI(
`generate @nx/node:app ${expressApp} --framework=express --docker --no-interactive`
`generate @nx/node:app ${expressApp} --framework=express --docker --no-interactive`
);
checkFilesExist(`apps/${expressApp}/Dockerfile`);
const dockerFile = readFile(`apps/${expressApp}/Dockerfile`);
expect(dockerFile).toMatchSnapshot();
}, 300_000);
it('should support waitUntilTargets for serve target', async () => {
+7 -1
View File
@@ -11,6 +11,7 @@ import {
uniq,
updateFile,
updateJson,
promisifiedTreeKill,
} from '@nx/e2e/utils';
import { execSync } from 'child_process';
import { join } from 'path';
@@ -82,6 +83,11 @@ describe('Node Applications + webpack', () => {
`serve ${app} --watch --runBuildTargetDependencies`,
(output) => {
return output.includes(`Hello`);
},
{
env: {
NX_DAEMON: 'true',
},
}
);
@@ -106,6 +112,6 @@ describe('Node Applications + webpack', () => {
{ timeout: 60_000, ms: 200 }
);
serveProcess.kill();
await promisifiedTreeKill(serveProcess.pid, 'SIGKILL');
}, 300_000);
});
+32 -7
View File
@@ -207,6 +207,11 @@ module.exports = {
(output) => {
process.stdout.write(output);
return output.includes(`foobar: test foo bar`);
},
{
env: {
NX_DAEMON: 'true',
},
}
);
try {
@@ -263,8 +268,15 @@ module.exports = {
// checking serve
updateFile(`apps/${nodeapp}/src/assets/file.txt`, `Test`);
const p = await runCommandUntil(`serve ${nodeapp}`, (output) =>
output.includes(`Listening at http://localhost:${port}`)
const p = await runCommandUntil(
`serve ${nodeapp}`,
(output) => output.includes(`Listening at http://localhost:${port}`),
{
env: {
NX_DAEMON: 'true',
},
}
);
let result = await getData(port);
@@ -312,6 +324,11 @@ module.exports = {
(output) => {
process.stdout.write(output);
return output.includes(`listening on ws://localhost:${port}`);
},
{
env: {
NX_DAEMON: 'true',
},
}
);
@@ -320,7 +337,7 @@ module.exports = {
expect(e2eRsult.combinedOutput).toContain('Test Suites: 1 passed, 1 total');
await killPorts(port);
p.kill();
await promisifiedTreeKill(p.pid, 'SIGKILL');
}, 120000);
// TODO(crystal, @ndcunningham): how do we handle this now?
@@ -361,10 +378,18 @@ module.exports = {
`
);
await runCLIAsync(`build ${esmapp}`);
const p = await runCommandUntil(`serve ${esmapp}`, (output) => {
return output.includes('Hello World');
});
p.kill();
const p = await runCommandUntil(
`serve ${esmapp}`,
(output) => {
return output.includes('Hello World');
},
{
env: {
NX_DAEMON: 'true',
},
}
);
await promisifiedTreeKill(p.pid, 'SIGKILL');
}, 300000);
});
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/nuxt",
"projectType": "application",
"implicitDependencies": ["nuxt"],
"targets": {
"e2e-ci--src/nuxt.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-nuxt --web",
"targets": {}
}
+2 -37
View File
@@ -4,41 +4,6 @@
"sourceRoot": "e2e/nx-init",
"projectType": "application",
"implicitDependencies": ["nx", "angular", "react", "js", "nest"],
"targets": {
"e2e-ci--src/nx-init-angular.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nx-init-monorepo.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nx-init-nest.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nx-init-npm-repo.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nx-init-react.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-nx-init --web",
"targets": {}
}
+2 -79
View File
@@ -4,83 +4,6 @@
"sourceRoot": "e2e/nx-misc",
"projectType": "application",
"implicitDependencies": ["nx", "js"],
"targets": {
"e2e-ci--src/affected-graph.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/cache.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/extras.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/invoke-runner.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/misc.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nx-cloud.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nxw.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/run.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/watch.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/workspace-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/workspace.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-nx --web",
"targets": {}
}
+6
View File
@@ -334,6 +334,12 @@ describe('Nx Commands', () => {
}
}, 300000);
});
it('should show help if no command provided', () => {
const output = runCLI('', { silenceError: true });
expect(output).toContain('Smart Monorepos · Fast CI');
expect(output).toContain('Commands:');
});
});
// TODO(colum): Change the fetcher to allow incremental migrations over multiple versions, allowing for beforeAll
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/playwright",
"projectType": "application",
"implicitDependencies": ["playwright"],
"targets": {
"e2e-ci--src/playwright.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-playwright --web",
"targets": {}
}
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/plugin",
"projectType": "application",
"implicitDependencies": ["create-nx-plugin"],
"targets": {
"e2e-ci--src/nx-plugin.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-plugin --web",
"targets": {}
}
-14
View File
@@ -10,20 +10,6 @@
},
"e2e-macos-ci--src/react-native.test.ts": {
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react-native-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react-native.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
}
+2 -58
View File
@@ -4,62 +4,6 @@
"sourceRoot": "e2e/react",
"projectType": "application",
"implicitDependencies": ["react"],
"targets": {
"e2e-ci--src/react-package.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/cypress-component-tests.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/playwright.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react-module-federation.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react-vite.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react-webpack.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/react-package-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-react --web",
"targets": {}
}
+2 -93
View File
@@ -4,97 +4,6 @@
"sourceRoot": "e2e/release",
"projectType": "application",
"implicitDependencies": ["nx", "js"],
"targets": {
"e2e-ci--src/conventional-commits-config.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/create-github-release.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/custom-registries.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/first-release.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/independent-projects.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/lock-file-updates.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/multiple-release-branches.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/nx-release-git-operations.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/pre-version-command.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/private-js-packages.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/release.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/circular-dependencies.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/version-plans.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-release --web",
"targets": {}
}
+2 -9
View File
@@ -4,13 +4,6 @@
"sourceRoot": "e2e/remix",
"projectType": "application",
"implicitDependencies": ["remix"],
"targets": {
"e2e-ci--src/nx-remix.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-remix --web",
"targets": {}
}
+2 -16
View File
@@ -4,20 +4,6 @@
"sourceRoot": "e2e/rollup",
"projectType": "application",
"implicitDependencies": ["rollup", "js"],
"targets": {
"e2e-ci--src/rollup.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
},
"e2e-ci--src/rollup-legacy.test.ts": {
"dependsOn": [
"nx:build-native",
"@nx/nx-source:populate-local-registry-storage"
],
"inputs": ["e2eInputs", "^production"]
}
}
"// targets": "to see all targets run: nx show project e2e-rollup --web",
"targets": {}
}

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