VS Code

Podgląd klatki konsoli na żywo obok kodu, generowanie struktury App Router, fragmenty kodu i linki do błędów TX.

Rozszerzenie Text.js do VS Code pokazuje klatkę konsoli obok kodu. Odwzorowuje aplikację działającą pod text dev lub samodzielnie renderuje otwarty plik, gdy nic nie działa. Dodaje też generowanie szkieletów App Router, snippety i linki do kodów błędów TX###.

Instalacja

Zainstaluj Text.js z Visual Studio Marketplace. W VS Code otwórz widok „Rozszerzenia” (⌘⇧X) i wyszukaj textjs.vscode-textjs lub uruchom:

code --install-extension textjs.vscode-textjs

Rozszerzenie aktywuje się w każdym folderze zawierającym aplikację Text.js: plik text.config.ts lub pakiet zależny od @textjs/app z katalogiem app/. Działają też monorepo z kilkoma aplikacjami.

Podgląd na żywo

Otwórz plik page.tsx, layout.tsx lub komponent i uruchom Text.js: Open Preview (⌘K V) albo kliknij przycisk podglądu na pasku tytułu edytora. Panel rysuje klatkę z takim samym obramowaniem DevTools i komórkami z czcionką Menlo jak konsola przeglądarki.

Podgląd pobiera klatki z jednego z dwóch źródeł. Etykieta na pasku narzędzi pokazuje, które jest aktywne:

ŹródłoKiedyCo widzisz
LiveDziała text dev, a karta przeglądarki ma otwartą aplikacjęRzeczywistą aplikację z jej stanem, danymi i rozmiarem siatki
HeadlessBrak serwera deweloperskiego lub otwartej kartyOtwarty plik renderowany przez rozszerzenie w rozmiarze panelu

auto (ustawienie domyślne) używa Live, gdy to możliwe, a w pozostałych przypadkach Headless. Wybierz na stałe jedno ze źródeł za pomocą etykiety lub textjs.preview.mode.

Klawiatura

Kliknij konsolę, aby wysyłać klawisze do aplikacji: strzałki, Tab, skróty klawiszowe, pisanie i wklejanie działają tak jak w przeglądarce. Kliknij poza konsolą, aby przestać. Skróty edytora, takie jak ⌘P i ⌘⇧P, nadal trafiają do VS Code. Przewijanie nad konsolą wysyła zdarzenia kółka myszy.

W polu adresu możesz wpisać trasę, taką jak /deployments/dpl_a1, aby nawigować w dowolnym ze źródeł.

Tryb Live

Gdy podgląd jest otwarty, serwer deweloperski prosi połączone karty o strumieniowanie klatek. Karty wysyłają tylko zmienione wiersze i przestają je wysyłać po zamknięciu podglądu, więc aplikacja bez otwartego podglądu nie ponosi żadnych kosztów. Zapis pliku przechodzi przez Fast Refresh, a podgląd aktualizuje się wraz z kartą.

Włącz Follow (textjs.preview.followEditor), aby przełączać kartę przeglądarki na trasę edytowanego pliku page.tsx.

Karty w tle nie otrzymują klatek animacji, więc zwykle zachowują swoje klatki, dopóki znów nie staną się widoczne. Gdy podgląd obserwuje kartę w tle, rysuje ona klatkę zaraz po otrzymaniu danych wejściowych, więc pisanie w podglądzie nadal go aktualizuje. Animacje w karcie w tle aktualizują się mniej więcej raz na sekundę. Umieść aplikację w osobnym oknie, aby zachować ich płynność.

Tryb Headless

Rozszerzenie uruchamia w projekcie niewielki program wykonawczy. Ładuje on pliki tras przez Vite i @textjs/app z projektu, więc aliasy, TypeScript i JSX działają tak samo jak w text dev. Montuje App Router na trasie otwartego pliku wraz z jej layoutami, używając historii w pamięci:

PlikPodgląd
app/page.tsx/
app/(shop)/items/[id]/page.tsx/items/id (segmenty dynamiczne używają swojej nazwy)
app/blog/[[...slug]]/layout.tsx/blog
components/Card.tsxDomyślny eksport lub pierwszy eksport w PascalCase, bez propsów

Wywołania fetch("/api/...") do tego samego źródła uruchamiają handlery route.ts w tym samym procesie, tak jak text run. Siatka dopasowuje się do rozmiaru panelu, a zapis dowolnego pliku w aplikacji renderuje ją ponownie. Błędy pojawiają się nad klatką wraz z linkami do ich stron TX###.

Polecenia

