A Smart, Fast and Extensible Build System for ...
Be aware, this presentation might contain flashy giphy's...
Nx is a smart, fast and extensible build system with first class monorepo support and powerful integrations.
Angular / WEB consultancy at large scale
Jeff Cross
Victor Savkin
Fun Fact: Angular has schematics thanks to Nx
Actually much more than just a CLI
Yeah, but I can do this with the Angular-CLI as well!
-- a random developer
(Angular-cli is not meant for Enterprise applications)
(But works, perfectly for small(er) (open-source) projects as well
(Module Federation)
(Single Component Angular Module)
(With new technologies like)
One `package.json` to rule them all
nx migrate latest
Handles migrations/upgrades for major libraries
Developers new to Nx are initially often hesitant to move their logic into libraries, because they assume it implies that those libraries need to be general purpose and shareable across applications.
This is a common misconception, moving code into libraries can be done from a pure code organization perspective.
apps/
medewerker-portaal <---- App (shell) folder, lazy-loads the needed domains
taakmanagement <---- App (shell) folder, lazy-loads the needed domains
libs/
aanspraak/ <---- Domain / grouping folder
data-access/
aanspraken-services/
aanspraken-models/
feature/
aanspraken-overzicht/
ui/
persoon/ <---- Domain / grouping folder
data-access/
feature/
persoon-details/ <---- feature -> usually a page which can be accessed via routes
personen-overzicht/
ui/
persoon-list/ <---- dumb component, which can be used in the features
persoon-zoeken/
shared/ <---- shared / grouping folder -> can be used in each domain
ui/
nav-bar/
card/
taakmanagement/ <---- Domain / grouping folder
# see what's been affected by changes
nx affected:graph
# run tests for current changes
nx affected:test
# run e2e tests for current changes
nx affected:e2e
# run linting for current changes
nx affected:lint
# run your custom commands like generate for current changes
nx affected:generate
# show the dep-graph for current changes
nx affected:dep-graph
Distributed Task Execution & Cache
Private Cloud / Nx Enterprise
For the moment the most/best integrations are with github
But most are needed for proper usage of the tooling(s) you are gonna use anyway:
But again, this is the same when you are NOT using Nx
First input of information is always https://nx.dev (also for Cypress, Jest, Storybook, etc)