logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Wie man jQuery Cookie und die core/js-cookie‑Bibliothek in Drupal mit dem js_cookie‑Modul umschreibt

02/03/2026, by Ivan

Warum diese Änderung?

  • In Drupal 9 wurde jQuery Cookie aus dem Core entfernt und durch die js-cookie-Bibliothek ersetzt. Ein BC‑Shim (core/jquery.cookie) existierte während Drupal 9, wurde jedoch für Drupal 10 entfernt.
    https://www.drupal.org/node/3104677
  • In Drupal 10.1 wurde die Asset‑Bibliothek core/js-cookie selbst als veraltet markiert und für die Entfernung in Drupal 11 vorgesehen, da der Core sie nicht mehr verwendete. Der Change‑Record empfiehlt den Umstieg auf das beitragsbasierte JS Cookie-Modul.
    https://www.drupal.org/node/3322720
    https://www.drupal.org/project/drupal/issues/3296086
  • Das beitragsbasierte JS Cookie-Modul (drupal/js_cookie) stellt eine Asset‑Bibliothek für js-cookie bereit, sodass Module/Themes Cookies weiterhin in Drupal 10 und 11 verwenden können. https://www.drupal.org/project/js_cookie

Übersicht des Migrationspfads

1) Drupal 8 → 9: jQuery Cookie → core/js-cookie

Historischer Kontext: Drupal 9 ersetzte jQuery Cookie durch js-cookie und stellte Beispiele für Code‑ und Bibliothekszuordnungen bereit.
https://www.drupal.org/node/3104677

# VORHER (Drupal 8 / frühes 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/jquery
    - core/jquery.cookie
    - core/drupal

// VORHER (jQuery Cookie API)
(($, Drupal) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      $.cookie('cutest', 'red panda');
      const myCookieValue = $.cookie('cutest');
      $.removeCookie('cutest');

      $.cookie.json = true;
      $.cookie('cutest', { animal: 'red panda' });
    },
  };
})(jQuery, Drupal);

Nachher (Drupal 9) war die Abhängigkeit core/js-cookie erforderlich, und man nutzte die API Cookies.*:
https://www.drupal.org/node/3104677

# NACHHER (Drupal 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - core/js-cookie

// NACHHER (Drupal 9, js-cookie API)
((Drupal, Cookies) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      Cookies.set('cutest', 'red panda');
      const myCookieValue = Cookies.get('cutest');
      Cookies.remove('cutest');

      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutest = JSON.parse(Cookies.get('cutest') || 'null');
    },
  };
})(Drupal, window.Cookies);

2) Drupal 10.1+ und 11: core/js-cookie → beitragsbasiertes js_cookie

Da der Drupal‑Core core/js-cookie in 10.1 als veraltet markierte und in 11 entfernte, muss die Bibliothek durch die des JS Cookie-Moduls ersetzt werden: js_cookie/js-cookie.
https://www.drupal.org/node/3322720

Composer

composer require drupal/js_cookie

Dies installiert das Modul, das eine Drupal‑Asset‑Bibliothek für das ursprüngliche js-cookie-Paket bereitstellt.
https://www.drupal.org/project/js_cookie

Modul-/Theme-Abhängigkeit deklarieren (für Contrib/Custom‑Projekte)

# my_module.info.yml (oder die .info.yml Ihres Themes)
name: My Module
type: module
core_version_requirement: ^10 || ^11
dependencies:
  - js_cookie:js_cookie

Die Projektseite weist ausdrücklich darauf hin, js_cookie:js_cookie als Abhängigkeit für Contrib‑Module hinzuzufügen (sowie drupal/js_cookie in composer zu verlangen, wenn das Modul eine eigene composer.json hat). [4]

Bibliotheksabhängigkeit umstellen

# Ersetzen Sie dies (veraltet in 10.1, entfernt in 11)
# - core/js-cookie

# Durch dies (vom Contrib‑Modul bereitgestellt)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - js_cookie/js-cookie

Genau dieser Austausch wird im Core‑Change‑Record zur Abkündigung empfohlen. [2]

JavaScript‑Code

Ihr JS‑Code benötigt keine Änderungen, wenn Sie bereits die Cookies-API aus js-cookie verwendet haben — nur die Bibliotheksabhängigkeit ändert sich. [2]

