Bun Nedir? Node.js’yi Kullanarak Çoklu Proje Hazırlama

bun sh

JavaScript dünyanın en popüler ve yaygın olarak benimsenen programlama dillerinden biridir. Web uygulamalarına, mobil uygulamalara, masaüstü yazılımlarına ve hatta gömülü cihazlara güç sağlar. Yaygın kullanımına rağmen, zorlukları da yok değil. Tüm teknolojiler gibi JavaScript de  performans, uyumluluk, güvenlik ve karmaşıklıkla ilgili sorunlarla uğraşır.

Bu sorunları çözmek için yıllar içinde çeşitli JavaScript çalışma zamanları geliştirildi. Node.js  ve Deno  öne çıkıyor ve her biri JavaScript’in sınırlamalarına yönelik çözümler sunuyor. Ancak birçok sorunu çözerken, gereksiz paketlere duyulan ihtiyaç ve daha yavaş çalışma zamanı performansı gibi yeni sorunları da ortaya çıkardılar.

Şimdi, bir süredir ortalıkta olan bir JavaScript çalışma zamanı olan Bun var , ancak ekip yakın zamanda Eylül 2023’te kararlı bir sürüm yayınladı . Bun, Node.js’ye doğrudan ve daha verimli bir alternatif olacak şekilde yaratıldı.

Bu makale Bun’u, ayırt edici özelliklerini ve onu JavaScript projelerinize nasıl entegre edebileceğinizi araştırıyor.

Bun Nedir?

Bun.sh web sitesi ana sayfası
Bun.sh web sitesi ana sayfası.

Bun, öncelikle Zig programlama dilinde yazılmış bir JavaScript çalışma zamanıdır. Daha akıcı ve verimli bir geliştirme deneyimi sunarken Node.js’nin sınırlamalarını gidermeyi amaçlamaktadır.

Ancak Bun, yıllar içinde ortaya çıkan birçok JavaScript çalışma zamanı gibi sıradan bir JavaScript çalışma zamanı değildir: Geliştiricilerin JavaScript ve TypeScript ile çalışma biçiminde devrim yaratmak üzere tasarlanmış hepsi bir arada bir araç setidir. Apple’ın Safari’sine güç veren motor olan JavaScriptCore’u genişleten Bun, daha iyi bellek kullanımıyla hızlı başlatma sürelerine olanak tanır.

Node.js’den farklı olarak Bun, npm’ye güvenmez veya işlem için harici bağımlılıklara ihtiyaç duymaz. Bunun yerine, ortam değişkenleri, HTTP , WebSocket, dosya sistemi ve daha fazlası dahil olmak üzere çeşitli protokoller ve modüller için işlevler sunan yerleşik bir standart kitaplığa sahiptir .

Ayrıca TypeScript için kullanıma hazır destek sunar . Ayrıca Bun, her JavaScript veya TypeScript kaynak dosyasını dahili olarak aktardığından, TypeScript dosyalarını ek yapılandırma veya aktarıma gerek kalmadan doğrudan derleyebilir ve çalıştırabilirsiniz.

runBun , formatlinttest͏, ve bundlekodunuzu aşağıdaki basit komutları kullanmanıza olanak tanıyan güçlü bir komut satırı arayüzü (CLI) aracıyla birlikte gelir :

  • bun run — Bun ile bir JavaScript veya TypeScript ͏ dosyası çalıştırır.
  • bun test— Bun’un yerleşik test çerçevesiyle birim testleri gerçekleştirir.
  • bun fmt— Bun’un yerleşik kod biçimlendiricisiyle kodu biçimlendirir.
  • bun lint— Bun’un yerleşik kod linter’ı ile kodu lints.
  • bun bundle— kodu Bun’un yerleşik kod paketleyicisiyle birleştirir.

Bun’un bir diğer öne çıkan özelliği, uygulamanın durumunu korurken kod değişikliklerini anında yenileyen, çalışırken yeniden yükleme özelliğidir. Bu, benzer işlevlerin nodemon  veya deneysel bayrak gibi harici paketler gerektirdiği Node.js’ye göre önemli bir gelişmedir --watch. Buna karşılık Bun, bu süreci şu şekilde kolaylaştırıyor:--hotflag.

Teknik avantajlarının ötesinde Bun, geliştirilmesine ve iyileştirilmesine aktif olarak katkıda bulunan, büyüyen bir kullanıcı topluluğuna sahiptir. Bu canlı topluluk, Bun’un güncel ve duyarlı kalmasını sağlayarak öğrenme ve sorun giderme için bol miktarda kaynak sunar.

