This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# О-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.
|
||||
Reference in New Issue
Block a user