Skip to main content

package.json

Your project package.json has bud.js specific fields that can be used to configure your project.

JSON schema

To make sure your package.json is valid, you can add the bud.js schema to your package.json: https://bud.js.org/bud.package.json. This is totally optional.

{
"name": "my-project",
"$schema": "https://bud.js.org/bud.package.json",
"devDependencies": {
"@roots/bud": "latest"
}
}

bud.js fields

bud.js specific fields are added to the top-level bud key in your package.json.

bud.extensions.discover

Disable extension autoload by setting bud.extensions.discover to false.

{
"name": "my-project",
"$schema": "https://bud.js.org/bud.package.json",
"bud": {
"extensions": {
"discover": false
}
},
"devDependencies": {
"@roots/bud": "latest"
}
}

bud.extensions.allowlist

Allow only specified extensions to autoload by setting bud.extensions.allowlist.

{
"name": "my-project",
"$schema": "https://bud.js.org/bud.package.json",
"bud": {
"extensions": {
"allowlist": ["@roots/bud-babel"]
}
},
"devDependencies": {
"@roots/bud": "latest",
"@roots/bud-babel": "latest",
"@roots/bud-postcss": "latest"
}
}

bud.extensions.denylist

Prevent particular extensions from autoloading by setting bud.extensions.denylist.

{
"name": "my-project",
"$schema": "https://bud.js.org/bud.package.json",
"bud": {
"extensions": {
"denylist": ["@roots/bud-postcss"]
}
},
"devDependencies": {
"@roots/bud": "latest",
"@roots/bud-babel": "latest",
"@roots/bud-postcss": "latest"
}
}

Multi-instance configurations

If you are using bud.js in a multi-instance configuration, you can key the options by the instance names.

Any top-level options will be applied to all instances, with instance-specific options taking precedence.

{
"name": "my-project",
"$schema": "https://bud.js.org/bud.package.json",
"bud": {
"extensions": {
"discover": false
},
"instance-a": {
"extensions": {
"allowlist": ["@roots/bud-swc"]
}
},
"instance-b": {
"extensions": {
"allowlist": ["@roots/bud-babel"]
}
}
},
"devDependencies": {
"@roots/bud": "latest",
"@roots/bud-babel": "latest",
"@roots/bud-swc": "latest"
}
}