Кастомні плагіни Eleventy: розробка, тестування та оптимізація

Розробка кастомного плагіна Eleventy

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Кастомні плагіни Eleventy: розробка, тестування та оптимізація
Середній
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Розробка кастомного плагіна Eleventy

Одного разу клієнт витратив два тижні на ручну оптимізацію зображень при збірці — ми написали плагін за день, який автоматично генерує WebP та AVIF. Після цього проєкту ми формалізували процес і тепер пропонуємо розробку плагінів під ключ. Стандартний Eleventy дає багато, але не все: кастомна обробка зображень, інтеграція з headless CMS, мультимовність — без плагіна це перетворюється на копіпасту та крихкі хелпери. Плагін же дає перевикористовувану, тестовану логіку, що скорочує час розробки та підтримки. Завдяки модульності такий підхід легко масштабувати: написаний одного разу плагін можна використовувати в десятках проєктів, економлячи сотні годин.

Які проблеми вирішуємо

  • Кастомна обробка зображень зі стисненням, множиною форматів і розмірів — економія до 40% об'єму збірки. В одному проєкті ми знизили підсумковий розмір сайту з 150 МБ до 90 МБ лише за рахунок плагіна зображень. Це призвело до економії на хостингу до 30%.
  • Інтеграція з зовнішніми API з кешуванням та обробкою помилок — підвантаження товарів з headless CMS. Плагін обробляє таймаути та повтори, гарантуючи стабільну збірку.
  • Складні трансформації HTML — видалення невикористовуваних стилів, додавання critical CSS, вставка метаданих. Це знижує час завантаження сторінки на 20% за даними Lighthouse.
  • Мультимовність з динамічними маршрутами та локаллю в URL — плагін генерує сторінки для кожної мови, підтягуючи переклади з JSON.

Без плагіна ці завдання вирішуються разовими скриптами, які складно підтримувати та тестувати. Плагін же інкапсулює всю логіку і може бути повторно використаний в інших проєктах.

Як розробити плагін Eleventy для оптимізації зображень?

Візьмемо реальний кейс: інтернет-магазин на Eleventy з сотнями картинок. Потрібно генерувати WebP та AVIF, робити декілька розмірів, а в вихідниках — прозорі PNG. Ми написали плагін на базі @11ty/eleventy-img:

const Image = require("@11ty/eleventy-img"); const path = require("path"); module.exports = function(eleventyConfig, options = {}) { const cfg = { widths: [320, 640, 960, 1280, 1920], formats: ["avif", "webp", "jpeg"], outputDir: "./_site/assets/images/", urlPath: "/assets/images/", sharpOptions: { quality: 82 }, ...options }; eleventyConfig.addAsyncShortcode("img", async function(src, alt, sizes = "(max-width: 768px) 100vw, 1200px", classList = "") { const srcPath = src.startsWith("http") ? src : path.join("src", src); try { const metadata = await Image(srcPath, cfg); return Image.generateHTML(metadata, { alt, sizes, loading: "lazy", decoding: "async", class: classList }); } catch (e) { console.warn(`[img] Помилка: ${src}`); return `<img src="${src}" alt="${alt}" loading="lazy">`; } }); }; 

Шорткод {% img "src", "alt" %} в шаблоні генерує <picture> з AVIF, WebP та JPG. Плагін замінює собою ручну оптимізацію і зменшив розмір збірки на 40%. Подібний підхід можна застосувати до будь-яких повторюваних завдань: від конвертації Markdown до генерації sitemap.

Як тестувати кастомний плагін Eleventy?

Для тестування використовуйте Jest або Mocha. Запустіть Eleventy в тестовому режимі, передавши конфігурацію з плагіном, та перевірте вихідні файли. Також тестуйте окремі функції плагіна: фільтри, шорткоди, асинхронні операції. Приклад тесту для нашого плагіна:

const plugin = require('./img-plugin'); const Eleventy = require('@11ty/eleventy'); test('генерує picture з AVIF', async () => { const elev = new Eleventy('./test/src', './test/_site', { config: function(eleventyConfig) { eleventyConfig.addPlugin(plugin, { widths: [640] }); } }); const result = await elev.toJSON(); expect(result[0].content).toContain('<picture>'); }); 

Це гарантує, що плагін працює коректно при змінах. Для комплексних плагінів варто додати тести на обробку помилок: наприклад, при недоступному зовнішньому API або пошкодженому зображенні. Використовуйте mock-об'єкти для емуляції мережевих запитів.

Чому кастомний плагін швидший за готовий?

Готові плагіни часто перевантажені: включають зайвий функціонал, складно конфігуруються, рідко оновлюються. Кастомний плагін пишеться під конкретне завдання, легше підтримується і працює швидше за рахунок відсутності мертвого коду. Наприклад, готовий плагін для зображень може тягнути залежності для форматів, які вам не потрібні, а кастомний — лише необхідні. Порівняння:

Характеристика Готовий плагін Кастомний плагін
Функціонал Надлишковий Тільки потрібне
Конфігурація Складна, багато опцій Проста, під ваші параметри
Продуктивність Повільніше через зайвий код Оптимальна
Підтримка Залежить від автора Ви повністю контролюєте

Кастомний плагін — це інвестиція в швидкість та якість збірки.

Процес роботи

  1. Аналітика: розбираємо поточний проєкт, виявляємо повторювані завдання.
  2. Проектування: проектуємо API плагіна — вхідні параметри, конфіг, значення, що повертаються.
  3. Реалізація: пишемо код з тестами (Jest), використовуємо async/await, обробку помилок.
  4. Тестування: запускаємо збірку з плагіном, перевіряємо вихідні файли.
  5. Деплой: підключаємо плагін до проєкту, документуємо використання.

Строки та вартість

Тип плагіна Складність Строки
Простий (фільтри, 2-3 шорткоди) Низька 1-2 дні
Середній (асинхронні операції, зображення) Середня 3-5 днів
Комплексний (API, мультимовність, тести, npm публікація) Висока 1-2 тижні

Вартість розраховується індивідуально. Оцінка проєкту — безкоштовно. Зв'яжіться з нами — ми підберемо оптимальне рішення під ваш бюджет.

Що входить в результат

  • Вихідний код плагіна з коментарями.
  • Документація по встановленню та налаштуванню.
  • Тести (Jest) для ключових сценаріїв.
  • Тиждень підтримки після деплою.

Розповсюджені помилки при розробці: забувають обробляти помилки в асинхронних шорткодах, не перевіряють типи вхідних даних, використовують синхронні операції там, де потрібні async. Наш процес це виключає.

Ми гарантуємо якість: досвід на ринку більше 5 років, 50+ реалізованих проєктів. Отримайте безкоштовну консультацію — обговоримо ваш проєкт і запропонуємо оптимальне рішення. Економія бюджету та часу на підтримку — ось що ви отримуєте з кастомним плагіном. Ваша вигода — зниження витрат на хостинг та прискорення розробки.

Детальніше про API Eleventy на GitHub.