Metin2Games Discord sunucusuna katılmak ve anlık destek almak için tıkla!
1

TypeScript Kullanarak Web-Ext İle Firefox Tarayıcı Eklentisi Geliştirme

Kayıtlı
1 Yıl 9 Ay 26 Gün
Katılım
10 Ocak 2025
Konular
163
Mesajlar
257
Tepkime puanı
36
Online süresi
11h 19m
Puan
53
Konum
Türkiye
Web sitesi
www.zyncra.shop
Kısa Bakış: Firefox Eklenti Mimarisini Anlamak: Geliştirmeye başlamadan önce, bir Firefox eklentisinin mimarisini anlamak önemlidir. Temel olarak, bir Firefox eklentisi bir araya getirilmiş HTML, CSS ve JavaScript dosyalarından oluşur. manifest.json adlı manifest dosyası, eklentinin temel...

📌 Konu İçeriği — Hızlı Bakış (📂 cPanel / Web • ⏱ ~6 dk okuma • 💻 Kod: JSON)
01. Firefox Eklenti Mimarisini Anlamak:
02. Bir Firefox Eklentisinin Temel Bileşenleri:
03. Adım 1: Gerekli Araçların Kurulumu
04. Adım 2: Eklenti Projesi Oluşturma ve Yapılandırma
05. Adım 3: TypeScript Kodlarını Yazma
06. Adım 4: TypeScript Kodlarını JavaScript'e Derleme

239550_cbab76069f95ab73dc3a5f9b9c168627.png

Firefox Eklenti Mimarisini Anlamak:

Geliştirmeye başlamadan önce, bir Firefox eklentisinin mimarisini anlamak önemlidir. Temel olarak, bir Firefox eklentisi bir araya getirilmiş HTML, CSS ve JavaScript dosyalarından oluşur. manifest.json adlı manifest dosyası, eklentinin temelini oluşturarak yapısını, izinlerini ve diğer kritik detaylarını tanımlar.

Bir Firefox Eklentisinin Temel Bileşenleri:

  • Manifest Dosyası (manifest.json): Eklenti meta verileri (ad, sürüm, izinler, betikler vb.).
  • Arka Plan Betikleri: Tarayıcı olaylarını yöneten ve arka planda çalışan komut dosyaları.
  • İçerik Betikleri: Web sayfalarına eklenip DOM ile etkileşen komut dosyaları.
  • Popup HTML: Tarayıcı araç çubuğu simgesine tıklanınca görünen kullanıcı arayüzü.
  • Seçenekler HTML: Eklenti ayarlarını yapılandırmak için kullanılan arayüz (isteğe bağlı).
  • Simgeler ve Görüntüler: Eklentiyi temsil eden grafiksel öğeler.

Adım 1: Gerekli Araçların Kurulumu

  1. Node.js ve npm (veya yarn): Eğer kurulu değilse, adresinden Node.js'i indirin ve kurun. npm, Node.js ile birlikte gelir. Alternatif olarak yarn kullanmak isterseniz, terminale npm install --global yarn yazarak kurabilirsiniz.
  2. TypeScript: TypeScript'i global olarak kurmak için terminalde aşağıdaki komutu çalıştırın:

    Bash:
    npm install --global typescript# veya yarn kullanıyorsanız:
    # yarn global add typescript
  3. Web-ext aracını kurmak için terminalde aşağıdaki komutu çalıştırarak web-ext aracını global olarak kurun:

  4. Bash:
    npm install --global web-ext
    # veya yarn kullanıyorsanız:
    # yarn global add web-ext

