All Projects → alan-agius4 → ng-mono-repo-starter

alan-agius4 / ng-mono-repo-starter

Licence: other
Angular Mono Repo Starter

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to ng-mono-repo-starter

Fc Angular
快速搭建angular后台管理系统的admin template。Fast development platform based on angular8, ng.ant.design built multi-tab page background management system (continuous upgrade) ^_^
Stars: ✭ 171 (+116.46%)
Mutual labels:  angular-components, ui-components, ngx
Material
A lightweight Material Design library for Angular based on Google's Material Components for the Web.
Stars: ✭ 143 (+81.01%)
Mutual labels:  angular-components, ui-components, ngx
Ng Devui
华为云DevCloud,基于Angular的企业级前端组件库;DevUI components based on Angular
Stars: ✭ 616 (+679.75%)
Mutual labels:  angular-components, ui-components, ngx
Modern Monorepo Boilerplate
Modern Monorepo Boilerplate with Lerna, TypeScript, React/CRA, HMR, Jest, ESLint/TypeScript.
Stars: ✭ 127 (+60.76%)
Mutual labels:  jest, lerna, monorepo
Ts Monorepo
Template for setting up a TypeScript monorepo
Stars: ✭ 459 (+481.01%)
Mutual labels:  jest, lerna, monorepo
Vitamin Web
Decathlon Design System libraries for web applications
Stars: ✭ 70 (-11.39%)
Mutual labels:  lerna, monorepo, ui-components
Ng Zorro Antd
Angular UI Component Library based on Ant Design
Stars: ✭ 7,841 (+9825.32%)
Mutual labels:  angular-components, ui-components, ngx
Entria Fullstack
Monorepo Playground with GraphQL, React, React Native, Relay Modern, TypeScript and Jest
Stars: ✭ 434 (+449.37%)
Mutual labels:  jest, lerna, monorepo
Sketchmine
Tools to validate, generate and analyse sketch files from web pages
Stars: ✭ 114 (+44.3%)
Mutual labels:  jest, lerna, monorepo
Lerna Yarn Workspaces Monorepo
🐉 A Monorepo with multiple packages and a shared build, test, and release process.
Stars: ✭ 201 (+154.43%)
Mutual labels:  jest, lerna, monorepo
yarn-workspaces-example
Sample monorepo project using new Yarn feature called Workspaces
Stars: ✭ 39 (-50.63%)
Mutual labels:  lerna, monorepo
cra-monorepo-demo
Monorepo example using create-react-app and common component library structure with yarn workspaces
Stars: ✭ 37 (-53.16%)
Mutual labels:  lerna, monorepo
shared-react-components-example
An example of a mono-repository of shared React components libraries!
Stars: ✭ 85 (+7.59%)
Mutual labels:  lerna, monorepo
lerna-sync
A package to synchronize distributed GitHub repos inside a Lerna monorepo.
Stars: ✭ 15 (-81.01%)
Mutual labels:  lerna, monorepo
lerna-terminal
Powerful cli ui for monorepos
Stars: ✭ 25 (-68.35%)
Mutual labels:  lerna, monorepo
stream-chat-angular
💬 Angular Chat SDK ➜ Stream Chat. Build a chat app with ease.
Stars: ✭ 23 (-70.89%)
Mutual labels:  angular-components, angular-library
sqrs
🚌SQRS is a JavaScript library for implementing CQRS pattern.
Stars: ✭ 23 (-70.89%)
Mutual labels:  jest, lerna
ngx-loading-mask
Angular 5+ simple loading-mask ui component.
Stars: ✭ 22 (-72.15%)
Mutual labels:  ngx, angular5
blog
blog posts & source code.
Stars: ✭ 44 (-44.3%)
Mutual labels:  lerna, monorepo
monorepo-utils
A collection of utilities for monorepo/lerna. Tools for TypeScript project references etc..
Stars: ✭ 143 (+81.01%)
Mutual labels:  lerna, monorepo

CircleCI Renovate enabled

Angular and Lerna logos

Angular Mono Repo Starter

An Angular mono repository starter kit featuring Jest, Lerna, Compodoc, scss-bundle and ng-packagr.

Features

  • Flatten SCSS output into a single file to improve build time for consumers
  • Supports scoped packages
  • Supports secondary entries similar to Angular's Testing Modules.
  • All the other features that Jest, Lerna, Compodoc and ng-packagr provide.

The Stack

  • Lerna - A tool for managing JavaScript projects with multiple packages. One of the major advantage of Lerna is semantic releases and package version syncing.
  • Jest - Jest is used by Facebook to test all JavaScript code including React applications. One of Jest's philosophies is to provide an integrated "zero-configuration" experience.
  • ng-packagr - Transpile and Bundle libraries to Angular Package Format.
  • Compodoc - Compodoc is a documentation tool for Angular applications & libraries. It generates awesome static documentation.
  • scss-bundle - Bundles all SCSS imports into a single file

Get Started

To get started, you need to:

  1. Clone the repository
git clone https://github.com/alan-agius4/ng-mono-repo-starter.git <project_name>
  1. Install dependencies
cd <project_name>
npm install

Note: There is a postinstall script that after npm install has finished will bootstrap the mono repo.

Setting your project scope

It is recommanded that you use scoped npm packages. This is set to @speedy by default. To change it you need to modify a couple of files.

These are:

  • tsconfig.json
  • tsconfig.build.json
  • lerna.json
  • jest.config.js

NPM Tasks

Task Description
aio Generates a static documentation of your libraries
bootstrap Install packages dependencies and bootstrap the mono repo
build Build all the packages inside the mono repo
watch Build all the packages inside the mono repo and perform an incremental build when a file changes (NB: in case you have cross dependencies it's recommanded that you first perform a build)
build-tools Build the tools script that are used for building the mono repo
clean Clean up packages node_modules and dist folders
test Run unit and integration tests
test-debug Run unit and integration tests in debug mode
test-tdd Run unit and integration tests in watch mode
release Runs lerna publish

Testing

For this project, I chose Jest as our test framework. While Karma is probably more common for Angular testing, Karma is slower and doesn't offer some important features that Jest does.

Using the debugger in VS Code

Debugging is one of the places where VS Code really shines over other editors. This project comes pre-configured launch.json. All you need to do is hit F5 in VS Code and get debugging!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].