Webpack-关键依赖项:依赖项的请求是一个表达式

导入request准系统webpack项目时,我收到三个警告消息可以在GitHub找到一个重现该错误的最小示例(run npm installnpm start)。

Critical dependency: the request of a dependency is an expression

我如何摆脱这个警告?


更多信息:

Webpack尝试require静态解析呼叫以使捆绑最小。当库在require调用中使用变量或表达式时(例如require('' + 'nodent')在的这些行ajv),Webpack无法静态解析它们并导入整个包。

我的理由是,这种动态导入在生产中是不希望的,并且最好保持代码无警告。那意味着我想要任何解决问题的解决方案。例如:

  1. 手动配置webpack导入所需的库,并防止发生警告。
  2. hack.js文件添加到我的项目中,文件以某种方式覆盖了require调用。
  3. 升级我的库。ajv-5.0.1-beta.3有一个使警告静音的修复程序。但是,如果我想使用它,我必须等待,直到它被释放,然后直到har-validatorrequest释放后续更新。如果有一种方法可以强制har-validator使用beta版的ajv,那将解决我的问题。
  4. 其他
小胖2020/03/23 21:00:18

解决了 npm install request@2.79.0 --save

据的作者说ajv,这个问题很可能会在request几周后的最新版本中得到解决