Skip to content

Instantly share code, notes, and snippets.

@botmad
Created May 12, 2018 18:14
Show Gist options
  • Save botmad/b7f612b49140863deeab6cdcff67897b to your computer and use it in GitHub Desktop.
Save botmad/b7f612b49140863deeab6cdcff67897b to your computer and use it in GitHub Desktop.
Vue.js global components registration
// copied from Chris Fritz 7 Secret Patterns Vue Consultants Don’t Want You to Know - https://youtu.be/7lpemgMhi0k?t=6m27s
import Vue from 'vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'
// Collect all components prefixed 'base-',
// require in a base component context
const requireComponent = require.context (
'.', false, /base-[\w-]+\vue$/
)
requireComponent.keys().forEach(fileName => {
// Get component config
const componentConfig = requireComponent(fileName)
// Get PascalCase name of component
const componentName = upperFirst(
camelCase(fileName.replace(/^\.\//, '').replace(/\.\w+$/, ''))
)
//Register component globally
Vue.component(componentName, componentConfig.default || componentConfig)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment