如何本地化node_modules中某些包的dependencies?-灵析社区

爬虫爬呀爬

这是我项目package.json的dependencies "dependencies": { ... "react-infinite-viewer": "^0.28.0" } 其中这个包的依赖关系如下 react-infinite-viewer依赖infinite-viewer,infinite-viewer依赖gesto, 我把gesto的代码修改了,我要怎么配置才可以在每次npm i react-infinite-viewer的时候使用修改后的gesto代码包 项目的实际情况:项目依赖包直接或间接依赖于gesto其实不止一个。 这意味着这是一个多个包在不同层级依赖gesto问题(但项目不直接使用gesto这个包)。 我曾试过使用下面这个方式: 修改项目package.json的dependencies "dependencies": { ... "react-infinite-viewer": "^0.28.0", "gesto":"file:packages/gesto" } 这种方式只能在项目的node_modules中安装修改后的代码,意味着我只能在项目中直接使用gesto才是修改后的代码,但我使用的是react-infinite-viewer,而react-infinite-viewer使用的还是原来的代码 myproject ->node_modules ->react-infinite-viewer ->node_modules ->infinite-viewer ->node_modules gesto // 这里安装的还是旧代码的gesto ... ->gesto // 这里是修改后的 使用pnpm或者lerna可以解决吗?要怎么配置 * * * 补充:根据楼下大佬的回答,如果使用的是yarn的话,解决办法可以更简洁 只需配置resolutions即可 "resolutions": { "gesto":"file:packages/gesto", }, Yarn 的选择性依赖项解析功能与 npm-force-resolutions 的功能非常相似 但是,Yarn 的选择性依赖项解析功能是 npm-force-resolutions 的默认功能。不需要安装 npm-force-resolutions 可以使用。 [yarn 选择性依赖项](https://link.segmentfault.com/?enc=6E8tSnx%2F8GF0Ga1IGN%2BrQA%3D%3D.at3YJte9vb9WOIaftTdhSnjsf%2F8AdlRGFB%2B0NudEG9AUmZTH%2BiEV6j%2BmhXsVhJxh2O8iIIe7wLDLVUDW6GtRyK6MoCC751dcSXbpvvT%2FY7BS2SIIT0ccqdDry4BdyFbf)

阅读量:365

点赞量:12

问AI
{ ... "scripts": { "preinstall": "npx npm-force-resolutions" }, "resolutions": { "gesto":"file:packages/gesto" } }