yarn - 在不同的文件夹中安装包的依赖项?

yarn - install dependencies for a package in a different folder?

我想安装 some_project 的依赖项。我知道我可以 cd 变成 some_project 然后 运行 yarn install

但我想知道是否可以不更改目录?

有一个 bugyarn 阻止 --modules-folder 选项按预期工作,但是我个人不喜欢必须在命令行;您如何确保在以后的安装中将它们安装到您选择的文件夹中?

这就是为什么我为 npm 想出了 this 偷偷摸摸的解决方案,因为我想完全控制安装路径,而不仅仅是 node_modules 的前缀版本。它与 yarn 一样工作,事实上我们在生产中使用它并且我们还没有遇到问题(祈祷)。

简而言之,您需要在 preinstall 事件中 symlink node_modules 到您想要的文件夹(以欺骗 npmyarn)并且然后删除 postinstall 事件中的 symlink

但是有一个警告,我没有在链接的答案中提到(因为我当时没有想到),那就是,如果安装出现严重错误,事情可能不会按计划进行;由于 postinstall 事件 可能 未被触发,因此您最终会得到 symlink,然后下一个安装 可能 失败,因为 symlink 已经存在。