Итак, насколько я понимаю, NPM может иметь структуру зависимостей, такую как
APP
/ | \
A1.0 B1.0 C3.0
| / \ | \
C1.5 D1.27 C1.5 D1.27 A1.0
Причина, по которой он не может быть полностью плоским, состоит в том, что может быть много разных версий модуля C
Но почему мы не можем просто переименовать папки в их версии и иметь полностью плоскую структуру и использовать символические ссылки?
APP
/ / | \ \
A1.0 B1.0 C1.5 C3.0 D1.27
^| |---^^|----^|--^-^
||-------| |----||--|
|----------|
Как я понимаю. NPM3 / Microsoft RUSH / PNPM попытаются сгладить ситуацию, но все равно сохранят структуру подчиненных зависимостей
APP
/ / \ \
A1.0 B1.0 C3.0 D1.27
| |
C1.5 C1.5
Здесь, поскольку модуль C уже существует, он переводит другую версию C в подчиненную зависимость от A. Но теперь у нас будет два C1.5
Я что-то упустил?
Есть ли менеджер, который делает настоящие ссылки и сим-ссылки?
Есть ли причина, по которой плоская структура не будет работать?
Спасибо