Skip to content

Does Encore Support Turborepo for Monorepo Management? #1681

Open
@sifatullahsu

Description

@sifatullahsu

Hello Encore team,

I am exploring the possibility of integrating Encore into my existing project, which is a monorepo managed by Turborepo and pnpm. Currently, all my apps or services are organized under the /apps folder.

I have the following questions and concerns:

  1. Compatibility with Turborepo:

    • Does Encore have native or tested compatibility with Turborepo and pnpm? If not, are there any known workarounds or configurations to make them work together seamlessly?
  2. Folder Structure Guidance:

    • Can Encore services reside inside the /apps directory, alongside other apps managed by Turborepo?
    • Are there specific folder structures or requirements that Encore expects for its services to function correctly?
    • How does Encore handle workspace-like setups where multiple services are in sibling directories?
  3. Configuration:

    • What configurations, if any, would need to be updated or added to both Encore and Turborepo for smooth integration?
    • Are there specific dependencies or tools required to make Encore work in such a setup?
  4. Dependency Management:

    • Does Encore install dependencies at the service level, or are they installed at the root of the monorepo?
    • If dependencies are not service-specific, how can we manage the same package with different major versions in different services?
  5. Future Support Plans:

    • Are there any plans to enhance Encore’s compatibility with popular monorepo tools like Turborepo?

Any documentation, examples, or best practices for setting up Encore in an existing Turborepo monorepo would be immensely helpful.

Current Project Details:

  • Monorepo Management Tool: Turborepo
  • Package Manager: pnpm
  • Folder Structure:
    /apps
      ├── service1
      │   ├── package.json
      ├── service2
      │   ├── package.json
      ├── frontend
      │   ├── package.json
    /packages
      ├── shared-lib
      │   ├── package.json
      ├── utils
      │   ├── package.json
    package.json
    pnpm-lock.yaml
    pnpm-workspace.yaml
    turbo.json

Thank you for your assistance and for building an amazing platform!

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