使用同一个库的两个版本的组件(在我的情况下为npm/Material UI)

Doa*_*Doa 8 version-control npm reactjs material-ui

我在我的生产React应用程序中使用最新稳定版本的Material UI.

我需要更新的数据表组件,该组件当前位于Material UI的不稳定alpha分支中.

npm i material-ui@next由于众多重大变化,我不想升级我的整个应用程序.

如何在不升级整个库的情况下访问alpha库?我可以安装两个版本的MUI吗?我可以在没有通过NPM安装的情况下调用alpha API吗?

提前致谢.

Kuf*_*Kuf 17

经过一番谷歌搜索,发现了这个.要使用这两个版本:

yarn add material-ui@latest
yarn add material-ui-next@npm:material-ui@next
Run Code Online (Sandbox Code Playgroud)

然后你可以使用

import Divider from 'material-ui-next/Divider'
Run Code Online (Sandbox Code Playgroud)

要么

import Divider from 'material-ui/Divider'
Run Code Online (Sandbox Code Playgroud)


Ila*_*oul 2

我在/packages一个名为的文件夹中创建了一个文件夹material-ui-next,其中仅package.json包含:

{
  "name": "material-ui-next",
  "version": "1.0.0",
  "scripts": {
    "postinstall": "mv node_modules/material-ui/* ."
  },
  "dependencies": {
    "material-ui": "next"
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,现在从项目的根部npm install packages/material-ui-next --save开始,我们可以做createPalette = require('material-ui-next/styles/palette')任何事情,或者从material-ui现在开始别名为material-ui-next.

说明:由于"material-ui": "next"它是一个依赖项,因此将安装它,因此通过在安装node_modules/material-ui包后添加一个脚本以移动到包的根目录,我们可以material-ui-nextnode_modules/material-uirequire('material-ui-next/WHATEVER')