请问Yarn是否考虑了依赖项的锁定文件?

时间:2016-10-19 09:26:36

标签: yarnpkg

我有一个内部脚手架应用程序,我为此创建了一个yarn.lock文件。现在,此应用程序将被其他Node应用程序使用。在为主应用程序安装依赖项时,Yarn会考虑其依赖项的锁定文件吗?

1 个答案:

答案 0 :(得分:2)

开箱即用,答案是

的一种方式。如果您看到this讨论,则会提供使用

的建议
yarn add file:path-to-submodule

在我看来,这是处理子模块包的更确定的方法。所以你能做的就是:

mkdir module && cd module
yarn init
mkdir submodule && cd submodule
yarn init                // Name this package 'submodule'
yarn add express         // Just an example package
rm -rf node_modules      // To see if node_modules is going to be regenerated
ls                       // package.json yarn.lock
cd ..
yarn init
yarn add react           // Another sample module
yarn add file:submodule  // Adds submodule as a local dependency
yarn 
cd node_modules && ls    // Both react & express and their dependencies are now in module/node_modules
cd .. && cd submodule && ls // No node_modules created within /submodules

在此您可以看到您已使用yarn add

在主模块中成功创建了本地子模块

使用此方法的优点是:

  • 仅保存每个包的一个副本
  • 所有包都在一个位置(只有一个node_modules文件夹)
  • 你可以选择哪些包是子模块,什么不是,所以没什么意外
  • 没有秘密子模块添加到您的包中,只是因为它们位于您的包文件夹中