Created
May 12, 2018 18:14
-
-
Save botmad/b7f612b49140863deeab6cdcff67897b to your computer and use it in GitHub Desktop.
Vue.js global components registration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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