53 lines
7.4 KiB
Markdown
53 lines
7.4 KiB
Markdown
# Июнь 2018 — тройное ревью Webpack 4
|
|
|
|
Партия подготовлена для отдельной интеграции:
|
|
|
|
- `editorial-2018-06-practice-webpack-entry`
|
|
- `editorial-2018-06-mechanism-webpack-entry`
|
|
- `editorial-2018-06-field-webpack-entry`
|
|
|
|
Дата повторной проверки: 31 июля 2026 года. Пакет принят в публикационный слой:
|
|
скрипт печатает ревизии, а `web/data/editorial-revisions.mjs` сопоставляет их только
|
|
по стабильным slug, не меняя даты, автора и базовый архив.
|
|
|
|
## 1. Факты и техника — пройдено
|
|
|
|
### Практика: две страницы без двойной перевозки общего кода
|
|
|
|
- Основой стали официальные страницы Webpack 4: [Entry Points](https://v4.webpack.js.org/concepts/entry-points/), [Code Splitting](https://v4.webpack.js.org/guides/code-splitting/), [Optimization](https://v4.webpack.js.org/configuration/optimization/) и [Output](https://v4.webpack.js.org/concepts/output/).
|
|
- Конфигурация использует синтаксис Webpack 4: object entry, `optimization.splitChunks` и `runtimeChunk: 'single'`. Отдельный `vendor` entry не выдан за рекомендуемый путь: документация v4 прямо направляет разделение vendor/app-кода в `splitChunks`.
|
|
- `minSize: 0` помечен учебным условием для маленького примера, а не универсальной production-настройкой. Текст называет риск лишнего запроса и требует проверить фактические script-теги.
|
|
|
|
### Механизм: один import в двух entry bundle
|
|
|
|
- Сверены [object/array-синтаксис entry](https://v4.webpack.js.org/concepts/entry-points/) и [ограничения entry-point splitting](https://v4.webpack.js.org/guides/code-splitting/).
|
|
- Объяснение разделяет исходный файл, граф достижимости и emitted chunk. В тексте нет ложного вывода, что общий путь на диске автоматически создаёт общий chunk.
|
|
- Массив файлов описан как один multi-main entry, а два самостоятельных HTML-документа — как два object entry. Новые entry-API не подставляются в пример Webpack 4.
|
|
|
|
### Диагностика: рост bundle после нового entry
|
|
|
|
- Поля `assets`, `chunks`, `modules` и entrypoint-данные сверены с [Stats Data](https://v4.webpack.js.org/api/stats/) Webpack 4; команда и формат CLI — с [документацией CLI](https://v4.webpack.js.org/api/cli/).
|
|
- Диагностический фрагмент не трактует присутствие модуля в нескольких chunks как готовое доказательство скачивания. Статья требует проверить HTML и Network отдельно.
|
|
- Размер ассета в stats не выдан за сетевой transfer size: явно названы влияние сжатия, кеша, режима сборки и source map. В текст не добавлены вымышленные замеры, пользователи или результаты.
|
|
- Третий редакторский проход после независимого quality-gate: первое предложение теперь начинается с явного маркера «Симптом» и называет наблюдаемые `site.[contenthash].js` и `admin.[contenthash].js` в Network; цена ошибки сохранена — пользователь скачивает код панели, которой не откроет.
|
|
|
|
## 2. Редактура и голос — пройдено
|
|
|
|
- Каждый текст отвечает на отдельный вопрос: настройка двух страниц, причина дублирования в графе, расследование роста ассетов.
|
|
- Проблема и цена ошибки стоят в первом абзаце; далее идут конкретные куски конфигурации, проверка и ограничение.
|
|
- Проза без кода, источников и разметки: 5 502, 5 177 и 6 024 знака соответственно. Все значения входят в интервал 5 000–15 000.
|
|
- Тон оставлен на уровне 2018 года: короткая техническая речь, локальный пример, ручная проверка. Нет позднего инфраструктурного жаргона, неподкреплённых метрик и шаблонов массового архива.
|
|
- Общие слова заменены условиями: что является entry, когда общий модуль считается кандидатом на chunk, что нужно увидеть в stats и Network.
|
|
- Во всех трёх ревизиях список источников теперь начинается точным отдельным заголовком `<h2>Проверяемые источники</h2>` непосредственно перед `<ul>`.
|
|
|
|
## 3. Визуал и передача — пройдено с оговоркой
|
|
|
|
- Для каждого текста создана отдельная SVG-схема: путь общих chunks, граф двух entry и дерево диагностики. В каждой статье есть осмысленные `alt` и подпись.
|
|
- SVG не менялись в этой коррекции и повторно прошли `xmllint --noout`; первая визуальная проверка через локальный Quick Look остаётся актуальной. Схемы уже переделаны в вертикальные viewBox `720px`, чтобы текст оставался читаемым на узкой ширине, а не только на desktop.
|
|
- У каждой ревизии есть 1 рисунок, 1 таблица, 3 блока кода, нумерованная последовательность действий и 3–4 первичных источника.
|
|
- `node --check web/scripts/upgrade-2018-06.mjs` прошёл. `node web/scripts/upgrade-2018-06.mjs --print-revisions` вернул только валидный JSON из трёх ревизий, без stderr.
|
|
- Безопасный import проверен отдельно: импорт возвращает `revisions`, не печатает Usage и не меняет `process.exitCode`. Вывод Usage доступен только при прямом запуске скрипта без флага.
|
|
- После интеграции основной агент повторно прогнал strict audit всех трёх slug и production build. Сборка прошла и сгенерировала 374 статические страницы.
|
|
|
|
Статус: принят к публикации. В этой зоне не изменялись базовый архив статей, общий стандарт, аудит-скрипты и история Git.
|