FAQ
Lerna boostrap --hoist
在lerna(v3.22.1)
中,当npmClient
为yarn
时加上hoist
参数时执行会报错:
--hoist is not supported with --npm-client=yarn, use yarn workspaces instead
解决办法
当使用yarn workspace
,并在lerna
中开启该功能时,lerna bootstrap
命令由yarn install
代理,等价于在workspace
的根目录下执行yarn install
。
相关配置:
lerna.json
{
"npmClient": "yarn",
"useWorkspaces": true,
}
package.json
{
"workspaces": [
"packages/*"
],
}
这么做是因为yarn
本身提供了较lerna
更好的依赖分析与hoisting
的功能。yarn
的hoisting算法。
默认情况下,yarn
会开启hoist
功能,也可以通过设置nohoist选项手动关闭。
{
"workspaces": {
"packages": [
"packages/*",
],
"nohoist": [
"**"
]
}
}
虽然yarn
提供的较好的底层依赖处理的支持,但lerna
提供了更高层的更方便实用的各种命令。