logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Cómo reescribir jQuery Cookie y la librería core/js-cookie en Drupal utilizando el módulo js_cookie

02/03/2026, by Ivan

¿Por qué este cambio?

Resumen de la ruta de migración

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

Contexto histórico: Drupal 9 reemplazó jQuery Cookie con js-cookie y proporcionó ejemplos de mapeo de código y bibliotecas. https://www.drupal.org/node/3104677

# ANTES (Drupal 8 / principios de 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/jquery
    - core/jquery.cookie
    - core/drupal

// ANTES (API de jQuery Cookie)
(($, 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);

Después (Drupal 9) se dependía de core/js-cookie y se utilizaba la API Cookies.*: https://www.drupal.org/node/3104677

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

// DESPUÉS (Drupal 9, API js-cookie)
((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+ y 11: core/js-cookie → js_cookie contribuido

Como Drupal core declaró obsoleta core/js-cookie en 10.1 y la eliminó en 11, debes reemplazarla con la biblioteca del módulo contribuido JS Cookie: js_cookie/js-cookie. https://www.drupal.org/node/3322720

Composer

composer require drupal/js_cookie

Esto instala el módulo que expone una biblioteca de recursos Drupal para el paquete original js-cookie. https://www.drupal.org/project/js_cookie

Declarar dependencia en un módulo/tema (para proyectos contrib/personalizados)

# my_module.info.yml (o el .info.yml de tu tema)
name: My Module
type: module
core_version_requirement: ^10 || ^11
dependencies:
  - js_cookie:js_cookie

La página del proyecto indica explícitamente añadir js_cookie:js_cookie como dependencia para módulos contrib (y requerir drupal/js_cookie en composer si tu módulo tiene su propio composer.json). [4]

Cambiar la dependencia de tu biblioteca

# Reemplaza esto (obsoleto en 10.1, eliminado en 11)
# - core/js-cookie

# Con esto (proporcionado por el módulo contribuido)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - js_cookie/js-cookie

Esta sustitución exacta es el camino recomendado en el registro de cambios del núcleo. [2]

Código JavaScript

Tu código JS no necesita cambios si ya usabas la API Cookies de js-cookie; solo cambia la dependencia de la librería. [2]

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

      // Obtener cookie.
      const myCookieValue = Cookies.get('cutest');

      // Borrar cookie.
      Cookies.remove('cutest', { path: '/' });

      // Guardar/recuperar JSON de forma segura.
      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutestRaw = Cookies.get('cutest');
      const cutest = cutestRaw ? JSON.parse(cutestRaw) : null;
    },
  };
})(Drupal, window.Cookies);

Consejo: js-cookie es compatible con RFC 6265 y codifica valores de forma diferente a jQuery Cookie, especialmente para JSON. El registro de cambios de Drupal 9 describe estas diferencias. https://www.drupal.org/node/3104677

Ejemplos del ecosistema

Recetas paso a paso de actualización

A) De jQuery Cookie directamente a js_cookie/js-cookie (Drupal 10+)

  1. Elimina las dependencias core/jquery y core/jquery.cookie de tu .libraries.yml. https://www.drupal.org/node/3104677
  2. Añade js_cookie:js_cookie a las dependencias de tu .info.yml (para módulos contrib/personalizados). https://www.drupal.org/project/js_cookie
  3. Cambia la dependencia de la biblioteca a js_cookie/js-cookie. https://www.drupal.org/project/js_cookie
  4. Reescribe el JS desde $.cookie hacia Cookies.* como se mostró antes. https://www.drupal.org/node/3104677

B) De core/js-cookie a js_cookie/js-cookie (Drupal 10.1 → 11)

  1. Requiere el módulo: composer require drupal/js_cookie. https://www.drupal.org/project/js_cookie
  2. (Contrib) Añade js_cookie:js_cookie en .info.yml; solo activa el módulo. https://www.drupal.org/project/js_cookie.
  3. En .libraries.yml, reemplaza core/js-cookie con js_cookie/js-cookie. https://www.drupal.org/node/3322720
  4. Mantén tu código JS actual con Cookies.*. No se necesitan cambios funcionales. https://www.drupal.org/node/3322720

Aspectos a tener en cuenta y buenas prácticas