Есть некая папка с файлами:
- first.vue
- second.vue
- third.vue
- index.js
index.js:
THIS IS A MAGIC
const context = require.context('./', false, /\.vue$/i)
export default context.keys().reduce((modules, path) => ({
...modules,
[/[a-z]+/i.exec(path).pop()]: context(path).default,
}), {})
Таким образом, в отдельном компоненте можно получить все компоненты из этой папки таким образом:
import someComponents from '../pathWithComponents/index.js'
export default {
components: {
...someComponents
},
Это для меня сейчас магия. Долго пытался разобраться в этом небольшом скрипте, но все равно упираюсь в свой потолок и не могу до конца понять его.
Но сейчас нужно переделать это в такой скрипт, чтобы можно было подключить lazy-loading.
Раньше я делал это так:
components: {
someComponent: () => import('./pathWithComponents/someComponent')
},
В итоге все подгружалось только по необходимости
Можно ли как то связать эти две вещи? Чтобы и подгружали только по необходимости и чтобы можно было подключить тот магический скрипт
Или это просто технически невозможно сделать?