lexer serve
Tek çalıştırma komutu ve bayrakları: --port, --watch, --background, --production.
lexer serve <dosya> [--port N] [--watch] [--background]
[--production] [--log <dosya>]Dosyayı okur, ayrıştırır ve çalıştırır. build ve run komutları yoktur — serve zaten ikisini de yapıyor.
Bayraklar dosya adından önce de sonra da yazılabilir:
lexer serve app.lexer --port 8080Çıkış kodu başarıda 0, hatada 1.
Bayraklar#
| Bayrak | Etkisi |
|---|---|
--port N | CLI portu; uygulama içindeki port ayarını ezer |
--watch | dosya değiştiğinde uygulamayı durdurup yeniden çalıştırır |
--background | ayrı süreçte başlatır, çıktıyı .logs/YYYYAAGG.log dosyasına yazar |
--production | üretim kipi; --log verilmemişse out.log varsayılan olur |
--log <dosya> | çıktıyı dosyaya yönlendirir; kipe dokunmaz |
--port ile --production farklı şeylere bakar: biri nerede dinleneceğini, diğeri hata sayfasının ne kadar konuşacağını belirler.
Geliştirme#
lexer serve app.lexer --watchDosyayı her kaydedişinizde sunucu nazikçe kapanır ve yeniden ayağa kalkar. Tarayıcıyı yenilemek yeterlidir.
--watch yalnızca giriş dosyasını değil, aktarılan .lx dosyalarını da izler; bir lib/ dosyasını değiştirmek de yeniden başlatır.
Arka planda#
lexer serve app.lexer --background --port 8080Süreç terminalden ayrılır. out() çıktısı ve [lexer] ön ekli tanı satırları uygulama dizinindeki .logs/YYYYAAGG.log dosyasına gider.
ön plan → terminal
arka plan → <uygulama dizini>/.logs/YYYYAAGG.logDosya adı tarihle: kronolojik sıralama dosya sisteminde doğrudan çalışsın diye GGAAYY değil YYYYAAGG.
Çalışma kipi#
lexer serve app.lexer # development (varsayılan)
lexer serve app.lexer --production # production
LEXER_ENV=production lexer serve app.lexer # productionÖncelik CLI'dadır: --production verilmişse ortam değişkenine bakılmaz.
Kip yalnızca hata sayfasını değiştirir:
geliştirme: sayfa calistirilamadi: /yol/app.lexer:25:19: tanimsiz degisken: $yok
üretim: sayfa calistirilamadi (olay: 4b17df5d3b21)Ayrıntı log dosyasına aynı kimlikle yazılır. Kullanıcının size bildirdiği kod ile logdaki satırı bulursunuz; tarayıcıya dosya yolu ve satır numarası sızmaz.
Kipi dilin içinden okumak#
use modes
if mode == modes.development then
out("geliştirme kipi")
end if| İsim | Ne | use gerekir mi |
|---|---|---|
mode | değerin kendisi | hayır |
modes.development · modes.production | sabitler | evet |
modes.current | mode ile aynı | evet |
modes.is_production() · modes.is_development() | kısayol | evet |
mode ile modes bilerek ayrı: biri değer, diğeri küme.
Uygulama kipi değiştiremez. Değiştirebilseydi "hangi kipteyiz" sorusunun cevabı çalıştırmanın ortasında değişebilirdi.
Port#
Port üç yerden gelebilir; öncelik yukarıdan aşağı:
lexer serve app.lexer --port 8080 # 1. CLI bayrağı$app.listen({port: 3000}) # 2. listen argümanı
$app = new http_server({port: 3000}) # 3. nesne ayarıSırada#
Süreç yönetimi — status, logs, stop.