Den*_*nis 5 javascript npm webpack
我正在为我们的 2 个项目开发一个通用的 React 组件,它使用 2 个不同版本的 React-bootstrap。
First one: "react-bootstrap": "^0.33.1"
Second one: "react-bootstrap": "^1.0.0-beta.16"
Run Code Online (Sandbox Code Playgroud)
在库的 json 包中我有:
First one: "react-bootstrap": "^0.33.1"
Second one: "react-bootstrap": "^1.0.0-beta.16"
Run Code Online (Sandbox Code Playgroud)
该组件与这两个版本都可以正常工作(这两个版本之间使用的 API 保持相同)。
当我尝试在第二个项目中安装该依赖项时,出现下一个错误:
npm ERR! Could not resolve dependency:
npm ERR! peer react-bootstrap@"^0.33.1" from @company/lib@1.1.6
npm ERR! node_modules/@company/lib
npm ERR! @company/lib@"1.1.6" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
Run Code Online (Sandbox Code Playgroud)
我如何指定peerDependencies该库可以在 0.33.1 和 1.0.0 版本中使用?无需npm i使用标志强制忽略这些错误--force。
所以,它支持 OR 运算符
"react-bootstrap": "^0.33.1 || ^1.0.0-beta.16"
但这并不能解决问题,因为包是使用旧版本构建的。
所以解决方案就是:
@company/package到@company/package-legacy)不是很干净,但效果很完美。