Yarn 会考虑依赖的锁文件吗?
Will Yarn consider the lock files of dependencies?
我有一个内部脚手架应用程序,为此我创建了一个 yarn.lock
文件。现在,这个应用程序将被其他 Node 应用程序使用。 Yarn 会在主应用安装依赖时考虑其依赖的锁文件吗?
开箱即用,答案是否。
但是是一种解决方法。如果您看到 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 文件夹)
- 您可以选择哪些包是子模块,哪些不是,所以不要惊讶
- 没有秘密子模块添加到您的包中,只是因为它们在您的包文件夹中的位置
我有一个内部脚手架应用程序,为此我创建了一个 yarn.lock
文件。现在,这个应用程序将被其他 Node 应用程序使用。 Yarn 会在主应用安装依赖时考虑其依赖的锁文件吗?
开箱即用,答案是否。
但是是一种解决方法。如果您看到 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 文件夹)
- 您可以选择哪些包是子模块,哪些不是,所以不要惊讶
- 没有秘密子模块添加到您的包中,只是因为它们在您的包文件夹中的位置