mirror of
https://github.com/LeCoupa/awesome-cheatsheets.git
synced 2025-11-08 22:11:35 +00:00
build(app): make base components global by default
This commit is contained in:
45
plugins/global.js
Normal file
45
plugins/global.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/**************************************************************************
|
||||
* IMPORTS
|
||||
***************************************************************************/
|
||||
|
||||
// NPM
|
||||
import Vue from "vue";
|
||||
import upperFirst from "lodash/upperFirst";
|
||||
import camelCase from "lodash/camelCase";
|
||||
|
||||
/**************************************************************************
|
||||
* GLOBAL COMPONENTS
|
||||
* https://vuejs.org/v2/guide/components.html#Global-Registration
|
||||
***************************************************************************/
|
||||
|
||||
const requireComponent = require.context(
|
||||
// The relative path of the components folder
|
||||
// NOTE: try with ../components/base
|
||||
"../components",
|
||||
// Whether or not to look in subfolders
|
||||
false,
|
||||
// The regular expression used to match base component filenames
|
||||
/Base[A-Z]\w+\.(vue|js)$/
|
||||
);
|
||||
|
||||
requireComponent.keys().forEach(fileName => {
|
||||
// Get component config
|
||||
const componentConfig = requireComponent(fileName);
|
||||
|
||||
// Get PascalCase name of component
|
||||
const componentName = upperFirst(
|
||||
camelCase(
|
||||
// Strip the leading `./` and extension from the filename
|
||||
fileName.replace(/^\.\/(.*)\.\w+$/, "$1")
|
||||
)
|
||||
);
|
||||
|
||||
// Register component globally
|
||||
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
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user