Adım 2: Eklenti Projesi Oluşturma ve Yapılandırma

  1. Proje Dizini Oluşturma: Eklenti dosyalarınız için bir klasör oluşturun (örneğin, benim-eklentim).

    Bash:
    mkdir benim-eklentim
    cd benim-eklentim
  2. package.json Oluşturma: Projenizi npm veya yarn ile başlatmak için aşağıdaki komutu çalıştırın:

    Bash:
    npm init -y# veya yarn kullanıyorsanız:
    # yarn init -y
    Bu komut, proje hakkında temel bilgileri içeren bir package.json dosyası oluşturacaktır.
  3. TypeScript Yapılandırma Dosyası (tsconfig.json) Oluşturma: TypeScript derleyici seçeneklerini yapılandırmak için bir tsconfig.json dosyası oluşturmanız gerekir. Proje dizininde aşağıdaki komutu çalıştırın:

    Bash:
    tsc --init
    Bu, temel bir tsconfig.json dosyası oluşturacaktır. Bu dosyayı projenizin gereksinimlerine göre düzenleyebilirsiniz. Özellikle outDir (çıktı dizini) ve rootDir (kaynak dizini) seçeneklerini kontrol etmeniz önemlidir. Örneğin, TypeScript dosyalarınızı src adlı bir klasörde tutmak ve derlenmiş JavaScript dosyalarını dist adlı bir klasöre çıkarmak isteyebilirsiniz. Bu durumda tsconfig.json dosyanızda aşağıdaki gibi değişiklikler yapabilirsiniz:

    JSON:
    {  "compilerOptions": {
        "target": "ES2017",
        "module": "ESNext",
        "outDir": "./dist",
        "rootDir": "./src",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true
      },
      "include": [
        "src/**/*"
      ],
      "exclude": [
        "node_modules"
      ]
    }
  4. manifest.json Oluşturma: Firefox eklentilerinin temel yapılandırma dosyasıdır. Proje dizininde (genellikle src veya dist klasörünün içinde değil, ana proje dizininde) manifest.json adında bir dosya oluşturun ve aşağıdaki gibi temel bilgileri ekleyin:

    JSON:
    {  "manifest_version": 3,
      "name": "Benim TypeScript Eklentim",
      "version": "1.0",
      "description": "TypeScript ile geliştirilmiş bir Firefox eklentisi",
      "permissions": [
        // Eklentinizin ihtiyaç duyduğu izinleri buraya ekleyin
      ],
      "content_scripts": [
        {
          "matches": ["<all_urls>"],
          "js": ["content.js"]
        }
      ],
      "background": {
        "service_worker": "background.js"
      },
      "browser_action": {
        "default_popup": "popup.html",
        "default_icon": {
          "16": "images/icon16.png",
          "48": "images/icon48.png",
          "128": "images/icon128.png"
        }
      },
      "icons": {
        "16": "images/icon16.png",
        "48": "images/icon48.png",
        "128": "images/icon128.png"
      }
    }
    Bu dosyayı eklentinizin gereksinimlerine göre düzenleyin. Özellikle name, version, description, permissions, content_scripts, background, browser_action ve icons alanlarına dikkat edin.

Adım 3: TypeScript Kodlarını Yazma

  1. Kaynak Klasörü Oluşturma: Eğer tsconfig.json dosyanızda rootDir olarak src belirttiyseniz, bu klasörü oluşturun:

    Bash:
    mkdir src
  2. TypeScript Dosyaları Oluşturma: src klasörü içinde eklentinizin mantığını içeren TypeScript dosyalarını oluşturun (örneğin, content.ts, background.ts, popup.ts).
  3. TypeScript Kodlarını Yazma: Bu dosyalara TypeScript kodlarınızı yazın. Örneğin, src/content.ts dosyasına basit bir içerik betiği ekleyebilirsiniz:

    JavaScript:
    console.log("Bu bir içerik betiğidir!");
    src/background.ts dosyasına bir arka plan betiği:

    JavaScript:
    console.log("Bu bir arka plan betiğidir!");
    Eğer bir popup'ınız varsa, src/popup.ts dosyasına popup'ın mantığını yazabilirsiniz. Ayrıca src klasöründe popup.html ve images gibi diğer gerekli dosyaları da oluşturabilirsiniz.

Adım 4: TypeScript Kodlarını JavaScript'e Derleme

TypeScript kodlarınızı Firefox'un anlayacağı JavaScript kodlarına derlemeniz gerekir. tsconfig.json dosyanızdaki outDir ayarına göre JavaScript dosyaları oluşturulacaktır.

  1. Derleme Komutunu Çalıştırma: Terminalde proje dizininizde aşağıdaki komutu çalıştırın:

    Bash:
    tsc
    Bu komut, tsconfig.json dosyasındaki ayarlara göre src klasöründeki TypeScript dosyalarını derleyecek ve outDir ile belirttiğiniz klasöre (örneğin, dist) JavaScript dosyalarını (örneğin, content.js, background.js, popup.js) oluşturacaktır.

Adım 5: manifest.json Dosyasını Güncelleme

manifest.json dosyasındaki betik yollarının, derlenmiş JavaScript dosyalarının bulunduğu konumu işaret ettiğinden emin olun. Eğer TypeScript dosyalarınızı src klasöründe tuttunuz ve JavaScript dosyalarını dist klasörüne derlediyseniz, manifest.json dosyanızdaki js yollarını buna göre güncellemeniz gerekir. Örneğin:

