/nx

Extensible Dev Tools for Monorepos

Primary LanguageJavaScriptMIT LicenseMIT

CircleCI License NPM Version Semantic Release Commitizen friendly Join the chat at https://gitter.im/nrwl-nx/community Join us @nrwl/community on slack


What is Nx?

πŸ”Ž Extensible Dev Tools for Monorepos.

Nx Helps You

Use Modern Tools

Using Nx, you can add TypeScript, Cypress, Jest, Prettier, Angular, React, Storybook, Next.js and Nest into your dev workflow. Nx sets up these tools and allows you to use them seamlessly. Nx fully integrates with the other modern tools you already use and love.

Build Full-Stack Applications

With Nx, you can build full-stack applications using modern frameworks. You can share code between the frontend and the backend. And you can use the same build/test/serve commands throughout the whole dev experience.

Develop like Google, Facebook, and Microsoft

With Nx, you can develop multiple full-stack applications holistically and share code between them all in the same workspace. Nx provides advanced tools which help you scale your enterprise development. Nx also helps enforce your organization’s standards and community best practices.

Getting Started

Creating an Nx Workspace

Using npx

npx create-nx-workspace

Using npm init

npm init nx-workspace

Using yarn create

yarn create nx-workspace

If it's your first Nx project, the command will recommend you to install @nrwl/cli globally, so you can invoke nx directly without going through yarn or npm.

Creating First Application

By default, an Nx workspace starts blank. There are no applications to build, serve, and test. To create one, you need to add capabilities to the workspace.

To add a web components app, run:

yarn add --dev @nrwl/web
nx g @nrwl/web:app myapp # or just "nx g myapp"
npm install --save-dev @nrwl/web
nx g @nrwl/web:app myapp # or just "nx g myapp"

To add an Angular app, run:

yarn add --dev @nrwl/angular
nx g @nrwl/angular:app myapp # or just "nx g myapp"
npm install --save-dev @nrwl/angular
nx g @nrwl/angular:app myapp # or just "nx g myapp"

To add a React app, run:

yarn add --dev @nrwl/react
nx g @nrwl/react:app myapp # or just "nx g myapp"
npm install --save-dev @nrwl/react
nx g @nrwl/react:app myapp # or just "nx g myapp"

If nx g fails, use: yarn nx g @nrwl/web:app myapp or npm run nx -- g @nrwl/web:app myapp.

Regardless of what framework you chose, the resulting file tree will look like this:

<workspace name>/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ myapp/
β”‚   └── myapp-e2e/
β”œβ”€β”€ libs/
β”œβ”€β”€ tools/
β”œβ”€β”€ nx.json
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── tslint.json

Serving Application

  • Run nx serve myapp to serve the newly generated application!
  • Run nx test myapp to test it.
  • Run nx e2e myapp-e2e to run e2e tests for it.

Angular users can also run ng g/serve/test/e2e.

You are good to go!

Documentation

Quick Start Videos

Angular

React

Courses

Books

Videos

Talks

Misc

Want to help?

If you want to file a bug or submit a PR, read up on our guidelines for contributing and watch this video that will help you get started.

Core Team

Victor Savkin Jason Jean Benjamin Cabanes Brandon Roberts
Victor Savkin Jason Jean Benjamin Cabanes Brandon Roberts
vsavkin FrozenPandaz bcabanes brandonroberts
Jack Hsu Jo Hanna Pearce Matt Briggs
Jack Hsu Jo Hanna Pearce Matt Briggs
jaysoo jdpearce mbriggs