Premiera produktu

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.

Syntanea
Lsyncer: mała poprawka na bardzo irytujący problem z iCloud

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.

iCloud zamraża macOS synchronizacją node_modules

Typowe obejścia są niewygodne

Wielu programistów kończy z jednym z tych rozwiązań:

  • Przenosi projekty poza iCloud Drive i traci wygodę dostępu z innych miejsc
  • Używa symlinków i liczy, że później nic się nie wysypie
  • Kasuje wygenerowane foldery, zanim synchronizacja zacznie szaleć
  • Godzi się z tym, że Finder będzie zamierał po zmianie zależności
  • 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.

    Logo aplikacji Lsyncer

    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ę.

    Interfejs inteligentnej synchronizacji Lsyncer

    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:

  • Wyklucz każdy folder node_modules w swoich projektach
  • Pomiń .next, dist, build i .cache
  • Ignoruj bardzo duże pliki, które nie powinny trafiać do iCloud
  • Ustaw reguły globalnie albo dopasuj je do konkretnego projektu
  • Planowana 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 Twój Mac kiedykolwiek zamarł, bo iCloud za bardzo zainteresował się node_modules, zobacz stronę Lsyncer albo pobierz aplikację bezpośrednio z App Store.