Bun’un Temel Özellikleri

Çalışırken yeniden yükleme, TypeScript için yerel destek ve daha hızlı başlatma sürelerinin yanı sıra Bun, bir JavaScript çalışma zamanı olarak popülerliğine ve performansına katkıda bulunan çeşitli temel özelliklere sahiptir: paketleyici, test çalıştırıcısı ve paket yöneticisi. Bu özellikleri ayrıntılı olarak tartışalım.

Paketleyici

Bir paketleyici, JavaScript kodunu ve bağımlılıklarını tek bir dosyada birleştirerek tarayıcılar veya Node.js uygulamaları içindeki yük verimliliğini optimize eder. Node.js’de yerel bir paketleyici bulunmuyor, bu da geliştiricilerin  JavaScript kodunu işlerken Rollup, Webpack ve ͏Parcel gibi üçüncü taraf paketleyicilere güvenmesini gerektiriyor .

Buna karşılık Bun, minimum konfigürasyon gerektiren ve farklı modül formatlarını destekleyen yerleşik bir paketleyici sunar. Ayrıca daha hızlı paketlemeyi destekleyen yerleşik optimizasyonlara da sahiptir. Karşılaştırmalı olarak Bun’un paketleyicisi, ͏esbuild’den 1,75 kat, Parcel’den 150 kat, Rollup + Terser’den 180 kat ve Webpack’ten ͏ 220 kat daha hızlı çalışarak diğerlerinden daha iyi performans gösteriyor .

Projenizi bu komutla paketleyebilirsiniz bun bundle ͏<source> --out-dir <directory> . Çıktı dosyasını belirttiğiniz çıktı dizininde oluşturur:

Derleme komutunun çalıştırıldığı kod ve terminal
Bun ile bir projeyi paketlemek.

Test Çalıştırıcısı

Test etme, yazılım geliştirmenin ayrılmaz bir parçasıdır; kod işlevselliğini sağlar ve üretim öncesinde olası sorunları belirler. Bun ayrıca araç setine bir test çalıştırıcısı da katıyor.

Geleneksel olarak Node.js geliştiricileri , güçlü ve esnek olan ancak projeye ek bağımlılıklar ve yapılandırma yükü getiren Jest gibi harici test çerçeveleri kullanmışlardır .

Bun’un test çalıştırıcısı Jest uyumlu sözdizimini kullanıyor ancak 100 kat daha hızlı çalışıyor.

Öte yandan Bun, Jest sözdizimi ile çalışan, hız ve uyumluluğu vurgulayan kendi test çalıştırıcısını entegre ediyor. Bu entegre yaklaşım birçok avantaj sunar:

  • Hız  — Çalışma zamanına yerleşik test çalıştırıcısı sayesinde, testlerin yürütülmesi, harici test çerçevelerinin yüklenmesine gerek kalmadan doğrudan gerçekleşir. Sonuç olarak, testlerin daha hızlı yürütülmesi sağlanır; bu da özellikle büyük kod tabanlarında veya sürekli entegrasyon ortamlarında faydalıdır.
  • Uyumluluk  — Yerleşik test çalıştırıcısı, Bun’un diğer özellikleriyle sorunsuz bir şekilde çalışır. Bun’un hızlı başlatma sürelerinden ve verimli bellek kullanımından yararlanarak testlerinizin üretim ortamınızı taklit eden bir ortamda çalışmasını sağlar.
  • Basitlik — Yerleşik test çalıştırıcısı sayesinde, çalışma zamanınız ile test çerçeveniz arasındaki uyumluluğu yapılandırma ve sürdürme konusunda endişelenmenize gerek yok. Aynı dil özelliklerini ve API’leri kullanarak testleri uygulama koduna benzer şekilde yazabilirsiniz.

Bun’daki test çalıştırıcısı çeşitli test çerçeveleriyle tamamen uyumludur. Testleri çalıştırmak, bun test komutu yürütmek kadar basittir.͏

Ayrıca Bun, TypeScript’i ve JSX’i yerel olarak desteklediğinden, ekstra yapılandırmalara veya eklentilere gerek yoktur. Test ortamını ayarlamak yerine kalite testleri yazmaya odaklanabilirsiniz.͏

Paketleme yöneticisi

Bun’un Node.js uyumlu paket yöneticisi, npm, iplik ve pnpm’den önemli ölçüde daha hızlıdır. Hızı artırır, disk kullanımını azaltır ve bellek ayak izini en aza indirir.

