W wielu wpisach na Akademii Gutenberga pokazujemy jak zacząć zabawę z Gutenbergiem bez własnego środowiska lokalnego. Nie jest to jednak możliwe na dłuższą metę. W pewnym momencie musimy zacząć pisać kod, w sposób jaki robią to profesjonaliści.
Tworząc własne bloki do Gutenberga, większość czasu spędzisz pisząc nowoczesny JavaScript (ES6+). To wiąże się z koniecznością dodatkowego kroku: transpilacji. Kod który będziemy pisać musi być przerobiony na kod ES5, który rozumie przeglądarka.
No dobrze, ale czego właściwie potrzebujesz żeby ta transpilacja była możliwa na twoim komputerze? Tego dowiesz się w tym wpisie.
Spis treści
Wymagania
Tak naprawdę jedynym wymaganiem jest posiadanie zainstalowanego lokalnie Node.js. Sugeruję wersję co najmniej 20 (wersja 20 będzie wymagana do jednego narzędzia, o tym później).
Jeśli nie wiesz co to Node.js, to możesz pomyśleć o Node.js jak o PHP tylko w JavaScript. Bardzo wiele narzędzi do developmentu nowoczesnego JavaScript jest napisana w samym JavaScript i uruchamiana w środowisku Node. Stąd konieczność posiadania Node.js na praktycznie każdym komputerze programisty JavaScript/TypeScript!
Sprawdzisz czy masz zainstalowany Node.js komendą:
node -v
W odpowiedzi powinieneś otrzymać zainstalowaną wersję Node.js:
node -v
v20.5.0
Jeśli nie masz zainstalowanego Node.js, pobierz po prostu instalator ze strony https://nodejs.org/en, zainstaluj, zrestartuj terminal i sprawdź ponownie.
Bardzo przydatnym narzędziem jest również nvm (Node Version Manager), dzięki któremu możemy łatwo zmieniać wersję Node.js. Na początek możesz pominąć instalację nvm, ale w przyszłości pewnie ci się przyda.
I to tak naprawdę tyle!
Inicjalizacja projektu
Załóżmy że tworzymy blok Gutenberga i mamy dostępny Node.js na naszej maszynie.
npx @wordpress/create-block moj-pierwszy-blok
Tip: npx to komenda do wykonywania kodu paczek npm bez konieczności ich instalowania. W tym przypadku chcemy wykonać @wordpress/create-block
lokalnie, ale nie mamy ochoty instalować tej paczki na naszym komputerze.
Po odrobinie czekania powinniśmy otrzymać informację o utworzonej dla nas wtyczce która dodaje nowy blok.
npx @wordpress/create-block moj-pierwszy-blok
Creating a new WordPress plugin in the moj-pierwszy-blok directory.
Creating a „block.json” file.
Creating a „package.json” file.
Installing `@wordpress/scripts` package. It might take a couple of minutes…
Formatting JavaScript files.
Compiling block.
Done: WordPress plugin Moj Pierwszy Blok bootstrapped in the moj-pierwszy-blok directory.
You can run several commands inside:
$ npm start
Starts the build for development.
$ npm run build
Builds the code for production.
$ npm run format
Formats files.
$ npm run lint:css
Lints CSS files.
$ npm run lint:js
Lints JavaScript files.
$ npm run plugin-zip
Creates a zip file for a WordPress plugin.
$ npm run packages-update
Updates WordPress packages to the latest version.
To enter the directory type:
$ cd moj-pierwszy-blok
You can start development with:
$ npm start
Code is Poetry
Przejdźmy więc do katalogu z wtyczką:
cd moj-pierwszy-blok
Gdzie znajduje się wszystko czego potrzebujemy aby zacząć pisać nasz własny blok.

