我有一个使用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中“强制”安装所有的依赖项?
发布于 2019-12-02 13:46:38
我自己也遇到过这个问题。这听起来像是projectD的依赖项和其他项目的依赖项之间的版本不匹配。你提到的错误可能会识别依赖项是什么(因为我猜它会给出一个‘无法解析模块’的错误),否则你可能会发现安装在项目D的node_modules文件夹中的东西会识别它。
一旦确定,我就会检查您的yarn.lock文件,找出哪些包依赖于不匹配的版本。然后,您可能会发现更新包含旧版本的包可以解决您的问题,或者您可能认为使用工作区的nohoist
选项更好
请参见:
https://dev.to/michalbryxi/share-common-code-with-yarn-workspaces-5g29 https://yarnpkg.com/blog/2018/02/15/nohoist/
https://stackoverflow.com/questions/57630347
复制