Lsyncer: mała poprawka na bardzo irytujący problem z iCloud
iCloud Drive nie radzi sobie z node_modules. Lsyncer zostawia potrzebną synchronizację, pomija śmieci i nie przeszkadza w pracy.

iCloud działa dobrze, dopóki nie spotka node_modules
Jeśli tworzysz projekty Node.js na Macu i trzymasz foldery robocze w iCloud Drive, pewnie znasz ten moment. Zapisujesz plik, otwierasz Finder albo uruchamiasz npm install, a komputer nagle robi się ciężki. Wentylatory ruszają. Finder łapie plażę. iCloud uznaje, że każdy drobny plik w node_modules wymaga jego uwagi.
Taki folder potrafi mieć dziesiątki tysięcy plików. iCloud Drive traktuje je jak zdjęcia albo dokumenty, więc próbuje je obserwować, indeksować i synchronizować. Technicznie da się to zrozumieć. W praktyce jest to męczące.

Typowe obejścia są niewygodne
Wielu programistów kończy z jednym z tych rozwiązań:
Sam korzystałem z takich hacków. Działają, aż nagle przestają. Najbardziej irytujące jest to, że potrzeba jest prosta: synchronizuj kod, ale nie synchronizuj rzeczy, które można wygenerować ponownie.
Lsyncer zostawia potrzebną synchronizację i pomija śmieci
Lsyncer to mała aplikacja na macOS zbudowana właśnie wokół tego pomysłu. Pomaga trzymać projekty tam, gdzie chcesz, a jednocześnie wykluczać foldery takie jak node_modules, .next, dist, build i .cache z bałaganu iCloud.

Nie musisz przenosić projektów ani pamiętać o ręcznym sprzątaniu. Ustawiasz reguły raz, a Lsyncer pilnuje, żeby hałaśliwe pliki generowane nie wchodziły iCloud w drogę.

Co możesz wykluczyć
Lsyncer pozwala wykluczać foldery według nazwy, typu pliku albo rozmiaru. Najbardziej oczywiste są typowe foldery deweloperskie, ale to samo podejście działa dla cache, wyników builda, logów, artefaktów testów i wszystkiego, czego nie chcesz synchronizować między urządzeniami.
Kilka przykładów:
node_modules w swoich projektach.next, dist, build i .cachePlanowana synchronizacja wtedy, kiedy ma sens
Czasem chcesz zsynchronizować folder, tylko nie w trakcie pracy. Lsyncer potrafi zaplanować cięższe synchronizacje na spokojniejsze godziny, żeby Mac nie walczył z iCloud, kiedy piszesz kod.
Jednorazowa aplikacja na Maca, nie kolejna subskrypcja
Lsyncer jest dostępny w Mac App Store jako jednorazowy zakup. Bez abonamentu, bez konta, bez panelu, którego trzeba pilnować.
Dlaczego go zrobiliśmy
Sami trafiliśmy na ten problem, pracując na kilku Macach z projektami Node.js i Python. iCloud był przydatny dla rzeczy, które faktycznie chcieliśmy mieć pod ręką, ale kiepsko radził sobie z ignorowaniem plików generowanych. Chcieliśmy natywnego narzędzia na Maca, które rozwiązuje jeden konkretny problem i potem siedzi cicho.
Tym jest Lsyncer: konkretną poprawką dla programistów, którzy lubią iCloud Drive, ale nie lubią tego, co robi z folderami zależności.
Jeśli synchronizacja już stoi, przeczytaj też poradnik iCloud Drive stuck syncing na Macu, zanim zresetujesz całe konto iCloud.
Jeśli Twój Mac kiedykolwiek zamarł, bo iCloud za bardzo zainteresował się node_modules, zobacz stronę Lsyncer albo pobierz aplikację bezpośrednio z App Store.