Przejdź do głównej zawartości
docs
GitHub

Pakowanie i rozwiązywanie problemów

Rozprowadzaj gotowe pluginy, wymieniaj rewizje i przywracaj aplikację po błędach pluginu.

Wydanie M1 alpha udostępnia pnpm package: build, kontrolę ZIP, SHA-256 i raport walidacji. Zobacz instrukcję generatora. Generator przypina wersje paczek npm. ZIP trzeba rozpakować przed importem.

W projekcie utworzonym generatorem wykonaj:

Okno terminala
pnpm check
pnpm package

package ponownie wykonuje build, sprawdza kompletność folderu, tworzy ZIP, rozpakowuje go kontrolnie i porównuje pliki. Nie publikuje niczego do npm, GitHub ani sklepu pluginów. Zwiększ version w plugin.json przed kolejnym wydaniem; package.json nie określa nazwy artefaktu.

Plik Zawartość
<id>-<version>.zip Gotowy plugin z plugin.json w korzeniu archiwum
<id>-<version>.sha256 Suma SHA-256 ZIP oraz jego nazwa
<id>-<version>.validation.json Wersje CLI i SDK, SHA-256 ZIP, lista plików z rozmiarami i hashami, desktopTested: false

Artefakty powstają w artifacts/. Jeżeli plik o tej nazwie już istnieje, CLI zgłasza PLUGIN_RELEASE_EXISTS; nie nadpisuje wydania. Suma ZIP pozwala porównać pobrane archiwum z plikiem autora. To inny identyfikator niż rewizja zawartości, którą Lomi zatwierdza przy włączaniu pluginu. Żaden z nich sam nie potwierdza tożsamości autora.

package/ zawiera gotowy ESM, manifest i jawnie dołączone zasoby. Build celuje w przeglądarkowy ES2022. Współdzieli React i SDK z hostem, dołącza pozostałe zgodne biblioteki i sprawdza względne importy. Nie używa aliasów Vite ani prywatnych źródeł aplikacji.

Udany build zastępuje poprzedni wynik, a błąd zachowuje ostatni poprawny folder. Mapy źródeł zawierają ścieżki bez osadzonego tekstu źródeł; pliki deklaracji nie są generowane. Konfigurację CLI opisują narzędzia, a wszystkie opcje buildPlugin() znajdziesz w ręcznym przykładzie SDK.

Udostępnij zawartość package/. Jeśli przesyłasz archiwum, odbiorca musi je rozpakować i wskazać otrzymany folder w Import plugin. Instalacja nie wykonuje pnpm install, komend budowania ani skryptów instalacyjnych.

Przy dołączaniu motywu dodaj jego katalog do assets i wskaż go w contributes.themes[].path. Motyw będzie dostępny po imporcie bez uruchamiania kodu. Motywy należące do pluginów są tylko do odczytu; użytkownik może je zduplikować przed edycją.

Element Limit
Zainstalowane pakiety 128
Jeden pakiet 64 MiB
Pliki i katalogi 2048 wpisów
Zagnieżdżenie katalogów 16 poziomów
Jeden plik 20 MiB
Metadane manifestu 256 KiB

Natywny importer odrzuca niepoprawne ścieżki, dowiązania symboliczne i pliki specjalne. Nie dołączaj node_modules, pamięci podręcznej ani całego repozytorium źródeł do instalowanego pakietu.

  1. Wyłącz zainstalowany plugin i rozstrzygnij niezapisane widoki.
  2. Zbuduj i zaimportuj nowy folder z tym samym ID pluginu.
  3. Sprawdź i włącz nową rewizję.
  4. Uruchom aplikację ponownie, jeśli pojawi się Restart required.

Zaufanie dotyczy skrótu całej zawartości pakietu. Ponowny import instaluje rewizję wyłączoną i bez zatwierdzonego zaufania. Sama zmiana numeru wersji nie omija zatwierdzenia. Raz wykonanych modułów JavaScript nie można usunąć z silnika, więc zmiana rewizji wymaga restartu. Tę samą rewizję można poprawnie dezaktywować i aktywować ponownie.

