All Projects → untaggable → monoreact

untaggable / monoreact

Licence: MIT License
📦 React workspaces implementation

Programming Languages

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

Projects that are alternatives of or similar to monoreact

nextjs-monorepo-example
Collection of monorepo tips & tricks
Stars: ✭ 874 (+6623.08%)
Mutual labels:  yarn, workspace, monorepo, workspaces
react-webpack-starter
A really simple boiler plate for creating react applications bundled by webpack (using ES6+, Babel, SASS and webpack development server) ⚛️
Stars: ✭ 86 (+561.54%)
Mutual labels:  yarn, react-boilerplate, react-app
manager
OVHcloud Control Panel
Stars: ✭ 153 (+1076.92%)
Mutual labels:  yarn, rollup, workspace
lerna-terminal
Powerful cli ui for monorepos
Stars: ✭ 25 (+92.31%)
Mutual labels:  monorepo, monorepos, monorepository
Ts Monorepo
Template for setting up a TypeScript monorepo
Stars: ✭ 459 (+3430.77%)
Mutual labels:  create-react-app, rollup, monorepo
Create React App
Yarn Workspaces Monorepo support for Create-React-App / React-Scripts.
Stars: ✭ 76 (+484.62%)
Mutual labels:  yarn, create-react-app, monorepo
react-starter-kit
🚀 React starter kit for a modern single page (SPA) application (dependencies updated at 28 July 2017). Zero configuration. Ready to go. Just paste your code!
Stars: ✭ 26 (+100%)
Mutual labels:  react-boilerplate, react-app, react-starter
React Workspaces Playground
⚛️ 🐈 Zero Config Create-React-App Monorepos with Yarn Workspaces, Lerna and React Storybook.
Stars: ✭ 658 (+4961.54%)
Mutual labels:  yarn, create-react-app, monorepo
Lerna Yarn Workspaces Example
How to build TypeScript mono-repo project with yarn and lerna
Stars: ✭ 787 (+5953.85%)
Mutual labels:  yarn, workspace, monorepo
introduction-nodejs
Introduction to NodeJS
Stars: ✭ 13 (+0%)
Mutual labels:  yarn, workspace, monorepo
yarn-workspaces-example
Sample monorepo project using new Yarn feature called Workspaces
Stars: ✭ 39 (+200%)
Mutual labels:  yarn, monorepo, workspaces
bilyeli
🛴Bilyeli is a minimal boilerplate for modern React app builds. Always up-to-date, always simple.
Stars: ✭ 22 (+69.23%)
Mutual labels:  react-boilerplate, react-starter
react-simple-boilerplate
Simple React Boilerplate with Webpack, Github Actions, Scss, Lazy Loading etc....
Stars: ✭ 38 (+192.31%)
Mutual labels:  yarn, react-boilerplate
yarn-workspaces-simple-monorepo
Yarn Workspaces basic monorepo management without Lerna for coding examples
Stars: ✭ 31 (+138.46%)
Mutual labels:  yarn, monorepo
nebuchadnezzar
on the way to cleanest react architechture
Stars: ✭ 15 (+15.38%)
Mutual labels:  react-boilerplate, react-starter
ts-lib-scripts
以 🚀 速度创建零配置 TypeScript 库项目的命令行工具
Stars: ✭ 56 (+330.77%)
Mutual labels:  yarn, rollup
react-component-lib
Boilerplate repo for creating npm packages with React components written in TypeScript and using styled-components
Stars: ✭ 69 (+430.77%)
Mutual labels:  create-react-app, rollup
react-theme
Production ready Wordpress theme built with React, Redux, Redux-Thunk, Intl, React Router v4, etc... and packaged by Webpack 2. Enjoy!
Stars: ✭ 14 (+7.69%)
Mutual labels:  react-boilerplate, react-app
relay-starter-kit
💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, Relay, Material UI.
Stars: ✭ 3,513 (+26923.08%)
Mutual labels:  yarn, monorepo
React-Native-Web-TypeScript-Prettier-Boilerplate
A starterkit to work with nextjs, react-native, storybook… all with prettified typescript and in a monorepo
Stars: ✭ 16 (+23.08%)
Mutual labels:  yarn, monorepo

What is it

This is an advanced workspace implementation for React projects.

Monoreact includes the following features:

  • develop regular react apps
  • scaffold React projects
  • build JavaScript, TypeScript, React libraries
  • implement monorepos, workspaces, submodules
  • workspace, submodules management
  • efficient bundling (rollup)
  • workspace dependency awareness (topological sorting)

What problems does it solve


Motivation

The primary motivation was not to be tied to existing solutions of vendors, so as not to get into vendor lock.

Nevertheless, I recommend considering alternative solutions:

  • nx/react - a super powerful tool that can do everything, but turned out to be redundant for me because of vendor lock.
  • lerna - completely threw this idea away with existing yarn workspaces and git submodules scripts.
  • tsdx - a great solution but for narrow tasks.

What can it do now


Powerful CLI

Built-in documentation. Type in the console monoreact --help to see information about all possible commands and monoreact [command] --help their description.

The following options are now available:

Scaffolding

  • new. Creates a container/host/shell application. This is the initial scaffolding of the entire application.
  • generate a new package (submodule): basic, react. Monoreact creates a distribution of responsibility. Not all packages must deal with react components. Sometimes you want to build plain JavaScript/TypeScript libraries.
  • add a new feature (available options: docz, playground (run packages locally inside the package workspace)). Monoreact allows you to not generate components with all the things that may not necessarily need in each package.

Execution

  • build and watch your package with a modern rollup module bundler. Rollup is the best choice for building independent libraries due to efficient tree-shaking and fast compilation.
  • test and lint your package with Jest and eslint. These built-in packages are crucial for increasing and maintaining the quality of built libraries.
  • install dependencies. This option provides workspace dependency management. If you are running install inside some package, it'll add these dependencies as "peer" and add them to the root.

Submodules

It is quite challenging for managing git submodules. You have to perform many actions to make a simple task happen, and this is what scares people off from using submodules. In turn, Monoreact offers user-friendly control through commands, which increases understanding and speed of interaction with git submodules.

  • checkout
  • fetch
  • init
  • pull

Workspaces

Monoreact offers a much efficient alternative to the "yarn workspaces". It analyzes your dependencies between workspaces and runs them in the desired sequence and in parallel, when necessary and appropriate.

  • watch (parallel)
  • build (parallel)
  • test
  • lint

Migration

This section is responsible for scripts that will help to adapt the basic state of the package to the desired one.

  • detach. Detach your package from the workspace. Just in case you plan to use the package as a submodule to run it independently outside the host workspace.

Contributing

Check out contributing guideline to familiarize yourself with the general rules of the project, as well as to figure out how to bootstrap the project and make changes correctly.


License

This project is MIT licensed.

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].