我在项目中使用了import() 方法,在直接写字符串文件地址的情况下是可以用的
例如:
const cc = () => import('./aa.vue');
上面的代码能导入aa.vue这个组件
但是
如下的代码:
let name = '@/views/aa.vue';
const cc = () => import(name);
传入例如一个变量,或者返回字符串的方法
function jikj() {
return './gg.js';
}
const cc = () => import(jikj());
这种代码就不能加载这个组件了,我尝试了组件的"相对地址","绝对地址","相对于/的地址","增加的@映射的地址"都提示找不到组件
如下如:
找不到啊,郁闷啊
webpack 编译es6 动态引入 import() 时不能传入变量,例如
import(dir)
, 而要传入字符串import('path/to/my/file.js')
,这是因为webpack的现在的实现方式不能实现完全动态。但一定要用变量的时候,可以通过字符串模板来提供部分信息给webpack;例如
import(`./path/${myFile}`)
, 这样编译时会编译所有./path
下的模块,但运行时确定myFile的值才会加载,从而实现懒加载。