vue.js - 导入目录中的所有文件,而不必明确指定每个文件

标签 vue.js ecmascript-6

我想导入文件夹中的所有组件。有没有一种方法可以做到这一点而不必创建 index.js 文件并单独导入然后导出每个组件?有散装方式吗?

文件夹结构:

src/templates/
             Foo.vue
             Bar.vue
             Baz.vue
src/App.vue

在 App.vue 中,我想导入 templates 文件夹中的所有组件:

import * as Templates from './templates'

除非我将 index.js 文件放在 ./templates 文件夹中,否则以上内容不起作用:

// Do I have to import each component individually?
// Can I just bulk import all these?

import Default from './Default'
import Home from './Home'
import Agency from './Agency' 
import CaseStudies from './CaseStudies'
import Contact from './Contact'

export {
    Default,
    Home,
    Agency,
    CaseStudies,
    Contact
}

最佳答案

可以批量导入

import { Default, Home, Agency, CaseStudies, Contact } from "./templates/*";

babel-plugin-wildcard

.babelrc

  "plugins": [
    "transform-vue-jsx",
    "transform-runtime",
    ["wildcard", {
      "exts": ["js", "es6", "es", "jsx", "javascript", "vue"]
    }]
  ],

关于vue.js - 导入目录中的所有文件,而不必明确指定每个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49937665/

相关文章:

javascript - 如何在 Vue.js 的功能组件模板中访问原生 HTML 元素?

javascript - 使用 Vue Js 根据输入使文本可编辑/只读

npm - 谁能解释一下 es7 反射元数据是什么?

javascript - 如果仅返回一个对象,则 API 调用不适用于 TypeScript

javascript - Vue.js 中的替代绑定(bind)语法

vue.js - 从父组件重置子组件的形式

javascript - axios没有发出请求,没有结果,没有错误

javascript - 为什么 `throw` 在 ES6 箭头函数中无效?

javascript - 将对象数组转换为数组数组

SystemJS 中的 TypeScript 继承和循环依赖