如何解决 Critical dependency: the request of a dependency is an expression ?

在使用若依后台时,在部分情况下会出现以下错误:

根据提示我们可以找到主要造成这个问题的代码是以下这段:

export const loadView = (view) => { // 路由懒加载
  return () => import(`@/views/${view}`)
}

全局搜索node_modules我们可以看到这个问题是由webpack 的 lib/dependencies/ContextDependencyHelpers.js 第224行报出的警告;

然后在官方的issues中也能找到相关问题;

不过官方似乎并没有给出解决方案(也可能是我没有找到),也许是官方并不赞同import(`@/views/${view}`)这种引入方式;

我们也可以想办法换个方式引入,例如:

export const loadView = (view) => { // 路由懒加载
  return () => Promise.resolve(require(`@/views/${view}`).default)
}

这样既能保证组件的异步载入,也不会被webpack报异常,terminal看起来舒服多了;

webpack 版本问题,webpack4中动态import不支持变量方式,

该修改对于生产环境无影响,只在开发环境有问题

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值