Ana içeriğe geç

Kaynaktan Deno İnşa Etme

Aşağıda Deno'yu kaynaktan nasıl inşa edeceğinize dair talimatlar bulunmaktadır. Sadece Deno kullanmak istiyorsanız, önceden derlenmiş bir yürütülebilir dosya indirebilirsiniz (daha fazla bilgi için Başlarken bölümüne bakın).

Depoyu Klonlama

not

Deno alt modüller kullanıyor, bu nedenle --recurse-submodules kullanarak klonlamayı unutmayın.

Linux(Debian)/Mac/WSL:

git clone --recurse-submodules https://github.com/denoland/deno.git

Windows:

  1. “Geliştirici Modunu Etkinleştir" (aksi halde simli bağlantılar yönetici ayrıcalıkları gerektirecektir).

  2. Git'in 2.19.2.windows.1 veya daha yeni bir sürümünü kullandığınızdan emin olun.

  3. Checkout öncesinde core.symlinks=true ayarını yapın:

    git config --global core.symlinks true
    git clone --recurse-submodules https://github.com/denoland/deno.git

Ön Gereksinimler

Rust

not

Deno, belirli bir Rust sürümünü gerektirir. Deno diğer sürümlerde veya Rust Gecelik Sürümlerinde inşa etmeyi desteklemeyebilir. Belirli bir sürüm için gereken Rust sürümü, rust-toolchain.toml dosyasında belirtilmiştir.

Rust'ı Güncelleyin veya Kurun. Rust'ın doğru bir şekilde kurulup güncellenmediğini kontrol edin:

rustc -V
cargo -V

Yerel Derleyiciler ve Bağlayıcılar

Deno'nun birçok bileşeni, optimize edilmiş yerel işlevleri inşa etmek için bir yerel derleyici gerektirir.

Linux(Debian)/WSL

wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
./llvm.sh 17
apt install --install-recommends -y cmake libglib2.0-dev

Mac

Mac kullanıcılarının XCode Komut Satırı Araçları'nın kurulu olması gerekir. (XCode zaten _XCode Komut Satırı Araçları'nı içermektedir. Kurulumu yapmak için xcode-select --install komutunu çalıştırın.)

CMake ayrıca gereklidir, ancak Komut Satırı Araçları ile birlikte gelmez.

brew install cmake

Mac M1/M2

Apple aarch64 kullanıcıları için lld kurulmalıdır.

brew install llvm lld
# /opt/homebrew/opt/llvm/bin/ yolunu $PATH'e ekleyin

Windows

  1. VS Community 2019 indirin ve "C++ ile Masaüstü Geliştirme" aracını seçerek aşağıdaki gereksinim duyulan araçları seçtiğinizden emin olun.

    • CMake için Visual C++ araçları
    • Windows 10 SDK (10.0.17763.0)
    • Test araçları ana özellikler - Derleme Araçları
    • Visual C++ ATL (x86 ve x64 için)
    • Visual C++ MFC (x86 ve x64 için)
    • C++/CLI desteği
    • VC++ 2015.3 v14.00 (v140) masaüstü için araç seti
  2. “Windows için Hata Ayıklama Araçlarını” etkinleştirin.

    • "Denetim Masası" → "Programlar" → "Programlar ve Özellikler" kısmına gidin.
    • "Windows Yazılım Geliştirme Kiti - Windows 10" seçin.
    • → "Değiştir" → "Değiştir" → "Windows için Hata Ayıklama Araçları"nı kontrol edin → "Değiştir" → "Tamamla".
    • Veya kullanın: Windows için Hata Ayıklama Araçları (Not: dosyaları indirecek, X64 Debuggers And Tools-x64_en-us.msi dosyasını manuel olarak kurmanız gerekiyor.)

Protobuf Derleyicisi

Deno'yu inşa etmek için Protocol Buffers derleyicisi gereklidir.

Linux(Debian)/WSL

apt install -y protobuf-compiler
protoc --version # Derleyici sürümünün 3+ olduğundan emin olun

Mac

brew install protobuf
protoc --version # Derleyici sürümünün 3+ olduğundan emin olun

Windows

Windows kullanıcıları en son ikili sürümü GitHub adresinden indirebilir.

Python 3

not

Deno, WPT testlerini çalıştırmak için Python 3 gerektirir. PATH'inizde suffix'siz bir python/python.exe bulunduğundan emin olun ve Python 3'e işaret etsin.

Deno İnşası

Deno'yu inşa etmenin en kolay yolu, V8'in önceden derlenmiş bir sürümünü kullanmaktır.

ipucu

WSL kullanıyorsanız, .wslconfig dosyasında yeterli bellek ayırdığınızdan emin olun.

cargo build -vv

Ancak, daha düşük seviyeli V8 geliştirmesi yapıyorsanız veya V8'in önceden derlenmiş sürümlerinin mevcut olmadığı bir platform kullanıyorsanız, Deno ve V8'i kaynak kodundan inşa etmeyi isteyebilirsiniz:

V8_FROM_SOURCE=1 cargo build -vv

V8'in kaynak kodundan inşa edileceği zaman daha fazla bağımlılık olabilir. V8 inşası hakkında daha fazla bilgi için rusty_v8'in README'sine bakınız.

İnşa Etme

Cargo ile inşa edin:

# İnşa et:
cargo build -vv

# İnşa hatası mı var? En son main'i yüklediğinizden emin olun ve tekrar deneyin, veya işe yaramıyorsa şunu deneyin:
cargo clean && cargo build -vv

# Çalıştır:
./target/debug/deno run tests/testdata/run/002_hello.ts

Testleri Çalıştırma

Deno, hem Rust hem de TypeScript ile yazılmış kapsamlı bir test setine sahiptir. Rust testleri inşa süreci sırasında aşağıdaki komutla çalıştırılabilir:

cargo test -vv

TypeScript testleri şu şekilde çalıştırılabilir:

# Tüm birim/testleri çalıştır:
target/debug/deno test -A --unstable --lock=tools/deno.lock.json --config tests/config/deno.json tests/unit

# Belirli bir testi çalıştır:
target/debug/deno test -A --unstable --lock=tools/deno.lock.json --config tests/config/deno.json tests/unit/os_test.ts

Birden Fazla Kütüphane ile Çalışma

Bir değişim seti birden fazla Deno kütüphanesini kapsıyorsa, birden fazla kütüphaneyi birlikte inşa etmek isteyebilirsiniz. Gereksinim duyulan tüm kütüphaneleri bir arada checkout yapmanız önerilir. Örneğin:

- denoland/
- deno/
- deno_core/
- deno_ast/
- ...

Daha sonra varsayılan bağımlılık yollarını geçersiz kılmak için Cargo'nun patch özelliğini kullanabilirsiniz:

cargo build --config 'patch.crates-io.deno_ast.path="../deno_ast"'

Eğer birkaç gün boyunca bir değişim seti üzerinde çalışıyorsanız, yamanızı Cargo.toml dosyanıza eklemeyi tercih edebilirsiniz (değişikliklerinizi sahnelemeden önce bunu kaldırmayı unutmayın):

[patch.crates-io]
deno_ast = { path = "../deno_ast" }

Bu, yerel yoldan deno_ast kütüphanesini inşa edecek ve o sürümü kullanacak, crates.io'dan almak yerine.

tehlike

Not: Bağımlılıkların Cargo.toml içindeki sürümlerinin, diskinizde bulunan bağımlılık sürümleriyle eşleştiğinden emin olun.

Sürümleri denetlemek için cargo search komutunu kullanın.