比如,现在需要升级 ssri 到 v8.0.1,因为报了 security issue 。webpack, storybook,都是依赖 ssri 的(好多层深度),只是依赖的版本比较低,比如 v6.0.1 或者 v8.0.0
可是,暂时不想把 webpack 或者 stroybook 升级到最新(比如,可能会有一堆新问题要解决,或者即使升级到最新版,他们引用的依赖,依然还是老的版本的情况,etc.)
npm 提供了一个方案,比如,package.json 里面,使用 resolutions,强制指定 ssri 到^ 8.0.1 版本,是可以解决这个问题的。
不过,貌似该方法有一个“大坑”,就是,如果以后,我们添加了其它的包,比如 abc,它依赖 ssri v9.0.0,我们是不知道的。npm/yarn install 时,还是使用^ 8.0.1 的版本。除非使用 abc 这个包的人,自己知道,这个包是依赖 ssri v9.0.0,然后去 resolutions 里面把指定的版本,改成 "ssri": "^v9.0.0"。但通常,一般人是不会去看自己引入的包,有哪些依赖的吧......
(不知道我的理解对不对,如果不对,请指正)
大家有没有比较好的方法 /方案,解决类似的问题?
refer: https://classic.yarnpkg.com/en/docs/selective-version-resolutions/
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.