我有一个使用 yarn 工作区的项目。项目结构为:
package.json
packages
- project A
- project B
- project C
当我运行 yarn install
时,包安装在项目根节点 node_modules 中。最近我添加了另一个项目 (D) 并运行了 yarn install
。对于项目 D,它的一些依赖项安装在 projectD/node_modules
中,所以我在根目录中有一些依赖项,在 projectD 中有一些依赖项,这在我运行项目时导致错误。
无论如何我可以“强制”yarn 在根 node_modules 中安装所有依赖项吗?
最佳答案
我自己也遇到过这个问题。听起来您在 projectD 的依赖项与其他项目的依赖项之间存在版本不匹配。您提到的错误可能会识别依赖项是什么(因为我猜它会给出“无法解析模块”错误),否则您可能会发现 projectD 的 node_modules 文件夹中安装的内容会识别它。
一旦确定,我将检查您的 yarn.lock 文件并找出哪些包依赖于不匹配的版本。然后您可能会发现更新具有旧版本的包可以解决您的问题,或者您可能决定使用工作区的 nohoist
选项会更好
参见:
https://dev.to/michalbryxi/share-common-code-with-yarn-workspaces-5g29 https://yarnpkg.com/blog/2018/02/15/nohoist/
关于yarnpkg - yarn workspaces 依赖安装位置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57630347/