Bun ekibi tarafından Bun, npm, npm ve İplik Karşılaştırması
Bun ekibi tarafından Bun, npm, npm ve İplik Karşılaştırması.

Sembolik bağlantılar kullanan Bun, her proje için paketleri merkezi bir konuma bağlar, böylece sonraki projeler için modüllerin yeniden indirilmesi ihtiyacını ortadan kaldırır. Paket yöneticilerinde sembolik bağlantıların kullanımı tamamen yeni olmasa da, Bun’un uygulaması diğerlerini geride bırakıyor.

Bun’a Başlarken

Bun’u bilgisayarınızda kullanmaya başlamak için yükleyin. Bun’u kurmanın cURL komutu, npm veya Homebrew dahil olmak üzere çeşitli yöntemleri vardır . Ancak Bun’un en iyi şekilde macOS veya Linux sistemlerinde kullanıldığını unutmamak çok önemlidir.

Bun’u cURL komutu aracılığıyla kurmak için terminalinizde aşağıdakileri yürütün:

curl -fsSL https://bun.sh/install | bash

bun --versionBaşarılı bir kurulumun ardından terminalinizde çalıştırarak doğrulayın . Bu, Bun’un kullanıma hazır olduğunu doğrular.

Artık Bun’un yeteneklerini keşfetmeye hazırsınız. Bun komutunu Node.js projelerinizi çalıştırmak için kullanabilirsiniz bun run. Ek olarak, index.ts adlı bir TypeScript dosyasını çalıştırmak için şunu kullanın bun run index.ts: Bun, TypeScript dosyalarınızı aktararak ek paketlere olan ihtiyacı ortadan kaldırır.

Bun’un faydası bu temel bilgilerin ötesine uzanır. React  ve Next.js gibi JavaScript çerçeveleriyle sorunsuz bir şekilde bütünleşir . Daha derine inmek ve Bun’un işlevleri hakkında daha fazlasını keşfetmek için resmi belgelere göz atın .

Node.js Projelerini Bun ile Çalıştırma

Node.js projelerinizi Bun ile taşımak veya çalıştırmak oldukça basittir; yalnızca birkaç Bun CLI komutu yeterlidir. Node.js projelerinizi Bun ile çalıştırmak için şu adımları izleyin:

  1. İlk önce Bun’u yükleyin. Bun yüklendikten sonra Node.js proje dosyalarınızı ( packet.json dosyası dahil) içeren dizine gidin  . Projenizin çalışma dizininde şu komutu çalıştırın:bun installYukarıdaki komut, Bun’un  Node.js proje yöneticinizdeki package.json dosyasını okumasına, ͏lock.json  dosyasını (varsa) incelemesine ve yerleşik paket yöneticisini kullanarak listelenen bağımlılıkları yüklemesine olanak tanır.Bağımlılıkların kurulumunu gösteren Visual Studio KoduBun ile bağımlılıkların kurulması.
  2. Bağımlılıklar yüklendiğinde projenizi Bun ile yürütebilirsiniz. bun run Komutu ve ardından projenizin giriş noktası dosyasını kullanın :bun run Örneğin, projenizin giriş noktası calle͏d index.js adlı bir dosya ise , yazın bun run index.͏js.Bun, belirtilen dosyadaki JavaScript veya TypeScript kodunu çalıştırır. Projenizin package.jsonbun start dosyasında tanımlanmış bir başlangıç ​​betiği varsa  projenizi çalıştırmak için  de kullanabilirsiniz .Bun projesinin Visual Studio Code'da yürütülmesiBun projesinin Visual Studio Code’da yürütülmesi.

Yeni bir çalışma zamanı ortamına geçiş zorluklar yaratabilir. Bununla birlikte, Bun’ın Node.js modüllerine yönelik güçlü desteği, global değişkenlerin tanınması ve Node.js modül çözümleme algoritmasına bağlılığı, Node.js’den ͏Bun’a geçiş işlemini kolaylaştırır.

Ortam değişkenlerini yönetmek için şu anda dotenv paketini kullanan bir Node.js projesi üzerinde çalıştığınızı varsayalım  . Bu senaryoda, dotenvpaketi başlatma koduyla birlikte projenizden güvenle kaldırabilirsiniz . Bunun nedeni, Bun’un .env dosyalarınızı otomatik olarak okuyarak paketi gereksiz hale getiren yerleşik bir yeteneğe sahip olmasıdır dotenv.

Bun’un hala geliştirilme aşamasında olduğunu unutmayın, bu nedenle geçiş sürecinde dikkatli ilerlemek en iyisidir.

