Я нахожусь в процессе переключения моего монорепо (назад) с пряжи (с рабочими пространствами) на лерна / нпм, потому что пряжа слишком медленная и нестабильная.Однако я сделал удивительное открытие.Со следующим тривиальным package.json
:
{
"devDependencies": { "lerna": "^2.11.0" },
"dependencies": { "typescript": "^2.9.1" }
}
и пустым lerna.json
(другими словами, пакетов вообще нет), тогда, когда я запускаю
$ lerna bootstrap
, это неустановить что-либо вообще в любой каталог node_modules
верхнего уровня.И если по какой-то причине у меня есть каталог node_modules
без подкаталога .bin
, то lerna bootstrap
не удается создать или заполнить подкаталог .bin
.
Разве lerna не предназначена для фактического указания пакетов верхнего уровня, которые должны быть установлены (вместе с их двоичными файлами в .bin
)?Я замечаю, что, если я попробую lerna add
на lerna monorepo без пакетов, он пожалуется, что "lerna WARN В области, где можно добавить tslint, не найдено пакетов."
Я не смог найти ничего, связанного с этимв документации.С помощью пряжи / рабочих пространств я использовал возможность установки глобальных (верхнего уровня) версий таких вещей, как TypeScript, для использования в моих сценариях сборки, сохраняя контроль над установленной версией.