这是我的项目的package.json
"dependencies": {
...
"react-infinite-viewer": "^0.28.0"
}
此软件包的优点:myproject -> react-infinite-viewer -> infinite-viewer -> gesto
项目的实际情况,实际上有不止一个包直接或间接依赖于gesto。这意味着它是multiple packages dependencies on gesto at different levels
我试过这种方法
"dependencies": {
...
"react-infinite-viewer": "^0.28.0",
"gesto":"file:packages/gesto"
}
这种方法只在项目的node_modules中安装修改后的代码。这意味着我可以在我的项目中使用修改后的代码,但react-infinite-viewer仍将使用原始代码。
myproject
->node_modules
->react-infinite-viewer
->node_modules
->infinite-viewer
->node_modules
gesto // here is still use the original code
...
->gesto // here using the modified code
我应该使用pnpm还是lerna来解决这个问题?
当使用yarn
/pnpm i
/yarn add xxx
...时,所有依赖于gesto的包都使用修改后的gesto代码
1条答案
按热度按时间eaf3rand1#
通过配置
resolutions
解决如果使用npm,请更改package.json:
如果使用yarn,它将比npm更容易
Yarn的选择性依赖解析特性是npm-force-resolutions的默认功能。你不需要安装npm-force-resolutions来使用它。Selective dependency resolutions