JSON:
{
  "manifest_version": 3,
  "name": "Benim TypeScript Eklentim",
  "version": "1.0",
  "description": "TypeScript ile geliştirilmiş bir Firefox eklentisi",
  "permissions": [
    // ],
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["dist/content.js"]
    }
  ],
  "background": {
    "service_worker": "dist/background.js"
  },
  "browser_action": {
    "default_popup": "popup.html",
    "default_icon": {
      "16": "images/icon16.png",
      "48": "images/icon48.png",
      "128": "images/icon128.png"
    }
  },
  "icons": {
    "16": "images/icon16.png",
    "48": "images/icon48.png",
    "128": "images/icon128.png"
  }
}

Önemli Not: popup.html ve images gibi statik dosyalar genellikle doğrudan proje dizininde veya uygun alt klasörlerde bulunur ve manifest.json dosyasında doğru şekilde referans verilmelidir. Bu dosyaların TypeScript ile bir ilgisi yoktur, bu yüzden derleme işleminden etkilenmezler.

Adım 6: web-ext ile Eklentiyi Test Etme

  1. Proje Ana Dizinine Gidin: Terminalde manifest.json dosyasının bulunduğu ana proje dizinine gidin.
  2. Eklentiyi Çalıştırma: Aşağıdaki komutu kullanarak eklentiyi geçici bir Firefox profilinde çalıştırabilirsiniz:

    Bash:
    web-ext run
    Veya belirli bir geliştirme profiliniz varsa:

    Bash:
    web-ext run --profile "geliştirme_profilinizin_adı"
    web-ext, eklentinizi Firefox'ta açacak ve geliştirme sürecinde yaptığınız değişiklikleri otomatik olarak yeniden yükleyecektir (bazı durumlarda Firefox'u yeniden başlatmanız gerekebilir).
    239552_00839012d28a129a33943854afb87ac8.png

Adım 7: Geliştirme Süreci ve İpuçları

  • TypeScript'i İzleme Modunda Çalıştırma: Geliştirme sırasında TypeScript dosyalarınızda değişiklik yaptıkça otomatik olarak derlenmelerini sağlamak için TypeScript derleyicisini izleme modunda çalıştırabilirsiniz:

    Bash:
    tsc -w# veya
    # tsc --watch
    Bu komutu ayrı bir terminal penceresinde çalıştırarak, kodunuzu her kaydettiğinizde JavaScript dosyalarının otomatik olarak güncellenmesini sağlayabilirsiniz.
  • web-ext Otomatik Yenileme: web-ext run genellikle dosya değişikliklerini algılar ve eklentiyi otomatik olarak yeniden yükler. Ancak bazı durumlarda (özellikle yapılandırma dosyalarında yapılan değişikliklerde) Firefox'u manuel olarak yeniden başlatmanız gerekebilir.
  • Hata Ayıklama: Firefox Geliştirici Araçları'nı (Araçlar > Web Geliştiricisi) kullanarak eklentinizin arka plan betiğini, içerik betiklerini ve popup'ını inceleyebilir, hataları ayıklayabilirsiniz. "Eklenti Hata Ayıklayıcısı" aracı özellikle eklentiye özgü hataları ve günlükleri görmek için kullanışlıdır.
  • Build Script'leri Ekleme: package.json dosyanızın scripts bölümüne derleme ve izleme komutlarını ekleyerek geliştirme sürecinizi kolaylaştırabilirsiniz:

    JSON:
    "scripts": {  "build": "tsc",
      "watch": "tsc -w",
      "start": "web-ext run"
    }
    Bu sayede npm run build, npm run watch veya npm run start komutlarını kullanarak ilgili işlemleri gerçekleştirebilirsiniz.
    Bu adımları takip ederek TypeScript ile Firefox eklentileri geliştirebilir ve web-ext aracını kullanarak bu eklentileri kolayca test edebilirsiniz.

Sıkça Sorulan Sorular (SSS)
Soru 1: TypeScript Kullanarak Web-Ext İle Firefox Tarayıcı Eklentisi Geliştirme neden önemlidir?
Doğru yapılandırma ve güncel standartların uygulanması hem sistem kararlılığını artırır hem de olası hataları ve zaman kaybını en baştan engeller.

Soru 2: Uygulama adımlarında sorun yaşarsam ne yapmalıyım?
Konu içerisindeki adımları ve yapılandırma detaylarını sırasıyla kontrol edebilir, takıldığınız noktaları bu konunun altına yorum olarak yazarak destek alabilirsiniz.
 
Community platform by XenForo® © 2010-2026 XenForo Ltd.
© 2020-2026 Metin2Games - Tüm Hakları Saklıdır.
Geri
Üst