常见问题
此文档正在开发中。
如何向我的 Lerna 存储库添加第三方依赖项?
Lerna 不负责添加或链接您的依赖项,这是您选择的包管理器 (npm
/yarn
/pnpm
) 最擅长的。通过使用包管理器的 workspaces
功能,所有本地包的链接都将根据您在 package.json
文件中设置的关系自动发生。
您可以在此处查看包管理器的 workspaces
文档
npm
(https://docs.npmjs.net.cn/cli/using-npm/workspaces)yarn
(https://yarn.npmjs.net.cn/features/workspaces)pnpm
(https://pnpm.npmjs.net.cn/workspaces)
注意:由于 Lerna 本身早于包管理器中的 workspaces
功能,因此历史上有一些命令 (add
、bootstrap
和 link
) 试图填补这一空白。幸运的是,这些命令不再需要,Lerna 可以专注于它最擅长的,并让包管理器做同样的事情。
Lerna 存储库中的新包
您可以使用 lerna create
命令在您的 Lerna 存储库中创建新包。
lerna create <packageName>
有关更多选项,请参阅 创建文档。
如果您不想使用 lerna create
,则您仍然可以通过在 packages
文件夹的子目录中运行 npm init
手动创建包,Lerna 将自动检测它。
现有包
您可以使用 lerna import <package>
将现有包传输到您的 Lerna 存储库;此命令将保留提交历史记录。
lerna import <package>
获取本地路径而不是 URL。在这种情况下,您需要在您的文件系统上拥有您希望链接到的存储库。
如果 publish
失败,如何重试发布?
如果某些包已成功发布,而其他包未成功发布,则 lerna publish 可能已使存储库处于不一致状态,其中包含一些已更改的文件。要从这种情况恢复,请重置失败运行中任何无关的本地更改以恢复到干净的工作树。然后,重试相同的 lerna publish 命令。Lerna 将尝试再次发布所有包,但会识别已发布的包并跳过它们,并显示警告。
如果您在没有位置参数的情况下使用 lerna publish 命令来为包选择新版本,则可以运行 lerna publish from-git 来重试发布相同已标记的版本,而无需在重试时再次增加版本。
Lerna 如何检测包?
默认情况下,对于 npm
和 yarn
,Lerna 使用 package.json
中配置的 workspaces
属性来了解要操作的包。有关此属性的详细信息,请参阅 npm 文档 或 yarn 文档。
如果您使用的是 pnpm
,则可能已在 lerna.json
中将 npmClient
设置为 pnpm
。在这种情况下,Lerna 将使用 pnpm-workspace.yaml
中的 packages
属性来了解要操作的包。有关此属性的详细信息,请参阅 pnpm 文档。
如果您希望 Lerna 专注于存储库中的特定包子集,则可以使用 lerna.json
中的 packages
属性来搜索包。