Использование pnpm с Lerna
Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Lerna можно использовать в pnpm рабочем пространстве, чтобы получить все преимущества как pnpm, так и Lerna.
При работе в pnpm рабочем пространстве Lerna будет:
-
определять расположение пакетов через
pnpm-workspace.yaml(https://pnpm.io/workspaces) -
игнорировать
"workspaces"вpackage.json -
блокировать команды
bootstrap,linkиadd. Вместо них используйте командыpnpmдля управления зависимостями (https://pnpm.io/cli/install). -
учитывать протокол рабочего пространства для зависимостей пакетов.
- При выполнени и
lerna versionзависимости обновляются стандартным образом, но префиксworkspace:сохраняется, если он присутствует. - При использовании псевдонима рабочего пространства
lerna versionне изменяет версию зависимости, так как псевдонимы не содержат номера версии для обновления.
- При выполнени и
Начало работы
Чтобы настроить pnpm с Lerna:
-
Установите
pnpm, если ещё не сделали этого: https://pnpm.io/installation. -
Удалите папку
node_modules/в корне, если она существует. Если вы не используете рабочие пространства, выполнитеlerna cleanдля удаленияnode_modules/во всех пакетах. -
Укажите
"npmClient": "pnpm"вlerna.json. -
Создайте файл
pnpm-workspace.yamlв корне проекта. Если вы используете рабочие пространства npm или yarn, перенесите свойство "workspaces" изpackage.jsonвpnpm-workspace.yaml. Если вы не использовали рабочие пространства, перенесите свойство "packages" изlerna.jsonвpnpm-workspace.yaml. Например:package.json{
"workspaces": ["packages/*"]
}и
lerna.json{
"packages": ["packages/*"]
}преобразуются в:
pnpm-workspace.yamlpackages:
- "packages/*" -
(опционально) Выполните
pnpm importдля генерацииpnpm-lock.yamlиз существющего lock-файла. Подробнее о поддерживаемых источниках lock-файлов: https://pnpm.io/cli/import. -
Выполните
pnpm install.