【发布时间】:2021-04-18 10:36:30
【问题描述】:
我有几种菜单类型,想配置要在 .env.local 中使用的菜单类型,例如:VUE_APP_MENU_TYPE=2
在我的 javascript 文件中,我有以下内容:
let menu = false;
if (process.env.VUE_APP_MENU_TYPE === "2") {
menu = require("./type2/Type2.vue");
}
if (menu === false) {//default menu if env is missing
menu = require("./default/Default.vue");
}
export default menu;
这将导致错误Failed to mount component: template or render function not defined.
我可以做到以下几点:
import Default from "./default/Default.vue";
import Type2 from "./type2/Type2.vue";
let menu = Default;
if (process.env.VUE_APP_MENU_TYPE === "2") {
menu = Type2;
}
export default menu;
这将起作用,但所有菜单都在代码中编译,包括永远不会使用的菜单,因为 VUE_APP_MENU_TYPE 在编译时是已知的,并且在您重新编译之前永远不会改变。
是否可以在编译时动态导入组件?
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component