Bun’ı Kinsta’nın Uygulama Barındırmayla Entegre Edin

Kinsta’da bir Bun uygulaması barındırmak ,  projenizi oluşturmak için kullanılan  Nixpack’lerle Kinsta’nın Application Hosti͏ng͏ ile kusursuzdur .

Nixpacks, Buildpacks’e benzer şekilde, depolarına dayalı olarak uygulamalar için konteyner görüntüleri oluşturmak üzere tasarlanmış açık kaynaklı bir projedir. Nix ikili programından yararlanan bu araç, dağıtım sonrasında uygulamalar oluşturur, bağımlılıkları yükler ve ortamları yapılandırır.

Rust tabanlı mimarisi daha hızlı yapım süreleri sağlar. Özellikle Nixpacks, yerleşik bir önbellekleme sistemi içermesi ve ilkinden sonraki derlemeleri önemli ölçüde hızlandırması nedeniyle Buildpack’lerden üstündür.

Kinsta’nın Nixpacks’i benimsemesi, konteyner görüntülerini yönetmek ve geliştirme sürecini kolaylaştırmak için daha verimli ve esnek çözümler sunan ileri teknolojiye olan bağlılığının altını çiziyor.

Bun projenizi Kinsta’nın Uygulama Barındırma hizmetine dağıtmak için öncelikle kodunuzu tercih edilen bir Git sağlayıcısına ( Bitbucket , GitHub veya GitLab ) aktarın. Deponuz hazır olduğunda Kinsta ile dağıtım yapmak için şu adımları izleyin:

  1. MyKinsta kontrol panelinizi görüntülemek için giriş yapın veya bir hesap oluşturun  .
  2. Kinsta’yı Git sağlayıcınızla yetkilendirin.
  3.  Sol kenar çubuğunda Uygulamalar’ı ve ardından Uygulama ekle’yi tıklayın .
  4. Dağıtımı yapmak istediğiniz depoyu ve şubeyi seçin.
  5. Uygulamanıza benzersiz bir ad atayın ve bir veri merkezi konumu seçin.
  6. Daha sonra derleme ortamınızı yapılandırın.  Önerilen Nixpacks seçeneğiyle Standart yapı makine yapılandırmasını seçin  .
  7. Tüm varsayılan yapılandırmaları kullanın ve ardından Uygulama oluştur öğesine tıklayın .

Dağıtım genellikle birkaç dakika sürer ve başarılı olduğunuzda, uygulamanızın bağlantısını ve dağıtım bilgilerini içeren bir kontrol panelini alırsınız.

Kinsta, uygulamalarınız için sağlam ve güvenilir bir altyapı sağlar. Bun uygulamanızı doğrudan Kinsta’nın platformuna dağıtmak, kullanıcı dostu arayüzü sayesinde sorunsuzdur; özel bir entegrasyona gerek yoktur. Sadece kodunuzu yükleyin, ayarlarınızı yapılandırın ve uygulamanız yayına hazır.

Özet

Bir JavaScript çalışma zamanı olarak Bun, çeşitli nedenlerden dolayı önem kazanmıştır. Performans ve basitlik odaklı olarak tasarlanan bu ürün, geliştirme sürecini kolaylaştırmayı ve genel verimliliği artırmayı amaçlamaktadır. Modüler mimarisi, yalnızca belirli projeler için ihtiyaç duyduğunuz bileşenleri seçmenize olanak tanıyarak gereksiz yükü azaltır.

Node.js’den farklı olarak Bun, daha hafif bir ayak izine ve daha hızlı başlatma sürelerine sahiptir. Bu varlık, hızlı yanıt süreleri ve verimli kaynak kullanımı gerektiren uygulamalar için çok önemlidir. Bun’un basitliği ve modüler yaklaşımı, daha basit ve özelleştirilebilir bir geliştirme deneyimine katkıda bulunur.

Bun uygulamalarınızı Kinsta’nın Uygulama Barındırma hizmetiyle barındırmak, kesintisiz ve güçlü bir çözüm sunar. Kinsta’nın sağlam altyapısı, otomatik ölçeklendirme  ve hızlı yüklenen içerik teslimi gibi özelliklerle yüksek performansı garanti eder.

Kinsta’yı seçmek, Bun uygulamalarınızı barındırmanın güvenilir ve verimli bir deneyim haline gelmesi ve size projelerinizi oluşturmaya ve optimize etmeye odaklanma özgürlüğü vermesi anlamına gelir.

0 Shares:
Ayrıca beğenebilirsiniz