((Drupal, Cookies) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      // Ein Cookie setzen.
      Cookies.set('cutest', 'red panda', { path: '/', sameSite: 'Lax' });

      // Ein Cookie auslesen.
      const myCookieValue = Cookies.get('cutest');

      // Ein Cookie entfernen.
      Cookies.remove('cutest', { path: '/' });

      // JSON sicher speichern/auslesen.
      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutestRaw = Cookies.get('cutest');
      const cutest = cutestRaw ? JSON.parse(cutestRaw) : null;
    },
  };
})(Drupal, window.Cookies);

Tipp: js-cookie entspricht RFC 6265 und codiert Werte anders als das alte jQuery Cookie, insbesondere bei JSON. Der Change‑Record zu Drupal 9 beschreibt diese Unterschiede.
https://www.drupal.org/node/3104677

Beispiele aus dem Ökosystem

  • Das Modul EU Cookie Compliance verfolgte die Abkündigung von core/js-cookie und es wurden Patches vorgeschlagen, um auf js_cookie/js-cookie umzusteigen.
    https://www.drupal.org/project/eu_cookie_compliance/issues/3380490
  • Verschiedene Contrib‑Projekte haben Issues eingereicht, um jQuery Cookie durch js-cookie zu ersetzen und später die Abkündigung von core/js-cookie zu adressieren.
    https://www.drupal.org/project/quicktabs/issues/3298649
    https://www.drupal.org/project/fpa/issues/3505122

Schritt‑für‑Schritt‑Upgrade‑Anleitungen

A) Von jQuery Cookie direkt zu js_cookie/js-cookie (Drupal 10+)

  1. Entfernen Sie die Abhängigkeiten core/jquery und core/jquery.cookie aus Ihrer .libraries.yml.
    https://www.drupal.org/node/3104677
  2. Fügen Sie js_cookie:js_cookie zu den Abhängigkeiten Ihrer .info.yml hinzu (für Contrib-/Custom‑Module und Themes).
    https://www.drupal.org/project/js_cookie
  3. Stellen Sie Ihre Bibliotheksabhängigkeit auf js_cookie/js-cookie um.
    https://www.drupal.org/project/js_cookie
  4. Schreiben Sie JS‑Code von $.cookie zu Cookies.* um, wie oben gezeigt.
    https://www.drupal.org/node/3104677

B) Von core/js-cookie zu js_cookie/js-cookie (Drupal 10.1 → 11)

  1. Installieren Sie das Modul:
    composer require drupal/js_cookie
    https://www.drupal.org/project/js_cookie
  2. (Contrib) Fügen Sie js_cookie:js_cookie in .info.yml hinzu; aktivieren Sie einfach das Modul.
    https://www.drupal.org/project/js_cookie
  3. Ersetzen Sie in .libraries.yml die Bibliothek core/js-cookie durch js_cookie/js-cookie.
    https://www.drupal.org/node/3322720
  4. Behalten Sie Ihren bestehenden Cookies.*‑JavaScriptcode bei — funktionale Änderungen sind nicht notwendig.
    https://www.drupal.org/node/3322720

Fallstricke und Best Practices

  • Bereitschaft für Drupal 11: core/js-cookie wird in Drupal 11 entfernt — stellen Sie sicher, dass alle Abhängigkeiten auf js_cookie/js-cookie zeigen.
    https://www.drupal.org/node/3322720
  • Datenschutz/CDN: Die Projektseite von js_cookie beschreibt, wie man vermeidet, js-cookie aus einem CDN zu laden (Datenschutz). Lokale Assets werden bevorzugt.
    https://www.drupal.org/project/js_cookie
  • Encoding & JSON: Verlassen Sie sich nicht auf implizites JSON‑Verhalten. Verwenden Sie explizit JSON.stringify und JSON.parse, wie oben gezeigt.
    https://www.drupal.org/node/3104677
  • Praxisnahe Patches: Prüfen Sie Issue‑Queues (z. B. EU Cookie Compliance), um Muster beim Aktualisieren zu erkennen.
    https://www.drupal.org/project/eu_cookie_compliance/issues/3380490