首页 > 其他 > 详细

vue-router的Import() 异步加载模块问题的解决方案

时间:2020-05-13 11:52:24      阅读:59      评论:0      收藏:0      [点我收藏+]

关注不迷路,如果解决了问题,留下个赞。

1、问题现象

技术分享图片

2、出现问题的代码点

技术分享图片

3、替代方案:

import() 替换成如下:

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

技术分享图片

4、原因分析

项目在编译时,出现一个警告
技术分享图片

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

我们通过控制台查看到import()对应编译过后的代码:
技术分享图片

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

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

那我们再来看一个import()正确编译过后的代码:
技术分享图片

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

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

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

vue-router的Import() 异步加载模块问题的解决方案

原文:https://www.cnblogs.com/werewolfBoy/p/12880755.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!