最佳答案
我得到三个警告信息时,导入 request在一个赤裸裸的网络包项目。在 GitHub(运行 npm install和 npm start)上有一个重现 bug 的最小示例。
Critical dependency: the request of a dependency is an expression
我怎样才能摆脱这个警告?
更多信息:
Webpack 尝试静态地解析 require调用以生成最小的 bundle。当库在请求调用中使用变量或表达式时(例如 ajv的 这些线中的 require('' + 'nodent')) ,Webpack 无法静态地解析它们并导入整个包。
我的理由是,这种动态导入在生产环境中是不可取的,最好保持代码没有警告。这意味着我需要任何能解决问题的解决方案。例如:
hack.js文件,该文件以某种方式覆盖了需求调用。ajv-5.0.1-beta.3有一个消除警告的修复程序。但是,如果我想使用它,我必须等到它发布,然后直到 har-validator和 request发布后续更新。如果有一种方法可以强制 har-validator使用 ajv的 beta 版本,那将解决我的问题。