Skip to content

Instantly share code, notes, and snippets.

@uriannrima
Created March 16, 2019 01:06
Show Gist options
  • Save uriannrima/dbabae82f33da16ad2b806c9d5a3a3aa to your computer and use it in GitHub Desktop.
Save uriannrima/dbabae82f33da16ad2b806c9d5a3a3aa to your computer and use it in GitHub Desktop.
Vue global components registration
import Vue from 'vue'
import { upperFirstLetter } from './utils/string.extensions'
/** List all files from folder name. */
let requireComponent = require.context(
'./components',
// Consider subfolders?
true,
// The regular expression used to match base component filenames
/[A-Z]\w+\.(vue|js|ts)$/
)
/** Iterate keys. */
requireComponent.keys().forEach(fileName => {
/** Require the component. */
const componentConfig = requireComponent(fileName);
/** Remove ./ and file extension. */
let componentName = fileName.replace(/^\.\/(.*)\.\w+$/, '$1')
componentName = componentName.split('/').pop() || "";
/** Register component. */
Vue.component(
upperFirstLetter(componentName),
componentConfig.default || componentConfig
)
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment