Frequently Asked Questions
You have two options when working with Turborepo:
- Install it globally, via
npm install --global turbo
- Install a local version in your project
We recommend installing the
turbo CLI globally. This gives you a smooth,
ergonomic experience for running tasks. If your project also has
turbo as a
dependency in package.json, the global
turbo will invoke the local one to
ensure that intended version is used in the project.
It's possible to end up with multiple versions of global
turbo on your machine if you install with different package managers. This can cause unexpected behavior if you're accidentally executing an older version of
You can quickly check which package manager's version you are using with:
- macOS and Linux:
The easiest way to ensure stability is to run the uninstall commands for your non-preferred package managers:
npm uninstall turbo --global
No. Remote Caching is optional. However, you'll find it very useful to speed up development on a team, speed up builds inside of Docker, and also save space on your own machine.
No. Turborepo does not store source code. Without Remote Caching, no code ever leaves your machine—it will only cache artifacts to local disk.
With Turborepo's Remote Caching, you are responsible for configuring cache behavior and should only set up Turborepo to cache compiled artifacts. Please be aware that Turborepo treats all logs as artifacts and so these will be stored along with other cache artifacts.
No. Turborepo is an open-source project and is not tied to any specific hosting provider or Remote Cache provider. The default Remote Cache provider is Vercel, should you opt-in to enable it. However, you can use any other provider you like if they support the same API. Several open-source community Remote Caches are compatible with Turborepo.
Yes. As long as the Remote Cache provider you choose supports the same API, you can use Turborepo with it.
Due to the nature of Turborepo's functionality, no personal information is gathered when the open source binary is run locally. All cached artifacts are stored on your machine by default. Further, no log in information or contact details are collected by the
Fast Refresh (opens in a new tab) gives you instantaneous feedback on edits made to your React components in Next.js applications.
If your Turborepo has multiple Next.js applications, you can use
next.config.js to ensure that imports across workspaces will work with Fast Refresh when changes are made. Turborepo will effectively watch for any edits and the rebuild when saving. You can get started from this example (opens in a new tab) which is set up to handle Fast Refresh.
next-transpile-modules (opens in a new tab) for the same Fast Refresh behavior.
Some new features are marked as "experimental" in Turborepo. This means that the feature is not yet ready for production use, and may change in the future. We encourage you to try out these features and provide feedback, but please be aware that they may change in the future.
- Report a bug with an experimental feature (opens in a new tab)
- Provide feedback on an experimental feature (opens in a new tab)
Your monorepo can include subdirectories with any kind of code (a Django app, Rust crates, Ruby CLIs, etc). Turborepo will largely ignore these directories. However, if you want Turborepo to do anything with those parts of your codebase, you will need to:
- Include these subdirectories in your workspaces declaration (e.g.
- Add a
package.jsonfile to this directory the
Turborepo use Node.js conventions to find workspaces and execute tasks, but it doesn't care what those tasks are.