在一个基本的webpack项目中引入
更多信息:
Webpack试图静态解析
我的理解是,在生产环境中不希望出现这种动态导入,并且最好保持代码无警告。这意味着我想要任何解决问题的方法。例如:
1.手动配置Webpack以导入所需的库并防止发生警告。 2.向我的项目添加一个
request
时,会出现三个警告信息。您可以在GitHub上找到一个最小化的样例来复现这个问题(运行npm install
和npm start
)。
Critical dependency: the request of a dependency is an expression
如何消除这个警告?更多信息:
Webpack试图静态解析
require
调用以生成一个最小的包。当一个库在require
调用中使用变量或表达式(例如ajv
库的这些代码行中的require('' + 'nodent')
),Webpack无法静态解析它们并导入整个包。我的理解是,在生产环境中不希望出现这种动态导入,并且最好保持代码无警告。这意味着我想要任何解决问题的方法。例如:
1.手动配置Webpack以导入所需的库并防止发生警告。 2.向我的项目添加一个
hack.js
文件,以某种方式覆盖require
调用。
3.升级我的库。 ajv-5.0.1-beta.3
有一个修复程序可以消除警告。但是,如果我想使用它,我必须等到它发布,然后等到har-validator
和request
发布后续更新。如果有一种方法可以强制har-validator
使用ajv
的beta版本,那么这个问题就解决了。
4.其他
new webpack.IgnorePlugin(/async/, /ajv/)
,三个警告中有两个已经消失了,但 webpack 报错Cannot find module "../async"
。是否有关于适当的魔术值可以使其正常工作的想法? - Jodiugimport(/* webpackIgnore: true */ "http://example.com/cdn/file.js")
。这不是解决方案,而是一种变通方法。 - Ninjakannon