Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turborepo, pnpm and tsup 🔥 #46

Closed
wants to merge 2 commits into from
Closed

Turborepo, pnpm and tsup 🔥 #46

wants to merge 2 commits into from

Conversation

tyrauber
Copy link

This PR configures eas-monorepo-example with a turborepo build process. It also updates packages/ui to use tsup instead of builder-bob, sorry bob. And it configures the app to use pnpm.

We still need to shamefully-hoist - (Should I feel shame? Because I do.)

But, overall it’s a really nice build pipeline.

$ pnpm install --shamefully-hoist
$ pnpm build # to build the workspace with turborepo
$ pnpm managed start
$ pnpm clean # to reset everything

Feels good, man.

And sets it up the monorepo nicely for dropping in apps that need to run in parallel like an Express API, Next or Remix.

Linked issue

Provide the issue(s) which this pull request relates to or fixes.

Additional context

Are there things the maintainers should be aware of before merging or closing this pull request?

This PR configures eas-monorepo-example with a turborepo build process. It also updates packages/ui to use tsup instead of builder-bob, sorry bob. And it configures the app to use pnpm. 

We still need to shamefully-hoist - (Should I feel shame? Because I do.)

But, overall it’s a really nice build pipeline.
```
$ pnpm install --shamefully-hoist
$ pnpm build # to build the workspace with turborepo
$ pnpm managed start
$ pnpm clean # to reset everything
```

Feels good, man. 

And sets it up the monorepo nicely for dropping in apps that need to run in parallel like an Express API, Next or Remix.
@byCedric
Copy link
Owner

Hey @tyrauber! Awesome work. I'm amazed you went all the way through! Sorry for not replying earlier. I'm thinking of a good home for this one, because this repo is also referenced from the Expo docs, I'm trying to keep it as minimal as possible (and with the supported yarn workspaces ofc).

Maybe we could split this one out into expo-monorepo-fast or something like that, where the focus lies purely on performance. And we keep an expo-monorepo instance with as minimal things as possible, basically behave like a vanilla template.

How does that sound?

@tyrauber
Copy link
Author

@byCedric, yeah, no worries. I got similar implementations in a few repo's including the remix-expo repo. Just sharing.

One change I would make to this repo is replace builder bob with tsup, or better yet, standard typescript compilation. I don't think there is a need for that dependency and might lead to confusion. I think writing all packages in typescript and relying on a standardized tsconfig and build process leads to best practices.

Thanks for the review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants