Git Product home page Git Product logo

mono's Introduction

Mono

Nx + Angular + NestJS monorepository.

Commitizen friendly

Master PR validation

Requirements

In order to run own copy of the project one must fulfill the following requirements.

Operating system

Core dependencies

Preferred package manager

  • Yarn is a preferred package manager for dependencies installation in the project root.
  • npm is a preferred package manager for dependencies installation in the functions folder.

Dependencies audit

From time to time it's reasonable to audit dependencies for security issues and fix present issues.

Follow the described procedure to accomplish this.

Use npm to create a temporary package-lock.json

npm i --package-lock-only

Remove yarn.lock

rm yarn.lock

Run audit and fix

npm audit fix

Next import package-lock.json using yarn

yarn import

Remove temporary package-lock.json

rm package-lock.json

That's it.

All this commands are executed in sequence if the following command from package.json is invoked

yarn audit:fix

Package scripts reference

The project has lots of package scripts, check it in the package.json located in the project root, or use the following command (see terminal output for usage tips)

yarn workspace:help

Committing changes to repo

Using commitizen cli is mandatory.

Provided all dependencies are installed, and commitizen cli is installed as a global dependency, this command must be used.

git cz

GitBook documentation

Is generated based on GitHub repo.

Firebase deployment

Applications as well as generated documentation, testing reports, and a custom changelog are deployed to Firebase.

Webapps

Documentation

Unit coverage

E2E report

Changelog

General Tooling

This project was generated using Nx.

๐Ÿ”Ž Nx is a set of Angular CLI power-ups for modern development.

Quick Start & Documentation

Adding capabilities to your workspace

Nx supports many plugins which add capabilities for developing different types of applications and different tools.

These capabilities include generating applications, libraries, .etc as well as the devtools to test, and build projects as well.

Below are some plugins which you can add to your workspace:

Application type Command
Angular ng add @nrwl/angular
React ng add @nrwl/react
Web (no framework frontends) ng add @nrwl/web
Nest ng add @nrwl/nest
Express ng add @nrwl/express
Node ng add @nrwl/node
Storybook ng add @nrwl/storybook

Generating an application

To generate an application run:

ng g @nrwl/angular:app my-app

You can use any of the plugins above to generate applications as well.

When using Nx, you can create multiple applications and libraries in the same workspace.

Generating a library

To generate a library run:

ng g @nrwl/angular:lib my-lib

You can also use any of the plugins above to generate libraries as well.

Libraries are sharable across libraries and applications.

It can be imported from @mono/mylib.

Running a development server

To start a dev server run:

ng serve my-app

Navigate to http://localhost:4200/.

The app will automatically reload if you change any of the source files.

Code scaffolding

To generate a new component run:

ng g component my-component --project=my-app

Building applications

To build the project run:

ng build my-app

The build artifacts will be stored in the dist/ directory.

Use the --prod flag for a production build.

Unit testing with Jest

To execute the unit tests run:

ng test my-app

To execute the unit tests affected by a change run:

npm run affected:test

End-to-end testing with Cypress

To execute the end-to-end tests run:

ng e2e my-app

To execute the end-to-end tests affected by a change run:

npm run affected:e2e

Understanding your workspace

To see a diagram of the dependencies of your projects run:

npm run dep-graph

Generating a storybook for a feature or ui library

npx nx g @nrwl/angular:storybook-configuration project-name

Tools help

ng run tools:help

Further help

Visit the Nx Documentation to learn more.

Technologies Reference

Workspace

Client

Server

Testing

Documentation

CI

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.