Wtyczki

Wstęp

Wtyczka to niezależny fragment kodu, który dodaje funkcje do Blockly. Wtyczki mogą dodawać pola, definiować motywy, tworzyć mechanizmy renderowania i wykonywać wiele innych czynności.

Użytkownik docelowy wtyczki jest deweloperem, który znajduje wtyczkę i korzysta z niej za pomocą npm. Aby uzyskać więcej informacji o tworzeniu wtyczek, możesz też obejrzeć prezentację o wtyczce z 2021 roku i omówienie na temat wtyczek na rok 2021.

Własne a zewnętrzne

Wtyczki zdefiniowane w repozytorium blockly-samples są wtyczkami własnymi, co oznacza, że są one obsługiwane przez zespół Blockly i opublikowane w zakresie @blockly w npm.

Doskonałe wtyczki własne:

  • mają oczywiste przypadki użycia
  • są uniwersalne,
  • są stabilne
  • są łatwe w użyciu.

Wtyczki innych firm są obsługiwane i publikowane niezależnie. Wtyczki zewnętrzne mogą być bardziej złożone, eksperymentalne lub bardziej ukierunkowane.

Na przykład pole do ustawiania prędkości silnika może być wykorzystywane w wielu projektach z zakresu robotyki. Z drugiej strony pole do edytowania konkretnego obiektu zdefiniowanego przez schemat bazy danych jest lepsze jako wtyczka innej firmy.

Kryteria własne

Własne wtyczki muszą spełniać te wymagania:

  • Działa na wszystkich głównych platformach, chyba że zespół Blockly zezwolił na wyjątek.
    • Chrome, Firefox, Safari, Edge
  • Ma autora, który chętnie naprawi błędy przez pierwszy rok.
  • Nie „małpapa” Blockly.
  • Ma jasno zdefiniowany i udokumentowany interfejs API.
  • Nie wywołuje funkcji prywatnych ani pakietów z Blockly Core, chyba że zespół Blockly zezwolił na ich wyjątek.
    • Zastępowanie funkcji pakietu w zdefiniowanej przez Ciebie podklasie jest dozwolone.
    • Jeśli chcesz zastosować zwolnienie, poproś nas o zgłoszenie problemu dotyczącego próbek blokowych.
  • Są testy.

Znajdowanie wtyczek

  • Na stronach GitHub znajdziesz prezentacje na żywo własnych wtyczek.
  • Na npm: wyszukaj @blockly, aby zobaczyć listę wtyczek opublikowanych przez zespół Blockly.
  • Na GitHubie otwórz katalog wtyczek w repozytorium blockly-Sample. Każda wtyczka ma plik README, który opisuje jej działanie i przeznaczenie.

Instalowanie wtyczek

  1. Korzystając z powyższych zasobów, znajdź wtyczkę, którą chcesz zainstalować, i znajdź plik README.
  2. Postępuj zgodnie ze wskazówkami dotyczącymi instalacji podanymi w pliku README. Ogólnie musisz zainstalować wtyczkę z npm, np.

    npm install @blockly/block-plus-minus --save
    

    i zaimportuj ją do kodu, np.

    import Blockly from 'blockly';
    import '@blockly/block-plus-minus';
    
  3. Niektóre wtyczki mogą wymagać wykonania dodatkowych czynności, takich jak zainicjowanie lub zarejestrowanie wtyczki. Te kroki będą wymienione w pliku README.

Wersje wtyczki

Wtyczki w przykładach blokowych są objęte semantyczną obsługą wersji, więc wszelkie zmiany powodujące niezgodność zostaną wprowadzone w nowej wersji głównej. Każda nowa wtyczka, która korzysta z podstawowego modułu do naprawiania poprawek, będzie mieć wersję główną 0 wskazującą wstępne prace, zgodnie ze specyfikacją semver.

Większość wtyczek zawiera główny pakiet blockly jako zależność peerDependency, a nie zależność. Oczekujemy, że masz już zainstalowaną aplikację Blockly w swojej aplikacji (korzystanie z wtyczki bez użycia Blockly nie ma sensu), dlatego możesz samodzielnie zarządzać jej wersją. Opracowano jednak wiele wtyczek, aby korzystały z nowych interfejsów API, które pojawiły się w najnowszej wersji Blockly. Dlatego pamiętaj o wymaganiach dotyczących tej wersji. Plik package.json wtyczki poinformuje Cię, jaka jest minimalna wersja Blockly, która jest zgodna z tą wtyczką. Jeśli wtyczka wymaga nowszej wersji (np. w celu wykorzystania nowego interfejsu API), główna wersja wtyczki zostanie zwiększona, ponieważ uznamy to za zmianę powodującą niezgodność.

Gdy dodasz wtyczkę do package.json, domyślnie trzeba umieścić przed nią znak karetki, np.

"@blockly/block-plus-minus": "^2.0.15"

Pozwoli to npm zainstalować dowolną wersję podrzędną na poziomie wersji lub wyższej, więc wersja 2.0.20 lub 2.1.0 może działać, ale nie nowa wersja główna, taka jak 3.0.1. Po aktualizacji do nowej wersji Blockly warto sprawdzić, czy któraś z wtyczek da się zaktualizować do nowej wersji głównej.

Instalowanie wtyczek bez npm

Ogólnie zalecamy używanie npm do łatwego odbierania aktualizacji, ale można używać wtyczek bez npm.

Możesz użyć funkcji unpkg, aby dołączyć pliki wtyczki bez ich klonowania, np.

<script src="https://unpkg.com/@blockly/block-plus-minus"></script>

Możesz też sklonować repozytorium blockly-samples i dołączyć do niego pliki lokalnie, podobnie jak w przypadku sklonowania Blockly. Zalecamy jednak, by w miarę możliwości korzystać z menedżera pakietów, który pomoże Ci na bieżąco śledzić najnowsze funkcje i poprawki błędów.

Przy tej metodzie musisz wykonać wszystkie czynności inicjowania i rejestracji wymienione w pliku README wtyczki.