Skip to content

jojopg/nx

Repository files navigation

Nrwl Extensions for Angular (Nx)

Build Status

License

NPM Version


What is Nx?

🔎 Nx is an open source toolkit for enterprise Angular applications, which is b


What is Nx?

🔎 Nx is an open source toolkit for enterprise Angular applications, which is based on our experienc

What is Nx?

🔎 Nx is an open source toolkit for enterprise Angular applications, which is based on our experience wo


What is Nx?

🔎 Nx is an open source toolkit for enterprise Angular applications, which is based on our experience working at Google and helping the Fortune 500 build ambitious Angular applications. It provides an opinionated approach to application project structure and patterns.

Nx is an extension for the the Angular CLI implementing the monorepo-style development. It is also a collection of runtime libraries, linters, and code generators helping large teams build better with Angular.

Features

Because Nx is built on top of the Angular CLI, you get all the conventional and loved features plus:

  • Nx Workspace
  • Workspace-Specific Schematics
  • Intelligent Builds and Unit Testing
  • State Management
  • NgRx
  • Data Persistence
  • Linters
  • Code Formatter
  • UpgradeModule and downgradeModule helpers
  • Jest unit tests integration
  • Node build tooling

Why Nx?

On the surface, large and small organizations care about the same things: consistency, writing robust, maintainable code, making changes with confidence, being able to understand how the system works.

What’s different about large organizations is that they have hundreds of Angular engineers building dozens of apps. So they have a lot of code, which changes everything.

  • While ten (10) developers can reach a consensus on best practices by chatting over lunch, five hundred (500) developers cannot. You have to establish best practices, team standards, and use tools to promote them.
  • With three (3) projects developers will know what needs to be retested after making a change, with thirty (30) projects, however, this is no longer a simple process. Informal team rules to manage change will no longer work with large teams and multi-team, multi-project efforts. You have to rely on the automated CI process instead.

In other words, small organizations can often get by with informal ad-hoc processes, whereas large organizations cannot. Large organizations must rely on tooling to enable that. Nx is this tooling.

Getting Started

An Nx workspace is an Angular CLI project that has been enhanced to be enterprise ready. Being an Angular CLI project means it will be handy to have the Angular CLI installed globally, which can be done via npm or yarn as well.

After you have installed the Angular CLI, install `@nrwl/schematics`.

`

Note: If you do not have the Angular CLI installed globally you may not be able to use ng from the terminal to run CLI commands within the project. But the package.json file comes with npm scripts to run ng commands, so you can run npm start to ng serve and you can run npm run ng to run any of the ng commands.

After you have installed the Angular CLI, install @nrwl/schematics.


cre


After installing it you can create a new Nx workspace by running:

ng

You can also add Nx capabilities to an existing CLI project by running:

## Quick Start & Documentation

#

You are good to go!

Quick Start & Documentation

Documentation

Videos

Talks

Podcasts and Shows

Misc

  • you want to file a bug or submit a PR, read up on repo has branches for different nx comments to display expected behavior and example app and libraries. Check out the branch (workspace, ngrx...) to see what gets created for you. More info on readme.
  • Core Team

| Victor Savkin

Want to help?

If you want to file a bug or submit a PR, read up on our ----------------------- | -----------------------------------------------------------.

Core Team

Victor Savkin Jason Jean Benjamin Cabanes
Victor Savkin Jason Jean Benjamin Cabanes

About

Nrwl Extensions for Angular

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 96.2%
  • JavaScript 2.1%
  • Python 1.1%
  • Shell 0.6%