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

Posted

技术标签:

【中文标题】如何找到具有特定依赖关系的 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? 【发布时间】:2021-10-18 22:09:29 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

有一些指南可以帮助您:

    加载器 - 最新版本的 Webpack 加载器应该适用于从版本 2 开始的任何版本的 Webpack。 插件 - Webpack 插件通常会导致跨版本的重大更改。这就是您必须进行广泛测试的地方。 CLI - Webpack CLI 和 Webpack 相互独立。理论上,没有太大的突破性变化。 Webpack CLI 实际上是 Webpack 的一个小包装器,因此,您可以从最顶层的版本开始,然后再往回走。 某些加载程序依赖于具有严格要求集的其他模块。例如。 Babel loader 严格依赖 Babel(babel-loader 8 需要 babel 7.x),sass-loader 也是如此。您必须严格遵守这些依赖关系。

【讨论】:

以上是关于如何找到具有特定依赖关系的 NPM 模块版本 - 例如,哪个版本的 webpack-cli 与 webpack@4.46.0 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

一次开发多个 npm 模块的方法(具有交叉依赖关系)

对于内部依赖特定版本的不同包,如何管理项目中多个版本的 npm 模块?

你如何找出哪些 NPM 模块依赖于你的?

NPM有关确定与旧软件包版本的依赖关系的问题

具有javascript依赖关系的lit-element,未打包为es6模块(尚未)

如何使用具有不同/自定义模块名称的 npm 安装软件包