gpt4 book ai didi

yarnpkg - Yarn workspace + lerna 在每个子包中创建 node_modules

转载 作者:行者123 更新时间:2023-12-05 02:54:51 24 4
gpt4 key购买 nike

我有一个 monorepo,我正在使用 yarn workspaces + lerna 进行管理。据我了解,运行 yarn 应该在项目的根目录中创建一个 node_modules 目录,但不会在每个单独的包中。我正在关注作者这样说的教程:

yarn workspaces creates only one node_modules folder. All dependencies are hoisted to the root folder

这个假设总是正确的吗?或者是否存在 yarn + lerna 会在每个包中创建单独的 node_modules 目录的情况?

最佳答案

我读了几篇文章,对同样的事情感到困惑。

简短的回答是,你是对的。 yarn 创造node_modules每个包裹连同 node_modules存储库根目录中的目录。

换句话说,Yarn 创建了 /packages/<package>/node_modules在你所有的包裹里。然而,/packages/<package>/node_modules目录将通过重用 /node_modules 中的依赖项进行优化.这基本上就是这些作者想要表达的意思!

总而言之,您将拥有 n + 1 node_modules目录,其中 n是您拥有的包的数量,假设您的所有包都具有依赖项。

让我们考虑一个例子:

yarn workspace package-1 add commander

不会创建 /packages/package-1/node_modules/commander如果它已经在 /node_modules/commander 中具有兼容版本。

现在让我们来看另一个案例:

yarn workspace package-1 add chalk

如果 Yarn 不能重用 /node_modules 中的内容,它将在本地安装包,在我们的例子中是 /packages/package-1/node_modules/chalk .

您可以在 Yarn 的官方博客中阅读更多相关信息:https://classic.yarnpkg.com/blog/2017/08/02/introducing-workspaces/

关于yarnpkg - Yarn workspace + lerna 在每个子包中创建 node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61551875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com