最佳答案
我得到三个警告信息时,导入 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 版本,那将解决我的问题。