Możemy zacząć nasz development używając komendy:
npm run start
Od teraz wszystkie zmiany w plikach źródłowych (katalog /src
), będą automatycznie wykrywane, transpilowane i wrzucane do katalogu /build
.
No dobrze, ale jak to uruchomić, jak zobaczyć to w przeglądarce?
Do tego będziemy potrzebować WordPressa w którym tą wtyczkę po prostu aktywujemy.
WordPress
Tutaj możliwości są dziesiątki. Możesz po prostu zainstalować WordPressa w dowolny sposób w jaki preferujesz a następnie umieścić naszą wtyczkę, czyli katalog moj-pierwszy-blok
we folderze wp-content/plugins
twojego WordPressa.
Pokażę ci jednak najlepszy sposób na łatwe tworzenie lokalnego WordPressa, który działa na każdym systemie operacyjnym, dla każdego developera, który pracuje nad projektem i jest ściśle z nim powiązany.
WordPress Playground i wp-now
Będąc w katalogu wtyczki (moj-pierwszy-blok
) zainstaluj paczkę wp-now
. W tym celu uruchom w terminalu komendę:
npm install -D @wp-now/wp-now
Utwórzmy blueprint
dla WordPress Playground. W tym celu stwórz plik .wp.json
w głównym katalogu wtyczki. W pliku dodaj:
{ "steps": [ { "step": "rmdir", "path": "/var/www/html/wp-content/plugins/akismet" }, { "step": "rm", "path": "/var/www/html/wp-content/plugins/hello.php" } ] }
Teraz przejdź do kodu i znajdź plik package.json
{ "name": "moj-pierwszy-blok", "version": "0.1.0", "description": "Example block scaffolded with Create Block tool.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", "main": "build/index.js", "scripts": { "build": "wp-scripts build", "format": "wp-scripts format", "lint:css": "wp-scripts lint-style", "lint:js": "wp-scripts lint-js", "packages-update": "wp-scripts packages-update", "plugin-zip": "wp-scripts plugin-zip", "start": "wp-scripts start" }, "devDependencies": { "@wordpress/scripts": "^26.16.0", "@wp-now/wp-now": "^0.1.63" }
A następnie zmień skrypt start
tak aby uruchamiał też WordPressa razem z transpilacją skryptów (miejsca gdzie są ...
pozostają bez zmian).
{ ... "scripts": { ... "start": "wp-scripts start & wp-now start --blueprint=.wp.json" }, ... }
Od teraz po uruchomieniu:
npm run start
Paczka wp-now wymaga do działania Node w wersji 20 lub wyższej. Próba uruchomienia skryptu start
w niższych wersjach spowoduje błąd i WordPress nie zostanie uruchomiony.
Zostanie odpalony watcher z transpilacją JavaScript oraz działający WordPress z już zainstalowaną i aktywowaną wtyczką z naszym blokiem!
Strona będzie dostępna pod adresem:
Server running at http://localhost:8881
O czym zostaniesz poinformowany w konsoli.

Lokalny WordPress przy użyciu wp-env
Innym sposobem jest użycie oficjalnej paczki npm @wordpress/env
.
Minusem jej jest to że wymaga zainstalowanego Dockera na lokalnej maszynie. Sama instalacja Docker Desktop jest bardzo prosta, ale Docker używa sporo zasobów komputera, w szczególności dysku.
Sposób użycia jest bardzo podobny do WordPress playground.
Zainstaluj paczkę npm:
npm install -D @wordpress/env
W pliku package.json
w skrypcie start podaj:
{ ... "scripts": { ... "start": "wp-scripts start & wp-env start" }, ... }
Główna przewaga wp-env
nad Playgroundem (na chwilę obecną), to natywne wsparcie dla chociażby uruchamiania unit testów oraz włączania xdebug.
Inne sposoby instalacji WordPressa
Jeśli nie przeszkadza ci konieczność dopilnowania i ręcznego uruchomienia lokalnej instalacji WP, to możesz używać dowolnej instalacji.
Świetnie sprawdzi się w tym celu LocalWP lub DevKinsta.
Jeśli nie masz nic przeciwko instalowaniu PHP, MySQL i Apache/Nginx na swoim komputerze to możesz po prostu uruchomić WordPressa w ten sposób.
Niektóre firmy przechowują całego WordPressa w repozytorium, lub instalują go jako paczki Composera, ale w tym artykule nie będziemy mówić o takich przypadkach.
Development
Ok, mam już WordPressa, mam Node.js, uruchomiłem npm run start
, mam działającą lokalnie stronę oraz transpilację działającą w tle w terminalu. Co dalej?
Właściwie to tyle, czas na ciebie! Wskocz do kodu i zacznij coś zmieniać i sprawdź jak twój blok zostaje zaktualizowany w przeglądarce.

Podsumowanie
Do profesjonalnego developmentu potrzebujesz:
- Zainstalowany lokalnie Node (najlepiej w wersji 20)
- Dowolnie zainstalowany WordPress
- Uruchomiony jako WordPress Playground przez wp-now lub,
- Uruchomiony w Dockerze przez wp-env lub,
- W dowolny sposób (np. LocalWP)
- Podstawowa wiedza z JavaScript, budowania bloków Gutenberg, pomysł na własny blok i chęci!
To tyle, powodzenia!
Podoba ci się treść na Akademii Gutenberga? Zapisz się do naszej listy mailingowej aby być na bieżąco z nowymi artykułami!
Dodaj komentarz