我有一个内部脚手架应用程序,为此我创建了一个yarn.lock
文件。现在,这个应用程序将被其他 Node 应用程序使用。Yarn 在为主应用安装依赖项时会考虑其依赖项的锁定文件吗?
问问题
345 次
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 回答