Learn · guides
İlk GraalVM JavaScript Betiğinizi Yazın (2026)
İlk GraalVM JavaScript komut dosyanızı yazın: bir giriş noktası kaydeder, bir olayı tetikler ve Java'yı yeniden derlemeden sıcak yeniden yükleyin. Çalışır durumda bir örnek ile.
İlk GraalVM JavaScript Betiğinizi Yazın
İlk bir GraalVM JavaScript betiği yazmak, üç küçük adımdan oluşur: betiği ana makinenin giriş noktasıyla kaydetmek, bir olaya veya modüle bağlamak ve motorun yükleyebilmesi için betikler klasörüne kaydetmek. Motor, GraalVM Çok Dilli API üzerinde çalışır, bu nedenle betik gerçek JavaScript'tir ve herhangi bir Java derlemesi olmadan yeniden yüklenir.
Öncelikle İhtiyacınız Olanlar
Motoru yerleştiren bir ana program. Ana program GraalVM JavaScript ile birlikte gelir, komut dosyalarının çağırabileceği bir dizi nesneyi sunar ve bir komut dosyası klasörünü izler. GraalVM'i kendiniz yüklemenize gerek yoktur; ana program onu içerir. Ana program size verdiği nesnelere karşı düz JavaScript yazarsınız.
Bu nesnelerin neye karşılık geldiğini bilmek yardımcı olur, ancak başlamak için herhangi bir Java yazmanıza gerek yoktur. Daha önce JavaScript yazdıysanız, kalıp size tanıdık gelecektir: ana program, içe aktardığınız bir kütüphane gibi davranır ve programın iç yapısına erişmek için onu kullanırsınız.
Üç Adım
Betikleri klasörünü bul
Barındırıcı, başlatıldığında bilinen bir dizindeki betikleri yükler. Tam yolu barındırıcının belgelerinde kontrol edin. Genellikle, kurulum dizinindeki
scripts/klasörüdür.Bir betik dosyası oluşturun
O klasörde yeni bir
.jsdosyası oluşturun. Sunucu, bir sonraki yüklemede, başlangıçta veya destekleniyorsa bir yeniden yükleme komutu çalıştırdığınızda betikleri algılayacaktır.Kaydet ve bağla
Dosya içinde, komut dosyasını ana makinenin giriş noktasıyla ilişkilendirin, ardından bir davranışa bir olay ekleyin veya ana makinenin tanıdığı bir modül tanımlayın.
İşte bu kadar. Dosyayı kaydedin, yeniden yükleyin ve betik çalışır. Derleme adımı yok, derleme yok, bekleme yok. Sadece düzenleyin ve yeniden yükleyin.
Minimal bir örnek
Çoğu ana bilgisayar, kendini kaydetmek ve JavaScript'i programa bağlayan birkaç ara nesne için bir betiğe bir giriş noktası verir. Tam adlar ana bilgisayara bağlıdır, ancak yapı aynıdır. İlk betik genellikle kendini duyurur ve bir olayı tepki verir:
// Register the script with the host.
script.register({
name: "hello-world",
version: "1.0.0",
});
// React to an event the host exposes.
script.on("enable", () => {
client.print("Hello from my first script.");
});Gerçek nesne ve yöntem adları için ana bilgisayarın kendi API referansını okuyun. Önemli olan örüntüdür: kaydet, ardından bir olumu bağlayın veya bir modül tanımlayın. Çoğu ana bilgisayar bir olay döngüsü veya yaşam döngüsü bağlantısı sunar ve çoğu betik birine dinleyerek başlar.
Çalışırken sıcak yeniden yükleme
Dosyayı kaydedin ve betikleri yeniden yükleyin (veya canlı yeniden yüklemeyi desteklemeyen ana bilgisayarı yeniden başlatın). Değişiklik, yeniden derleme olmadan etkili olur. Bu hızlı döngü, bir mod derlemek yerine betik yazmanın ana nedenidir: bir betik saniyeler içinde yeniden yüklenirken, derlenmiş bir mod yeniden oluşturulmalı ve yeniden başlatılmalıdır.
| Yaklaşım | Yineleme döngüsü | Dil | Ne zaman uygun |
|---|---|---|---|
| GraalVM JavaScript betiği | Düzenle, kaydet, yeniden yükle | JavaScript | Hızlı düzeltmeler, özel davranış |
| Derlenmiş mod | Yeniden oluştur, yeniden başlat | Java veya Kotlin | Daha büyük özellikler, daha derin bağlantılar |
Basit bir özellik ekliyorsanız veya davranışları ayarlıyorsanız, script'ler çözümüdür. Motorun derinlerine girmek veya yeni ilkel nesneleri açığa çıkarmak gerekiyorsa, derlenmiş bir mod daha mantıklı olabilir.
Script'lerin yapıp yapamadığı şeyler
Bir script, yalnızca ana programın sunduğu nesnelere erişebilir. Ana program, GraalVM Polyglot host-access whitelist aracılığıyla script'lerin dokunabileceği sınıfları ve yöntemleri tanımlar ve varsayılan olarak yasaktır. Bu, script'leri güvenli ve öngörülebilir tutar. İstediğiniz nesne açığa çıkarılmamışsa, ana program onu eklemelidir; script tarafından whitelist'ın ötesine geçemezsiniz.
Bu bir özellik, bir hata değil. Bu, betiklerin yanlışlıkla (veya kötü niyetle) iç yöntemleri çağırarak veya erişmemeleri gereken nesnelere girerek ana uygulamayı bozmasını engelliyor. Aynı zamanda, ana uygulamanın bakımcılarının neyin desteklendiği ve neyin desteklenmediği konusunda net bir kontrole sahip olduğu anlamına geliyor.
Sıkça Sorulan Sorular
Hayır. Ana program GraalVM ve JavaScript motorunu paketler. Siz sadece JavaScript dosyasını yazın ve scriptler klasörüne bırakın.
Evet. Motor, modüllerle import ve export özelliklerini de içeren son ECMAScript özelliklerini destekler, bu yüzden eski bir alt kümeyle sınırlı kalmazsınız.
Dosyanın ana makinenin betik klasöründe olduğundan, ana makinenin beklediği uzantıya sahip olduğundan ve ana makinenin giriş noktasıyla kayıt yaptırdığından emin olun. Kayıt çağrısındaki bir yazım hatası genellikle neden olur.
Hayır. Motor, ana JVM'in içine gömülüdür, bu yüzden script'iniz bağımsız bir Node.js çalışma zamanı yerine ana programa konuşur.