A Scope is a curated and dynamic collection of shared components. You can think of it as a component “playlist” that works as a remote location for syncing components between your different repositories while keeping one source of truth.
Scopes are easy and cheap to create for any purpose. You can create a Scope for specific projects, ideas, teams or anything you can imagine.
In order to organize tagged components from your project and make them available for reuse by other people or repositories, you will need to create a remote Scope and export components to it.
For example, you can create a Scope for components shared from a project your team is working on, for the UI Components of your entire organization or even for shared GraphQL schemas.
Remote Scopes can be connected to each other to form a Scope dependency graph. This allows you to create dependencies between components that are hosted on different Scopes. Each Scope caches all the dependencies of its own components to keep all components available and consistent.
Creating a remote Scope
To set a self-managed Scope, please head over to Bit on the Server section in our docs.
Creating a Scope on bitsrc.io
bitsrc.io is a community hub designed to host and provide greater discoverability for shared components. You can create as many Scopes as you like and manage permissions via the web UI.
Components hosted on bitsrc.io can also be installed using the Yarn / NPM client.
To host a Scope on bitsrc.io simply signup and follow the instructions.
Organizing components in a single Scope
After versioning components, they will be seen as
staged components when using bit status like in the example below.
$ bit status staged components > hello/world > foo/bar
$ bit export bit.movie-app 2 components were exported to Scope bit/movie-app
And that’s it, all the staged components will be organized on that remote Scope.
Organizing components in multiple Scopes
In some cases, you may want to export some of your components to different Scopes. You can specify the name of the component, and the remote Scope. By doing so you can be sure that only the component you selected will be exported to the specified target Scope.
$ bit export bit.movie-app hello/world component `hello/world` was exported to Scope bit/movie-app
Remove a component from your repository after an export
In some workflows or cases, you may wish to remove a component from your repository’s source-code and consume it as a dependency using a package manager, such as NPM or Yarn, after exporting it to a remote Scope.
To do that, you can use bit export
--eject flag like in the following example:
$ bit export bit.movie-app --eject 2 components were exported to Scope bit/movie-app
After export, the component dependency will be removed from your source-code and written to your project’s