Skip to main content

Managing dependencies

bud.js extensions usually come with everything you need to use a particular tool in your application. But, sometimes your application's needs will be in conflict with the defaults that ship with bud.js.

A common example of this is Vue 2 vs Vue 3. @roots/bud-vue supports Vue 3 by default, but if you need/want to use Vue 2, you can. You'll just need to override some of the peer dependencies in order to do so.

Be careful

Once you start overriding dependencies, you're on your own. It's hard enough to manage dependencies in a single project, let alone a monorepo, so our bandwidth to help will be limited.

Overriding peer dependencies

There isn't an API to manage dependency overrides per se, we just use the module resolution features built into npm and yarn to make it possible for you to customize your dependencies as needed. To do so you will just install the needed overrides in your project.

Example: Using Vue 2 instead of Vue 3

A Vue 3 project can just install @roots/bud and @roots/bud-vue and everything should be perfectly set up. But, at least for now, in order to use Vue 2, you'll need to override the peer dependencies that @roots/bud-vue ships with:

  • vue (2.6.14)
  • vue-template-compiler (2.6.14)
  • vue-loader (15.9.4)

Installation