Search code examples
vue.jscomponentscustomizationvuepress

vuepress - How to custom location of components directory '.vuepress/components' with register-components?


I tried to add custom directory of components in vuepress with plugin register/components but it seems not possible.

I tried with

module.exports = {
  title: 'Hello VuePress',
  description: 'Just playing around',
  plugins: [
   [
     'register-components',
     {
       componentDir: '../components'
     }
   ]
  ]
}

with this architecture (I want to select "components" directory)

enter image description here

But it seem doesn't work because the component is not recognized

enter image description here

I think that I wrote well my component in my base-button.md

enter image description here

Is that someone could help me to tell me steps to get there?

Thanks a lot


Solution

  • You can register components globally in enhanceApp.js (which should be located in the /.vuepress/ folder) in the same way you register them in a Vue app.

    enhanceApp.js

    import BaseButton from '../../components/BaseButton'
    
    export default ({
      Vue, // the version of Vue being used in the VuePress app
      options, // the options for the root Vue instance
      router, // the router instance for the app
      siteData // site metadata
    }) => {
      Vue.component('BaseButton', BaseButton)
    }