如何在 package.json 中使用 2 个不同版本的相同节点依赖项?

How to use 2 different versions of the same node dependency in package.json?

我正在开发一个 React js 应用程序,我在其中使用 Material-UI v5.0.0 作为我的 UI 组件。 这个新版本用 @mui/*:

替换了 @material-ui/* 前缀的包名
@material-ui/system -> @mui/system
@material-ui/styles -> @mui/styles
@material-ui/lab -> @mui/lab

在我的项目中,我还使用另一个依赖项在一页上显示日历,它具有 Material-UI v4.12.3 的对等依赖项,它导入 material 库,例如 @material-ui/system.

我应该如何管理 package.json 中的依赖项,以便我可以将 Material-UI v5.0.0 用于我的大部分 UI/UX 并且仍然能够仅针对特定 UI 屏幕使用依赖项。

我应该同时安装 material UI v5.0.0 和 v4.12.3 还是有更好的方法?

使用 npm or yarn,您可以使用别名安装特定的软件包,这样您就可以在两个不同的版本下使用同一个软件包,因此您可以

npm install <alias>@npm:<pkg_name><@version> # for npm
yarn add <alias>@npm:<pkg_name><@version> # for yarn

示例:

正在安装 Material-UI

npm install v5n@npm:@mui/material@5.0.0
npm install v4n@npm:@mui/material@4.12.3

那么您可能需要它们作为

import Button from 'v5/Button';