温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何解决vue-router的Import异步加载模块问题

发布时间:2020-07-27 14:42:43 来源:亿速云 阅读:269 作者:小猪 栏目:web开发

这篇文章主要讲解了如何解决vue-router的Import异步加载模块问题,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

1、问题现象

如何解决vue-router的Import异步加载模块问题

2、出现问题的代码点

如何解决vue-router的Import异步加载模块问题

3、替代方案:

import() 替换成如下:

Promise.resolve().then(()=>require(`@/views/${str}`))

如何解决vue-router的Import异步加载模块问题

4、原因分析

项目在编译时,出现一个警告

如何解决vue-router的Import异步加载模块问题

这个警告的含义:

require接收了一个变量,会报上面的警告,接收一个写死的字符串值时则没有警告!

我们通过控制台查看到import()对应编译过后的代码:

如何解决vue-router的Import异步加载模块问题

从上图可以看到require接收了一个变量,所以运行时出现了警告。

那这样就会报上面找不到对应的模块。

那我们再来看一个import()正确编译过后的代码:

如何解决vue-router的Import异步加载模块问题

通过对比编译过后的代码,可以轻易发现不同点。

花了大量时间,去找node_modules中的那个包版本不一致导致的,有一次尝试成功了, 但回想不起是哪一步操作的呢,再复现的时候,也没对了。先暂时搁置吧,希望对webpack和Babel熟悉的大佬看到,能指点一二了。

所以根据编译过后的代码,以及require的特性,尝试出了一个临时解决方案。

看完上述内容,是不是对如何解决vue-router的Import异步加载模块问题有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI