Altbilgi içeriğine atla
NODE YARDıM

NPM fuse-box (Geliştiriciler İçin Nasıl Çalışır)

Bir demet, modern bir Node.js uygulamasinin araç setinde kritik bir araç haline geldi. Bundle — Webpack, Rollup, Vite — kod ve varlıkları işler ve paketler. Performansı artırarak, birden fazla dosyayı tek bir veya birkaç optimize edilmiş demet içinde birleştirir, ağ isteklerinin sayısını azaltır ve kodun etkili bir şekilde yüklenmesini sağlar. Ayrıca, çoğu demet, geliştirici ve son kullanıcı olarak deneyimi artıran kod ayırma, sıcak modül yenileme ve ağacı temizleme gibi ekstralara zaten sahiptir.

Çünkü kaynak teslimini optimize ederler ve dağıtım iş akışları sorunsuz olur, yapı araçlarıyla ve modern JavaScript standartlarıyla entegre edilerek, büyütülebilir ve sürdürülebilir uygulamaların kritik kolaylaştırıcılarıdır. Bu makalede, IronPDF Node.js kütüphanesiyle birlikte bir demet örneği olarak NPM fuse box'ı kullanacağız.

The FuseBox NPM paketi en hızlı, bağlam odaklı ve ileri görüşlü demetleyicidir, modern web uygulamanızın varlıklarını kolayca yönetmenize ve demetlemenize izin verir. Geliştirici verimliliği açısından, FuseBox modül yükleyicisi, geliştiricinin projesini hızlıca kurması için kolay bir yapılandırma sağlar. İstenen tüm özellikleri destekler: canlı yeniden yükleme, kod ayırma, ağaç temizleme ve daha fazlası, geliştirimi kolaylaştırır ve nihai çıktıyı yüksek derecede optimize eder.

NPM fuse-box (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - fuse-box

FuseBox birçok dosya türünü destekler: JavaScript, TypeScript, CSS ve görüntüler. FuseBox modül yükleyicisi, popüler çerçeveler ve kütüphanelerle güzel bir şekilde entegre olur. Üstelik, FuseBox'ı projenizin ihtiyaçlarına göre daha da genişletecek ve özelleştirecek entegre bir eklenti sistemi sunar. Kullanım kolaylığı ile performansı dengeleyerek, FuseBox geliştirme iş akışınızı önemli ölçüde hızlandırır ve üretime yönelik optimize edilmiş bir demet oluşturur. FuseBox bunu yepyeni bir seviyeye taşıyor.

Bir FuseBox projesi oluşturmak ve yapılandırmak için bu adımları izleyin:

FuseBox için Yeni Bir Node.js Projesi Başlatın

Projeniz için bir dizin oluşturun, ardından Node.js'te açın.

mkdir fusebox-project
cd fusebox-project
npm init -y
mkdir fusebox-project
cd fusebox-project
npm init -y
SHELL

fuse-box'ı yüklemek için

fuse-box ve TypeScript gibi diğer bağımlılıkları da yükleyin.

npm install fuse-box typescript --save-dev
npm install fuse-box typescript --save-dev
SHELL

FuseBox Yapılandırma Dosyasını Oluşturun

FuseBox'u yapılandırmak için bir fuse.js dosyası oluşturun.

const { fusebox, sparky } = require('fuse-box');

class Context {
  // Method to return the FuseBox configuration
  getConfig() {
    return fusebox({
      target: 'browser',
      entry: 'src/index.ts',
      webIndex: {
        template: 'src/index.html',
      },
      devServer: true,
      hmr: true,
      cache: true,
      logging: {
        level: 'succinct',
      },
      sourceMap: true,
    });
  }
}

const { task, exec, rm } = sparky(Context);

// Define development task
task('default', async (ctx) => {
  rm('dist');
  const fuse = ctx.getConfig();
  await fuse.runDev();
});

// Define production build task
task('dist', async (ctx) => {
  rm('dist');
  const fuse = ctx.getConfig();
  await fuse.runProd();
});
const { fusebox, sparky } = require('fuse-box');

class Context {
  // Method to return the FuseBox configuration
  getConfig() {
    return fusebox({
      target: 'browser',
      entry: 'src/index.ts',
      webIndex: {
        template: 'src/index.html',
      },
      devServer: true,
      hmr: true,
      cache: true,
      logging: {
        level: 'succinct',
      },
      sourceMap: true,
    });
  }
}

const { task, exec, rm } = sparky(Context);

// Define development task
task('default', async (ctx) => {
  rm('dist');
  const fuse = ctx.getConfig();
  await fuse.runDev();
});

// Define production build task
task('dist', async (ctx) => {
  rm('dist');
  const fuse = ctx.getConfig();
  await fuse.runProd();
});
JAVASCRIPT

Bu basit örnek, bir Node.js ortamında demetleme ve geliştirme görevlerini gerçekleştirmek için FuseBox yapılandırmasını ve kullanımını göstermektedir. Örnek, önce 'fusebox' ve 'sparky'yi 'fuse-box' paketinden içe aktarıyor, sonra ise bir Context sınıfı tanımlıyor ve bir getConfig yöntemi ile bir FuseBox yapılandırma nesnesi döndürüyor. Aşağıdaki ayarları yapılandırıyor: tarayıcıya hedef alıyor, bir başlangıç noktası olarak src/index.ts ve web indeksi için bir şablon olarak src/index.html alıyor. Son olarak, geliştirme sunucusunun yapılandırması, HMR, önbellekleme, kaynak haritaları ve çok hızlı günlükler gibi minimal yapılandırma seçenekleriyle birlikte gelir.

Bir sonraki adım, sparky aracını kullanarak görevleri tanımlamak olacaktır. task('default'), dist dizinini temizler, FuseBox yapılandırmasını alır ve geliştirme sunucusunu çalıştırır. Benzer şekilde, task('dist'), dist dizinini temizler ancak sıfır yapılandırmaya sahiptir ve bunun yerine üretim yapısını çalıştırır. Kurulum, yapı ve sunmayı otomatik hale getirerek gelişimi ve üretimi verimli bir şekilde yönetmek için oldukça faydalıdır.

Basit bir HTML Dosyası Oluşturun

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>FuseBox App</title>
</head>
<body>
  $bundles
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>FuseBox App</title>
</head>
<body>
  $bundles
</body>
</html>
HTML

Yukarıdaki HTML şablonu, bir FuseBox projesi için basit bir sayfa kurar. Karakter kodlamasını ve duyarlı tasarım meta verilerini içerir. Placeholder, $bundles, birleşik varlıkların doğru şekilde yüklendiğinden emin olmak için FuseBox tarafından uygun script ve stil etiketleri ile dinamik olarak değiştirilir, JavaScript ve CSS'in optimize edilmiş bir biçimde yüklenmesini sağlar.

Bir TypeScript Dosyası Oluşturun

// Set the HTML content of the body element
document.body.innerHTML = '<h1>Hello, FuseBox!</h1>';

Bu JavaScript kod satırı, mevcut web sayfasının body ögesinin HTML içeriğini ayarlar. <body> etiketinin içeriği yeni bir <h1> başlık öğesi ile değiştirilecektir. Başlıktaki metin "Merhaba, FuseBox!" gösterecek. Özünde, JavaScript kullanarak basitçe bir web sayfasında içerik eklemenin veya güncellemenin bir yoludur.

TypeScript Yapılandırması

TypeScript ayarlarının ek yapılandırmasını muhafaza etmek için bir tsconfig.json dosyası oluşturun.

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"]
}

Tamamlandığında kodu çalıştırın. Uygulama localhost:4444 üzerinde barındırılmaktadır:

NPM fuse-box (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Konsol Çıkışı

Verilen localhost bağlantı noktasından sayfayı görüntüleyebiliriz. Aşağıdaki ekran görüntüsü gibi görünecek.

NPM fuse-box (Geliştiriciler Icin Calisma Sekli): Sekil 3 - Uygulama Ciktisi

IronPDF: PDF Oluşturucu Tanitimi

PDF belgelerinin oluşturulmasi, duzenlenmesi, dönüştürulmesi ve duzenlenmesi icin, saglam Node.js paketi IronPDF'yi kullanin. Bu, HTML'yi PDF'e dönüştürmek ve mevcut PDF'leri duzenlemek gibi PDF'lerle ilgili bircok programlama tabanli işlemlerde kullanilir. IronPDF, PDF'leri dinamik olarak uretmesi ve işlemesi gereken programlar icin çok faydali bir arac. Yuksek kaliteli PDF belgeleri oluşturmak icin basit ve uyarlanabilir bir cozum sunar.

NPM fuse-box (Geliştiriciler Icin Calisma Sekli): Sekil 4 - IronPDF

IronPDF paketini kurun

Node.js'e IronPDF ozelligi kazanmasini saglayan paketleri kurmak icin NPM kullanin.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Fuse-Box IronPDF ile Birlikte Paket

IronPDF kullanan bir Node.js backend'e baglanmanin ve on yuz varliklariniz icin FuseBox'i ayarlamanin yolu burada.

Fuse.js dosyasi

const { fusebox } = require('fuse-box');

const fuse = fusebox({
  target: 'server',
  entry: 'src/index.ts',
  dependencies: {
    ignoreAllExternal: false,
  },
  watch: true,
  cache: false,
});

// Run the development server
fuse.runDev();
const { fusebox } = require('fuse-box');

const fuse = fusebox({
  target: 'server',
  entry: 'src/index.ts',
  dependencies: {
    ignoreAllExternal: false,
  },
  watch: true,
  cache: false,
});

// Run the development server
fuse.runDev();
JAVASCRIPT

Bu script, sunucu tarafı scriptleri gruplamak için bir FuseBox örneği oluşturur. FuseBox'u belirli ayarlarla özelleştirmek için önce fuse-box paketinden fusebox işlevini içe aktararak başlar. 'Sunucu' ayari, cikti'nin bir web tarayicisi icin değil, bir Node.js ortami icin oldugunu belirtir. entry: 'src/index.ts', toplama prosedürünü başlatmak için birincil TypeScript dosyasını işaret eder.

dependencies: { ignoreAllExternal: false }, harici bağımlılıkların göz ardı edilmemesini sağlayarak, gerektiğinde bunların pakete eklenmesini sağlar. watch: true özelliği, kaynak dosyalar güncellendiğinde paketin otomatik olarak yeniden oluşturulmasına olanak tanır, bu da geliştirme sürecine yardımcı olur. Son olarak, cache: false, en son güncellemelerin her zaman yapının bir parçası olmasını garanti ederek, önbelleği devre dışı bırakır. fuse.runDev() komutu, bu ayarlarla geliştirme sunucusunu başlatır.

Index.ts dosyasi

const express = require("express");
const IronPdf = require("@ironsoftware/ironpdf");

var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({
  licenseKey: "", // Add your license key here
});

const htmlContent = `
<html>
<head>
  <style>
    body { font-family: Arial, sans-serif; }
    h1 { color: navy; }
    p { font-size: 14px; }
  </style>
</head>
<body>
  <h1>User Details</h1>
  <p><strong>ID:</strong> 1</p>
  <p><strong>Name:</strong> Hendry</p>
</body>
</html>
`;

// Express setup for handling requests
const app = express();
app.get("/generate-pdf", async (req, res) => {
  const document = IronPdf.PdfDocument;
  console.log("Requesting: generate-pdf");

  // Generate PDF document
  try {
    let result = await document.fromHtml(htmlContent);
    const pdfBuffer = await result.saveAsBuffer();
    res.setHeader("Content-Type", "application/pdf");
    res.send(pdfBuffer);
  } catch (error) {
    console.error("PDF generation error:", error);
    res.status(500).send("PDF generation error");
  }
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

Bu betik, IronPDF kutuphanesi ile PDF'ler uretmek icin Express cercevesini kullanan bir Node.js sunucusu kurar. Başlangıçta, sunucunun işlemleri için Express'i ve PDF görevlerini yerine getirmek için @ironsoftware/ironpdf içeren gerekli modülleri kapsar. IronPDF, PDF'ler oluşturmak icin gerekli olan bir lisans anahtariyla kurulur. PDF icin HTML, kullaniciya temel stil ve detaylar saglayan bir string olarak ilan edilir.

Sonra, bir Express uygulaması geliştirilir ve bir URL yolu /generate-pdf kurulur. Bu yol için bir istek alındığında, sunucu IronPDF'in PdfDocument sınıfını kullanarak verilen HTML içeriğinden bir PDF üretir. Bu PDF daha sonra bir buffer'da saklanir ve dogru içerik turu ile musterilere geri doner. Bu işlem sirasinda bir hata olusursa, sunucu 500 durum kodu ve bir hata mesaji ile yanit verir. Sonuc olarak, sunucu varsıyılan olarak 3000 portunda dinlemeye ayarlanmis ve sunucunun calisma durumunu doğrulamak icin bir mesaj kaydeder.

IronPDF betigini paketlemek

Simdi fuse box paketleme betigini calistirabiliriz.

NPM fuse-box (Geliştiriciler Icin Calisma Sekli): Sekil 5 - fuse-box modulu yukleyici

Dosyalari ayri bir dosyaya paketleyecek/minimize edecek. Oluşturulan dosyanin yardimiyla betigi calistirabiliriz.

NPM fuse-box (Geliştiriciler Icin Calisma Sekli): Sekil 6 - Cikti Paketi

Yukarida, fuse box yardimiyla uretilen minimize edilmis dosyalar.

NPM fuse-box (Geliştiriciler Icin Calisma Sekli): Sekil 7 - PDF Konsol Ciktisi

Minimize edilen dosyalari, geleneksel Node.js dosyalari gibi calistirabiliriz.

NPM fuse-box (Geliştiriciler Icin Calisma Sekli): Sekil 8 - PDF Ciktisi

Lisanslama

Kodun hicbir filigran olmadan calismasi icin bir lisans anahtarina ihtiyaçimiz var. Geliştiriciler bir deneme lisansi almak icin buradan kaydolabilir. Bunu almak icin kredi karti saglamaniza gerek yok. Ücretsiz bir deneme icin kaydoldugunuzda, sadece e-posta adresinizi girmeniz yeterli.

Sonuç

FuseBox ve IronPDF'nin kombinasyonu, sunucuda guclu PDF'ler oluşturmak ve on yuzde varliklari paketlemek icin onemli bir etkiye sahiptir. FuseBox, web kaynaklarini gruplandirma ve iyilestirme ile web uygulamalari insa etmeyi ve başlatmayi kolaylastirir. Bu arada, IronPDF size HTML kodunda dogrudan belgeler oluşturma ve PDF'ler oluşturmada iyi bir deneyim sunar.

Bu araclar birlikte kullanildiginda, cevrimici uygulamalarin daha iyi calismasini ve geliştirme surecini hizlandirir. Bunu, varlik yonetimi ve PDF oluşturma işlemlerini birlikte calistirarak yapar. IronPDF kullanarak PDF'ler oluşturup, FuseBox ile paketleyerek, geliştiriciler, belgelere daha fazla katlanabilirlik, hiz ve materyal ekleyen uygulamalar insa edebilir ve cikartabilir.

Iron Software, Windows, Android, MAC, Linux gibi farkli ortamlarda uygulama oluşturmamiza yardimci olan çeşitli kutuphaneler sunuyor.

Darrius Serrant
Tam Yığın Yazılım Mühendisi (WebOps)

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimleri lisans derecesine sahiptir ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışmaktadır. Küçük yaşlardan itibaren kodlamaya ilgi duyan Darrius, bilişimi hem gizemli hem de erişilebilir buldu ve onu yaratıcılık ve problem çö...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara