我正在使用 nuxt.js 开发一个项目,我想实现原子设计方法
所以我目前像这样导入组件
import ButtonStyled from '@/components/atoms/ButtonStyled.vue'
import TextLead from '@/components/atoms/TextLead.vue'
import InputSearch from '@/components/atoms/InputSearch.vue'
但我需要像这样导入
import {
ButtonStyled,
TextLead,
InputSearch
} from '@/components/atoms'
我离得越近,
/atoms/index.js
const req = require.context('./', true, /\.vue$/)
const modules = {}
req.keys().forEach(fileName => {
const componentName = fileName.replace(/^.+\/([^/]+)\.vue/, '$1')
modules[componentName] = req(fileName).default
})
export const { ButtonStyled, TextLead } = modules
但我仍在静态定义导出变量名称,我需要根据文件夹内的组件定义动态
注意:我不能使用
export default modules
如果我使用上面的代码片段,我将无法以我需要的方式导入它,即:
import { ButtonStyled } from "@/components/atoms"