Skip to content

Make it a proper multipackage monorepo #403

Closed

Description

@gaearon

I think we should change the directory structure to make it easier to add more packages to the project in the future. I’m thinking something like this:

packages
  - create-react-app (this is global-cli in current layout)
    - index.js
    - package.json
  - react-scripts (this is project root in current layout)
    - bin
    - config
    - scripts
    - package.json
tasks
template

A PR doing this is welcome. (You’ll probably want to adjust config/paths.js to account for this change.)

If you plan to work on this please leave a comment here so multiple people don’t work on the same thing. Please respect it if somebody has taken the task, and let them finish it.

Activity

  1. gaearon commented on Aug 8, 2016

    @gaearon
    ContributorAuthor

    (There is no need to add something like Lerna yet, I think, but if you’re sure it’s better then go ahead with it. Note that we want to have independent versioning for all packages.)

  2. ryanyogan commented on Aug 8, 2016

    @ryanyogan

    I'd like to take a crack at this tonight/tomorrow if no one else started?

  3. gaearon commented on Aug 8, 2016

    @gaearon
    ContributorAuthor

    Sounds good @ryanyogan!

  4. suchipi commented on Aug 8, 2016

    @suchipi

    Some discussion on the topic that might be worth considering: https://github.com/boennemann/alle

  5. ryanyogan commented on Aug 8, 2016

    @ryanyogan

    Thanks @suchipi I am going to look at that now.

    I do like the philosophy behind Lerna however I do concur with @gaearon that it may be overkill at this time.

    I personally believe the project is small enough at this time adding additional complexities may incur more cost later. But crack an egg of wisdom on me if you feel strongly otherwise!

  6. hzoo commented on Aug 8, 2016

    @hzoo

    I agree Lerna isn't necessary atm but it's relatively simple to setup with independent mode (you don't need crazy options)

    # or global?
    npm install lerna --save-dev
    ./node_modules/.bin/lerna init (add lerna.json)
    ./node_modules/.bin/lerna bootstrap (npm installs packages, links)
    # when publish is necessary
    ./node_modules/.bin/lerna publish --independent
    

    Should write up that usage guide sometime..

  7. ryanyogan commented on Aug 8, 2016

    @ryanyogan

    I'll crack a branch with the basic requirements, then I will toy around with Lerna's independent mode.

    I don't think it could hurt to show two variants, and let you all decide on what ya like better. I prefer simplicity until required, but from what it looks like Lerna independant is perhaps a fair compromise.

  8. hzoo commented on Aug 8, 2016

    @hzoo

    If it isn't too much overheard, but otherwise yeah just stick with what works/simple.

  9. 30 remaining items

  10. boxxxie commented on Aug 29, 2016

    @boxxxie

    i suggest waiting until lerna uses symlinks (this is part of one of the PRs that is about to be merged)

  11. gaearon commented on Sep 24, 2016

    @gaearon
    ContributorAuthor

    Done thanks to @ryanyogan and @fson. This unlocked many opportunities for us so thank you for moving this project forward.

  12. ryanyogan commented on Sep 26, 2016

    @ryanyogan

    No problemo, once my schedule gets a tad calmer I can't wait to start
    creating some plugins, or whatever the group decides on for extending upon
    the mono repo!

    On Sat, Sep 24, 2016 at 5:51 AM, Dan Abramov notifications@github.com
    wrote:

    Done thanks to @ryanyogan https://github.com/ryanyogan and @fson
    https://github.com/fson. This unlocked many opportunities for us so
    thank you for moving this project forward.

    —
    You are receiving this because you were mentioned.
    Reply to this email directly, view it on GitHub
    #403 (comment),
    or mute the thread
    https://github.com/notifications/unsubscribe-auth/AACifHOknsINUN9G5X10yOSPGebllOiNks5qtRzDgaJpZM4JfUSG
    .

  13. locked and limited conversation to collaborators on Jan 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions