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

Har*_*wal 3 node.js npm reactjs package.json material-ui

我正在开发一个 React js 应用程序,其中我使用Material-UI v5.0.0作为我的 UI 组件。此新版本将 @material-ui/* 前缀中的包名称替换为 @mui/*:

@material-ui/system -> @mui/system
@material-ui/styles -> @mui/styles
@material-ui/lab -> @mui/lab
Run Code Online (Sandbox Code Playgroud)

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

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

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

Zer*_*ero 6

使用npmyarn,您可以在别名下安装特定的包,这样您就可以在两个不同的版本下使用相同的包

npm install <alias>@npm:<pkg_name><@version> # for npm
yarn add <alias>@npm:<pkg_name><@version> # for yarn
Run Code Online (Sandbox Code Playgroud)

例子:

安装 Material-UI

npm install v5n@npm:@mui/material@5.0.0
npm install v4n@npm:@mui/material@4.12.3
Run Code Online (Sandbox Code Playgroud)

那么你可能需要它们作为

npm install v5n@npm:@mui/material@5.0.0
npm install v4n@npm:@mui/material@4.12.3
Run Code Online (Sandbox Code Playgroud)