PolecenieOpis
Text.js: Start Dev ServerUruchamia skrypt dev (lub text dev) w terminalu
Text.js: Stop Dev ServerZatrzymuje serwer deweloperski uruchomiony z VS Code
Text.js: Open PreviewOtwiera podgląd na żywo aktywnego pliku
Text.js: Open in Browser ConsoleOtwiera bieżącą trasę na serwerze deweloperskim. Następnie otwórz konsolę przeglądarki
Text.js: New Pageapp/<route>/page.tsx z metadanymi i typowanymi params
Text.js: New Layoutapp/<route>/layout.tsx
Text.js: New Route Handlerapp/<route>/route.ts z GET i POST
Text.js: New Loading UI / Error Boundary / Not Found Pageloading.tsx, error.tsx, not-found.tsx

Polecenia generowania szkieletów są też dostępne w menu kontekstowym folderów w Eksploratorze. Przyjmują segmenty App Router, takie jak settings, blog/[slug], docs/[...path] i (marketing)/about, i odmawiają umieszczenia page oraz route.ts w tym samym segmencie. Projekty JavaScript (bez tsconfig.json) otrzymują pliki .jsx i .js.

Snippety

PrefiksWstawiana zawartość
txpage, txlayout, txloading, txerrorPliki tras nazwane od folderu
txcKomponent konsoli nazwany od pliku
txroute, txroutepHandlery tras z parametrami lub bez nich
box, boxb, text, scrollbox, link, spinnerKomponenty
input, select, tabsKomponenty interaktywne
useInput, useKeymap, useFocus, useTheme, useViewport, useRouter, useIntervalHooki
metadata, txconfigMetadane trasy i text.config.ts

Kody błędów

Najedź na kod TX### w dowolnym miejscu: w kodzie źródłowym, logach, panelu „Dane wyjściowe” lub wklejonym śladzie stosu. Dymek pokazuje jego tytuł, komunikat i pakiet wraz z linkiem do jego strony w textjs.org. Każdy kod jest też linkiem (kliknięcie z ⌘).

Pasek stanu

Element ▼ pokazuje stan serwera deweloperskiego i rozmiar siatki konsoli, na przykład ▼ :3000 120×36. Karty zgłaszają swój rozmiar serwerowi deweloperskiemu przy każdej zmianie, nawet bez otwartego podglądu. Kliknij ten element, aby wyświetlić główne polecenia.

Ustawienia

UstawienieWartość domyślnaOpis
textjs.preview.modeautoauto, live lub headless
textjs.preview.followEditorfalseTryb Live: śledzenie edytowanej trasy
textjs.preview.fontSize12Rozmiar czcionki komórki (DevTools używa 12)
textjs.preview.runtimePlik binarny Node.js dla podglądów Headless (domyślnie: dołączony do VS Code)
textjs.devServer.urlURL serwera deweloperskiego (domyślnie: wykrywanie na portach 3000–3010). Używane są tylko adresy pętli zwrotnej http://
textjs.devServer.commandPolecenie dla Start Dev Server

Zaufanie do obszaru roboczego

Podgląd i serwer deweloperski uruchamiają kod projektu (jego konfigurację Vite, text.config.* i komponenty). W trybie ograniczonym rozszerzenie oferuje tylko snippety, generowanie szkieletów i linki do błędów oraz ignoruje textjs.preview.runtime, textjs.devServer.command i textjs.devServer.url z ustawień obszaru roboczego. Oznacz obszar roboczy jako zaufany, aby włączyć podgląd. Pliki spoza folderów obszaru roboczego nigdy nie są wyświetlane w podglądzie.

Zasada działania

text dev udostępnia trzy endpointy dla edytorów. Odpowiadają tylko na połączenia pętli zwrotnej skierowane do hosta pętli zwrotnej (localhost, 127.0.0.1, [::1]) i tylko na żądania bez Origin lub ze źródłem serwera deweloperskiego. Żądania przeglądarek między witrynami i no-cors są odrzucane:

Endpoint
GET /__textjs/statusKatalog główny projektu, połączone karty, rozmiar siatki i bieżąca trasa
GET /__textjs/framesZdarzenia wysyłane przez serwer: jedno zdarzenie frame na zmianę, zakodowane jako różnice wierszy
POST /__textjs/inputKlawisz, wklejenie, tekst IME lub martwego klawisza (text), kółko myszy lub nawigacja dla karty. Wymaga JSON i nagłówka x-textjs-mirror: 1, więc inne witryny nie mogą wysyłać naciśnięć klawiszy

Karty wysyłają klatki do serwera deweloperskiego przez gniazdo HMR środowiska Vite, które wymaga tokenu przypisanego do serwera. Format transmisji jest eksportowany z @textjs/app/frame-protocol (FrameEncoder, FrameDecoder, parseInputMessage), jeśli chcesz zbudować własną przeglądarkę klatek. Żaden z tych elementów nie występuje w wyniku text build.

Edytuj tę stronę w serwisie GitHub