Я собираю все свои простые глобальные компоненты в папку ./components/basic и хочу автоматически зарегистрировать их глобально.
Вот код:
import Vue from "vue";
import upperFirst from 'lodash/upperFirst';
import camelCase from 'lodash/camelCase';
const requireComponent = require.context('./components/basic/', true, /[A-Z]\w+\.(vue|js)$/);
requireComponent.keys().forEach(fileName => {
const componentConfig = requireComponent(fileName)
const componentName = upperFirst(camelCase(fileName.split('/').pop().replace(/\.\w+$/, '')));
Vue.component(componentName, componentConfig.default || componentConfig);
});
new Vue({
el: "#app"
});
index.html фрагмент:
<body>
<div id="app">
<MyBasic></MyBasic>
</div>
<script src="./dist/main.js"></script>
</body>
И, наконец, компонент MyBasic.vue:
<template>
<h1>My basic component</h1>
</template>
<script>
export default {
name: 'MyBasic',
data(){
return{
header: "Hi!"
}
}
}
</script>
<style></style>
Все кажется правильным, но на самом деле это выдает предупреждение на консоль, и мой компонент не работает:
[Предупреждение Vue]: Неизвестный пользовательский элемент: ‹mybasic› - вы правильно зарегистрировали компонент? Для рекурсивных компонентов обязательно укажите параметр «имя». (находится в корне)
Что не так со скриптом регистрации?
forEach
, чтобы попытаться определить, где возникает проблема? - person skirtle   schedule 29.08.2019