Skip to content

Commit 09e40e3

Browse files
committed
Improve Readme
1 parent a72a5a5 commit 09e40e3

File tree

1 file changed

+29
-19
lines changed

1 file changed

+29
-19
lines changed

README.md

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,9 @@
66

77
Анализ показывает, что этот файл содержит библиотеку `moment.js`, печально известную своим большим размером.
88

9-
## Идея оптимизации
10-
11-
12-
- Включите в процесс сборки `webpack` плагин `webpack-bundle-analyzer`;
13-
- Выполните анализ исходной версии приложения с помощью `webpack-bundle-analyzer`; убедитесь, что `moment.js` входит в сборку `vendor`
14-
- Закомментируйте всё содержимое файла `proCharts.js`;
15-
- Выполните анализ изменённой версии в `webpack-bundle-analyzer`;
16-
17-
Вы найдёте, что `moment.js` пропал из `vendor` и эта сборка стала заметно меньше;
9+
## Бюджет
1810

19-
20-
## Защита
21-
22-
Поздравляю, вы сократили объём загружаемого `js` на всех страницах сайта; защитите это достижение на примере главной страницы.
11+
Давайте начнём с того, что зададимся бюджетом на объём `js` на главной странице.
2312

2413
Создайте бюджет для `sitespeed.io`
2514

@@ -33,19 +22,41 @@
3322
}
3423
```
3524

36-
Убедитесь, что бюджет соблюдается:
25+
Убедитесь, что бюджет пока не соблюдается:
3726

38-
```
27+
```bash
3928
docker run --privileged --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io http://host.docker.internal:3000/ -n 1 --budget.configPath homeBudget.json
4029
```
4130

31+
## Идея оптимизации
32+
33+
- Включите в процесс сборки `webpack` плагин `webpack-bundle-analyzer`
34+
- Выполните анализ исходной версии приложения с помощью `webpack-bundle-analyzer`
35+
- убедитесь, что `moment.js` входит в сборку `vendor`
36+
- Закомментируйте всё содержимое файла `proCharts.js`
37+
- Выполните анализ изменённой версии в `webpack-bundle-analyzer`
38+
- profit
4239

4340
## Cleanup
4441

4542
Разберитесь, в каком месте приложения код `moment.js` реально используется и подключите его только там.
4643

44+
## Защита от деградации
45+
46+
Мы сократили объём загружаемого `js` на большинстве страниц сайта!
47+
48+
Теперь проверка бюджета на главной странице должна пройти успешно!
49+
4750

48-
Убедитесь, что достигнутый бюджет на загрузку `js` для главной страницы всё ещё соблюдается.
51+
## Настройка CI
52+
53+
Теперь настроим `CI`: `Travis` или `Github Actions`.
54+
55+
Шаги:
56+
- выставить текущую версию приложения в интернет с помощью `ngrok`
57+
- запушить урл `ngrok` в конфиг `CI` в `github` и тем самым триггернуть билд
58+
- билд должен проверять ваше приложение по урлу `ngrok` с помощью `sitespeed.io` на соблюдение бюджета
59+
- после проверки `ngrok` можно выключать
4960

5061
## Как сдать задание
5162

@@ -54,9 +65,8 @@ docker run --privileged --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io
5465
- изменения кода
5566
- описание
5667
- скриншоты `bundle-analyzer` до и после оптимизации
57-
- выполните анализ исходной версии в `sitespeed.io`, сделав 5 прогонов (`-n 5`), экспортируйте результат в формат `HAR` и закомитьте под названием `slow.har`
58-
- сделайте то же самое для оптимизированной версии и закомитьте `fast.har`
59-
- добавьте в описание ссылку на сравнение быстрой и медленной версии с помощью инструмента `compare.sitespeed.io`: `https://compare.sitespeed.io/?har1=FULL_URL1&har2=FULL_URL2&compare=1`
68+
- настроенный `CI` на `Travis` или `Github Actions`
69+
6070

6171
<div align="center">
6272
<br>

0 commit comments

Comments
 (0)