# О-01 · 2019-01 · jQuery + Webpack: legacy-плагин в production Статус: **принят в публикационный слой 31 июля 2026 года**. Ревизия накладывается registry только по стабильному slug; дата и автор остаются в базовом архиве. ## Граница материала - Единственный slug: `editorial-2019-01-field-jquery-webpack`. - Голос: М2, 2019 год. У автора уже есть опыт PHP/Bitrix и первые заметки о сборке; здесь он расширяет его до границы модулей, global-объекта и production-артефакта. - Главный вопрос: как отличить отсутствие `window.jQuery`, неправильный порядок исполнения legacy-плагина и второй экземпляр `jquery`. - Артефакт: учебный ESM/webpack-сценарий плюс отдельная команда, которую следует запускать только в реальном проекте для получения `stats.json` и проверки сетевых чанков. - Не заявляются: результат настоящей production-сборки, browser trace, состав зависимостей или поведение конкретного legacy-плагина вне учебного файла. ## Pass 1 — факты и техника - Проверена причинная модель: `jQuery.fn.extend()` расширяет прототип конкретного объекта jQuery; поэтому сравнение `window.jQuery === $` отличает один объект от двух. - Сверены первичные источники Webpack 4: shimming/ProvidePlugin, code splitting, stats data и `devtool`; сверена первичная документация jQuery по `jQuery.fn.extend()`. - В тексте не приписывается `ProvidePlugin` автоматическая запись в `window`. Для плагина, который явно читает `window.jQuery`, указан отдельный bridge. - Уточнён порядок: статический `import './vendor/legacy-mask'` не является строковым вызовом после присваивания ниже; в учебном bridge `require()` расположен после `window.jQuery = $` именно ради наблюдаемого порядка. - В команде production-диагностики явно сказано, что она не запускалась для этого черновика. Source map ограничен политикой публикации исходников. - Вердикт: соответствует. Локальный аудит подтвердил единственную ревизию и ссылку на asset. ## Pass 2 — редактура и голос - Симптом и цена ошибки стоят в первых двух предложениях: отсутствует метод в `$.fn`, риск — неработающая форма в релизе и импульсивная правка сборки. - Текст держит один маршрут «симптом → причина → проверка → действие»: фиксируем идентичность объектов, строим bridge, затем ищем resolved-пути в production-статистике. - Удалены общие оценки и ложная уверенность. Короткие фразы привязаны к объекту, команде, условию или наблюдаемому результату. - В словаре М2 используются `entry`, `chunk`, `source map`, `resolved-путь`, `runtime`; каждый термин появляется рядом с артефактом проверки, а не как декорация. - Один учебный ESM-пример отделён от реального репозитория. В конце есть проверяемый критерий: плагин находится на том же `$.fn`, который использует экран. - Вердикт: соответствует голосу 2019 года; нет зрелых рамок 2025–2027 и выдуманных метрик. ## Pass 3 — визуал и выпуск - SVG `jquery-webpack-production-bridge-2019.svg` показывает оба порядка: ошибочный статический импорт и bridge; отдельный нижний блок показывает проверку второго экземпляра. - Alt описывает не оформление, а причинную модель. Подпись возвращает читателя к проверке «порядок → идентичность». - Таблица имеет `thead` и `scope="col"`; она пригодна для узкого экрана через существующий контейнер `table-scroll`. - В статье есть пять воспроизводимых блоков кода, нумерованная последовательность проверки, ограничения и пять первичных источников. - Перед выпуском выполнены: синтаксис Node, JSON-only CLI, import-safe проверка через draft gate, XML-проверка SVG и ручной просмотр SVG. Production-сборка сайта не входит в этот автономный черновик и не заявляется. - Рендер сначала выявил обрезание длинного заголовка в горизонтальной версии схемы. SVG перестроен в вертикальную композицию; повторный рендер на ширине 343 px показывает весь заголовок и все три диагностических блока без обрезания. - Вердикт: выпускной проход завершён для автономного черновика. Интеграционное ревью понадобится только перед изменением архива. ## Фактические проверки | Проверка | Команда или метод | Результат | | --- | --- | --- | | Node syntax | `node --check scripts/upgrade-2019-01-field.mjs` из `web/` | успешно | | JSON-only CLI | `node scripts/upgrade-2019-01-field.mjs --print-revisions` | успешно внутри draft gate: stdout парсится как JSON, stderr пустой, import возвращает те же данные | | Import-safe и content gate | `npm run audit:draft -- scripts/upgrade-2019-01-field.mjs --expected-count=1` из `web/` | `PASS editorial-2019-01-field-jquery-webpack: 10910 body chars` | | XML | `xmllint --noout public/assets/editorial/2019/jquery-webpack-production-bridge-2019.svg` из `web/` | успешно | | Визуал | SVG отрендерен через Sharp в 720×1460 и 343×696; выполнен ручной просмотр | успешно после перевода схемы в вертикальный формат | Основной прозаический текст без кода, таблицы, рисунка и источников — **8 488 знаков**. Метрика draft gate, которая считает основной HTML-контент без источников, — **10 910 знаков**. ## Выпусковой вердикт После интеграции основной редактор повторно прогнал строгий аудит: ревизия прошла объём 10 910 знаков, figure, таблицу, пять примеров кода, маршрут действий и источники. `npm run build` завершился с кодом 0 и сгенерировал 374 статические страницы. Ревизия принята к публикации. `articles.json` не менялся: registry подменяет только редакционные поля по стабильному slug.