Почему много разных папок в node_modules?
У каждого модуля есть свои зависимости. Раньше они ставились в папки node_modules соответствующего модуля, а начиная с какой-то недавней версии все модули устанавливаются в корневую папку node_modules. Так уменьшается количество файлов в проекте, его размер и устраняются проблемы, связанные с ограничением на длину названия файла в Windows.
Новая npm ставит все зависимости в корень. и зависимости зависимостей.
Раньше они грузились в подпапки подпапок подпапок .....