@vernikr/size-report 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +10 -9
- package/package.json +2 -2
- package/src/project.js +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,37 @@
|
|
|
18
18
|
где за основу взяты `fixtures/synthetic/config.json`, метрики — `raw`, `min`, `tok`, а
|
|
19
19
|
способ минификации — `strip` или `esbuild`.
|
|
20
20
|
|
|
21
|
+
## 2.0.1 — 2026-09-15
|
|
22
|
+
|
|
23
|
+
Место отчёта в свежем проекте: `docs/size-report.html`, и каталог создаётся сам.
|
|
24
|
+
|
|
25
|
+
- **Отчёт больше не ложится в корень.** Первая редакция вывода выбирала «рядом с
|
|
26
|
+
доками, если каталог `docs` есть, иначе в корне»: в проекте, который только что
|
|
27
|
+
поставил пакет, каталога ещё нет — и отчёт оказывался там, где его не ищут (замер:
|
|
28
|
+
свежий клон, установка из реестра, `docs/` не появился, файл лёг в корень). Теперь
|
|
29
|
+
адрес один: `docs/size-report.html`; каталог — часть адреса, а создаёт его тот, кто
|
|
30
|
+
пишет файл. Имя из настроек по-прежнему перебивает вывод.
|
|
31
|
+
- Стережёт это проверка: проект без настроек и без каталога `docs` — отчёт в `docs/`,
|
|
32
|
+
в корне его нет, контрольный режим зелёный.
|
|
33
|
+
|
|
34
|
+
### Что изменится в числах
|
|
35
|
+
|
|
36
|
+
**Ничего.** Правка — про путь файла, а не про измерение. Таблица та же, что у 2.0.0.
|
|
37
|
+
|
|
38
|
+
| Файл | raw | min со strip | min с esbuild | tok |
|
|
39
|
+
|---|---|---|---|---|
|
|
40
|
+
| code.js | 735 | 276 | 185 | 168 |
|
|
41
|
+
| modern.js | 246 | 51 | 45 | 44 |
|
|
42
|
+
| config.mjs | 172 | 45 | 40 | 40 |
|
|
43
|
+
| заметки.md | 306 | 303 | 303 | 53 |
|
|
44
|
+
| crlf.txt | 63 | 60 | 60 | 10 |
|
|
45
|
+
| package.json | 87 | 69 | 69 | 34 |
|
|
46
|
+
| style.css | 156 | 55 | 43 | 38 |
|
|
47
|
+
| table.toml | 300 | 299 | 299 | 52 |
|
|
48
|
+
| empty.js | 0 | 0 | 0 | 0 |
|
|
49
|
+
| WORKLOG.md | 446 | 439 | 439 | 101 |
|
|
50
|
+
| **ИТОГО** | **2511** | **1597** | **1483** | **540** |
|
|
51
|
+
|
|
21
52
|
## 2.0.0 — 2026-09-15
|
|
22
53
|
|
|
23
54
|
Один отчёт вместо двух, и он же появляется сам: форма отчёта сведена к одному
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
## Статус
|
|
12
12
|
|
|
13
|
-
**Выпуск 2.0.
|
|
13
|
+
**Выпуск 2.0.1 (2026-09-15).** Инструмент живёт отдельным пакетом: имя в
|
|
14
14
|
реестре — `@vernikr/size-report` (публикуется тегом из CI, без секрета). Настроек
|
|
15
15
|
проект может не заводить вовсе: без файла инструмент выводит их из самого проекта и
|
|
16
16
|
говорит об этом строкой, а `--init` закрепляет выведенное файлом (чем этот шаг
|
|
@@ -219,10 +219,10 @@
|
|
|
219
219
|
|
|
220
220
|
| Прогон | Команда | Проверок |
|
|
221
221
|
|---|---|---|
|
|
222
|
-
| Быстрый — каждая правка | `pnpm test` | **65 из
|
|
223
|
-
| Полный — выкладка и CI | `pnpm test:all` | **
|
|
222
|
+
| Быстрый — каждая правка | `pnpm test` | **65 из 169** |
|
|
223
|
+
| Полный — выкладка и CI | `pnpm test:all` | **169** |
|
|
224
224
|
|
|
225
|
-
Ни одна проверка не потеряна и не ослаблена: полный прогон запускает все
|
|
225
|
+
Ни одна проверка не потеряна и не ослаблена: полный прогон запускает все 169 теми же
|
|
226
226
|
файлами, а быстрый берёт их часть. Умолчание — полный: файл становится быстрым только
|
|
227
227
|
явно и с причиной, поэтому новое дорогое не может тихо уехать в быстрый. Стерегут это
|
|
228
228
|
объявление `test/suites.test.js` (полнота классификации и причина у каждого файла) и
|
|
@@ -480,6 +480,7 @@ deльт задан один раз и по артефакту: рост зел
|
|
|
480
480
|
| `PLAN.md` | **Главный документ:** инвентаризация, границы, инварианты, архитектура, семь шагов переноса, приёмка, риски, открытые вопросы |
|
|
481
481
|
| `docs/requirements.md` | Требования заказчика: что и зачем |
|
|
482
482
|
| `docs/module-design.md` | Архитектурный проект выноса: как устроен модуль |
|
|
483
|
+
| `docs/size-report.html` | Отчёт об объёме этого самого проекта: один самодостаточный файл, который обновляет хук после каждого коммита (отдельным коммитом) |
|
|
483
484
|
| `WORKLOG.md` | Журнал запросов и сделанного |
|
|
484
485
|
| `BLOCKERS.md` | Открытые блокеры и известные пробелы (обход обязан держаться проверкой) |
|
|
485
486
|
| `REFACTOR.md` | Поканальный план чистки: объём кода, потом скорость; границы и чем доказывается, что поведение не изменилось |
|
|
@@ -642,7 +643,7 @@ pnpm add -D @vernikr/size-report
|
|
|
642
643
|
```
|
|
643
644
|
|
|
644
645
|
Пакет **опубликован в реестре**, и публично: `npm view @vernikr/size-report
|
|
645
|
-
version` отвечает `2.0.
|
|
646
|
+
version` отвечает `2.0.1`, `npm access get status @vernikr/size-report` — `public`,
|
|
646
647
|
а анонимный запрос тарболла — код 200. `npm i -D` и `yarn add -D` принимают то же
|
|
647
648
|
имя; ни ключа, ни ссылки на репозиторий не нужно.
|
|
648
649
|
|
|
@@ -650,11 +651,11 @@ version` отвечает `2.0.0`, `npm access get status @vernikr/size-report`
|
|
|
650
651
|
реестра, но остаётся привязанной к ревизии:
|
|
651
652
|
|
|
652
653
|
```bash
|
|
653
|
-
pnpm add -D github:vernikr/size-report#v2.0.
|
|
654
|
+
pnpm add -D github:vernikr/size-report#v2.0.1
|
|
654
655
|
```
|
|
655
656
|
|
|
656
657
|
Без сети (или если тянуть из codeload нечем) — тарболл: `pnpm pack` в клоне
|
|
657
|
-
пакета, затем `pnpm add -D ./vernikr-size-report-2.0.
|
|
658
|
+
пакета, затем `pnpm add -D ./vernikr-size-report-2.0.1.tgz`.
|
|
658
659
|
|
|
659
660
|
**Почему тег, а не sha.** Короткий sha pnpm разрешает только через видимые рефы, а
|
|
660
661
|
`git ls-remote` отдаёт одни верхушки веток: пока ревизия — верхушка, короткий sha
|
|
@@ -662,7 +663,7 @@ pnpm add -D github:vernikr/size-report#v2.0.0
|
|
|
662
663
|
<sha> to a commit`. Это не рассуждение, а проба: короткий пин `6530237` ставился,
|
|
663
664
|
пока `main` стоял на нём, и перестал — на следующем же коммите, а тот же sha
|
|
664
665
|
целиком поставился. Имя ветки (`#main`) или тег принимаются оба, но ветка —
|
|
665
|
-
движущаяся цель, а тег постоянен: этот выпуск стоит на теге `v2.0.
|
|
666
|
+
движущаяся цель, а тег постоянен: этот выпуск стоит на теге `v2.0.1`, он же и в
|
|
666
667
|
примере (сорок знаков тоже годятся, но их придётся брать глазами из истории).
|
|
667
668
|
|
|
668
669
|
Ревизия в примере — не украшение, а часть утверждения: она закреплена за тем, что
|
|
@@ -736,7 +737,7 @@ stderr и называет команду, которая их закрепля
|
|
|
736
737
|
| `metrics` | из чего состоит число: `raw` (размер объекта git), `min` (минифицированная форма — какая именно, решает `minify.engine`), `tok` (токены), `gzip` |
|
|
737
738
|
| `tokens.family`, `tokens.encoding` | словарь для `tok`: семейство (`openai`) и кодировка (`o200k_base` или `cl100k_base`) — кодировка меняет число, поэтому она и в настройках, и в подписи метрики |
|
|
738
739
|
| `minify.engine` | чем считается `min`: `strip` (комментарии и отступы, точность не обещается) или `esbuild` (настоящее сжатие; форматы без минификатора — упрощение, и это видно в подписи метрики) |
|
|
739
|
-
| `output` | файл отчёта (в выведенном профиле — `docs/size-report.html
|
|
740
|
+
| `output` | файл отчёта (в выведенном профиле — `docs/size-report.html`; каталог создаётся сам, имя отчёта — его имя) |
|
|
740
741
|
| `journal` | где искать разделы журнала, на которые ссылаются строки |
|
|
741
742
|
| `links.commitUrl` | шаблон ссылки на коммит, например `https://github.com/org/repo/commit/{sha}`; выводится из адреса `origin` у GitHub и GitLab (у остальных хозяев — пусто, а не догадка) |
|
|
742
743
|
| `skip` | пути, которые колонкой не стали: и те, что ею быть не могут (сам отчёт, замки зависимостей), и те, что в колонки не поместились (выведенный профиль объявляет исключениями всё остальное — поэтому первый `check` полон) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vernikr/size-report",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"author": "vernikr",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"report"
|
|
67
67
|
],
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@vernikr/size-report": "
|
|
69
|
+
"@vernikr/size-report": "2.0.0",
|
|
70
70
|
"c8": "10",
|
|
71
71
|
"dependency-cruiser": "17",
|
|
72
72
|
"eslint": "^9.18.0",
|
package/src/project.js
CHANGED
|
@@ -97,11 +97,14 @@ function exists(root, p) {
|
|
|
97
97
|
return fs.existsSync(path.join(root, p));
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
/*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
/* Куда ложится отчёт — одно на пакет: `docs/size-report.html`, и каталог создаётся
|
|
101
|
+
* сам. Прежняя развилка («в доки, если они есть, иначе в корень») убрана по замеру:
|
|
102
|
+
* в свежем проекте каталога `docs` ещё нет, и отчёт оказывался в корне — то есть
|
|
103
|
+
* ни в том месте, где его ищут, ни в том, куда его хочет положить человек,
|
|
104
|
+
* который ставит пакет ради отчёта. Каталог здесь не признак проекта, а часть
|
|
105
|
+
* адреса; создавать его — работа того, кто пишет файл (`writeFileEnsured`). */
|
|
106
|
+
function outputOf() {
|
|
107
|
+
return 'docs/size-report.html';
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
/* Менеджер пакетов — по lock-файлу, а не догадкой: команда обязана существовать
|