0

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

4

1 回答 1

2

开箱即用,答案是否定的。

但是有办法解决。如果您看到讨论,则提供的建议使用

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 文件夹)
  • 您可以选择哪些包是子模块,哪些不是,所以没有意外
  • 没有秘密子模块添加到你的包中,仅仅因为它们在你的包文件夹中的位置
于 2016-10-24T06:03:42.340 回答