Git Product home page Git Product logo

mono-repos's Introduction

React-Lerna Example

Motivation

You are working on multiple React projects and have some shared components throughout them. In the event of a change, instead of having edit one component multiple times, you can have edit the component just once with a monorepo file structure.

Why Lerna with React?

  1. There is no need to publish to a private registry (such as npm)
  2. Lerna is highly popular (16k stars)

File Structure

packages
  |__ common
  |__ webapp

lerna.json
package.json

The common folder would be where you store your shared components/utils.
The webapp folder is your React project.

Setup

  1. cd into common folder and run yarn
  2. cd into the webapp folder and run yarn
  3. Go back to the root folder and run yarn bootstrap.
    (This does symbolic linking between your packages to ensure that your dependencies across different folders can be detected.)
  4. cd into common folder and run yarn transpile.
    (This script copies the build files into the dist folder)
  5. cd into the webapp folder and run yarn start to start the application. You should see the shared components on the page.

Notes

package.json settings

In the package.json in the common folder, we see the following:

"module": "dist/index.js"

This ensures that any imports from another project will import from this location with the transpiled code.

Babel

Babel plays an important role to transpile the JSX code into vanilla javascript code to be interpreted by the compiler. Hence, it is important to have your babelrc file.

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.