import Vue from 'vue'; const requireComponent = require.context('./components', true, /\.vue$/); // Registro automático de componentes: // e.g. components/foo/bar/UnComponente.vue // se registra como 'foo-bar-un-componente' requireComponent.keys().forEach(fileName => { // Get the component config const componentConfig = requireComponent(fileName); // Get the PascalCase name of the component const componentName = fileName .replace(/^\.\/(.*)\.\w+$/, '$1') // Remove "./" from the beginning and the file extension from the end .replace(/\//g, '-') // Replace directories with hyphens .replace(/([a-z])([A-Z])/g, '$1-$2') // Insert hyphen between camelCase words .toLowerCase() // Convert to lowercase // Globally register the component Vue.component( componentName, // Look for the component options on `.default`, which will // exist if the component was exported with `export default`, // otherwise fall back to module's root. componentConfig.default || componentConfig ); });