|
@@ -0,0 +1,38 @@
|
|
|
+import Vue from "vue";
|
|
|
+// import upperFirst from "lodash/upperFirst";
|
|
|
+// import camelCase from "lodash/camelCase";
|
|
|
+
|
|
|
+const requireComponent = require.context(
|
|
|
+ // The relative path of the components folder
|
|
|
+ "./",
|
|
|
+ // Whether or not to look in subfolders
|
|
|
+ false,
|
|
|
+ // The regular expression used to match base component filenames
|
|
|
+ /[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(
|
|
|
+ // Gets the file name regardless of folder depth
|
|
|
+ fileName
|
|
|
+ .split("/")
|
|
|
+ .pop()
|
|
|
+ .replace(/\.\w+$/, "");
|
|
|
+ // )
|
|
|
+ // );
|
|
|
+
|
|
|
+ // 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
|
|
|
+ );
|
|
|
+});
|