【发布时间】:2018-10-06 21:17:00
【问题描述】:
我目前正在使用require.context 加载我的所有.vue 组件,这些组件的文件名不以Async 结尾。
const loadComponents = (Vue) => {
const components = require.context('@/components', true, /\/[A-Z](?!\w*Async\.vue$)\w+\.vue$/);
components.keys().forEach((filePath) => {
const component = components(filePath);
const componentName = path.basename(filePath, '.vue');
// Dynamically register the component.
Vue.component(componentName, component);
});
};
现在我想用require.context 加载以Async 结尾的组件,这样我就不必在创建这种类型的新组件时手动添加它们。
动态导入语法通常如下所示:
Vue.component('search-dropdown', () => import('./search/SearchDropdownAsync'));
这将通过一个承诺得到解决并动态导入组件。
出现的问题是当你使用require.context时,它会立即加载(需要)组件,我无法使用动态导入。
有没有什么办法可以将require.context与Webpack的动态导入语法结合起来?
https://webpack.js.org/guides/code-splitting/#dynamic-imports
【问题讨论】:
-
您找到解决方案了吗?
-
谢谢,在发布这个问题时,它是关于 Webpack 3 的。 Webpack 3 没有这个选项。
标签: javascript webpack vue.js vue-component dynamic-import