Я экспериментирую со схемой Angular и встречал функцию branchAndMerge () в разных местах. Однако никто не объясняет, что он делает.
Места, где я это видел:
Было бы полезно пояснить, чем он отличается от merge / mergeWith и как его правильно использовать.
P.S: Слияние объясняется в @ angular-devkit / схемы следующим образом:
Merge the input tree with the other Tree.
Кстати, я предполагаю, что merge () теперь mergeWith, хотя я не уверен в этом на 100%.
Пример кода
const rule =
// Creates a new rule that is a concatenation of other rules.
chain([
// Everyone uses it, but no one explains what it does...
branchAndMerge(
chain([
// Merges the project tree with the virtual tree
mergeWith(virtualTree)
]))
]);





Следующий видео дает лучшее объяснение, о котором я когда-либо слышал:
Branch from current tree, and the tree is a virtual file system based off of your current directory
Если посмотреть на код в репо, можно увидеть, что это действительно так. Я предполагаю, что это выгодно по соображениям производительности, поскольку это позволяет изменять ключи / значения вместо фактического жесткого диска. Кроме того, я полагаю, это также упрощает процесс, поскольку делает местоположение неактуальным, что может значительно усложнить процесс создания схем.