43 Commits

Author SHA1 Message Date
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
d454f25aad
feat(testing): update test generators to exclude test files from the runtime tsconfig file (#27991)
<!-- 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-09-23 09:25:12 -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
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
beeman
a9974d3f25
docs(misc): change http:// to https:// (#19534) 2024-01-30 11:33:13 -05:00
Emily Xiong
6141f44203
feat(core): add keepExistingVersions to all packages (#21169) 2024-01-17 14:22:58 -05:00
Leosvel Pérez Espinosa
047dc22aed
cleanup(misc): clean up init generators (#21088) 2024-01-16 15:29:44 +01: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
Jack Hsu
74e5879e8d
fix(node): pass projectNameAndRootFormat to js lib generator from nest lib generator (#18891) 2023-08-29 14:35:24 -04:00
Leosvel Pérez Espinosa
bb9f880a8e
feat(express): use helper to determine project name and root in application generator (#18679) 2023-08-22 15:10:54 +01:00
Jack Hsu
08339ee49f
feat(js): do not generate root babel.config.json for babel projects (#17289) 2023-06-06 15:45:33 -04:00
Jason Jean
ad805cb73f
feat(node): replace usages of @nrwl with @nx (#16379) 2023-04-18 17:17:55 -04:00
Jason Jean
2d195007b0
feat(core): switch packages to use the @nx scope (#16069) 2023-04-14 19:56:37 -04:00
Caleb Ukle
85b3315b34
chore(misc): update snapshots to latest format (#16276) 2023-04-14 11:29:06 -04:00
Leosvel Pérez Espinosa
4eb7cc7bf1
fix(misc): skip formatting files in nested generator calls (#15961) 2023-03-31 11:22:18 -04:00
Jack Hsu
d7536aa7e3 feat(core): clean up workspace configuration code 2023-01-23 19:35:15 -05:00
Nicholas Cunningham
942a6ae2bd
chore(express): add deprecation message for express app generator (#14443) 2023-01-17 16:43:01 -05:00
Nicholas Cunningham
00caf6ae5e
feat(node): update CNW to support generating a node server with a framework (#14313) 2023-01-13 11:39:38 -07:00
Jack Hsu
454fba49b2
feat(webpack): generate React and Web apps with webpack.config.js file (#14285) 2023-01-12 10:06:25 -05:00
Jason Jean
61d7d74378 fix(misc): fix tsconfig file includes 2022-12-05 10:39:03 -05:00
Victor Savkin
fe062f42c3 fix(core): deduce layout directory 2022-11-29 16:08:57 -05:00
Jack Hsu
65a7f4798e
feat(express): generate express app with static assets handler (#12442) 2022-10-06 14:16:19 +00:00
Phillip Barta
d91c7ca4ec
fix(linter): remove leftovers after tslint support removal (#12313) 2022-09-30 12:02:05 +01:00
Craigory Coppola
458fc36014
chore(misc): split create tree with empty workspace to remove parameter (#10188)
* feat(devkit): split create-empty-tree to different functions

* chore(repo): apply migration for createEmptyTree

* cleanup(misc): fix tests that migration misses
2022-08-11 19:24:04 -04:00
Chau Tran
0ce3b1a9f6
fix(express): tslib should be included if importHelpers is true (#11419)
ISSUES CLOSED: #11012
2022-08-11 20:42:29 +07:00
Craigory Coppola
4d7e5ba29a
chore(misc): remove defaultCollection from generators (#10601) 2022-06-06 20:03:46 +00:00
Caleb Ukle
39331d1e17
feat(testing): move jest config to .ts files (#9854)
* feat(testing): move jest config to .ts

move jest config and preset to ts files

ISSUES CLOSED: #8344

* fix(testing): update tests for jest.config.ts changes

update tests broken by renaming jest fils to ts files
2022-04-21 17:58:40 +00:00
Giora Guttsait
75b0744955
fix(core): init generators should not crash when trying to remove dependencies when package.json does not have dependencies (#9765)
Co-authored-by: Craigory Coppola <craigorycoppola@gmail.com>
2022-04-12 09:10:13 -04:00
Benjamin Cabanes
6dae32cc3a
docs(nxdev): support packages schemas metadata & discoverability (#9383) 2022-03-24 12:00:06 -04:00
Phillip Barta
21997ccdaa
feat(express): update express to 14.17.2 (#8628)
* feat(express): update express to 14.17.2

* chore(node): cleanup some changes

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2022-01-28 14:33:11 -05:00
Caleb Ukle
0ca5a88bf1
fix(testing) generated jest ts configs mismatch (#7556)
* fix(testing): add .test. files to spec tsconfig template

add support for .test.ts and with supportTsx .test.{js|tsx|jsx} files
in the tsconfig.spec.json template.

Note each package that excludes testing files will need to be updated to
exclude the new files (coming in future commits)

* fix(angular): add .test.ts support in tsconfigs

add .test.ts in angular jest template
update angular generators to exclude test files

* fix(gatsby): add .test. file prefixes to tsconfig ignore

ignore the new .test.{js|ts|jsx|tsx} files added to jest configs

* fix(react): add .test. file prefix to app/lib tsconfigs

add .test.{ts|js|tsx|jsx} files to be excluded by app/lib tsconfig

* fix(node): add .test. file prefix to app/lib tsconfig

add .test.{ts|js|tsx|jsx} files to be excluded by app/lib tsconfig

ISSUES CLOSED: #7263

* fix(nest): update tests for new .test.ts files in tsconfig

update tests to account for changes in node generators which add .test.ts to the exclude of
tsconfigs

* fix(express): update tests to account for new tsconfig changes

updated snapshots
added new patterns for tsconfig

* fix(linter): update snapshots for new tsconfig changes

snapshot updated to include new .test.ts file changes for tsconfig

* fix(node): update testing to account for spec tsconfig changes

add .test.ts files in e2e tests

* fix(testing): add migration for tsconfig changes

initial migration and test for tsconfig changes

* chore(testing): add to migrations collection

add the update-ts-config-for-test-filenames to migrations

* fix(testing): fix filesystem issue with jest tests

mock readConfig to always return an basic config to prevent issues of not finding a config in non
linux environments, aka missing /root

* cleanup(testing): update error message

update message logged when tsconfig isn't found to mention what was trying to be accompished so it
can be manually updated if desired.
2021-11-05 14:25:25 -05:00
Craigory Coppola
bdcbac4445
feat(core): standalone project configuration is default (#7351)
* feat(core): standalone project configuration is default

* chore(core): changes to e2e tests

* fix(core): intuit projects when inside their directories when using project.json files

* chore(core): e2e changes

* fix(core): standalone configurations work with npm-project generator

* chore(core): e2e tests should use standalone configurations

* chore(core): e2e fixes per review
2021-10-16 00:07:12 +02:00
Craigory Coppola
79cf69b4e4
feat(core): consolidate nx.json and workspace.json (#6642)
* feat(core): consolidate settings between workspace.json + nx.json

workspace.json (and linked project.json files) now contain all project specific settings.
nx.json now contains all settings that affect the whole workspace.

* chore(core): fix angular unit tests w/ new config

* chore(core): fix failing tests

* chore(core): fix formatting

* chore(core): fix more tests

* chore(core): normalize-nx-json feedback

* chore(core): Fix more unit tests

* chore(core): fix remaining tests in workspace

* chore(linter): fix remaining linter tests

* chore(core): fix remaining spec + build issues

* chore(core): formatting fixes

* feat(core): migration script to move config options to new locations

* chore(core): fix e2e tests

* chore(core): run format

* chore(react-native): fix failing tests

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* feat(core): move properties to new location during format step

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* feat(core): initial pass on ngcli-adapter for property consolidation

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* chore(misc): fix tests

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* docs(core): update docs with changes

* chore(misc): fix tests

* chore(core): code review changes

updateWorkspaceJson -> updateWorkspace, no longer uses updater function

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* chore(core): fix bug in ngcli impl

* fix(core): fix bug in ngcli-adapter

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* fix(core): fix ngcli-adapter

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* chore(core): fix workspace e2e

* chore(core): fix nx-plugin e2e

* fix(core): move defaultProject to nx.json

* chore(core): fix broken workspace test

* chore(core): formatting

* chore(core): fix workspace format

* chore(core): add nxJson to ExecutorContext

Signed-off-by: AgentEnder <craigorycoppola@gmail.com>

* chore(core): remove all references ot `NxProjectConfiguration` from our code

* chore(core): Review Changes

* fix(core): update new config locations v13 migration
2021-10-14 10:42:47 -04:00
Jonathan Romano
f8f09b91df
fix(linter): add setParserOptionsProject option to generators missing it (#7103) 2021-09-24 21:02:52 -04:00
Craigory V Coppola
f1911a71f3
feat(core): split nx config to project files (#5880) 2021-06-22 20:30:38 -04:00
James Henry
a3c08a9153
feat(linter): do not set eslint parserOptions.project by default (#5798) 2021-05-28 13:35:34 +00:00
Leosvel Pérez Espinosa
678818a58b
feat(angular): upgrade Angular to v12.0.0-rc.3 (#5630)
* feat(angular): upgrade Angular to v12.0.0-rc.3

* feat(angular): target Nx v12.4.0-beta.0 for Angular v12.0.0-rc.0 upgrade

* fix(angular): use defaultConfiguration if no other configuration is passed

* cleanup(angular): sync migration folder name to target version

* fix(repo): creating custom schema flattener for docs

* chore(repo): amend yarn.lock

* feat(angular): update angular storybook to use webpack 5

* fix(angular): add legacy peer deps for angular+jest

* fix(angular): move migrations to 12.3.0-rc.0

Co-authored-by: Zack DeRose <zack.derose@gmail.com>
Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2021-05-12 12:20:12 -04:00
Jason Jean
6503c4fa03
feat(node): migrate @nrwl/express to use devkit (#5558) 2021-05-04 18:48:45 -04:00