我如何找到具有特定依赖项的 NPM 模块版本 - 例如,哪个版本的 webpack-cli 与 webpack@4.46.0 一起使用?

How can I find versions of NPM modules with specific dependencies - for example, which version of webpack-cli to use with webpack@4.46.0?

我被要求升级项目以使用 webpack 版本 4,我需要将各种加载器等升级到兼容版本。

到目前为止,它既费力又缓慢,我不知道我是否正在接近解决方案。

正如我在问题中提到的,我将 webpack 升级到版本 4.46.0,但现在当然需要升级 webpack-cli(以及许多其他库)。我想找到与 webpack@4.46.0 兼容的最高版本的 webpack-cli。经过反复试验,我发现 webpack-cli@3.3.12 似乎是正确的版本(而不是 webpack-cli@4.x)。

但是当然有些模块依赖于其他模块(等等),这使得找出正确的版本特别困难。

是否有任何自动化工具可以帮助完成此过程?

不幸的是,没有灵丹妙药!没有直接的自动化方法可以做到这一点。一般来说,你必须浏览每个 Webpack 加载器和插件的文档并找到合适的版本。

有几条指南可以帮助您:

  1. Loaders - 最新版本的 Webpack 加载程序应该适用于从版本 2 开始的任何版本的 Webpack。
  2. 插件 - Webpack 插件通常会导致跨版本的重大更改。那是你必须广泛测试的地方。
  3. CLI - Webpack CLI 和 Webpack 彼此完全独立。理论上,不会有太大的破坏性变化。 Webpack CLI 实际上是 Webpack 的一个小包装器,因此,您可以从最顶层的版本开始,然后向后退。
  4. 某些加载程序依赖于其他具有严格要求集的模块。例如。 Babel 加载器严格依赖 Babel(babel-loader 8 需要 babel 7.x)并且 sass-装载机。您必须严格遵守这些依赖关系。