Przed usunięciem pakietu dostarczającego wybrane motywy przełącz jego aktywny motyw kolorów i ikon na warianty wbudowane. Natywna kontrola usuwania obejmuje wszystkie rodzaje wybranych motywów.

Zachowaj poprzedni rozpakowany pakiet. Wyłącz nową rewizję, zaimportuj poprzedni folder z tym samym ID, przejrzyj go i zatwierdź. Jeśli wykonano już kod innej rewizji, będzie potrzebny restart. Cofnięcie numeru wersji nie przywraca automatycznie zgodności stanu: poprzedni kod musi rozumieć zapisane stateVersion i placement.

Do ZIP dołącz krótki opis instalacji, wersję pluginu, wspierane i faktycznie sprawdzone wersje Lomi oraz systemy, licencję i listę zmian. Opisz, czy plugin potrzebuje sieci i jak zapisuje dane. Odbiorca potrzebuje gotowego pakietu, a nie Node, Rust czy konta npm. Przed wydaniem wykonaj kwalifikację desktopową.

Objaw Co sprawdzić
Undeclared contribution Rejestrowane ID musi istnieć w plugin.json.
Plugin view unavailable Włącz plugin i sprawdź zapisaną wersję stateVersion oraz miejsce widoku.
Restart required Uruchom aplikację ponownie po rozstrzygnięciu niezapisanej pracy.
Lomi host is missing Uruchom zbudowany pakiet w aplikacji desktopowej, nie jako samodzielną stronę.
Import zgłasza brak pliku Sprawdź wygenerowany package/, ścieżki manifestu i assets.
Brak kontrolki na pasku stanu Sprawdź aktywację: elementy fill w pluginie lazy wymagają innego wyzwalacza.
Komendy nie widać lub nie można jej uruchomić Sprawdź włączenie pluginu, context.workspace, viewTypes i deklarację komendy.
Skrót nie działa Sprawdź Settings > Keybinds, konflikt, kod klawisza i textInput.
Zmiana kodu nie jest widoczna Sprawdź sukces buildu, ponowny import package/, zaufanie i restart.
Stan wraca do wartości domyślnej Sprawdź, czy używasz setState(), tego samego ID widoku i właściwego workspace.
Plugin activation was disposed. Nie używaj starego kontekstu po await; sprawdź signal.aborted.
Nie da się usunąć pakietu z motywem Przełącz wszystkie aktywne motywy pochodzące z tego pakietu.

Settings > Plugins > Details pokazuje ID, źródło, zaufanie i stan wykonania pakietu. Przy błędzie renderowania dostępne jest Retry view, a przy błędzie aktywacji może pojawić się Retry activation. Obsługuj również błędy własnych operacji asynchronicznych pluginu.

Zamknij aplikację, a następnie uruchom jej plik wykonywalny z --safe-mode. W repozytorium deweloperskim:

Okno terminala
pnpm tauri dev -- -- --safe-mode

Dla instalacji Linuksa z plikiem wykonywalnym w PATH:

Okno terminala
lomi --safe-mode

Na macOS aplikację zainstalowaną w Aplikacjach możesz uruchomić bezpośrednio:

Okno terminala
/Applications/Lomi.app/Contents/MacOS/lomi --safe-mode

Na Windows przekaż --safe-mode do zainstalowanego lomi.exe, używając jego rzeczywistej ścieżki.

Tryb bezpieczny pomija kod pluginów i niestandardowe motywy przed ich wykonaniem. Wyłącz wadliwy plugin w Settings, a następnie zamknij i uruchom aplikację normalnie. --disable-plugins również wybiera motyw bazowy. Zmienna LOMI_SAFE_MODE włącza tryb bezpieczny zawsze, gdy jest obecna, nawet z wartością 0.

Jeśli plik katalogu pluginów plugins/installed.json jest uszkodzony, zamknij aplikację i zmień jego nazwę na plugins/installed.backup.json w katalogu danych aplikacji. Uruchom tryb bezpieczny i zaimportuj potrzebne pakiety ponownie. Zachowaj foldery pakietów i plik sesji. Plugin blokujący główny wątek może wymagać zakończenia procesu, zanim da się uruchomić tryb bezpieczny.

Kod źródłowy: narzędzie budowania, przechowywanie pakietów i tryb bezpieczny.