Configuration
You can configure how your projects build on CodeSandbox CI by
creating a file called ci.json
in a folder called
.codesandbox
in the root of your repository.
Configuration Format
These are all the configuration options you can set, remember that they are all optional.
{
// which script in package.json to run to install instead of `npm ci` or `yarn install`,
// can be `false` if you want to skip this step
"installCommand": "install",
// which script in package.json to run to build,
// can be `false` if you want to skip this step
"buildCommand": "build",
// if you have a monorepo, put the paths of the packages here. We'll infer the package names.
// globs are supported
"packages": ["packages/react", "packages/react-dom"],
// if you don't publish from the package directory, specify per dependency
// where the contents of the built dependency are. These files will be uploaded
// to our registry
"publishDirectory": {
"react": "build/node_modules/react"
"react-dom": "build/node_modules/react-dom"
},
// a list of sandboxes that you want generated for a PR, if this list
// is not set we will default to `vanilla`. The built library will automatically
// be installed in the fork of these sandboxes in the place of the library. So if
// you have a sandbox with `lodash`, and you built `lodash` and `vue`, we will only
// replace `lodash` with the built version.
"sandboxes": ["vanilla", "new", "github/reduxjs/redux/tree/master/examples/todomvc"]
}
Monorepo Example
Monorepos are quite common, here's an example configuration for a monorepo:
{
"packages": ["./", "packages/vue-template-compiler"],
}
This builds two libraries: `vue`, which is in the root of the repository, and `vue-template-compiler`, which resides in the `packages` folder.
We handle auto linking of these dependencies, this means that we rewrite the dependencies to the newly built versions of CodeSandbox CI. In this example, `vue` uses `vue-template-compiler`, so we've updated `package.json` of `vue` to point to our built `vue-template-compiler`.