Merge branch 'master' into move-rspack-into-main
This commit is contained in:
commit
27213f0c59
@ -10,7 +10,7 @@ rust-toolchain @nrwl/nx-native-reviewers
|
|||||||
|
|
||||||
# Docs Site + Graph
|
# Docs Site + Graph
|
||||||
/docs @nrwl/nx-docs-reviewers
|
/docs @nrwl/nx-docs-reviewers
|
||||||
/docs/nx-cloud @StalkAltan @rarmatei @nrwl/nx-docs-reviewers
|
/docs/nx-cloud @StalkAltan @rarmatei @nixallover @nrwl/nx-docs-reviewers
|
||||||
/graph/** @philipjfulcher @FrozenPandaz @bcabanes @MaxKless @xiongemi
|
/graph/** @philipjfulcher @FrozenPandaz @bcabanes @MaxKless @xiongemi
|
||||||
/images @nrwl/nx-docs-reviewers
|
/images @nrwl/nx-docs-reviewers
|
||||||
/nx-dev/** @nrwl/nx-docs-reviewers
|
/nx-dev/** @nrwl/nx-docs-reviewers
|
||||||
|
|||||||
@ -417,6 +417,28 @@ Embed an Nx Graph visualization that can be panned by the user.
|
|||||||
{% /graph %}
|
{% /graph %}
|
||||||
````
|
````
|
||||||
|
|
||||||
|
## Generating API Documentation
|
||||||
|
|
||||||
|
To generate API documentation for the codebase and update the menu for the docs on nx.dev, you can run:
|
||||||
|
|
||||||
|
```
|
||||||
|
nx documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
This will happen automatically in a `git push` hook, so you'll be reminded if you forget.
|
||||||
|
|
||||||
|
### Generate API Documentation for Ocean Plugins
|
||||||
|
|
||||||
|
To generate API documentation for plugins in the ocean repository, run the `nx documentation` command with the `NX_OCEAN_RELATIVE_PATH` environment variable set to the relative path to your checked out copy of the ocean repo.
|
||||||
|
|
||||||
|
```
|
||||||
|
NX_OCEAN_RELATIVE_PATH=../ocean nx documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
This will create generated API documentation in the `docs/external-generated` folder. This API will be merged into the normal `docs/generated` documentation when the docs site is built.
|
||||||
|
|
||||||
|
Because there are two separate output folders, if someone runs `nx documentation` without the `NX_OCEAN_RELATIVE_PATH` environment variable, the ocean documentation will not be overwritten. The ocean documentation will only be updated or deleted when someone explicitly chooses to do so.
|
||||||
|
|
||||||
## Publishing Process
|
## Publishing Process
|
||||||
|
|
||||||
There are multiple versions of the `nx.dev` site.
|
There are multiple versions of the `nx.dev` site.
|
||||||
|
|||||||
@ -119,4 +119,4 @@ In addition, we are actively exploring ways to provide advanced analytics for yo
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -335,4 +335,4 @@ If the prettier UI and better performance haven’t convinced you, this surely w
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -608,4 +608,4 @@ This journey through Qwik and Nx demonstrates how thoughtful architecture and th
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -18,4 +18,4 @@ Victor and I are excited to announce that Nx has raised another $16M in a Series
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -495,4 +495,4 @@ If you enjoyed these, [subscribe to our YouTube channel](https://www.youtube.com
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -284,4 +284,4 @@ That’s all for now folks! We’re just starting up a new iteration of developm
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -621,4 +621,4 @@ Nx is a powerful monorepo tool. Together with Nx and these 2 state management to
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -312,4 +312,4 @@ This role, in the context of OpenAI’s chat models, is the response of the AI.
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](/community)
|
- [Nx Official Discord Server](/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -212,4 +212,4 @@ That’s all for now folks! We’re just starting up a new iteration of developm
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -389,4 +389,4 @@ Exciting stuff! So keep an eye on our channels, and subscribe if you haven’t a
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -185,4 +185,4 @@ We just released Project Crystal, so this is just the beginning of it. While we
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -124,4 +124,4 @@ If you have a task that can’t be run on Nx Agents for some reason, you can eas
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -319,4 +319,4 @@ Here are some example repositories already leveraging Nx release:
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -145,4 +145,4 @@ That’s all for now folks! We’re just starting up a new iteration of developm
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -215,4 +215,4 @@ Here is how to set up Nx with the Gradle workspace. Hopefully, this gives you a
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -235,4 +235,4 @@ Zack
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -56,4 +56,4 @@ This is just the first of a series of AI-powered features that we're going to be
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -292,4 +292,4 @@ The [Monorepo World conference](https://monorepo.world) is coming up soon on Oct
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -91,4 +91,4 @@ can [find more details in our docs](/ci/recipes/security/personal-access-tokens)
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
@ -4,6 +4,7 @@ slug: nx-19-8-update
|
|||||||
authors: [Zack DeRose]
|
authors: [Zack DeRose]
|
||||||
tags: [nx, release]
|
tags: [nx, release]
|
||||||
cover_image: /blog/images/2024-09-20/thumbnail.png
|
cover_image: /blog/images/2024-09-20/thumbnail.png
|
||||||
|
youtubeUrl: https://youtu.be/Zgv4LHvwGx0
|
||||||
---
|
---
|
||||||
|
|
||||||
Nx 19.8 is here! This is our last minor release before we get ready to move ahead into Nx v20, which should land in October around the same time as the [Monorepo World Conference](https://monorepo.world/)!
|
Nx 19.8 is here! This is our last minor release before we get ready to move ahead into Nx v20, which should land in October around the same time as the [Monorepo World Conference](https://monorepo.world/)!
|
||||||
@ -28,7 +29,7 @@ In this blog post:
|
|||||||
|
|
||||||
In Nx 19.8, [`nx import`](/nx-api/nx/documents/import) has now moved from beta support to now generally available!
|
In Nx 19.8, [`nx import`](/nx-api/nx/documents/import) has now moved from beta support to now generally available!
|
||||||
|
|
||||||
Nx Import is a new [top-level command of the Nx CLI](/reference/nx-commands) which allows you to import projects along with its git history from some other repository into your current Nx worksapce.
|
Nx Import is a new [top-level command of the Nx CLI](/reference/nx-commands) which allows you to import projects along with its git history from some other repository into your current Nx workspace.
|
||||||
|
|
||||||
Keep an eye out for more on Nx Import on our [YouTube Channel](https://www.youtube.com/@nxdevtools) coming soon, and in the meantime be sure to check [the documentation](/nx-api/nx/documents/import) as this is now fully documented!
|
Keep an eye out for more on Nx Import on our [YouTube Channel](https://www.youtube.com/@nxdevtools) coming soon, and in the meantime be sure to check [the documentation](/nx-api/nx/documents/import) as this is now fully documented!
|
||||||
|
|
||||||
@ -62,7 +63,7 @@ When creating a new workspace with the command: `npx create-nx-workspace`, those
|
|||||||
|
|
||||||
Keep in mind as well that ESLint v8 faces end-of-life on October 5th, meaning only [flat config](https://eslint.org/docs/latest/use/configure/migration-guide) is supported moving forward. Nx users should migrate to this new config format using [our flat config generator](/recipes/tips-n-tricks/flat-config#switching-to-eslints-flat-config-format).
|
Keep in mind as well that ESLint v8 faces end-of-life on October 5th, meaning only [flat config](https://eslint.org/docs/latest/use/configure/migration-guide) is supported moving forward. Nx users should migrate to this new config format using [our flat config generator](/recipes/tips-n-tricks/flat-config#switching-to-eslints-flat-config-format).
|
||||||
|
|
||||||
For more on eslint's flat config, and how to use our generator to get to flat conifg checkout this video:
|
For more on eslint's flat config, and how to use our generator to get to flat config checkout this video:
|
||||||
|
|
||||||
{% youtube
|
{% youtube
|
||||||
src="https://www.youtube.com/watch?v=32XH909CZrY"
|
src="https://www.youtube.com/watch?v=32XH909CZrY"
|
||||||
@ -109,4 +110,4 @@ The [Monorepo World conference](https://monorepo.world) is coming up soon on Oct
|
|||||||
- [Nx GitHub](https://github.com/nrwl/nx)
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
- [Nx Official Discord Server](https://go.nx.dev/community)
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
- [Speed up your CI](https://nx.app/)
|
- [Speed up your CI](/nx-cloud)
|
||||||
|
|||||||
54
docs/blog/2024-09-25-evolving-nx.md
Normal file
54
docs/blog/2024-09-25-evolving-nx.md
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
title: Evolving Nx
|
||||||
|
slug: evolving-nx
|
||||||
|
authors: [Jeff Cross]
|
||||||
|
tags: [nx, release]
|
||||||
|
cover_image: /blog/images/evolving-nx/thumbnail.png
|
||||||
|
---
|
||||||
|
|
||||||
|
Over the years, Nx has grown from a small 20% side project of our consulting business into a tool that empowers millions of developers worldwide and helps Fortune 500 companies ship high-quality software faster. In the last two years, we successfully transformed our consulting business into a product company, where our team can fully focus on evolving Nx and building Nx Cloud to extend Nx’s capabilities beyond local development.
|
||||||
|
|
||||||
|
This success is in large part thanks to:
|
||||||
|
|
||||||
|
- Our commitment to building Nx as MIT-licensed open-source software, supported by the incredible contributions from our vibrant Nx community.
|
||||||
|
- Close collaboration with our customers, allowing us to understand their needs and continuously improve Nx and Nx Cloud to address their demanding and complex challenges.
|
||||||
|
|
||||||
|
When we have new ideas to make Nx better, we’ve always had two options: it could be in the open source build system, or it could be in the paid cloud product, [Nx Cloud](/nx-cloud). But sometimes, there are important things we want to offer that can solve some gnarly problems for teams but don’t require them to spend months convincing their IT department to incorporate yet another cloud service. So, we decided to create a collection of non-cloud-dependent Nx add-ons in a new package called **Nx Powerpack**, which will require paid licenses to use.
|
||||||
|
|
||||||
|
## Introducing Nx Powerpack
|
||||||
|
|
||||||
|
**[Nx Powerpack](/powerpack)** — our newest product designed to elevate the Nx CLI experience for enterprise environments. Powerpack offers advanced features like self-hosted remote cache storage, code ownership for monorepos, and workspace conformance, seamlessly integrating into sealed systems with strict security requirements. It’s also designed for ease of implementation, helping enterprises bypass lengthy procurement processes and quickly access the tools they need.
|
||||||
|
|
||||||
|
> If you want to get into the technical details, we wrote a separate blog post diving deeper into the technical details: [Introducing Nx Powerpack](/blog/introducing-nx-powerpack).
|
||||||
|
|
||||||
|
Everything in Powerpack is new functionality, not previously free features that we’re now putting behind a paywall. However, this change coincides with some Nx improvements that will eventually interfere with users who were relying on our original filesystem-based implementation of local caching. We’ve completely rewritten Nx's local caching to be faster and more secure, partly by using a local database instead of checking the filesystem for artifact metadata. With this rewrite, any custom remote caches that rely on metadata reflected in the filesystem will not work as of Nx 21. This is why we decided to build an API into Powerpack to be able to connect Nx’s cache to different clouds and data sources. Now with Powerpack, teams can use an officially-supported implementation of remote caching, without needing to use Nx Cloud.
|
||||||
|
|
||||||
|
There’s a Steve Jobs quote that I think rings true with all of us at Nx:
|
||||||
|
|
||||||
|
> "I think money is a wonderful thing because it enables you to do things. It enables you to invest in ideas that don't have a short-term payback." - Steve Jobs
|
||||||
|
|
||||||
|
As Nx has grown, we’ve hired more people to make the product better. Naturally, those people want to do good work and be paid. We all show up for work to build things we’re passionate about, and solve real pains for the millions of developers using Nx every day. Money is what enables us to keep doing what we love. So as much as Victor Savkin and I want to just build things and give them away for free, we need to balance our personal passion with what’s the best long-term decisions for Nx — the project, the community, and the company.
|
||||||
|
|
||||||
|
Like many open source projects, one of the bigger challenges to sustainability in recent years has been larger cloud products who wait for projects to become successful, and then try to capitalize on that success at the expense of the maintainers. I call these companies “parasite vendors” since they benefit from the host, but give no value back. To battle this, many open source projects have decided to make their open source licensing more restrictive, or introduce dual licenses, forcing those parasite vendors to work with the maintainers on a fair arrangement. We think we’ve come up with a better solution for the community by introducing a new package, Powerpack, with a new commercial license, with only new functionality. **Nx itself still has one license: the MIT license.**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## How to Get Nx Powerpack
|
||||||
|
|
||||||
|
Powerpack is automatically included for all existing enterprise customers. If you’re looking to purchase a new license, you can easily [do so on this page](/powerpack).
|
||||||
|
|
||||||
|
Are you a startup? If these features make sense for your team but the cost is a concern, reach out to our support team, and we’ll work with you to find a solution that fits.
|
||||||
|
|
||||||
|
## Got Questions?
|
||||||
|
|
||||||
|
If you’re curious to learn more about these changes for Nx and how to get started, [check out our docs](/features/powerpack).
|
||||||
|
|
||||||
|
## Learn more
|
||||||
|
|
||||||
|
- [Nx Powerpack](/powerpack)
|
||||||
|
- [Blog: Introducing Nx Powerpack](/blog/introducing-nx-powerpack)
|
||||||
|
- [Docs: Powerpack features](/getting-started/intro)
|
||||||
|
- [X/Twitter](https://twitter.com/nxdevtools) -- [LinkedIn](https://www.linkedin.com/company/nrwl/)
|
||||||
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
252
docs/blog/2024-09-25-introducing-nx-powerpack.md
Normal file
252
docs/blog/2024-09-25-introducing-nx-powerpack.md
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
---
|
||||||
|
title: Introducing Nx Powerpack
|
||||||
|
slug: introducing-nx-powerpack
|
||||||
|
authors: [Juri Strumpflohner]
|
||||||
|
tags: [nx, release]
|
||||||
|
cover_image: /blog/images/introducing-powerpack/thumbnail.png
|
||||||
|
youtubeUrl: https://youtu.be/KZ0nh2lj8zE
|
||||||
|
---
|
||||||
|
|
||||||
|
Today we're introducing our latest product, **Nx Powerpack**, a suite of paid extensions for Nx, specifically designed around common enterprise needs. Now, before anyone draws the wrong conclusions:
|
||||||
|
|
||||||
|
- No, we’re **not going to restrict Nx’s license**, lock you in, and then harvest. Nx remains MIT licensed and fully open source.
|
||||||
|
- No, we’re **not placing existing features behind a paywall**. Nx Powerpack introduces new features on top of Nx (more about that below).
|
||||||
|
- Yes, we still **strongly believe in OSS and our community**, and we will keep improving Nx more than ever; if anything, Powerpack will help us fund our OSS work on Nx core and ensure its long-term sustainability.
|
||||||
|
|
||||||
|
So this leaves us with:
|
||||||
|

|
||||||
|
|
||||||
|
> But why do we release Nx Powerpack under a commercial license? Read all about our strategy, the reasoning behind Powerpack and OSS funding in the **blog post from our CEO, Jeff Cross**: [Evolving Nx](/blog/evolving-nx).
|
||||||
|
|
||||||
|
But now to the fun, technical part! Nx Powerpack is a bundle that - in this very first release - comes with three major features:
|
||||||
|
|
||||||
|
- [Codeowners for monorepos](#codeowners-for-monorepos)
|
||||||
|
- [Self-hosted cache storage](#selfhosted-cache-storage)
|
||||||
|
- [Workspace conformance (beta)](#workspace-conformance-beta)
|
||||||
|
|
||||||
|
Let’s dive in!
|
||||||
|
|
||||||
|
## Getting an Nx Powerpack license
|
||||||
|
|
||||||
|
All Powerpack features require a dedicated commercial license. You can get one here: [Nx Powerpack](/powerpack).
|
||||||
|
|
||||||
|
Once you have your license, run the following command
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npx nx activate-powerpack <your-license>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Codeowners for monorepos
|
||||||
|
|
||||||
|
Setting up Codeowners is highly recommended when designing a monorepo. If you’re not closely familiar, Codeowners is a common feature of VCS providers (such as GitHub, GitLab, Bitbucket, etc.), allowing you to enforce specific code reviewers to approve PRs. This functionality is especially important in a monorepo, where you manage multiple projects with multiple teams. You want to ensure the right people are reviewing the code being submitted.
|
||||||
|
|
||||||
|
Here’s a simple example of a [GitHub CODEOWNERS definition](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners):
|
||||||
|
|
||||||
|
```plain {% fileName=".github/CODEOWNERS" %}
|
||||||
|
/docs/ @doc-owner
|
||||||
|
/apps/orders @orders-team
|
||||||
|
/apps/products @products-team
|
||||||
|
/libs/orders/** @orders-team
|
||||||
|
/libs/products/** @products-team
|
||||||
|
/libs/shared/** @infra-team
|
||||||
|
```
|
||||||
|
|
||||||
|
One of the downsides of how codeowners works on today's VCS providers is that **they are folder-based**. That requires you to map your project paths to your codeowner files and keep maintaining that as you change your monorepo structure. And **this is exactly what we're going to automate**.
|
||||||
|
|
||||||
|
In a monorepo you reason based on projects. That's what you pass to your [Nx run commands](/features/run-tasks), what you see on the [project graph](/features/explore-graph) and also where owners should be defined. To get started install the Codeowners Powerpack plugin:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npx nx add @nx/powerpack-owners
|
||||||
|
```
|
||||||
|
|
||||||
|
This will allow you to define an owners section in your `nx.json` where you can define owners at the project level or even leveraging project tags. Here's a small example:
|
||||||
|
|
||||||
|
```json {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
...
|
||||||
|
"owners": {
|
||||||
|
"format": "github",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "CI configuration",
|
||||||
|
"owners": ["@devops"],
|
||||||
|
"files": [".github/workflows/**"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Order team",
|
||||||
|
"owners": ["@team-orders"],
|
||||||
|
"projects": ["tag:scope:orders"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Product team",
|
||||||
|
"owners": ["@team-products"],
|
||||||
|
"projects": ["tag:scope:products"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Design team",
|
||||||
|
"owners": ["@team-design"],
|
||||||
|
"projects": ["tag:scope:design-system"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
A dedicated `nx sync` command automatically synchronizes such definition to a `CODEOWNERS` that matches your VCS provider:
|
||||||
|
|
||||||
|
```{% fileName=".github/CODEOWNERS" %}
|
||||||
|
|
||||||
|
# CI configuration
|
||||||
|
.github/workflows/** @devops
|
||||||
|
|
||||||
|
# Design team
|
||||||
|
/libs/shared/ui/angular/form-controls/ @team-design
|
||||||
|
|
||||||
|
# Design team
|
||||||
|
/libs/shared/ui/react/form-controls/ @team-design
|
||||||
|
|
||||||
|
# Product team
|
||||||
|
/libs/products/feat-product-detail/ @team-products
|
||||||
|
|
||||||
|
# Order team
|
||||||
|
/libs/orders/feat-current-orders/ @team-orders
|
||||||
|
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Read all about how to [configure Codeowners for your project on our docs](/features/powerpack/owners).
|
||||||
|
|
||||||
|
## Self-hosted cache storage
|
||||||
|
|
||||||
|
A continuous effort on our Nx core is to improve speed. Last year, we began **rewriting performance-critical parts of Nx into Rust**, and more core components are being rewritten. As part of this effort, we also changed how we manage local cache, moving from a **file-based to a database-based approach**. In addition to small performance gains from reduced I/O, this opens up many opportunities for improving local cache handling, such as keeping only relevant cache based on usage, more easily controlling maximum cache size, and optimizing task orchestration by running failed tasks earlier.
|
||||||
|
|
||||||
|
As part of this new approach we're also going to [deprecate custom `taskRunners`](/deprecated/custom-task-runners) in Nx 20. I bring this up because it might affect users that relied on 3rd party tools that hooked into the task runners API.
|
||||||
|
|
||||||
|
To fill in on the custom task runner API we're providing a new Powerpack plugin that allows you to use S3 or a network drive as your storing mechanism for your Nx cache.
|
||||||
|
|
||||||
|
Here's an example on how to get started with AWS S3 based remote caching. First add the powerpack plugin:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npx nx add @nx/powerpack-s3-cache
|
||||||
|
```
|
||||||
|
|
||||||
|
This will update your `nx.json` to add the new `cache` section.
|
||||||
|
|
||||||
|
```json {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
...
|
||||||
|
"s3": {
|
||||||
|
"bucket": "your-s3-bucket-name",
|
||||||
|
"region": "us-east-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To then leverage the S3 powered remote cache on CI, [follow the official AWS documentation](https://github.com/aws-actions/configure-aws-credentials). Here's a short example snippet using OIDC to authenticate with AWS on GitHub Actions:
|
||||||
|
|
||||||
|
```yaml {% fileName=".github/workflows/ci.yml" %}
|
||||||
|
name: CI
|
||||||
|
...
|
||||||
|
permissions:
|
||||||
|
id-token: write
|
||||||
|
...
|
||||||
|
|
||||||
|
env:
|
||||||
|
NX_DB_CACHE: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
main:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
...
|
||||||
|
|
||||||
|
- name: 'Configure AWS Credentials'
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4.0.2
|
||||||
|
with:
|
||||||
|
role-to-assume: arn:aws:iam::123456789123:role/GhAIBucketUserRole
|
||||||
|
aws-region: us-east-1
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
- run: pnpm exec nx affected -t lint test build
|
||||||
|
```
|
||||||
|
|
||||||
|
Similarly you can **set up network file based caching** using the `nx add @nx/powerpack-shared-fs-cache` package and by setting the `cacheDirectory` path in your `nx.json`.
|
||||||
|
|
||||||
|
Read all about how to [set up S3 or network drive based caching for your Nx workspace on our docs](/features/powerpack/custom-caching).
|
||||||
|
|
||||||
|
## Workspace conformance (Beta)
|
||||||
|
|
||||||
|
We're releasing the `@nx/powerpack-conformance` plugin in an early preview. This new package focuses specifically on the maintainability of your monorepo. It allows you to encode your organization's standards so they can be enforced automatically. In this first version, the workspace conformance package ships with:
|
||||||
|
|
||||||
|
- [Enforce Module Boundaries](/nx-api/powerpack-conformance#enforce-module-boundaries): Similar to the Nx ESLint [Enforce Module Boundaries rule](https://nx-dev-git-docs-powerpack-nrwl.vercel.app/features/enforce-module-boundaries), but enforces boundaries on every project dependency, not just those created from TypeScript imports or `package.json` dependencies.
|
||||||
|
- [Ensure Owners](/nx-api/powerpack-conformance#ensure-owners): Requires every project to have an owner defined for the `@nx/powerpack-owners` plugin.
|
||||||
|
|
||||||
|
To get started, install the following package:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npx nx add @nx/powerpack-conformance
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows you to define conformance rules in your `nx.json`. Here is an example:
|
||||||
|
|
||||||
|
```json {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
...
|
||||||
|
"conformance": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"rule": "@nx/powerpack-conformance/enforce-module-boundaries",
|
||||||
|
"projects": ["!remix-app-e2e"],
|
||||||
|
"options": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rule": "@nx/powerpack-conformance/ensure-owners",
|
||||||
|
"projects": ["!remix-app-e2e"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rule": "./tools/local-conformance-rule.ts"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also define rules locally, as shown in the example above, which are simple TypeScript files:
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { createConformanceRule } from '@nx/powerpack-conformance';
|
||||||
|
|
||||||
|
const rule = createConformanceRule({
|
||||||
|
name: 'local-conformance-rule-example',
|
||||||
|
category: 'security',
|
||||||
|
reporter: 'project-reporter',
|
||||||
|
implementation: async (context) => {
|
||||||
|
return {
|
||||||
|
severity: 'low',
|
||||||
|
details: {
|
||||||
|
violations: [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default rule;
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then run `nx conformance` to execute the conformance checks:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In this first preview release, you'll only be able to run workspace conformance rules on a single workspace. In future iterations, you **will be able to connect it to your existing Nx Cloud organization**, allowing you to upload conformance rules and run them across connected workspaces.
|
||||||
|
|
||||||
|
Read all the details on how to [get started with workspace conformance rules in our docs](/features/powerpack/conformance).
|
||||||
|
|
||||||
|
## Learn more
|
||||||
|
|
||||||
|
- [Nx Docs](/getting-started/intro)
|
||||||
|
- [X/Twitter](https://twitter.com/nxdevtools) -- [LinkedIn](https://www.linkedin.com/company/nrwl/)
|
||||||
|
- [Nx GitHub](https://github.com/nrwl/nx)
|
||||||
|
- [Nx Official Discord Server](https://go.nx.dev/community)
|
||||||
|
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
|
||||||
BIN
docs/blog/images/evolving-nx/nx-products-licenses.avif
Normal file
BIN
docs/blog/images/evolving-nx/nx-products-licenses.avif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/blog/images/evolving-nx/thumbnail.png
Normal file
BIN
docs/blog/images/evolving-nx/thumbnail.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 519 KiB |
BIN
docs/blog/images/introducing-powerpack/conformance-check.avif
Normal file
BIN
docs/blog/images/introducing-powerpack/conformance-check.avif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
BIN
docs/blog/images/introducing-powerpack/thumbnail.png
Normal file
BIN
docs/blog/images/introducing-powerpack/thumbnail.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 911 KiB |
@ -1,6 +1,9 @@
|
|||||||
# [Nx 19.8](/blog/nx-19-8-update)
|
# [Nx 19.8 Blogpost](/blog/nx-19-8-update)
|
||||||
|
|
||||||
[](/blog/nx-19-8-update)
|
{% youtube
|
||||||
|
src="https://youtu.be/Zgv4LHvwGx0"
|
||||||
|
title="Nx Console Run UI Form"
|
||||||
|
width="100%" /%}
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|||||||
144
docs/external-generated/packages-metadata.json
Normal file
144
docs/external-generated/packages-metadata.json
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": [
|
||||||
|
{
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"file": "external-generated/packages/powerpack-conformance/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "powerpack-conformance/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-conformance/powerpack-conformance-plugin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"executors": [],
|
||||||
|
"generators": [],
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-conformance",
|
||||||
|
"packageName": "@nx/powerpack-conformance",
|
||||||
|
"root": "/libs/nx-packages/powerpack-conformance",
|
||||||
|
"source": "/libs/nx-packages/powerpack-conformance/src"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": [],
|
||||||
|
"executors": [],
|
||||||
|
"generators": [],
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-license",
|
||||||
|
"packageName": "@nx/powerpack-license",
|
||||||
|
"root": "/libs/nx-packages/powerpack-license",
|
||||||
|
"source": "/libs/nx-packages/powerpack-license/src"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": [
|
||||||
|
{
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"file": "external-generated/packages/powerpack-owners/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "powerpack-owners/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-owners/powerpack-owners-plugin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"executors": [],
|
||||||
|
"generators": [
|
||||||
|
{
|
||||||
|
"description": "Initialize Nx Powerpack Owners config",
|
||||||
|
"file": "external-generated/packages/powerpack-owners/generators/init.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "init",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-owners/src/generators/init/schema.json",
|
||||||
|
"path": "powerpack-owners/generators/init",
|
||||||
|
"type": "generator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Sync Nx Powerpack Owners config to a CODEOWNERS file",
|
||||||
|
"file": "external-generated/packages/powerpack-owners/generators/sync-codeowners-file.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "sync-codeowners-file",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-owners/src/generators/sync-codeowners-file/schema.json",
|
||||||
|
"path": "powerpack-owners/generators/sync-codeowners-file",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-owners",
|
||||||
|
"packageName": "@nx/powerpack-owners",
|
||||||
|
"root": "/libs/nx-packages/powerpack-owners",
|
||||||
|
"source": "/libs/nx-packages/powerpack-owners/src"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": [
|
||||||
|
{
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"file": "external-generated/packages/powerpack-s3-cache/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "powerpack-s3-cache/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"executors": [],
|
||||||
|
"generators": [
|
||||||
|
{
|
||||||
|
"description": "Initialize the S3 Cache",
|
||||||
|
"file": "external-generated/packages/powerpack-s3-cache/generators/init.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "init",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-s3-cache/src/generators/init/schema.json",
|
||||||
|
"path": "powerpack-s3-cache/generators/init",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-s3-cache",
|
||||||
|
"packageName": "@nx/powerpack-s3-cache",
|
||||||
|
"root": "/libs/nx-packages/powerpack-s3-cache",
|
||||||
|
"source": "/libs/nx-packages/powerpack-s3-cache/src"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "A Nx Powerpack plugin for an Nx cache which is shared through the filesystem",
|
||||||
|
"documents": [
|
||||||
|
{
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "A Nx Powerpack plugin for an Nx cache which is shared through the filesystem",
|
||||||
|
"file": "external-generated/packages/powerpack-shared-fs-cache/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "powerpack-shared-fs-cache/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"executors": [],
|
||||||
|
"generators": [
|
||||||
|
{
|
||||||
|
"description": "Add the shared fs cache",
|
||||||
|
"file": "external-generated/packages/powerpack-shared-fs-cache/generators/init.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "init",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-shared-fs-cache/src/generators/init/schema.json",
|
||||||
|
"path": "powerpack-shared-fs-cache/generators/init",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-shared-fs-cache",
|
||||||
|
"packageName": "@nx/powerpack-shared-fs-cache",
|
||||||
|
"root": "/libs/nx-packages/powerpack-shared-fs-cache",
|
||||||
|
"source": "/libs/nx-packages/powerpack-shared-fs-cache/src"
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -0,0 +1,217 @@
|
|||||||
|
---
|
||||||
|
title: Overview of the Nx powerpack-conformance Plugin
|
||||||
|
description: The Nx Powerpack Conformance plugin provides the ability to write and apply rules for your workspace
|
||||||
|
---
|
||||||
|
|
||||||
|
The `@nx/powerpack-conformance` plugin allows [Nx Powerpack]() users to write and apply rules for your entire workspace that help with **consistency**, **maintainability**, **reliability** and **security**.
|
||||||
|
|
||||||
|
The conformance plugin allows you to encode your own organization's standards so that they can be enforced automatically. Conformance rules can also complement linting tools by enforcing that those tools are configured in the recommended way. The rules are written in TypeScript but can be applied to any language in the codebase or focus entirely on configuration files.
|
||||||
|
|
||||||
|
The plugin also provides the following pre-written rules:
|
||||||
|
|
||||||
|
- [**Enforce Module Boundaries**](#enforce-module-boundaries): Similar to the Nx [ESLint Enforce Module Boundaries rule](/features/enforce-module-boundaries), but enforces the boundaries on every project dependency, not just those created from TypeScript imports or `package.json` dependencies.
|
||||||
|
- [**Ensure Owners**](#ensure-owners): Require every project to have an owner defined for the [`@nx/powerpack-owners` plugin](/nx-api/powerpack-owners)
|
||||||
|
|
||||||
|
{% callout title="This plugin requires an active Nx Powerpack license" %}
|
||||||
|
In order to use `@nx/powerpack-conformance`, you need to have an active Powerpack license. If you don't have a license or it has expired, the `nx conformance` command will fail.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
|
||||||
|
2. Install the package
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx add @nx/powerpack-conformance
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Configure Conformance Rules
|
||||||
|
|
||||||
|
Configure the `@nx/powerpack-conformance` plugin in the `nx.json` file or in individual project configuration files. Consult the [Conformance Configuration Reference](#conformance-configuration-reference) section for more details.
|
||||||
|
|
||||||
|
4. Run the `nx conformance` command in CI
|
||||||
|
|
||||||
|
Add `nx conformance` to the beginning of the CI process.
|
||||||
|
|
||||||
|
{% tabs %}
|
||||||
|
{% tab label="Without Nx Cloud" %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Enforce all conformance rules
|
||||||
|
run: npx nx conformance
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% tab label="Using Nx Cloud" %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Enforce all conformance rules
|
||||||
|
run: npx nx-cloud record -- npx nx conformance
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `npx nx-cloud record --` to capture the logs for `nx conformance` in the Nx Cloud dashboard.
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% /tabs %}
|
||||||
|
|
||||||
|
## Conformance Configuration Reference
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"conformance": {
|
||||||
|
"rules": [{
|
||||||
|
/**
|
||||||
|
* Relative path to a local rule implementation or node_module path.
|
||||||
|
*/
|
||||||
|
"rule": "@nx/powerpack-conformance/enforce-module-boundaries";
|
||||||
|
/**
|
||||||
|
* Rule specific configuration options. (Optional)
|
||||||
|
*/
|
||||||
|
"options": {}
|
||||||
|
/**
|
||||||
|
* The projects array allows users to opt in or out of violations for specific projects being reported by the current rule.
|
||||||
|
* The array can contain any valid matchers for findMatchingProjects(), by default the implied value is ["*"]. (Optional)
|
||||||
|
*/
|
||||||
|
"projects": ["*"];
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Provided Conformance Rules
|
||||||
|
|
||||||
|
The following rules are provided by Nx along with the `@nx/powerpack-conformance` plugin.
|
||||||
|
|
||||||
|
### Enforce Module Boundaries
|
||||||
|
|
||||||
|
This rule is similar to the Nx [ESLint Enforce Module Boundaries rule](/features/enforce-module-boundaries), but enforces the boundaries on every project dependency, not just those created from TypeScript imports or `package.json` dependencies.
|
||||||
|
|
||||||
|
Set the `rule` property to: `@nx/powerpack-conformance/enforce-module-boundaries`
|
||||||
|
|
||||||
|
```json {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"conformance": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"rule": "@nx/powerpack-conformance/enforce-module-boundaries",
|
||||||
|
"options": {
|
||||||
|
// Optional
|
||||||
|
// Can be a boolean or an object with an array of buildTargetNames
|
||||||
|
"requireBuildableDependenciesForBuildableProjects": {
|
||||||
|
// Defaults to ["build"]
|
||||||
|
"buildTargetNames": ["build", "compile"]
|
||||||
|
},
|
||||||
|
// Optional
|
||||||
|
"ignoredCircularDependencies": [["projectA", "projectB"]],
|
||||||
|
// Optional
|
||||||
|
"depConstraints": [
|
||||||
|
{
|
||||||
|
// Must define either `sourceTag` or `allSourceTags`
|
||||||
|
"sourceTag": "string",
|
||||||
|
"allSourceTags": ["string"],
|
||||||
|
// Optional
|
||||||
|
"onlyDependOnLibsWithTags": [],
|
||||||
|
// Optional
|
||||||
|
"notDependOnLibsWithTags": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// Optional
|
||||||
|
"checkDynamicDependenciesExceptions": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Options
|
||||||
|
|
||||||
|
| Property | Type | Default | Description |
|
||||||
|
| ------------------------------------------------ | ------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| ignoredCircularDependencies | _Array<[string, string]>_ | _[]_ | List of project pairs that should be skipped from `Circular dependencies` checks, including the self-circular dependency check. E.g. `['feature-project-a', 'myapp']`. Project name can be replaced by catch all `*` for more generic matches. |
|
||||||
|
| checkDynamicDependenciesExceptions | _Array<string>_ | _[]_ | List of imports that should be skipped for `Imports of lazy-loaded libraries forbidden` checks. E.g. `['@myorg/lazy-project/component/*', '@myorg/other-project']` |
|
||||||
|
| requireBuildableDependenciesForBuildableProjects | _boolean_ | _false_ | Enable to restrict the buildable libs from importing non-buildable libraries |
|
||||||
|
| depConstraints | _Array<object>_ | _[]_ | List of dependency constraints between projects |
|
||||||
|
|
||||||
|
#### Dependency constraints
|
||||||
|
|
||||||
|
The `depConstraints` is an array of objects representing the constraints defined between source and target projects. A
|
||||||
|
constraint must include `sourceTag` or `allSourceTags`. The constraints are applied with **AND** logical operation - for
|
||||||
|
a given `source` project the resulting constraints would be **all** that match its tags.
|
||||||
|
|
||||||
|
| Property | Type | Description |
|
||||||
|
| ------------------------ | --------------- | ---------------------------------------------------------------------------------- |
|
||||||
|
| sourceTag | _string_ | Tag that source project must contain to match the constraint |
|
||||||
|
| allSourceTags | _Array<string>_ | List of tags the source project must contain to match the constraint |
|
||||||
|
| onlyDependOnLibsWithTags | _Array<string>_ | The source **can depend only** on projects that contain at least one of these tags |
|
||||||
|
| notDependOnLibsWithTags | _Array<string>_ | The source **can not depend** on projects that contain at least one of these tags |
|
||||||
|
|
||||||
|
### Ensure Owners
|
||||||
|
|
||||||
|
This rule requires every project to have an owner defined for the [`@nx/powerpack-owners` plugin](/nx-api/powerpack-owners)
|
||||||
|
|
||||||
|
Set the `rule` property to: `@nx/powerpack-conformance/ensure-owners`
|
||||||
|
|
||||||
|
```json {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"conformance": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"rule": "@nx/powerpack-conformance/ensure-owners"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Custom Conformance Rules
|
||||||
|
|
||||||
|
To write your own conformance rule, specify a relative path to a TypeScript or JavaScript file as the rule name:
|
||||||
|
|
||||||
|
```json {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"conformance": {
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"rule": "./tools/local-conformance-rule.ts"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The rule definition file should look like this:
|
||||||
|
|
||||||
|
```ts {% fileName="tools/local-conformance-rule.ts" %}
|
||||||
|
import type {
|
||||||
|
ConformanceRule,
|
||||||
|
ConformanceRuleResult,
|
||||||
|
createConformanceRule,
|
||||||
|
} from '@nx/powerpack-conformance';
|
||||||
|
|
||||||
|
const rule = createConformanceRule({
|
||||||
|
name: 'local-conformance-rule-example',
|
||||||
|
category: 'security', // `consistency`, `maintainability`, `reliability` or `security`
|
||||||
|
reporter: 'project-reporter', // `project-reporter` or `project-files-reporter`
|
||||||
|
implementation: async (context): Promise<ConformanceRuleResult> => {
|
||||||
|
const { projectGraph, ruleOptions } = context;
|
||||||
|
// Your rule logic goes here
|
||||||
|
return {
|
||||||
|
severity: 'low', // 'high', 'medium' or 'low'
|
||||||
|
details: {
|
||||||
|
violations: [
|
||||||
|
// Return an empty array if the rule passes
|
||||||
|
{
|
||||||
|
sourceProject: 'my-project',
|
||||||
|
message: 'This is an informative error message.',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default rule;
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that the severity of the error is defined by the rule author and can be adjusted based on the specific violations that are found.
|
||||||
@ -0,0 +1,326 @@
|
|||||||
|
---
|
||||||
|
title: Overview of the Nx powerpack-owners Plugin
|
||||||
|
description: The Nx Powerpack Owners plugin provides the ability to define code ownership based on projects in addition to files
|
||||||
|
---
|
||||||
|
|
||||||
|
The `@nx/powerpack-owners` plugin extends the CODEOWNERS functionality to allow you to define code ownership based on projects in addition to the standard file-based definitions. It leverages the [`nx sync`](/concepts/sync-generators) command to compile `owners` configuration settings from `nx.json` and project configuration files into valid CODEOWNERS files for [GitHub](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners), [Bitbucket](https://support.atlassian.com/bitbucket-cloud/docs/set-up-and-use-code-owners/) or [GitLab](https://docs.gitlab.com/ee/user/project/codeowners/).
|
||||||
|
|
||||||
|
With this plugin, you can specify code ownership using the same project matcher syntax as [`nx run-many`](/nx-api/nx/documents/run-many#examples). This allows you to easily define rules for multiple projects that may not be located in the same directory. Also, the CODEOWNERS rules will not need to be revisited if a project location is changed or a new project is added.
|
||||||
|
|
||||||
|
{% callout title="This plugin requires an active Nx Powerpack license" %}
|
||||||
|
In order to use `@nx/powerpack-owners`, you need to have an active Powerpack license. If you don't have a license or it has expired, the syncing process will stop working and you'll need to manually maintain your CODEOWNERS file.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
|
||||||
|
2. Install the package
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx add @nx/powerpack-owners
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Configure Ownership
|
||||||
|
|
||||||
|
Configure the `@nx/powerpack-owners` plugin in the `nx.json` file or in individual project configuration files. Consult the [Owners Configuration Reference](#owners-configuration-reference) section for more details.
|
||||||
|
|
||||||
|
4. Configure the [Sync Generator](/concepts/sync-generators) and CI
|
||||||
|
|
||||||
|
The `nx add @nx/powerpack-owners` command should have registered the `@nx/powerpack-owners:sync-codeowners-file` generator as a `globalGenerator` in `nx.json`. You can double check to make sure:
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"sync": {
|
||||||
|
"globalGenerators": ["@nx/powerpack-owners:sync-codeowners-file"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Add `nx sync:check` to the beginning of the CI process.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Ensure the workspace configuration is in sync
|
||||||
|
run: npx nx sync:check
|
||||||
|
```
|
||||||
|
|
||||||
|
It is also often helpful to add `nx sync` as a git push hook or git commit hook.
|
||||||
|
|
||||||
|
## Owners Configuration Reference
|
||||||
|
|
||||||
|
{% tabs %}
|
||||||
|
{% tab label="GitHub" %}
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
// Can be set to true instead of an object to accept all defaults
|
||||||
|
"owners": {
|
||||||
|
// Options are `github`, `bitbucket` or `gitlab`. (Optional) Defaults to `github`
|
||||||
|
"format": "github",
|
||||||
|
// (Optional) Default changes based on format: `.github/CODEOWNERS`, `.bitbucket/CODEOWNERS`, `.gitlab/CODEOWNERS`
|
||||||
|
"outputPath": "CODEOWNERS",
|
||||||
|
// (Optional)
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "A description of the rule",
|
||||||
|
"owners": ["@joelovesrust"],
|
||||||
|
// specify either projects or files, not both
|
||||||
|
// Can be any project specifier that could be used in `nx run-many`
|
||||||
|
// See https://nx.dev/nx-api/nx/documents/run-many
|
||||||
|
"projects": ["my-rust-app", "rust-*", "tag:rust"],
|
||||||
|
// File globs
|
||||||
|
"files": [".github/workflows/**/*"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% tab label="Bitbucket" %}
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
// Can be set to true instead of an object to accept all defaults
|
||||||
|
"owners": {
|
||||||
|
// Options are `github`, `bitbucket` or `gitlab`. (Optional) Defaults to `github`
|
||||||
|
"format": "bitbucket",
|
||||||
|
// (Optional) Default changes based on format: `.github/CODEOWNERS`, `.bitbucket/CODEOWNERS`, `.gitlab/CODEOWNERS`
|
||||||
|
"outputPath": "CODEOWNERS",
|
||||||
|
// (Optional)
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "A description of the rule",
|
||||||
|
"owners": ["@joelovesrust"],
|
||||||
|
// specify either projects or files, not both
|
||||||
|
// Can be any project specifier that could be used in `nx run-many`
|
||||||
|
// See https://nx.dev/nx-api/nx/documents/run-many
|
||||||
|
"projects": ["my-rust-app", "rust-*", "tag:rust"],
|
||||||
|
// File globs
|
||||||
|
"files": [".github/workflows/**/*"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% tab label="GitLab" %}
|
||||||
|
|
||||||
|
If you are using GitLab, you can specify CODEOWNERS [sections](https://docs.gitlab.com/ee/user/project/codeowners/#organize-code-owners-by-putting-them-into-sections) which give you a little more control over the PR process.
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
// Can be set to true instead of an object to accept all defaults
|
||||||
|
"owners": {
|
||||||
|
// Options are `github`, `bitbucket` or `gitlab`. (Optional) Defaults to `github`
|
||||||
|
"format": "gitlab",
|
||||||
|
// (Optional) Default changes based on format: `.github/CODEOWNERS`, `.bitbucket/CODEOWNERS`, `.gitlab/CODEOWNERS`
|
||||||
|
"outputPath": "CODEOWNERS",
|
||||||
|
// (Optional)
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "A description of the rule",
|
||||||
|
"owners": ["@joelovesrust"],
|
||||||
|
// Specify either `projects` or `files`, not both
|
||||||
|
// Can be any project specifier that could be used in `nx run-many`
|
||||||
|
// See https://nx.dev/nx-api/nx/documents/run-many
|
||||||
|
"projects": ["my-rust-app", "rust-*", "tag:rust"],
|
||||||
|
// File globs
|
||||||
|
"files": [".github/workflows/**/*"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// (Optional)
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
// Labels the section
|
||||||
|
"name": "My section",
|
||||||
|
// (Optional) The owners to use if a pattern does not specify a set of owners
|
||||||
|
"defaultOwners": ["@cheddar"],
|
||||||
|
// Specify either `numberOfRequiredApprovals` or `optional`, not both
|
||||||
|
// (Optional) Require more than one person to approve the PR
|
||||||
|
"numberOfRequiredApprovals": 2,
|
||||||
|
// (Optional) Do not require any approvals, just notify the owners
|
||||||
|
"optional": true,
|
||||||
|
// Same format as the root patterns
|
||||||
|
"patterns": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```jsonc {% fileName="path/to/project/project.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
// Keys are file globs relative to the root of the project
|
||||||
|
// Owners can be listed as a string array
|
||||||
|
"**/*": ["@ahmed", "@petra"],
|
||||||
|
// Owners can be listed as an object with a description
|
||||||
|
"README.md": {
|
||||||
|
"description": "Jared is very particular about the README file",
|
||||||
|
"owners": ["@jared"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% /tabs %}
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
|
||||||
|
{% tabs %}
|
||||||
|
{% tab label="GitHub" %}
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
// defaults to "github"
|
||||||
|
"format": "github",
|
||||||
|
// defaults to ".github/CODEOWNERS"
|
||||||
|
"outputPath": "CODEOWNERS",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "Joe should double check all changes to rust code",
|
||||||
|
"projects": ["tag:rust"],
|
||||||
|
"owners": ["@joelovesrust"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "The Finance team owns these projects",
|
||||||
|
"projects": ["finance-*"],
|
||||||
|
"owners": ["@finance-team"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Alice, Bob and Cecil work together on these projects",
|
||||||
|
"projects": ["admin", "booking", "cart"],
|
||||||
|
"owners": ["@alice", "@bob", "@cecil"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "CI Workflows",
|
||||||
|
"files": [".github/workflows/**/*"],
|
||||||
|
"owners": ["@devops"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```jsonc {% fileName="packages/my-project/project.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
"**/*": ["@ahmed", "@petra"],
|
||||||
|
"package.json": ["@ahmed"],
|
||||||
|
"README.md": {
|
||||||
|
"owners": ["@jared"],
|
||||||
|
"description": "Jared is very particular about the README file"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% tab label="Bitbucket" %}
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
"format": "bitbucket",
|
||||||
|
// defaults to ".bitbucket/CODEOWNERS"
|
||||||
|
"outputPath": "CODEOWNERS",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "Joe should double check all changes to rust code",
|
||||||
|
"projects": ["tag:rust"],
|
||||||
|
"owners": ["@joelovesrust"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "The Finance team owns these projects",
|
||||||
|
"projects": ["finance-*"],
|
||||||
|
"owners": ["@finance-team"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Alice, Bob and Cecil work together on these projects",
|
||||||
|
"projects": ["admin", "booking", "cart"],
|
||||||
|
"owners": ["@alice", "@bob", "@cecil"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "CI Workflows",
|
||||||
|
"files": [".github/workflows/**/*"],
|
||||||
|
"owners": ["@devops"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```jsonc {% fileName="packages/my-project/project.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
"**/*": ["@ahmed", "@petra"],
|
||||||
|
"package.json": ["@ahmed"],
|
||||||
|
"README.md": {
|
||||||
|
"owners": ["@jared"],
|
||||||
|
"description": "Jared is very particular about the README file"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% tab label="GitLab" %}
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
"format": "gitlab",
|
||||||
|
// defaults to ".gitlab/CODEOWNERS"
|
||||||
|
"outputPath": "CODEOWNERS",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "Joe should double check all changes to rust code",
|
||||||
|
"projects": ["tag:rust"],
|
||||||
|
"owners": ["@joelovesrust"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "CI Workflows",
|
||||||
|
"files": [".github/workflows/**/*"],
|
||||||
|
"owners": ["@devops"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
"name": "Finance",
|
||||||
|
"defaultOwners": ["@finance-team"],
|
||||||
|
"numberOfRequiredApprovals": 2,
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"description": "The Finance team owns these projects",
|
||||||
|
"projects": ["finance-*"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Alice, Bob and Cecil work together on these projects",
|
||||||
|
"projects": ["admin", "booking", "cart"],
|
||||||
|
"owners": ["@alice", "@bob", "@cecil"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```jsonc {% fileName="packages/my-project/project.json" %}
|
||||||
|
{
|
||||||
|
"owners": {
|
||||||
|
"**/*": ["@ahmed", "@petra"],
|
||||||
|
"package.json": ["@ahmed"],
|
||||||
|
"README.md": {
|
||||||
|
"owners": ["@jared"],
|
||||||
|
"description": "Jared is very particular about the README file"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
{% /tab %}
|
||||||
|
{% /tabs %}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/init",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "http://json-schema.org/schema",
|
||||||
|
"id": "NxPowerpackOwnersInit",
|
||||||
|
"title": "Add Powerpack Owners Configuration to the workspace",
|
||||||
|
"type": "object",
|
||||||
|
"cli": "nx",
|
||||||
|
"properties": {},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Initialize Nx Powerpack Owners config",
|
||||||
|
"implementation": "/libs/nx-packages/powerpack-owners/src/generators/init/init.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/libs/nx-packages/powerpack-owners/src/generators/init/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "sync-codeowners-file",
|
||||||
|
"factory": "./src/generators/sync-codeowners-file/generator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "https://json-schema.org/schema",
|
||||||
|
"$id": "NxPowerpackOwnersSyncCodeownersFileGenerator",
|
||||||
|
"title": "Nx Powerpack Owners Sync CODEOWNERS File Generator",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Sync Nx Powerpack Owners config to a CODEOWNERS file",
|
||||||
|
"implementation": "/libs/nx-packages/powerpack-owners/src/generators/sync-codeowners-file/generator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/libs/nx-packages/powerpack-owners/src/generators/sync-codeowners-file/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
title: Overview of the Nx powerpack-s3-cache Plugin
|
||||||
|
description: The powerpack-s3-cache Nx plugin enables you to use an AWS S3 bucket to host your remote cache instead of Nx Cloud
|
||||||
|
---
|
||||||
|
|
||||||
|
The `@nx/powerpack-s3-cache` plugin enables you to use an AWS S3 bucket instead of Nx Cloud to host your remote cache.
|
||||||
|
|
||||||
|
{% callout title="This plugin requires an active Nx Powerpack license" %}
|
||||||
|
In order to use `@nx/powerpack-s3-cache`, you need to have an active Powerpack license. If you don't have a license or it has expired, your cache will no longer be shared and each machine will use its local cache.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
### 1. Install the Package
|
||||||
|
|
||||||
|
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
|
||||||
|
2. Install the package
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx add @nx/powerpack-s3-cache
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Authenticate with AWS
|
||||||
|
|
||||||
|
There are four different ways to authenticate with AWS. They will be attempted in this order:
|
||||||
|
|
||||||
|
1. Environment variables
|
||||||
|
2. INI config files
|
||||||
|
3. Single sign-on
|
||||||
|
4. `nx.json` settings
|
||||||
|
|
||||||
|
#### Environment Variables
|
||||||
|
|
||||||
|
[AWS provides environment variables](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html) that can be used to authenticate:
|
||||||
|
|
||||||
|
| **Environment Variable** | **Description** |
|
||||||
|
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `AWS_ACCESS_KEY_ID` | The access key for your AWS account. |
|
||||||
|
| `AWS_SECRET_ACCESS_KEY` | The secret key for your AWS account. |
|
||||||
|
| `AWS_SESSION_TOKEN` | The session key for your AWS account. This is only needed when you are using temporary credentials. |
|
||||||
|
| `AWS_CREDENTIAL_EXPIRATION` | The expiration time of the credentials contained in the environment variables described above. This value must be in a format compatible with the [ISO-8601 standard](https://en.wikipedia.org/wiki/ISO_8601) and is only needed when you are using temporary credentials. |
|
||||||
|
|
||||||
|
Both the `AWS_ACCESS_KEY_ID` and the `AWS_SECRET_ACCESS_KEY` environment variables are required to use the environment variable authentication method.
|
||||||
|
|
||||||
|
#### INI Config Files
|
||||||
|
|
||||||
|
AWS can read your authentication credentials from [shared INI config files](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html). The files are located at `~/.aws/credentials` and `~/.aws/config`. Both files are expected to be INI formatted with section names corresponding to profiles. Sections in the credentials file are treated as profile names, whereas profile sections in the config file must have the format of `[profile profile-name]`, except for the default profile. Profiles that appear in both files will not be merged, and the version that appears in the credentials file will be given precedence over the profile found in the config file.
|
||||||
|
|
||||||
|
#### Single Sign-On
|
||||||
|
|
||||||
|
Nx can read the active access token [created after running `aws sso login`](https://docs.aws.amazon.com/sdkref/latest/guide/understanding-sso.html) then request temporary AWS credentials. You can create the `AwsCredentialIdentityProvider` functions using the inline SSO parameters (`ssoStartUrl`, `ssoAccountId`, `ssoRegion`, `ssoRoleName`) or load them from [AWS SDKs and Tools shared configuration and credentials files](https://docs.aws.amazon.com/credref/latest/refdocs/creds-config-files.html). Profiles in the `credentials` file are given precedence over profiles in the `config` file.
|
||||||
|
|
||||||
|
#### Credentials in `nx.json` File
|
||||||
|
|
||||||
|
Storing your credentials in the `nx.json` file is the least secure of the 4 authentication options, since anyone with read access to your code base will have access to your AWS credentials.
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"s3": {
|
||||||
|
"ssoProfile": "default",
|
||||||
|
"accessKeyId": "MYACCESSKEYID",
|
||||||
|
"secretAccessKey": "MYSECRETACCESSKEY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
| **Property** | **Description** |
|
||||||
|
| ------------------- | ----------------------------------------------------------------------------- |
|
||||||
|
| **ssoProfile** | The name of the profile to use from your AWS CLI SSO Configuration (optional) |
|
||||||
|
| **endpoint** | The AWS endpoint URL (optional) |
|
||||||
|
| **accessKeyId** | AWS Access Key ID (optional) |
|
||||||
|
| **secretAccessKey** | AWS secret access key (optional) |
|
||||||
|
|
||||||
|
### 3. Configure S3 Cache
|
||||||
|
|
||||||
|
Regardless of how you manage your AWS authentication, you need to configure your Nx cache in the `nx.json` file. The `bucket` that you specify needs to already exist - Nx doesn't create it for you.
|
||||||
|
|
||||||
|
```jsonc {% fileName="nx.json" %}
|
||||||
|
{
|
||||||
|
"s3": {
|
||||||
|
"region": "us-east-1",
|
||||||
|
"bucket": "my-bucket",
|
||||||
|
"encryptionKey": "create-your-own-key"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
| **Property** | **Description** |
|
||||||
|
| ----------------- | --------------------------------------------------------------------------------- |
|
||||||
|
| **region** | The id of the AWS region to use |
|
||||||
|
| **bucket** | The name of the AWS bucket to use |
|
||||||
|
| **encryptionKey** | Nx encryption key used to encrypt and decrypt artifacts from the cache (optional) |
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/generator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "https://json-schema.org/schema",
|
||||||
|
"$id": "Init",
|
||||||
|
"title": "",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"region": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The AWS region the bucket is located in",
|
||||||
|
"x-prompt": "Which AWS region is the bucket located in?"
|
||||||
|
},
|
||||||
|
"bucket": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The the name of the S3 Bucket to store the Nx Cache in",
|
||||||
|
"x-prompt": "What is the name of the S3 Bucket to store the Nx Cache in?"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["region", "bucket"],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Initialize the S3 Cache",
|
||||||
|
"implementation": "/libs/nx-packages/powerpack-s3-cache/src/generators/init/generator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/libs/nx-packages/powerpack-s3-cache/src/generators/init/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
title: Overview of the Nx powerpack-shared-fs-cache Plugin
|
||||||
|
description: The powerpack-shared-fs-cache Nx plugin enables you to use an shared file system directory instead of Nx Cloud to host your remote cache
|
||||||
|
---
|
||||||
|
|
||||||
|
The `@nx/powerpack-shared-fs-cache` plugin enables you to use an shared file system directory instead of Nx Cloud to host your remote cache. You are responsible for the sharing mechanism for the directory, but the plugin ensures that Nx correctly associates task metadata with the file artifacts.
|
||||||
|
|
||||||
|
{% callout type="warning" title="Potential Cache Poisoning" %}
|
||||||
|
Using a shared file system folder for the remote cache opens you up to the possibility of [cache poisoning](/troubleshooting/unknown-local-cache). To avoid this, use [Nx Replay](/ci/features/remote-cache) or share your cache with an AWS S3 bucket using [`@nx/powerpack-s3-cache`](/nx-api/powerpack-s3-cache).
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
{% callout title="This plugin requires an active Nx Powerpack license" %}
|
||||||
|
In order to use `@nx/powerpack-shared-fs-cache`, you need to have an active Powerpack license. If you don't have a license or it has expired, your cache will no longer be shared and each machine will use its local cache.
|
||||||
|
{% /callout %}
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
### 1. Install the Package
|
||||||
|
|
||||||
|
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
|
||||||
|
2. Install the package
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nx add @nx/powerpack-shared-fs-cache
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Configure the Cache Directory
|
||||||
|
|
||||||
|
The `@nx/powerpack-shared-fs-cache` plugin treats your local cache directory as if it is also a remote cache directory. The local cache directory can be set using `cacheDirectory` in the `nx.json` file or the `NX_CACHE_DIRECTORY` environment variable. The default local cache directory is `.nx/cache`
|
||||||
|
|
||||||
|
### 3. Share the Cache Directory
|
||||||
|
|
||||||
|
The `@nx/powerpack-shared-fs-cache` plugin does not actually share the cache directory across your organization. If you want that functionality, use [Nx Replay](/ci/features/remote-cache) instead. Your shared file system directory might be a directory that is saved and restored by a CI provider or it could be a shared network drive.
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "init",
|
||||||
|
"factory": "./src/generators/init/generator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "https://json-schema.org/schema",
|
||||||
|
"$id": "Init",
|
||||||
|
"title": "",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Add the shared fs cache",
|
||||||
|
"implementation": "/libs/nx-packages/powerpack-shared-fs-cache/src/generators/init/generator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/libs/nx-packages/powerpack-shared-fs-cache/src/generators/init/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -23,6 +23,7 @@ Nx.json configuration
|
|||||||
- [cli](../../devkit/documents/NxJsonConfiguration#cli): Object
|
- [cli](../../devkit/documents/NxJsonConfiguration#cli): Object
|
||||||
- [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase): string
|
- [defaultBase](../../devkit/documents/NxJsonConfiguration#defaultbase): string
|
||||||
- [defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject): string
|
- [defaultProject](../../devkit/documents/NxJsonConfiguration#defaultproject): string
|
||||||
|
- [enableDbCache](../../devkit/documents/NxJsonConfiguration#enabledbcache): boolean
|
||||||
- [extends](../../devkit/documents/NxJsonConfiguration#extends): string
|
- [extends](../../devkit/documents/NxJsonConfiguration#extends): string
|
||||||
- [generators](../../devkit/documents/NxJsonConfiguration#generators): Object
|
- [generators](../../devkit/documents/NxJsonConfiguration#generators): Object
|
||||||
- [implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies): ImplicitDependencyEntry<T>
|
- [implicitDependencies](../../devkit/documents/NxJsonConfiguration#implicitdependencies): ImplicitDependencyEntry<T>
|
||||||
@ -98,6 +99,14 @@ will be used. Convenient for small workspaces with one main application.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### enableDbCache
|
||||||
|
|
||||||
|
• `Optional` **enableDbCache**: `boolean`
|
||||||
|
|
||||||
|
Enable the new experimental db based cache
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### extends
|
### extends
|
||||||
|
|
||||||
• `Optional` **extends**: `string`
|
• `Optional` **extends**: `string`
|
||||||
|
|||||||
@ -21,6 +21,7 @@ use ProjectsConfigurations or NxJsonConfiguration
|
|||||||
- [cli](../../devkit/documents/Workspace#cli): Object
|
- [cli](../../devkit/documents/Workspace#cli): Object
|
||||||
- [defaultBase](../../devkit/documents/Workspace#defaultbase): string
|
- [defaultBase](../../devkit/documents/Workspace#defaultbase): string
|
||||||
- [defaultProject](../../devkit/documents/Workspace#defaultproject): string
|
- [defaultProject](../../devkit/documents/Workspace#defaultproject): string
|
||||||
|
- [enableDbCache](../../devkit/documents/Workspace#enabledbcache): boolean
|
||||||
- [extends](../../devkit/documents/Workspace#extends): string
|
- [extends](../../devkit/documents/Workspace#extends): string
|
||||||
- [generators](../../devkit/documents/Workspace#generators): Object
|
- [generators](../../devkit/documents/Workspace#generators): Object
|
||||||
- [implicitDependencies](../../devkit/documents/Workspace#implicitdependencies): ImplicitDependencyEntry<string[] | "\*">
|
- [implicitDependencies](../../devkit/documents/Workspace#implicitdependencies): ImplicitDependencyEntry<string[] | "\*">
|
||||||
@ -118,6 +119,18 @@ will be used. Convenient for small workspaces with one main application.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### enableDbCache
|
||||||
|
|
||||||
|
• `Optional` **enableDbCache**: `boolean`
|
||||||
|
|
||||||
|
Enable the new experimental db based cache
|
||||||
|
|
||||||
|
#### Inherited from
|
||||||
|
|
||||||
|
[NxJsonConfiguration](../../devkit/documents/NxJsonConfiguration).[enableDbCache](../../devkit/documents/NxJsonConfiguration#enabledbcache)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### extends
|
### extends
|
||||||
|
|
||||||
• `Optional` **extends**: `string`
|
• `Optional` **extends**: `string`
|
||||||
|
|||||||
@ -323,6 +323,39 @@
|
|||||||
"children": [],
|
"children": [],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Powerpack Features",
|
||||||
|
"path": "/features/powerpack",
|
||||||
|
"id": "powerpack",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"path": "/features/powerpack/conformance",
|
||||||
|
"id": "conformance",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"path": "/features/powerpack/owners",
|
||||||
|
"id": "owners",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"path": "/features/powerpack/custom-caching",
|
||||||
|
"id": "custom-caching",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "CI Features",
|
"name": "CI Features",
|
||||||
"path": "/features/ci-features",
|
"path": "/features/ci-features",
|
||||||
@ -439,6 +472,63 @@
|
|||||||
"children": [],
|
"children": [],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Powerpack Features",
|
||||||
|
"path": "/features/powerpack",
|
||||||
|
"id": "powerpack",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"path": "/features/powerpack/conformance",
|
||||||
|
"id": "conformance",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"path": "/features/powerpack/owners",
|
||||||
|
"id": "owners",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"path": "/features/powerpack/custom-caching",
|
||||||
|
"id": "custom-caching",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"path": "/features/powerpack/conformance",
|
||||||
|
"id": "conformance",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"path": "/features/powerpack/owners",
|
||||||
|
"id": "owners",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"path": "/features/powerpack/custom-caching",
|
||||||
|
"id": "custom-caching",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "CI Features",
|
"name": "CI Features",
|
||||||
"path": "/features/ci-features",
|
"path": "/features/ci-features",
|
||||||
@ -1081,6 +1171,14 @@
|
|||||||
"id": "installation",
|
"id": "installation",
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"children": [
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"path": "/recipes/installation/activate-powerpack",
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Install Nx in a Non-Javascript Repo",
|
"name": "Install Nx in a Non-Javascript Repo",
|
||||||
"path": "/recipes/installation/install-non-javascript",
|
"path": "/recipes/installation/install-non-javascript",
|
||||||
@ -2095,6 +2193,14 @@
|
|||||||
"id": "installation",
|
"id": "installation",
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"children": [
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"path": "/recipes/installation/activate-powerpack",
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Install Nx in a Non-Javascript Repo",
|
"name": "Install Nx in a Non-Javascript Repo",
|
||||||
"path": "/recipes/installation/install-non-javascript",
|
"path": "/recipes/installation/install-non-javascript",
|
||||||
@ -2114,6 +2220,14 @@
|
|||||||
],
|
],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"path": "/recipes/installation/activate-powerpack",
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Install Nx in a Non-Javascript Repo",
|
"name": "Install Nx in a Non-Javascript Repo",
|
||||||
"path": "/recipes/installation/install-non-javascript",
|
"path": "/recipes/installation/install-non-javascript",
|
||||||
@ -4762,6 +4876,14 @@
|
|||||||
"children": [],
|
"children": [],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Custom Task Runners",
|
||||||
|
"path": "/deprecated/custom-task-runners",
|
||||||
|
"id": "custom-task-runners",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Workspace Executors",
|
"name": "Workspace Executors",
|
||||||
"path": "/deprecated/workspace-executors",
|
"path": "/deprecated/workspace-executors",
|
||||||
@ -4861,6 +4983,14 @@
|
|||||||
"children": [],
|
"children": [],
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Custom Task Runners",
|
||||||
|
"path": "/deprecated/custom-task-runners",
|
||||||
|
"id": "custom-task-runners",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Workspace Executors",
|
"name": "Workspace Executors",
|
||||||
"path": "/deprecated/workspace-executors",
|
"path": "/deprecated/workspace-executors",
|
||||||
@ -7028,14 +7158,6 @@
|
|||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "component-cypress-spec",
|
|
||||||
"path": "/nx-api/angular/generators/component-cypress-spec",
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"children": [],
|
|
||||||
"isExternal": false,
|
|
||||||
"disableCollapsible": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "component-story",
|
"id": "component-story",
|
||||||
"path": "/nx-api/angular/generators/component-story",
|
"path": "/nx-api/angular/generators/component-story",
|
||||||
@ -8185,6 +8307,14 @@
|
|||||||
"children": [],
|
"children": [],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "setup-prettier",
|
||||||
|
"path": "/nx-api/js/generators/setup-prettier",
|
||||||
|
"name": "setup-prettier",
|
||||||
|
"children": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
@ -9214,14 +9344,6 @@
|
|||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "component-cypress-spec",
|
|
||||||
"path": "/nx-api/react/generators/component-cypress-spec",
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"children": [],
|
|
||||||
"isExternal": false,
|
|
||||||
"disableCollapsible": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "hook",
|
"id": "hook",
|
||||||
"path": "/nx-api/react/generators/hook",
|
"path": "/nx-api/react/generators/hook",
|
||||||
@ -10531,6 +10653,177 @@
|
|||||||
],
|
],
|
||||||
"isExternal": false,
|
"isExternal": false,
|
||||||
"disableCollapsible": false
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "powerpack-conformance",
|
||||||
|
"path": "/nx-api/powerpack-conformance",
|
||||||
|
"name": "powerpack-conformance",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "documents",
|
||||||
|
"path": "/nx-api/powerpack-conformance/documents",
|
||||||
|
"name": "documents",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Overview",
|
||||||
|
"path": "/nx-api/powerpack-conformance/documents/overview",
|
||||||
|
"id": "overview",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "powerpack-license",
|
||||||
|
"path": "/nx-api/powerpack-license",
|
||||||
|
"name": "powerpack-license",
|
||||||
|
"children": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "powerpack-owners",
|
||||||
|
"path": "/nx-api/powerpack-owners",
|
||||||
|
"name": "powerpack-owners",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "documents",
|
||||||
|
"path": "/nx-api/powerpack-owners/documents",
|
||||||
|
"name": "documents",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Overview",
|
||||||
|
"path": "/nx-api/powerpack-owners/documents/overview",
|
||||||
|
"id": "overview",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "generators",
|
||||||
|
"path": "/nx-api/powerpack-owners/generators",
|
||||||
|
"name": "generators",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "init",
|
||||||
|
"path": "/nx-api/powerpack-owners/generators/init",
|
||||||
|
"name": "init",
|
||||||
|
"children": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sync-codeowners-file",
|
||||||
|
"path": "/nx-api/powerpack-owners/generators/sync-codeowners-file",
|
||||||
|
"name": "sync-codeowners-file",
|
||||||
|
"children": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "powerpack-s3-cache",
|
||||||
|
"path": "/nx-api/powerpack-s3-cache",
|
||||||
|
"name": "powerpack-s3-cache",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "documents",
|
||||||
|
"path": "/nx-api/powerpack-s3-cache/documents",
|
||||||
|
"name": "documents",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Overview",
|
||||||
|
"path": "/nx-api/powerpack-s3-cache/documents/overview",
|
||||||
|
"id": "overview",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "generators",
|
||||||
|
"path": "/nx-api/powerpack-s3-cache/generators",
|
||||||
|
"name": "generators",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "init",
|
||||||
|
"path": "/nx-api/powerpack-s3-cache/generators/init",
|
||||||
|
"name": "init",
|
||||||
|
"children": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "powerpack-shared-fs-cache",
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache",
|
||||||
|
"name": "powerpack-shared-fs-cache",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "documents",
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache/documents",
|
||||||
|
"name": "documents",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"name": "Overview",
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache/documents/overview",
|
||||||
|
"id": "overview",
|
||||||
|
"isExternal": false,
|
||||||
|
"children": [],
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "generators",
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache/generators",
|
||||||
|
"name": "generators",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "init",
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache/generators/init",
|
||||||
|
"name": "init",
|
||||||
|
"children": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"disableCollapsible": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -181,15 +181,6 @@
|
|||||||
"path": "/nx-api/angular/generators/component",
|
"path": "/nx-api/angular/generators/component",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
},
|
},
|
||||||
"/nx-api/angular/generators/component-cypress-spec": {
|
|
||||||
"description": "Creates a Cypress spec for a UI component that has a story.",
|
|
||||||
"file": "generated/packages/angular/generators/component-cypress-spec.json",
|
|
||||||
"hidden": true,
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"originalFilePath": "/packages/angular/src/generators/component-cypress-spec/schema.json",
|
|
||||||
"path": "/nx-api/angular/generators/component-cypress-spec",
|
|
||||||
"type": "generator"
|
|
||||||
},
|
|
||||||
"/nx-api/angular/generators/component-story": {
|
"/nx-api/angular/generators/component-story": {
|
||||||
"description": "Creates a stories.ts file for a component.",
|
"description": "Creates a stories.ts file for a component.",
|
||||||
"file": "generated/packages/angular/generators/component-story.json",
|
"file": "generated/packages/angular/generators/component-story.json",
|
||||||
@ -1291,6 +1282,15 @@
|
|||||||
"originalFilePath": "/packages/js/src/generators/typescript-sync/schema.json",
|
"originalFilePath": "/packages/js/src/generators/typescript-sync/schema.json",
|
||||||
"path": "/nx-api/js/generators/typescript-sync",
|
"path": "/nx-api/js/generators/typescript-sync",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
},
|
||||||
|
"/nx-api/js/generators/setup-prettier": {
|
||||||
|
"description": "Setup Prettier as the formatting tool.",
|
||||||
|
"file": "generated/packages/js/generators/setup-prettier.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "setup-prettier",
|
||||||
|
"originalFilePath": "/packages/js/src/generators/setup-prettier/schema.json",
|
||||||
|
"path": "/nx-api/js/generators/setup-prettier",
|
||||||
|
"type": "generator"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path": "/nx-api/js"
|
"path": "/nx-api/js"
|
||||||
@ -2349,15 +2349,6 @@
|
|||||||
"path": "/nx-api/react/generators/stories",
|
"path": "/nx-api/react/generators/stories",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
},
|
},
|
||||||
"/nx-api/react/generators/component-cypress-spec": {
|
|
||||||
"description": "Create a Cypress spec for a UI component that has a story.",
|
|
||||||
"file": "generated/packages/react/generators/component-cypress-spec.json",
|
|
||||||
"hidden": false,
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"originalFilePath": "/packages/react/src/generators/component-cypress-spec/schema.json",
|
|
||||||
"path": "/nx-api/react/generators/component-cypress-spec",
|
|
||||||
"type": "generator"
|
|
||||||
},
|
|
||||||
"/nx-api/react/generators/hook": {
|
"/nx-api/react/generators/hook": {
|
||||||
"description": "Create a hook.",
|
"description": "Create a hook.",
|
||||||
"file": "generated/packages/react/generators/hook.json",
|
"file": "generated/packages/react/generators/hook.json",
|
||||||
@ -3615,5 +3606,152 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path": "/nx-api/workspace"
|
"path": "/nx-api/workspace"
|
||||||
|
},
|
||||||
|
"powerpack-conformance": {
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-conformance",
|
||||||
|
"packageName": "@nx/powerpack-conformance",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": {
|
||||||
|
"/nx-api/powerpack-conformance/documents/overview": {
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"file": "external-generated/packages/powerpack-conformance/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-api/powerpack-conformance/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-conformance/powerpack-conformance-plugin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "/libs/nx-packages/powerpack-conformance",
|
||||||
|
"source": "/libs/nx-packages/powerpack-conformance/src",
|
||||||
|
"executors": {},
|
||||||
|
"generators": {},
|
||||||
|
"path": "/nx-api/powerpack-conformance"
|
||||||
|
},
|
||||||
|
"powerpack-license": {
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-license",
|
||||||
|
"packageName": "@nx/powerpack-license",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": {},
|
||||||
|
"root": "/libs/nx-packages/powerpack-license",
|
||||||
|
"source": "/libs/nx-packages/powerpack-license/src",
|
||||||
|
"executors": {},
|
||||||
|
"generators": {},
|
||||||
|
"path": "/nx-api/powerpack-license"
|
||||||
|
},
|
||||||
|
"powerpack-owners": {
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-owners",
|
||||||
|
"packageName": "@nx/powerpack-owners",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": {
|
||||||
|
"/nx-api/powerpack-owners/documents/overview": {
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"file": "external-generated/packages/powerpack-owners/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-api/powerpack-owners/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-owners/powerpack-owners-plugin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "/libs/nx-packages/powerpack-owners",
|
||||||
|
"source": "/libs/nx-packages/powerpack-owners/src",
|
||||||
|
"executors": {},
|
||||||
|
"generators": {
|
||||||
|
"/nx-api/powerpack-owners/generators/init": {
|
||||||
|
"description": "Initialize Nx Powerpack Owners config",
|
||||||
|
"file": "external-generated/packages/powerpack-owners/generators/init.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "init",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-owners/src/generators/init/schema.json",
|
||||||
|
"path": "/nx-api/powerpack-owners/generators/init",
|
||||||
|
"type": "generator"
|
||||||
|
},
|
||||||
|
"/nx-api/powerpack-owners/generators/sync-codeowners-file": {
|
||||||
|
"description": "Sync Nx Powerpack Owners config to a CODEOWNERS file",
|
||||||
|
"file": "external-generated/packages/powerpack-owners/generators/sync-codeowners-file.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "sync-codeowners-file",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-owners/src/generators/sync-codeowners-file/schema.json",
|
||||||
|
"path": "/nx-api/powerpack-owners/generators/sync-codeowners-file",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path": "/nx-api/powerpack-owners"
|
||||||
|
},
|
||||||
|
"powerpack-s3-cache": {
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-s3-cache",
|
||||||
|
"packageName": "@nx/powerpack-s3-cache",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"documents": {
|
||||||
|
"/nx-api/powerpack-s3-cache/documents/overview": {
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "Not intended for external use",
|
||||||
|
"file": "external-generated/packages/powerpack-s3-cache/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-api/powerpack-s3-cache/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-s3-cache/powerpack-s3-cache-plugin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "/libs/nx-packages/powerpack-s3-cache",
|
||||||
|
"source": "/libs/nx-packages/powerpack-s3-cache/src",
|
||||||
|
"executors": {},
|
||||||
|
"generators": {
|
||||||
|
"/nx-api/powerpack-s3-cache/generators/init": {
|
||||||
|
"description": "Initialize the S3 Cache",
|
||||||
|
"file": "external-generated/packages/powerpack-s3-cache/generators/init.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "init",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-s3-cache/src/generators/init/schema.json",
|
||||||
|
"path": "/nx-api/powerpack-s3-cache/generators/init",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path": "/nx-api/powerpack-s3-cache"
|
||||||
|
},
|
||||||
|
"powerpack-shared-fs-cache": {
|
||||||
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
|
"name": "powerpack-shared-fs-cache",
|
||||||
|
"packageName": "@nx/powerpack-shared-fs-cache",
|
||||||
|
"description": "A Nx Powerpack plugin for an Nx cache which is shared through the filesystem",
|
||||||
|
"documents": {
|
||||||
|
"/nx-api/powerpack-shared-fs-cache/documents/overview": {
|
||||||
|
"id": "overview",
|
||||||
|
"name": "Overview",
|
||||||
|
"description": "A Nx Powerpack plugin for an Nx cache which is shared through the filesystem",
|
||||||
|
"file": "external-generated/packages/powerpack-shared-fs-cache/documents/overview",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache/documents/overview",
|
||||||
|
"tags": [],
|
||||||
|
"originalFilePath": "shared/packages/powerpack-shared-fs-cache/powerpack-shared-fs-cache-plugin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "/libs/nx-packages/powerpack-shared-fs-cache",
|
||||||
|
"source": "/libs/nx-packages/powerpack-shared-fs-cache/src",
|
||||||
|
"executors": {},
|
||||||
|
"generators": {
|
||||||
|
"/nx-api/powerpack-shared-fs-cache/generators/init": {
|
||||||
|
"description": "Add the shared fs cache",
|
||||||
|
"file": "external-generated/packages/powerpack-shared-fs-cache/generators/init.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "init",
|
||||||
|
"originalFilePath": "/libs/nx-packages/powerpack-shared-fs-cache/src/generators/init/schema.json",
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache/generators/init",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path": "/nx-api/powerpack-shared-fs-cache"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -438,6 +438,51 @@
|
|||||||
"path": "/features/manage-releases",
|
"path": "/features/manage-releases",
|
||||||
"tags": ["nx-release"]
|
"tags": ["nx-release"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "powerpack",
|
||||||
|
"name": "Powerpack Features",
|
||||||
|
"description": "Features of Nx that are available with a powerpack license.",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "conformance",
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"description": "Conformance",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/conformance",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/conformance",
|
||||||
|
"tags": ["conformance"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "owners",
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"description": "Owners",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/owners",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/owners",
|
||||||
|
"tags": ["owners"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "custom-caching",
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"description": "Custom Caching",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/custom-caching",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/custom-caching",
|
||||||
|
"tags": ["custom-caching"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "ci-features",
|
"id": "ci-features",
|
||||||
"name": "CI Features",
|
"name": "CI Features",
|
||||||
@ -598,6 +643,84 @@
|
|||||||
"path": "/features/manage-releases",
|
"path": "/features/manage-releases",
|
||||||
"tags": ["nx-release"]
|
"tags": ["nx-release"]
|
||||||
},
|
},
|
||||||
|
"/features/powerpack": {
|
||||||
|
"id": "powerpack",
|
||||||
|
"name": "Powerpack Features",
|
||||||
|
"description": "Features of Nx that are available with a powerpack license.",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "",
|
||||||
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "conformance",
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"description": "Conformance",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/conformance",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/conformance",
|
||||||
|
"tags": ["conformance"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "owners",
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"description": "Owners",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/owners",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/owners",
|
||||||
|
"tags": ["owners"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "custom-caching",
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"description": "Custom Caching",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/custom-caching",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/custom-caching",
|
||||||
|
"tags": ["custom-caching"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
|
"/features/powerpack/conformance": {
|
||||||
|
"id": "conformance",
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"description": "Conformance",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/conformance",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/conformance",
|
||||||
|
"tags": ["conformance"]
|
||||||
|
},
|
||||||
|
"/features/powerpack/owners": {
|
||||||
|
"id": "owners",
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"description": "Owners",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/owners",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/owners",
|
||||||
|
"tags": ["owners"]
|
||||||
|
},
|
||||||
|
"/features/powerpack/custom-caching": {
|
||||||
|
"id": "custom-caching",
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"description": "Custom Caching",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/features/powerpack/custom-caching",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/features/powerpack/custom-caching",
|
||||||
|
"tags": ["custom-caching"]
|
||||||
|
},
|
||||||
"/features/ci-features": {
|
"/features/ci-features": {
|
||||||
"id": "ci-features",
|
"id": "ci-features",
|
||||||
"name": "CI Features",
|
"name": "CI Features",
|
||||||
@ -1476,6 +1599,17 @@
|
|||||||
"mediaImage": "",
|
"mediaImage": "",
|
||||||
"file": "",
|
"file": "",
|
||||||
"itemList": [
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"description": "",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/recipes/installation/activate-powerpack",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/recipes/installation/activate-powerpack",
|
||||||
|
"tags": ["installation"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "install-non-javascript",
|
"id": "install-non-javascript",
|
||||||
"name": "Install Nx in a Non-Javascript Repo",
|
"name": "Install Nx in a Non-Javascript Repo",
|
||||||
@ -2864,6 +2998,17 @@
|
|||||||
"mediaImage": "",
|
"mediaImage": "",
|
||||||
"file": "",
|
"file": "",
|
||||||
"itemList": [
|
"itemList": [
|
||||||
|
{
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"description": "",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/recipes/installation/activate-powerpack",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/recipes/installation/activate-powerpack",
|
||||||
|
"tags": ["installation"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "install-non-javascript",
|
"id": "install-non-javascript",
|
||||||
"name": "Install Nx in a Non-Javascript Repo",
|
"name": "Install Nx in a Non-Javascript Repo",
|
||||||
@ -2891,6 +3036,17 @@
|
|||||||
"path": "/recipes/installation",
|
"path": "/recipes/installation",
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
|
"/recipes/installation/activate-powerpack": {
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"description": "",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/recipes/installation/activate-powerpack",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/recipes/installation/activate-powerpack",
|
||||||
|
"tags": ["installation"]
|
||||||
|
},
|
||||||
"/recipes/installation/install-non-javascript": {
|
"/recipes/installation/install-non-javascript": {
|
||||||
"id": "install-non-javascript",
|
"id": "install-non-javascript",
|
||||||
"name": "Install Nx in a Non-Javascript Repo",
|
"name": "Install Nx in a Non-Javascript Repo",
|
||||||
@ -6521,6 +6677,17 @@
|
|||||||
"path": "/deprecated/workspace-generators",
|
"path": "/deprecated/workspace-generators",
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "custom-task-runners",
|
||||||
|
"name": "Custom Task Runners",
|
||||||
|
"description": "",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/deprecated/custom-task-runners",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/deprecated/custom-task-runners",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "workspace-executors",
|
"id": "workspace-executors",
|
||||||
"name": "Workspace Executors",
|
"name": "Workspace Executors",
|
||||||
@ -6658,6 +6825,17 @@
|
|||||||
"path": "/deprecated/workspace-generators",
|
"path": "/deprecated/workspace-generators",
|
||||||
"tags": []
|
"tags": []
|
||||||
},
|
},
|
||||||
|
"/deprecated/custom-task-runners": {
|
||||||
|
"id": "custom-task-runners",
|
||||||
|
"name": "Custom Task Runners",
|
||||||
|
"description": "",
|
||||||
|
"mediaImage": "",
|
||||||
|
"file": "shared/deprecated/custom-task-runners",
|
||||||
|
"itemList": [],
|
||||||
|
"isExternal": false,
|
||||||
|
"path": "/deprecated/custom-task-runners",
|
||||||
|
"tags": []
|
||||||
|
},
|
||||||
"/deprecated/workspace-executors": {
|
"/deprecated/workspace-executors": {
|
||||||
"id": "workspace-executors",
|
"id": "workspace-executors",
|
||||||
"name": "Workspace Executors",
|
"name": "Workspace Executors",
|
||||||
|
|||||||
@ -575,6 +575,33 @@
|
|||||||
"path": "/nx-api/nx/documents/release"
|
"path": "/nx-api/nx/documents/release"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"conformance": [
|
||||||
|
{
|
||||||
|
"description": "Conformance",
|
||||||
|
"file": "shared/features/powerpack/conformance",
|
||||||
|
"id": "conformance",
|
||||||
|
"name": "Run Language-Agnostic Conformance Rules",
|
||||||
|
"path": "/features/powerpack/conformance"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"owners": [
|
||||||
|
{
|
||||||
|
"description": "Owners",
|
||||||
|
"file": "shared/features/powerpack/owners",
|
||||||
|
"id": "owners",
|
||||||
|
"name": "Define Code Ownership at the Project Level",
|
||||||
|
"path": "/features/powerpack/owners"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"custom-caching": [
|
||||||
|
{
|
||||||
|
"description": "Custom Caching",
|
||||||
|
"file": "shared/features/powerpack/custom-caching",
|
||||||
|
"id": "custom-caching",
|
||||||
|
"name": "Self-Host the Remote Cache",
|
||||||
|
"path": "/features/powerpack/custom-caching"
|
||||||
|
}
|
||||||
|
],
|
||||||
"intro": [
|
"intro": [
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -821,6 +848,13 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"installation": [
|
"installation": [
|
||||||
|
{
|
||||||
|
"description": "",
|
||||||
|
"file": "shared/recipes/installation/activate-powerpack",
|
||||||
|
"id": "activate-powerpack",
|
||||||
|
"name": "Activate Powerpack",
|
||||||
|
"path": "/recipes/installation/activate-powerpack"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
"file": "shared/recipes/installation/install-non-javascript",
|
"file": "shared/recipes/installation/install-non-javascript",
|
||||||
|
|||||||
@ -176,15 +176,6 @@
|
|||||||
"path": "angular/generators/component",
|
"path": "angular/generators/component",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"description": "Creates a Cypress spec for a UI component that has a story.",
|
|
||||||
"file": "generated/packages/angular/generators/component-cypress-spec.json",
|
|
||||||
"hidden": true,
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"originalFilePath": "/packages/angular/src/generators/component-cypress-spec/schema.json",
|
|
||||||
"path": "angular/generators/component-cypress-spec",
|
|
||||||
"type": "generator"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"description": "Creates a stories.ts file for a component.",
|
"description": "Creates a stories.ts file for a component.",
|
||||||
"file": "generated/packages/angular/generators/component-story.json",
|
"file": "generated/packages/angular/generators/component-story.json",
|
||||||
@ -1273,6 +1264,15 @@
|
|||||||
"originalFilePath": "/packages/js/src/generators/typescript-sync/schema.json",
|
"originalFilePath": "/packages/js/src/generators/typescript-sync/schema.json",
|
||||||
"path": "js/generators/typescript-sync",
|
"path": "js/generators/typescript-sync",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Setup Prettier as the formatting tool.",
|
||||||
|
"file": "generated/packages/js/generators/setup-prettier.json",
|
||||||
|
"hidden": false,
|
||||||
|
"name": "setup-prettier",
|
||||||
|
"originalFilePath": "/packages/js/src/generators/setup-prettier/schema.json",
|
||||||
|
"path": "js/generators/setup-prettier",
|
||||||
|
"type": "generator"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
"githubRoot": "https://github.com/nrwl/nx/blob/master",
|
||||||
@ -2323,15 +2323,6 @@
|
|||||||
"path": "react/generators/stories",
|
"path": "react/generators/stories",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"description": "Create a Cypress spec for a UI component that has a story.",
|
|
||||||
"file": "generated/packages/react/generators/component-cypress-spec.json",
|
|
||||||
"hidden": false,
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"originalFilePath": "/packages/react/src/generators/component-cypress-spec/schema.json",
|
|
||||||
"path": "react/generators/component-cypress-spec",
|
|
||||||
"type": "generator"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"description": "Create a hook.",
|
"description": "Create a hook.",
|
||||||
"file": "generated/packages/react/generators/hook.json",
|
"file": "generated/packages/react/generators/hook.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "application",
|
"name": "application",
|
||||||
"factory": "./src/generators/application/application#applicationGeneratorInternal",
|
"factory": "./src/generators/application/application",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "GeneratorNxApp",
|
"$id": "GeneratorNxApp",
|
||||||
@ -191,7 +191,7 @@
|
|||||||
"aliases": ["app"],
|
"aliases": ["app"],
|
||||||
"x-type": "application",
|
"x-type": "application",
|
||||||
"description": "Creates an Angular application.",
|
"description": "Creates an Angular application.",
|
||||||
"implementation": "/packages/angular/src/generators/application/application#applicationGeneratorInternal.ts",
|
"implementation": "/packages/angular/src/generators/application/application.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/application/schema.json",
|
"path": "/packages/angular/src/generators/application/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -1,75 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"factory": "./src/generators/component-cypress-spec/component-cypress-spec",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "https://json-schema.org/schema",
|
|
||||||
"$id": "NxAngularComponentCypressSpecGenerator",
|
|
||||||
"type": "object",
|
|
||||||
"cli": "nx",
|
|
||||||
"description": "Creates a Storybook Cypress spec for a UI component that has a story.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20.",
|
|
||||||
"properties": {
|
|
||||||
"projectName": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"examples": ["ui-samples"],
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"projectPath": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Path to the project.",
|
|
||||||
"examples": ["libs/ui-samples"],
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"componentName": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Class name of the component.",
|
|
||||||
"examples": ["AwesomeComponent"],
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"componentPath": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Relative path to the component file from the project root.",
|
|
||||||
"examples": ["awesome"],
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"componentFileName": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Component file name without the `.ts` extension.",
|
|
||||||
"examples": ["awesome.component"],
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"cypressProject": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The Cypress project to generate the stories under. By default, inferred from `projectName`."
|
|
||||||
},
|
|
||||||
"specDirectory": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Directory where to place the generated spec file. By default matches the value of the `componentPath` option."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
|
||||||
"description": "Skip formatting files.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"x-priority": "internal"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"additionalProperties": false,
|
|
||||||
"required": [
|
|
||||||
"projectName",
|
|
||||||
"projectPath",
|
|
||||||
"componentName",
|
|
||||||
"componentPath",
|
|
||||||
"componentFileName"
|
|
||||||
],
|
|
||||||
"examplesFile": "## Examples\n\n{% tabs %}\n\n{% tab label=\"Basic Usage\" %}\n\nCreate a cypress spec for a component that is set up with Storybook.\n\n```bash\nnx g @nx/angular:component-cypress-spec --componentName=MyButtonComponent --componentPath=libs/ui/src/lib/button/button.component.ts --componentFileName=button.component --projectName=ui --projectPath=libs/ui\n```\n\n{% /tab %}\n\n{% /tabs %}\n",
|
|
||||||
"presets": []
|
|
||||||
},
|
|
||||||
"description": "Creates a Cypress spec for a UI component that has a story.",
|
|
||||||
"hidden": true,
|
|
||||||
"implementation": "/packages/angular/src/generators/component-cypress-spec/component-cypress-spec.ts",
|
|
||||||
"aliases": [],
|
|
||||||
"path": "/packages/angular/src/generators/component-cypress-spec/schema.json",
|
|
||||||
"type": "generator"
|
|
||||||
}
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "component",
|
"name": "component",
|
||||||
"factory": "./src/generators/component/component#componentGeneratorInternal",
|
"factory": "./src/generators/component/component",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "http://json-schema.org/draft-07/schema",
|
"$schema": "http://json-schema.org/draft-07/schema",
|
||||||
"$id": "SchematicsAngularComponent",
|
"$id": "SchematicsAngularComponent",
|
||||||
@ -27,13 +27,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-dropdown": "projects",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"prefix": {
|
"prefix": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The prefix to apply to the generated component selector.",
|
"description": "The prefix to apply to the generated component selector.",
|
||||||
@ -92,12 +85,6 @@
|
|||||||
"description": "Do not create `spec.ts` test files for the new component.",
|
"description": "Do not create `spec.ts` test files for the new component.",
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create the new files at the top level of the current project.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"skipImport": {
|
"skipImport": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Do not import this component into the owning NgModule.",
|
"description": "Do not import this component into the owning NgModule.",
|
||||||
@ -137,7 +124,7 @@
|
|||||||
},
|
},
|
||||||
"aliases": ["c"],
|
"aliases": ["c"],
|
||||||
"description": "Generate an Angular Component.",
|
"description": "Generate an Angular Component.",
|
||||||
"implementation": "/packages/angular/src/generators/component/component#componentGeneratorInternal.ts",
|
"implementation": "/packages/angular/src/generators/component/component.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/component/schema.json",
|
"path": "/packages/angular/src/generators/component/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cypress-component-configuration",
|
"name": "cypress-component-configuration",
|
||||||
"factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal",
|
"factory": "./src/generators/cypress-component-configuration/cypress-component-configuration",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxAngularCypressComponentConfigurationGenerator",
|
"$id": "NxAngularCypressComponentConfigurationGenerator",
|
||||||
@ -41,7 +41,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Setup Cypress component testing for a project.",
|
"description": "Setup Cypress component testing for a project.",
|
||||||
"implementation": "/packages/angular/src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigurationInternal.ts",
|
"implementation": "/packages/angular/src/generators/cypress-component-configuration/cypress-component-configuration.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/cypress-component-configuration/schema.json",
|
"path": "/packages/angular/src/generators/cypress-component-configuration/schema.json",
|
||||||
|
|||||||
@ -27,13 +27,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-dropdown": "projects",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"prefix": {
|
"prefix": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "A prefix to apply to generated selectors.",
|
"description": "A prefix to apply to generated selectors.",
|
||||||
@ -63,12 +56,6 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "When true (the default), creates the new files at the top level of the current project.",
|
|
||||||
"default": true,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"module": {
|
"module": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The filename of the declaring NgModule.",
|
"description": "The filename of the declaring NgModule.",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "host",
|
"name": "host",
|
||||||
"factory": "./src/generators/host/host#hostInternal",
|
"factory": "./src/generators/host/host",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxMFHost",
|
"$id": "NxMFHost",
|
||||||
@ -183,7 +183,7 @@
|
|||||||
},
|
},
|
||||||
"x-type": "application",
|
"x-type": "application",
|
||||||
"description": "Generate a Host Angular Module Federation Application.",
|
"description": "Generate a Host Angular Module Federation Application.",
|
||||||
"implementation": "/packages/angular/src/generators/host/host#hostInternal.ts",
|
"implementation": "/packages/angular/src/generators/host/host.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/host/schema.json",
|
"path": "/packages/angular/src/generators/host/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "library",
|
"name": "library",
|
||||||
"factory": "./src/generators/library/library#libraryGeneratorInternal",
|
"factory": "./src/generators/library/library",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "GeneratorAngularLibrary",
|
"$id": "GeneratorAngularLibrary",
|
||||||
@ -210,7 +210,7 @@
|
|||||||
"aliases": ["lib"],
|
"aliases": ["lib"],
|
||||||
"x-type": "library",
|
"x-type": "library",
|
||||||
"description": "Creates an Angular library.",
|
"description": "Creates an Angular library.",
|
||||||
"implementation": "/packages/angular/src/generators/library/library#libraryGeneratorInternal.ts",
|
"implementation": "/packages/angular/src/generators/library/library.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/library/schema.json",
|
"path": "/packages/angular/src/generators/library/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "move",
|
"name": "move",
|
||||||
"factory": "./src/generators/move/move#angularMoveGeneratorInternal",
|
"factory": "./src/generators/move/move#angularMoveGenerator",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxAngularMove",
|
"$id": "NxAngularMove",
|
||||||
@ -63,7 +63,7 @@
|
|||||||
"aliases": ["mv"],
|
"aliases": ["mv"],
|
||||||
"description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.",
|
"description": "Moves an Angular application or library to another folder within the workspace and updates the project configuration.",
|
||||||
"x-deprecated": "Use the `@nx/workspace:move` generator instead. This generator will be removed in Nx v19.",
|
"x-deprecated": "Use the `@nx/workspace:move` generator instead. This generator will be removed in Nx v19.",
|
||||||
"implementation": "/packages/angular/src/generators/move/move#angularMoveGeneratorInternal.ts",
|
"implementation": "/packages/angular/src/generators/move/move#angularMoveGenerator.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/move/schema.json",
|
"path": "/packages/angular/src/generators/move/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -34,12 +34,6 @@
|
|||||||
"x-dropdown": "projects",
|
"x-dropdown": "projects",
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true,
|
|
||||||
"description": "When true (the default) creates files at the top level of the project.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"skipTests": {
|
"skipTests": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Do not create \"spec.ts\" test files for the new pipe.",
|
"description": "Do not create \"spec.ts\" test files for the new pipe.",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "remote",
|
"name": "remote",
|
||||||
"factory": "./src/generators/remote/remote#remoteInternal",
|
"factory": "./src/generators/remote/remote",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxMFRemote",
|
"$id": "NxMFRemote",
|
||||||
@ -176,7 +176,7 @@
|
|||||||
},
|
},
|
||||||
"x-type": "application",
|
"x-type": "application",
|
||||||
"description": "Generate a Remote Angular Module Federation Application.",
|
"description": "Generate a Remote Angular Module Federation Application.",
|
||||||
"implementation": "/packages/angular/src/generators/remote/remote#remoteInternal.ts",
|
"implementation": "/packages/angular/src/generators/remote/remote.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/angular/src/generators/remote/schema.json",
|
"path": "/packages/angular/src/generators/remote/schema.json",
|
||||||
|
|||||||
@ -88,12 +88,6 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"x-priority": "important"
|
"x-priority": "important"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create the new files at the top level of the current project.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"selector": {
|
"selector": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "html-selector",
|
"format": "html-selector",
|
||||||
|
|||||||
@ -25,16 +25,6 @@
|
|||||||
"x-priority": "important",
|
"x-priority": "important",
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
"generateCypressSpecs": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Specifies whether to automatically generate `*.spec.ts` files in the Cypress e2e app generated by the `cypress-configure` generator.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
|
||||||
},
|
|
||||||
"cypressProject": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The Cypress project to generate the stories under. This is inferred from `name` by default.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
"skipFormat": {
|
||||||
"description": "Skip formatting files.",
|
"description": "Skip formatting files.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
|
|||||||
@ -26,11 +26,6 @@
|
|||||||
"x-priority": "important",
|
"x-priority": "important",
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
"configureCypress": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Specifies whether to configure Cypress or not.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
|
||||||
},
|
|
||||||
"generateStories": {
|
"generateStories": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.",
|
"description": "Specifies whether to automatically generate `*.stories.ts` files for components declared in this project or not.",
|
||||||
@ -38,11 +33,6 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"x-priority": "important"
|
"x-priority": "important"
|
||||||
},
|
},
|
||||||
"generateCypressSpecs": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Specifies whether to automatically generate test files in the generated Cypress e2e app.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
|
||||||
},
|
|
||||||
"configureStaticServe": {
|
"configureStaticServe": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
|
"description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
|
||||||
@ -50,11 +40,6 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"x-priority": "important"
|
"x-priority": "important"
|
||||||
},
|
},
|
||||||
"cypressDirectory": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "A directory where the Cypress project will be placed. Placed at the root by default.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20."
|
|
||||||
},
|
|
||||||
"linter": {
|
"linter": {
|
||||||
"description": "The tool to use for running lint checks.",
|
"description": "The tool to use for running lint checks.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "component",
|
"name": "component",
|
||||||
"factory": "./src/generators/component/component#expoComponentGeneratorInternal",
|
"factory": "./src/generators/component/component",
|
||||||
"schema": {
|
"schema": {
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
"$id": "NxExpoComponent",
|
"$id": "NxExpoComponent",
|
||||||
@ -9,22 +9,15 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"examples": [
|
"examples": [
|
||||||
{
|
{
|
||||||
"command": "g @nx/expo:component my-component --project=mylib",
|
"command": "g @nx/expo:component my-component --directory=mylib/my-component",
|
||||||
"description": "Generate a component in the mylib library"
|
"description": "Generate a component in the mylib library"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "g @nx/expo:component my-component --project=mylib --classComponent",
|
"command": "g @nx/expo:component my-component --directory=mylib/my-component --classComponent",
|
||||||
"description": "Generate a class component in the mylib library"
|
"description": "Generate a class component in the mylib library"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The name of the component.",
|
"description": "The name of the component.",
|
||||||
@ -57,12 +50,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create component at the source root rather than its own directory.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"export": {
|
"export": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "When true, the component is exported from the project index.ts (if it exists).",
|
"description": "When true, the component is exported from the project index.ts (if it exists).",
|
||||||
@ -70,13 +57,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-prompt": "Should this component be exported in the project?"
|
"x-prompt": "Should this component be exported in the project?"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. App.tsx).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"classComponent": {
|
"classComponent": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"alias": "C",
|
"alias": "C",
|
||||||
@ -89,7 +69,7 @@
|
|||||||
},
|
},
|
||||||
"description": "Create a component",
|
"description": "Create a component",
|
||||||
"aliases": ["c"],
|
"aliases": ["c"],
|
||||||
"implementation": "/packages/expo/src/generators/component/component#expoComponentGeneratorInternal.ts",
|
"implementation": "/packages/expo/src/generators/component/component.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/expo/src/generators/component/schema.json",
|
"path": "/packages/expo/src/generators/component/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -60,12 +60,6 @@
|
|||||||
"description": "Do not update tsconfig.json for development experience.",
|
"description": "Do not update tsconfig.json for development experience.",
|
||||||
"x-priority": "internal"
|
"x-priority": "internal"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. App.tsx).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"publishable": {
|
"publishable": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Create a publishable library."
|
"description": "Create a publishable library."
|
||||||
|
|||||||
@ -66,12 +66,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-deprecated": "Use --swcJest instead for faster compilation"
|
"x-deprecated": "Use --swcJest instead for faster compilation"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case file names.",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"js": {
|
"js": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Generate JavaScript files rather than TypeScript files.",
|
"description": "Generate JavaScript files rather than TypeScript files.",
|
||||||
|
|||||||
@ -75,6 +75,10 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"description": "Use JavaScript instead of TypeScript for config files"
|
"description": "Use JavaScript instead of TypeScript for config files"
|
||||||
|
},
|
||||||
|
"runtimeTsconfigFileName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the project's tsconfig file that includes the runtime source files. If not provided, it will default to `tsconfig.lib.json` for libraries and `tsconfig.app.json` for applications."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [],
|
"required": [],
|
||||||
|
|||||||
@ -70,12 +70,6 @@
|
|||||||
"description": "The test environment to use if unitTestRunner is set to jest or vitest.",
|
"description": "The test environment to use if unitTestRunner is set to jest or vitest.",
|
||||||
"default": "node"
|
"default": "node"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case file names.",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"js": {
|
"js": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Generate JavaScript files rather than TypeScript files.",
|
"description": "Generate JavaScript files rather than TypeScript files.",
|
||||||
|
|||||||
33
docs/generated/packages/js/generators/setup-prettier.json
Normal file
33
docs/generated/packages/js/generators/setup-prettier.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "setup-prettier",
|
||||||
|
"factory": "./src/generators/setup-prettier/generator",
|
||||||
|
"schema": {
|
||||||
|
"$schema": "https://json-schema.org/schema",
|
||||||
|
"$id": "NxJsSetupPrettier",
|
||||||
|
"title": "Setup Prettier",
|
||||||
|
"description": "Setup Prettier as the formatting tool.",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"skipFormat": {
|
||||||
|
"description": "Skip formatting files.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"x-priority": "internal"
|
||||||
|
},
|
||||||
|
"skipPackageJson": {
|
||||||
|
"description": "Do not add dependencies to `package.json`.",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"x-priority": "internal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [],
|
||||||
|
"presets": []
|
||||||
|
},
|
||||||
|
"description": "Setup Prettier as the formatting tool.",
|
||||||
|
"implementation": "/packages/js/src/generators/setup-prettier/generator.ts",
|
||||||
|
"aliases": [],
|
||||||
|
"hidden": false,
|
||||||
|
"path": "/packages/js/src/generators/setup-prettier/schema.json",
|
||||||
|
"type": "generator"
|
||||||
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "class",
|
"name": "class",
|
||||||
"factory": "./src/generators/class/class#classGeneratorInternal",
|
"factory": "./src/generators/class/class",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestClassGenerator",
|
"$id": "NxNestClassGenerator",
|
||||||
@ -61,7 +61,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `class` NestJS generator with Nx project support.",
|
"description": "Run the `class` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/class/class#classGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/class/class.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/class/schema.json",
|
"path": "/packages/nest/src/generators/class/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "controller",
|
"name": "controller",
|
||||||
"factory": "./src/generators/controller/controller#controllerGeneratorInternal",
|
"factory": "./src/generators/controller/controller",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestControllerGenerator",
|
"$id": "NxNestControllerGenerator",
|
||||||
@ -15,13 +15,6 @@
|
|||||||
"$default": { "$source": "argv", "index": 0 },
|
"$default": { "$source": "argv", "index": 0 },
|
||||||
"x-prompt": "What name would you like to use?"
|
"x-prompt": "What name would you like to use?"
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"nameAndDirectoryFormat": {
|
"nameAndDirectoryFormat": {
|
||||||
"description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).",
|
"description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest controller language.",
|
"description": "Nest controller language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -70,7 +57,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `controller` NestJS generator with Nx project support.",
|
"description": "Run the `controller` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/controller/controller#controllerGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/controller/controller.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/controller/schema.json",
|
"path": "/packages/nest/src/generators/controller/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "decorator",
|
"name": "decorator",
|
||||||
"factory": "./src/generators/decorator/decorator#decoratorGeneratorInternal",
|
"factory": "./src/generators/decorator/decorator",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestDecoratorGenerator",
|
"$id": "NxNestDecoratorGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -38,12 +31,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-priority": "internal"
|
"x-priority": "internal"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest decorator language.",
|
"description": "Nest decorator language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -55,7 +42,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `decorator` NestJS generator with Nx project support.",
|
"description": "Run the `decorator` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/decorator/decorator#decoratorGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/decorator/decorator.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/decorator/schema.json",
|
"path": "/packages/nest/src/generators/decorator/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "filter",
|
"name": "filter",
|
||||||
"factory": "./src/generators/filter/filter#filterGeneratorInternal",
|
"factory": "./src/generators/filter/filter",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestFilterGenerator",
|
"$id": "NxNestFilterGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest filter language.",
|
"description": "Nest filter language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `filter` NestJS generator with Nx project support.",
|
"description": "Run the `filter` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/filter/filter#filterGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/filter/filter.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/filter/schema.json",
|
"path": "/packages/nest/src/generators/filter/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gateway",
|
"name": "gateway",
|
||||||
"factory": "./src/generators/gateway/gateway#gatewayGeneratorInternal",
|
"factory": "./src/generators/gateway/gateway",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestGatewayGenerator",
|
"$id": "NxNestGatewayGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest gateway language.",
|
"description": "Nest gateway language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `gateway` NestJS generator with Nx project support.",
|
"description": "Run the `gateway` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/gateway/gateway#gatewayGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/gateway/gateway.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/gateway/schema.json",
|
"path": "/packages/nest/src/generators/gateway/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "guard",
|
"name": "guard",
|
||||||
"factory": "./src/generators/guard/guard#guardGeneratorInternal",
|
"factory": "./src/generators/guard/guard",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestGuardGenerator",
|
"$id": "NxNestGuardGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest guard language.",
|
"description": "Nest guard language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `guard` NestJS generator with Nx project support.",
|
"description": "Run the `guard` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/guard/guard#guardGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/guard/guard.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/guard/schema.json",
|
"path": "/packages/nest/src/generators/guard/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "interceptor",
|
"name": "interceptor",
|
||||||
"factory": "./src/generators/interceptor/interceptor#interceptorGeneratorInternal",
|
"factory": "./src/generators/interceptor/interceptor",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestInterceptorGenerator",
|
"$id": "NxNestInterceptorGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest interceptor language.",
|
"description": "Nest interceptor language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `interceptor` NestJS generator with Nx project support.",
|
"description": "Run the `interceptor` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/interceptor/interceptor#interceptorGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/interceptor/interceptor.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/interceptor/schema.json",
|
"path": "/packages/nest/src/generators/interceptor/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "interface",
|
"name": "interface",
|
||||||
"factory": "./src/generators/interface/interface#interfaceGeneratorInternal",
|
"factory": "./src/generators/interface/interface",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestInterfaceGenerator",
|
"$id": "NxNestInterfaceGenerator",
|
||||||
@ -50,7 +50,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `interface` NestJS generator with Nx project support.",
|
"description": "Run the `interface` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/interface/interface#interfaceGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/interface/interface.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/interface/schema.json",
|
"path": "/packages/nest/src/generators/interface/schema.json",
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
"projectNameAndRootFormat": {
|
"projectNameAndRootFormat": {
|
||||||
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided"]
|
||||||
},
|
},
|
||||||
"linter": {
|
"linter": {
|
||||||
"description": "The tool to use for running lint checks.",
|
"description": "The tool to use for running lint checks.",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "middleware",
|
"name": "middleware",
|
||||||
"factory": "./src/generators/middleware/middleware#middlewareGeneratorInternal",
|
"factory": "./src/generators/middleware/middleware",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestMiddlewareGenerator",
|
"$id": "NxNestMiddlewareGenerator",
|
||||||
@ -18,14 +18,7 @@
|
|||||||
"nameAndDirectoryFormat": {
|
"nameAndDirectoryFormat": {
|
||||||
"description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).",
|
"description": "Whether to generate the component in the directory as provided, relative to the current working directory and ignoring the project (`as-provided`) or generate it using the project and directory relative to the workspace root (`derived`).",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided"]
|
||||||
},
|
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
},
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest middleware language.",
|
"description": "Nest middleware language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `middleware` NestJS generator with Nx project support.",
|
"description": "Run the `middleware` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/middleware/middleware#middlewareGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/middleware/middleware.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/middleware/schema.json",
|
"path": "/packages/nest/src/generators/middleware/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "module",
|
"name": "module",
|
||||||
"factory": "./src/generators/module/module#moduleGeneratorInternal",
|
"factory": "./src/generators/module/module",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestModuleGenerator",
|
"$id": "NxNestModuleGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -38,12 +31,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-priority": "internal"
|
"x-priority": "internal"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest module language.",
|
"description": "Nest module language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -65,7 +52,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `module` NestJS generator with Nx project support.",
|
"description": "Run the `module` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/module/module#moduleGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/module/module.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/module/schema.json",
|
"path": "/packages/nest/src/generators/module/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pipe",
|
"name": "pipe",
|
||||||
"factory": "./src/generators/pipe/pipe#pipeGeneratorInternal",
|
"factory": "./src/generators/pipe/pipe",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestPipeGenerator",
|
"$id": "NxNestPipeGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest pipe language.",
|
"description": "Nest pipe language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `pipe` NestJS generator with Nx project support.",
|
"description": "Run the `pipe` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/pipe/pipe#pipeGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/pipe/pipe.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/pipe/schema.json",
|
"path": "/packages/nest/src/generators/pipe/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "provider",
|
"name": "provider",
|
||||||
"factory": "./src/generators/provider/provider#providerGeneratorInternal",
|
"factory": "./src/generators/provider/provider",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestProviderGenerator",
|
"$id": "NxNestProviderGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest provider language.",
|
"description": "Nest provider language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `provider` NestJS generator with Nx project support.",
|
"description": "Run the `provider` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/provider/provider#providerGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/provider/provider.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/provider/schema.json",
|
"path": "/packages/nest/src/generators/provider/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "resolver",
|
"name": "resolver",
|
||||||
"factory": "./src/generators/resolver/resolver#resolverGeneratorInternal",
|
"factory": "./src/generators/resolver/resolver",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestResolverGenerator",
|
"$id": "NxNestResolverGenerator",
|
||||||
@ -15,13 +15,6 @@
|
|||||||
"$default": { "$source": "argv", "index": 0 },
|
"$default": { "$source": "argv", "index": 0 },
|
||||||
"x-prompt": "What name would you like to use?"
|
"x-prompt": "What name would you like to use?"
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"nameAndDirectoryFormat": {
|
"nameAndDirectoryFormat": {
|
||||||
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest resolver language.",
|
"description": "Nest resolver language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `resolver` NestJS generator with Nx project support.",
|
"description": "Run the `resolver` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/resolver/resolver#resolverGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/resolver/resolver.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/resolver/schema.json",
|
"path": "/packages/nest/src/generators/resolver/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "resource",
|
"name": "resource",
|
||||||
"factory": "./src/generators/resource/resource#resourceGeneratorInternal",
|
"factory": "./src/generators/resource/resource",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestResourceGenerator",
|
"$id": "NxNestResourceGenerator",
|
||||||
@ -15,13 +15,6 @@
|
|||||||
"$default": { "$source": "argv", "index": 0 },
|
"$default": { "$source": "argv", "index": 0 },
|
||||||
"x-prompt": "What name would you like to use for this resource (plural, e.g., `users`)?"
|
"x-prompt": "What name would you like to use for this resource (plural, e.g., `users`)?"
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"nameAndDirectoryFormat": {
|
"nameAndDirectoryFormat": {
|
||||||
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest class language.",
|
"description": "Nest class language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -101,7 +88,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `resource` NestJS generator with Nx project support.",
|
"description": "Run the `resource` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/resource/resource#resourceGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/resource/resource.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/resource/schema.json",
|
"path": "/packages/nest/src/generators/resource/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "service",
|
"name": "service",
|
||||||
"factory": "./src/generators/service/service#serviceGeneratorInternal",
|
"factory": "./src/generators/service/service",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "NxNestServiceGenerator",
|
"$id": "NxNestServiceGenerator",
|
||||||
@ -20,13 +20,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"description": "The Nest project to target.",
|
|
||||||
"type": "string",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"alias": "p",
|
|
||||||
"x-deprecated": "Provide The `directory` option instead and use the `as-provided` format. the project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
"description": "Directory where the generated files are placed. when `--nameAndDirectoryFormat=as-provided`, it will be relative to the current working directory. otherwise, it will be relative to the workspace root.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -44,12 +37,6 @@
|
|||||||
"enum": ["jest", "none"],
|
"enum": ["jest", "none"],
|
||||||
"default": "jest"
|
"default": "jest"
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"description": "Flag to indicate if a directory is created.",
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"language": {
|
"language": {
|
||||||
"description": "Nest service language.",
|
"description": "Nest service language.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -61,7 +48,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Run the `service` NestJS generator with Nx project support.",
|
"description": "Run the `service` NestJS generator with Nx project support.",
|
||||||
"implementation": "/packages/nest/src/generators/service/service#serviceGeneratorInternal.ts",
|
"implementation": "/packages/nest/src/generators/service/service.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/nest/src/generators/service/schema.json",
|
"path": "/packages/nest/src/generators/service/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "component",
|
"name": "component",
|
||||||
"factory": "./src/generators/component/component#componentGeneratorInternal",
|
"factory": "./src/generators/component/component",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -9,13 +9,6 @@
|
|||||||
"description": "Create a React Component for Next.",
|
"description": "Create a React Component for Next.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The name of the component.",
|
"description": "The name of the component.",
|
||||||
@ -85,26 +78,6 @@
|
|||||||
"description": "Generate JavaScript files rather than TypeScript files.",
|
"description": "Generate JavaScript files rather than TypeScript files.",
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create component at the source root rather than its own directory.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"pascalCaseDirectory": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case directory name (e.g. `App/App.tsx`).",
|
|
||||||
"alias": "R",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
"skipFormat": {
|
||||||
"description": "Skip formatting files.",
|
"description": "Skip formatting files.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
@ -117,7 +90,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create a component.",
|
"description": "Create a component.",
|
||||||
"implementation": "/packages/next/src/generators/component/component#componentGeneratorInternal.ts",
|
"implementation": "/packages/next/src/generators/component/component.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/next/src/generators/component/schema.json",
|
"path": "/packages/next/src/generators/component/schema.json",
|
||||||
|
|||||||
@ -88,12 +88,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"description": "Do not update tsconfig.json for development experience."
|
"description": "Do not update tsconfig.json for development experience."
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"routing": {
|
"routing": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Generate library with routes."
|
"description": "Generate library with routes."
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "page",
|
"name": "page",
|
||||||
"factory": "./src/generators/page/page#pageGeneratorInternal",
|
"factory": "./src/generators/page/page",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -103,7 +103,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create a page.",
|
"description": "Create a page.",
|
||||||
"implementation": "/packages/next/src/generators/page/page#pageGeneratorInternal.ts",
|
"implementation": "/packages/next/src/generators/page/page.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/next/src/generators/page/schema.json",
|
"path": "/packages/next/src/generators/page/schema.json",
|
||||||
|
|||||||
@ -72,12 +72,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-deprecated": "Use --swcJest instead for faster compilation"
|
"x-deprecated": "Use --swcJest instead for faster compilation"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case file names.",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"js": {
|
"js": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Generate JavaScript files rather than TypeScript files.",
|
"description": "Generate JavaScript files rather than TypeScript files.",
|
||||||
|
|||||||
@ -104,12 +104,6 @@
|
|||||||
"description": "Use `babel` instead of `ts-jest`.",
|
"description": "Use `babel` instead of `ts-jest`.",
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case file names.",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"js": {
|
"js": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Generate JavaScript files rather than TypeScript files.",
|
"description": "Generate JavaScript files rather than TypeScript files.",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "create-package",
|
"name": "create-package",
|
||||||
"factory": "./src/generators/create-package/create-package#createPackageGeneratorInternal",
|
"factory": "./src/generators/create-package/create-package",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -73,7 +73,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create a package which can be used by npx to create a new workspace",
|
"description": "Create a package which can be used by npx to create a new workspace",
|
||||||
"implementation": "/packages/plugin/src/generators/create-package/create-package#createPackageGeneratorInternal.ts",
|
"implementation": "/packages/plugin/src/generators/create-package/create-package.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/plugin/src/generators/create-package/schema.json",
|
"path": "/packages/plugin/src/generators/create-package/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "executor",
|
"name": "executor",
|
||||||
"factory": "./src/generators/executor/executor#executorGeneratorInternal",
|
"factory": "./src/generators/executor/executor",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -55,13 +55,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
"skipFormat": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Skip formatting files.",
|
"description": "Skip formatting files.",
|
||||||
@ -74,7 +67,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create an executor for an Nx Plugin.",
|
"description": "Create an executor for an Nx Plugin.",
|
||||||
"implementation": "/packages/plugin/src/generators/executor/executor#executorGeneratorInternal.ts",
|
"implementation": "/packages/plugin/src/generators/executor/executor.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/plugin/src/generators/executor/schema.json",
|
"path": "/packages/plugin/src/generators/executor/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "generator",
|
"name": "generator",
|
||||||
"factory": "./src/generators/generator/generator#generatorGeneratorInternal",
|
"factory": "./src/generators/generator/generator",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -44,13 +44,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"description": "Do not add an eslint configuration for plugin json files."
|
"description": "Do not add an eslint configuration for plugin json files."
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
"skipFormat": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
@ -68,7 +61,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create a generator for an Nx Plugin.",
|
"description": "Create a generator for an Nx Plugin.",
|
||||||
"implementation": "/packages/plugin/src/generators/generator/generator#generatorGeneratorInternal.ts",
|
"implementation": "/packages/plugin/src/generators/generator/generator.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/plugin/src/generators/generator/schema.json",
|
"path": "/packages/plugin/src/generators/generator/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "migration",
|
"name": "migration",
|
||||||
"factory": "./src/generators/migration/migration#migrationGeneratorInternal",
|
"factory": "./src/generators/migration/migration",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -37,13 +37,6 @@
|
|||||||
"x-prompt": "What version would you like to use for the migration?",
|
"x-prompt": "What version would you like to use for the migration?",
|
||||||
"x-priority": "important"
|
"x-priority": "important"
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"packageJsonUpdates": {
|
"packageJsonUpdates": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Whether or not to include `package.json` updates.",
|
"description": "Whether or not to include `package.json` updates.",
|
||||||
@ -66,7 +59,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create a migration for an Nx Plugin.",
|
"description": "Create a migration for an Nx Plugin.",
|
||||||
"implementation": "/packages/plugin/src/generators/migration/migration#migrationGeneratorInternal.ts",
|
"implementation": "/packages/plugin/src/generators/migration/migration.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/plugin/src/generators/migration/schema.json",
|
"path": "/packages/plugin/src/generators/migration/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "plugin",
|
"name": "plugin",
|
||||||
"factory": "./src/generators/plugin/plugin#pluginGeneratorInternal",
|
"factory": "./src/generators/plugin/plugin",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -104,7 +104,7 @@
|
|||||||
"presets": []
|
"presets": []
|
||||||
},
|
},
|
||||||
"description": "Create a Nx Plugin.",
|
"description": "Create a Nx Plugin.",
|
||||||
"implementation": "/packages/plugin/src/generators/plugin/plugin#pluginGeneratorInternal.ts",
|
"implementation": "/packages/plugin/src/generators/plugin/plugin.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/plugin/src/generators/plugin/schema.json",
|
"path": "/packages/plugin/src/generators/plugin/schema.json",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "component",
|
"name": "component",
|
||||||
"factory": "./src/generators/component/component#reactNativeComponentGeneratorInternal",
|
"factory": "./src/generators/component/component",
|
||||||
"schema": {
|
"schema": {
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
"$id": "NxReactNativeApplication",
|
"$id": "NxReactNativeApplication",
|
||||||
@ -10,22 +10,15 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"examples": [
|
"examples": [
|
||||||
{
|
{
|
||||||
"command": "nx g @nx/react-native:component my-component --project=mylib",
|
"command": "nx g @nx/react-native:component my-component --directory=mylib/src/lib/my-component",
|
||||||
"description": "Generate a component in the `mylib` library"
|
"description": "Generate a component in the `mylib` library"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "nx g @nx/react-native:component my-component --project=mylib --classComponent",
|
"command": "nx g @nx/react-native:component my-component --directory=mylib/src/lib/my-component --classComponent",
|
||||||
"description": "Generate a class component in the `mylib` library"
|
"description": "Generate a class component in the `mylib` library"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The name of the component.",
|
"description": "The name of the component.",
|
||||||
@ -52,12 +45,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create component at the source root rather than its own directory.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"export": {
|
"export": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "When true, the component is exported from the project `index.ts` (if it exists).",
|
"description": "When true, the component is exported from the project `index.ts` (if it exists).",
|
||||||
@ -65,13 +52,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-prompt": "Should this component be exported in the project?"
|
"x-prompt": "Should this component be exported in the project?"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"classComponent": {
|
"classComponent": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"alias": "C",
|
"alias": "C",
|
||||||
@ -84,7 +64,7 @@
|
|||||||
},
|
},
|
||||||
"description": "Create a React Native component.",
|
"description": "Create a React Native component.",
|
||||||
"aliases": ["c"],
|
"aliases": ["c"],
|
||||||
"implementation": "/packages/react-native/src/generators/component/component#reactNativeComponentGeneratorInternal.ts",
|
"implementation": "/packages/react-native/src/generators/component/component.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/react-native/src/generators/component/schema.json",
|
"path": "/packages/react-native/src/generators/component/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -62,12 +62,6 @@
|
|||||||
"description": "Do not update `tsconfig.json` for development experience.",
|
"description": "Do not update `tsconfig.json` for development experience.",
|
||||||
"x-priority": "internal"
|
"x-priority": "internal"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"publishable": {
|
"publishable": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Create a publishable library."
|
"description": "Create a publishable library."
|
||||||
|
|||||||
@ -126,12 +126,6 @@
|
|||||||
"description": "Add tags to the application (used for linting).",
|
"description": "Add tags to the application (used for linting).",
|
||||||
"alias": "t"
|
"alias": "t"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"classComponent": {
|
"classComponent": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Use class components instead of functional component.",
|
"description": "Use class components instead of functional component.",
|
||||||
|
|||||||
@ -1,53 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "component-cypress-spec",
|
|
||||||
"factory": "./src/generators/component-cypress-spec/component-cypress-spec#componentCypressGenerator",
|
|
||||||
"schema": {
|
|
||||||
"$schema": "https://json-schema.org/schema",
|
|
||||||
"cli": "nx",
|
|
||||||
"$id": "NxReactComponentCypressSpec",
|
|
||||||
"title": "Create component Cypress spec",
|
|
||||||
"description": "Create a Storybook Cypress spec for a UI component that has a story.",
|
|
||||||
"x-deprecated": "Use interactionTests instead. This option will be removed in v20.",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The project name for which to generate tests.",
|
|
||||||
"examples": ["shared-ui-component"],
|
|
||||||
"$default": { "$source": "projectName", "index": 0 },
|
|
||||||
"x-prompt": "What's name of the project for which to generate tests?",
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"componentPath": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Relative path to the component file from the library root?",
|
|
||||||
"examples": ["lib/components"],
|
|
||||||
"x-prompt": "What's path of the component relative to the project's lib root for which to generate a test?",
|
|
||||||
"x-priority": "important"
|
|
||||||
},
|
|
||||||
"js": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Generate JavaScript files rather than TypeScript files.",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"cypressProject": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The Cypress project to generate the stories under. By default, inferred from `project`."
|
|
||||||
},
|
|
||||||
"skipFormat": {
|
|
||||||
"description": "Skip formatting files.",
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"x-priority": "internal"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["project", "componentPath"],
|
|
||||||
"presets": []
|
|
||||||
},
|
|
||||||
"description": "Create a Cypress spec for a UI component that has a story.",
|
|
||||||
"hidden": false,
|
|
||||||
"implementation": "/packages/react/src/generators/component-cypress-spec/component-cypress-spec#componentCypressGenerator.ts",
|
|
||||||
"aliases": [],
|
|
||||||
"path": "/packages/react/src/generators/component-cypress-spec/schema.json",
|
|
||||||
"type": "generator"
|
|
||||||
}
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "component",
|
"name": "component",
|
||||||
"factory": "./src/generators/component/component#componentGeneratorInternal",
|
"factory": "./src/generators/component/component",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -9,13 +9,6 @@
|
|||||||
"description": "Create a React Component for Nx.",
|
"description": "Create a React Component for Nx.",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The name of the component.",
|
"description": "The name of the component.",
|
||||||
@ -79,12 +72,6 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create component at the source root rather than its own directory.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"export": {
|
"export": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "When true, the component is exported from the project `index.ts` (if it exists).",
|
"description": "When true, the component is exported from the project `index.ts` (if it exists).",
|
||||||
@ -92,20 +79,6 @@
|
|||||||
"default": false,
|
"default": false,
|
||||||
"x-prompt": "Should this component be exported in the project?"
|
"x-prompt": "Should this component be exported in the project?"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"pascalCaseDirectory": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case directory name (e.g. `App/App.tsx`).",
|
|
||||||
"alias": "R",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"classComponent": {
|
"classComponent": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"alias": "C",
|
"alias": "C",
|
||||||
@ -143,7 +116,7 @@
|
|||||||
},
|
},
|
||||||
"description": "Create a React component.",
|
"description": "Create a React component.",
|
||||||
"aliases": ["c"],
|
"aliases": ["c"],
|
||||||
"implementation": "/packages/react/src/generators/component/component#componentGeneratorInternal.ts",
|
"implementation": "/packages/react/src/generators/component/component.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/react/src/generators/component/schema.json",
|
"path": "/packages/react/src/generators/component/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hook",
|
"name": "hook",
|
||||||
"factory": "./src/generators/hook/hook#hookGeneratorInternal",
|
"factory": "./src/generators/hook/hook",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -15,13 +15,6 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The name of the hook.",
|
"description": "The name of the hook.",
|
||||||
@ -50,32 +43,12 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["as-provided", "derived"]
|
"enum": ["as-provided", "derived"]
|
||||||
},
|
},
|
||||||
"flat": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Create hook at the source root rather than its own directory.",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"export": {
|
"export": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "When true, the hook is exported from the project `index.ts` (if it exists).",
|
"description": "When true, the hook is exported from the project `index.ts` (if it exists).",
|
||||||
"alias": "e",
|
"alias": "e",
|
||||||
"default": false,
|
"default": false,
|
||||||
"x-prompt": "Should this hook be exported in the project?"
|
"x-prompt": "Should this hook be exported in the project?"
|
||||||
},
|
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case hook file name (e.g. `useHook.ts`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `name` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
},
|
|
||||||
"pascalCaseDirectory": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case directory name (e.g. `useHook/useHook.ts`).",
|
|
||||||
"alias": "R",
|
|
||||||
"default": false,
|
|
||||||
"x-deprecated": "Provide the `directory` in pascal-case and use the `as-provided` format. This option will be removed in Nx v19."
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["name"],
|
"required": ["name"],
|
||||||
@ -83,7 +56,7 @@
|
|||||||
},
|
},
|
||||||
"description": "Create a hook.",
|
"description": "Create a hook.",
|
||||||
"aliases": ["c"],
|
"aliases": ["c"],
|
||||||
"implementation": "/packages/react/src/generators/hook/hook#hookGeneratorInternal.ts",
|
"implementation": "/packages/react/src/generators/hook/hook.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/react/src/generators/hook/schema.json",
|
"path": "/packages/react/src/generators/hook/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "host",
|
"name": "host",
|
||||||
"factory": "./src/generators/host/host#hostGeneratorInternal",
|
"factory": "./src/generators/host/host",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "GeneratorReactHost",
|
"$id": "GeneratorReactHost",
|
||||||
@ -107,12 +107,6 @@
|
|||||||
"description": "Add tags to the application (used for linting).",
|
"description": "Add tags to the application (used for linting).",
|
||||||
"alias": "t"
|
"alias": "t"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. App.tsx).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"classComponent": {
|
"classComponent": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Use class components instead of functional component.",
|
"description": "Use class components instead of functional component.",
|
||||||
@ -193,7 +187,7 @@
|
|||||||
},
|
},
|
||||||
"x-type": "application",
|
"x-type": "application",
|
||||||
"description": "Generate a host react application",
|
"description": "Generate a host react application",
|
||||||
"implementation": "/packages/react/src/generators/host/host#hostGeneratorInternal.ts",
|
"implementation": "/packages/react/src/generators/host/host.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/react/src/generators/host/schema.json",
|
"path": "/packages/react/src/generators/host/schema.json",
|
||||||
|
|||||||
@ -106,12 +106,6 @@
|
|||||||
"description": "Do not update `tsconfig.json` for development experience.",
|
"description": "Do not update `tsconfig.json` for development experience.",
|
||||||
"x-priority": "internal"
|
"x-priority": "internal"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. `App.tsx`).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"routing": {
|
"routing": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Generate library with routes."
|
"description": "Generate library with routes."
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "redux",
|
"name": "redux",
|
||||||
"factory": "./src/generators/redux/redux#reduxGeneratorInternal",
|
"factory": "./src/generators/redux/redux",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"cli": "nx",
|
"cli": "nx",
|
||||||
@ -15,13 +15,6 @@
|
|||||||
"$default": { "$source": "argv", "index": 0 },
|
"$default": { "$source": "argv", "index": 0 },
|
||||||
"x-priority": "important"
|
"x-priority": "important"
|
||||||
},
|
},
|
||||||
"project": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the project to add the slice to. If it is an application, then the store configuration will be updated too.",
|
|
||||||
"alias": "p",
|
|
||||||
"$default": { "$source": "projectName" },
|
|
||||||
"x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v20."
|
|
||||||
},
|
|
||||||
"directory": {
|
"directory": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"alias": "dir",
|
"alias": "dir",
|
||||||
@ -50,7 +43,7 @@
|
|||||||
},
|
},
|
||||||
"description": "Create a Redux slice for a project.",
|
"description": "Create a Redux slice for a project.",
|
||||||
"aliases": ["slice"],
|
"aliases": ["slice"],
|
||||||
"implementation": "/packages/react/src/generators/redux/redux#reduxGeneratorInternal.ts",
|
"implementation": "/packages/react/src/generators/redux/redux.ts",
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/react/src/generators/redux/schema.json",
|
"path": "/packages/react/src/generators/redux/schema.json",
|
||||||
"type": "generator"
|
"type": "generator"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "remote",
|
"name": "remote",
|
||||||
"factory": "./src/generators/remote/remote#remoteGeneratorInternal",
|
"factory": "./src/generators/remote/remote",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$schema": "https://json-schema.org/schema",
|
"$schema": "https://json-schema.org/schema",
|
||||||
"$id": "GeneratorReactRemote",
|
"$id": "GeneratorReactRemote",
|
||||||
@ -113,12 +113,6 @@
|
|||||||
"description": "Add tags to the application (used for linting).",
|
"description": "Add tags to the application (used for linting).",
|
||||||
"alias": "t"
|
"alias": "t"
|
||||||
},
|
},
|
||||||
"pascalCaseFiles": {
|
|
||||||
"type": "boolean",
|
|
||||||
"description": "Use pascal case component file name (e.g. App.tsx).",
|
|
||||||
"alias": "P",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"classComponent": {
|
"classComponent": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Use class components instead of functional component.",
|
"description": "Use class components instead of functional component.",
|
||||||
@ -192,7 +186,7 @@
|
|||||||
},
|
},
|
||||||
"x-type": "application",
|
"x-type": "application",
|
||||||
"description": "Generate a remote react application",
|
"description": "Generate a remote react application",
|
||||||
"implementation": "/packages/react/src/generators/remote/remote#remoteGeneratorInternal.ts",
|
"implementation": "/packages/react/src/generators/remote/remote.ts",
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"hidden": false,
|
"hidden": false,
|
||||||
"path": "/packages/react/src/generators/remote/schema.json",
|
"path": "/packages/react/src/generators/remote/schema.json",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user