63 Commits

Author SHA1 Message Date
Jack Hsu
ec5a5e6360
feat(react): update app and lib generators to support new TS solution setup (#28808)
This PR updates app and lib generators in the following packages such
that they will generate files with the TS solution setup if it is
detected.

- `@nx/react`
- `@nx/next`
- `@nx/remix`
- `@nx/expo`
- `@nx/react-native`

React apps and libs will be linked using npm/pnpm/yarn/bun workspaces
feature rather than through tsconfig paths. This means that local
aliases like `@/` will work with Next.js and Remix apps.

Note: This will be behind `--workspaces` flag when using `npx
create-nx-workspace` and choosing React stack. If you use the None/TS
stack then adding plugins like `nx add @nx/react` then generating apps,
it will automatically pick up the new TS solution setup.


<!-- 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
React generators are not compatible with TS solution setup (i.e.
workspaces + TS project references).

## Expected Behavior
React generators work with new TS solution setup (Plain, Next.js, Remix,
Expo, React Native).

## Related Issue(s)
#28322

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
2024-11-28 22:18:45 -05:00
Leosvel Pérez Espinosa
f357b4ed53
feat(js): update the setup-build generator to support the new ts setup (#28446)
Update the `@nx/js:setup-build` and the generators it depends on to
support the new TS setup with project references.

<!-- 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-10-28 14:34:57 -04:00
Leosvel Pérez Espinosa
ec801b4c16
feat(misc): enable new ts minimal setup by default and guard execution of generators with no support for it (#28199)
- Enable generating the new & minimal TS setup by default when
generating the `ts` preset with CNW.
The existing `NX_ADD_TS_PLUGIN` environment variable is kept with its
default value inverted and set to `true`. It can be used to opt out of
the new TS setup by running CNW with `NX_ADD_TS_PLUGIN=false`.
- Throw an error when running generators that don't yet support the new
TS setup.
- We'll add support for those generators incrementally in follow-up PRs.

<!-- 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
-->
<!-- Fixes NXC-1066 -->
<!-- Fixes NXC-1068 -->

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

Fixes #
2024-10-02 08:29:06 -04:00
Jack Hsu
27edf71cef
feat(misc): make directory a required option for generators (#28093)
<!-- 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: Colum Ferry <cferry09@gmail.com>
Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
2024-10-01 09:29:44 -04:00
Leosvel Pérez Espinosa
c92528f65d
feat(misc): remove derived generator paths (#27714)
<!-- 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: Nicholas Cunningham <ndcunningham@gmail.com>
2024-09-23 09:19:42 -04:00
Isaac Mann
839dc1585b
feat(devkit): prefer strings over Linter enum (#27209)
We should be consistent about how options are defined in our plugins.
Currently, there are some options that use `enum`s and some that use
typed strings. I think typed strings are preferable because someone
extending a generator only needs to import the main generator that
they're extending, not all the transitive dependencies of that
generator.

Current extending code:
```
// ...
import { applicationGenerator as reactApplicationGenerator } from '@nx/react';
import { Linter } from '@nx/eslint';

export async function applicationGenerator(
  tree: Tree,
  options: ApplicationGeneratorSchema
) {
  reactApplicationGenerator(tree, {
    ...options,
    linter: Linter.EsLint,
  });
}
```

Desired extending code:
```
// ...
import { applicationGenerator as reactApplicationGenerator } from '@nx/react';

export async function applicationGenerator(
  tree: Tree,
  options: ApplicationGeneratorSchema
) {
  reactApplicationGenerator(tree, {
    ...options,
    linter: 'eslint',
  });
}
```

The problem is not just an extra line of code, the person extending the
`reactApplicationGenerator` has to dig into the implementation details
of the generator itself in order to know where to find the `Linter`
enum. The `e2eTestRunner` is already a typed string and is easily
extended.

The solution I'm proposing in this PR would define a typed string in the
same file as the existing enum. None of the implementations need to
change. No community plugin code will be broken.
2024-08-19 17:07:28 -04:00
Emily Xiong
a53fee8988
fix(react-native): fix test-setup for react native/expo jest (#23314)
<!-- 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
-->

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

Fixes https://github.com/nrwl/nx/issues/23027
https://github.com/nrwl/nx/issues/22198
2024-05-17 11:43:06 -04:00
Jason Jean
bf206e578e
feat(misc): non conflicting init/add flow (#22791) 2024-04-15 16:45:08 -04:00
Craigory Coppola
a89c73483e
feat(core): use flag in nx.json for toggling crystal (#21980) 2024-02-29 15:18:46 -05:00
Jason Jean
396ffc4636
feat(core): enable project crystal by default (#21403)
Co-authored-by: Katerina Skroumpelou <sk.katherine@gmail.com>
Co-authored-by: Jack Hsu <jack.hsu@gmail.com>
Co-authored-by: Colum Ferry <cferry09@gmail.com>
Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
Co-authored-by: Emily Xiong <xiongemi@gmail.com>
Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
2024-02-02 03:40:59 -05:00
Emily Xiong
65e86eacac
feat(react-native): upgrade react native to 0.73 (#20896) 2024-01-31 15:38:02 -05:00
Tobbb
2f5bca065b
feat(react-native): add useTransformReactJSX babel config to generators (#19170) 2024-01-30 19:48:43 +02:00
beeman
a9974d3f25
docs(misc): change http:// to https:// (#19534) 2024-01-30 11:33:13 -05:00
Colum Ferry
0b3e1f6ec4
feat(core): log to guide users to show details after project generation (#21350) 2024-01-30 10:58:49 -05:00
Leosvel Pérez Espinosa
047dc22aed
cleanup(misc): clean up init generators (#21088) 2024-01-16 15:29:44 +01:00
Miroslav Jonaš
03257e2503
feat(linter): move common options to target defaults (#20583) 2024-01-09 09:12:47 +00:00
Miroslav Jonaš
ff5d1bef83
feat(linter): default lintFilePatterns to {projectRoot} (#20313) 2023-11-27 08:39:38 -05:00
Jason Jean
8a89df66bf
feat(testing): move test config more into nx.json targetDefaults (#19963) 2023-11-01 10:20:18 -04:00
Leosvel Pérez Espinosa
81e8d12ed1
fix(misc): do not normalize project name and root when using as-provided format (#19651) 2023-10-17 17:53:48 -04:00
Miroslav Jonaš
0bc693342e
feat(linter): rename @nx/linter to @nx/eslint (#19515) 2023-10-16 11:52:19 -04:00
Colum Ferry
80fde79374
feat(misc): remove deprecated Angular CLI usage of schematics and builders (#19557) 2023-10-13 17:14:16 +01:00
Nicholas Cunningham
fef332e537
chore(react-native): update react-native plugin unit tests to use "as-provided" (#18945) 2023-08-31 11:06:11 -06:00
Leosvel Pérez Espinosa
a2f761352b
feat(react-native): use helper to determine project name and root in project generators (#18734) 2023-08-22 15:33:55 +01:00
Caleb Ukle
dbd61b5d9a
fix(react-native): update generated jest config coverage dir (#18366) 2023-07-28 11:40:52 -05:00
Miroslav Jonaš
f4f4eb66e2
feat(linter): add dependency-checks to buildable lib generator (#18015) 2023-07-20 10:28:20 -04:00
Emily Xiong
699a20ca03
feat(react-native): upgrade react-native to 0.72 (#17810) 2023-07-17 13:07:46 -04:00
Jack Hsu
bbb64f8ca4
feat(bundling): Add support to rollup for babelUpwardRootMode" (#17422)" (#17427) 2023-06-05 15:57:23 -04:00
Jack Hsu
1bba7490a1
Revert "[Do not merge]: feat(bundling): Add support to rollup for babelUpwardRootMode" (#17422) 2023-06-05 15:45:28 +00:00
Nicholas Cunningham
2d76993e68
[Do not merge]: feat(bundling): Add support to rollup for babelUpwardRootMode (#17292) 2023-06-05 10:52:32 -04:00
Jason Jean
6b928bc250
feat(js): refactor usages of npmScope (#16947) 2023-05-15 16:06:24 -04:00
Emily Xiong
8347e61810
fix(react-native): fix buildable react native library (#16749) 2023-05-09 12:52:36 -04:00
Caleb Ukle
ad841c9048
docs(repo): update docs/schemas to use nx scoped packages - nx labs (#16865) 2023-05-09 08:30:52 -05:00
Jack Hsu
8de17ab1e0
feat(web): remove deprecated executors (#16416) 2023-04-20 17:50:31 -04:00
Jason Jean
76dfc62412
feat(web): replace usages of @nrwl with @nx (#16376) 2023-04-19 10:59:41 -04:00
Jason Jean
5a0a4e8d26
feat(repo): replace usages of @nrwl/ with @nx/ in tooling packages (#16351) 2023-04-18 12:15:33 -04:00
Jason Jean
2d195007b0
feat(core): switch packages to use the @nx scope (#16069) 2023-04-14 19:56:37 -04:00
Jack Hsu
0578116fbf
feat(nextjs): update to Next.js 13.3.0 (#16130) 2023-04-12 10:47:44 -04:00
Jason Jean
4a55ee9a33
fix(js): run prettier with default options when theres no prettierrc (#15888) 2023-03-27 18:00:24 -04:00
Colum Ferry
8744698a01
feat(devkit): move runTasksInSerial to devkit (#15467) 2023-03-06 13:55:44 -05:00
Emily Xiong
a97212b601
feat(core): move tsconfig.base.json to @nrwl/js:init (#14467) 2023-02-16 11:17:30 -05:00
Emily Xiong
93ac55ff2a
docs(react-native): add x-priority to react-native, expo and detox (#14402) 2023-01-18 10:26:27 -05:00
Jason Jean
61d7d74378 fix(misc): fix tsconfig file includes 2022-12-05 10:39:03 -05:00
Nicholas Cunningham
5c10f1ca5c
fix(react-native): skipPackageJson was being ignored (#13513)
Co-authored-by: Nicholas Cunningham <ndcunningham>
2022-11-30 12:46:48 -07:00
Victor Savkin
16fd4374d6 feat(misc): derive workspace layout dynamically 2022-11-23 15:45:13 -05:00
Emily Xiong
b9bedffa8b
fix(react-native): fix the tsc command for react-native and expo (#12888) 2022-11-17 11:25:35 -05:00
Craigory Coppola
35dd6c95bc
fix(misc): remove -d as alias in generator schema (#12885) 2022-10-28 21:17:16 +00:00
Colum Ferry
09c6ccb266
feat(linter): remove tslint support (#12279) 2022-09-28 11:08:01 -04:00
Emily Xiong
a411e85e42
Feature/move expo (#11712)
* feat(expo): move expo to main repo

* feat(expo): add e2e expo tests and fix expo unit tests

* feat(expo): add generated docs

* feat(expo): update cz-config to add expo to commit message

* feat(expo): add @nrwl/expo to e2e test setup

* feat(expo): add expo to preset

* feat(expo): add detox tests

* feat(expo): update docs

* feat(expo): fix e2e tests

* feat(expo): upgrade expo to 46.0.10

* fix(expo): correct eas-cli build:info parameters names

* fix(expo): add cleanupProject to e2e test
2022-09-16 11:56:28 -04:00
Caleb Ukle
657b2bff5a
feat(testing): support jest 28 (#10857)
* feat(testing): support jest 28

WIP jest migration

* fix(testing): jest-environment-jsdom must be explicitly added now

* fix(testing): add rxjs to the transform lsit

* fix(testing): jest ts-jest updates and resolver issues

* feat(testing): remove test runner for react native jest

* feat(testing): add preprocessor for react native jest

* fix(testing): update query to handle tsx file syntax, remove rxjs transform

* chore(repo): remove file from accident commit

* chore(testing): update migration to target 14.6 for RN jest preprocessor

* fix(testing): call passed in packageFilter if preset

* docs(testing): add resolver env var to troubleshooting guide

* chore(repo): prep resolver for jest 28 migration

* fix(testing): update deps to handle esbuild-wasm service error

* fix(testing): switch to testEnvironmentOptions for cjs loading vs resolver list

* fix(testing): force babel-jest preset in transformer for project transforms

* chore(testing): address PR feedback

* fix(testing): address pr feedback, remove react-native transform

* chore(testing): update createTreeWithEmptyWorkspace calls

* chore(testing): address pr feedback

* feat(testing): add migration script for react native to rename .babelrc to babel.config.json

* chore(testing): nx format after rebase

* chore(testing): fix display name for @nrwl/js

Co-authored-by: Emily Xiong <xiongemi@gmail.com>
2022-08-18 18:40:31 -04:00
Miroslav Jonaš
187f5200c0
fix(linter): add jest to root .eslintrc if selected as unit test runner (#11555) 2022-08-18 14:51:09 +02:00