Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Build automation statics
Search
TriLan
April 09, 2014
Programming
0
1.5k
Build automation statics
TriLan
April 09, 2014
Tweet
Share
More Decks by TriLan
See All by TriLan
TopExpert
webdev2014
0
64
Secret formula management
webdev2014
1
77
Angular JS
webdev2014
0
1.5k
CSS animations and transitions
webdev2014
0
1.4k
Preprocessors CSS
webdev2014
1
1.5k
Mobile apps
webdev2014
0
1.5k
Gathering statistics of the department with the monitor output
webdev2014
0
1.5k
Creating interfaces in resource-limited settings
webdev2014
0
1.4k
Design vs usability
webdev2014
0
1.6k
Other Decks in Programming
See All in Programming
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
650
ゆくKotlin くるRust
exoego
1
160
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
170
マスタデータ問題、マイクロサービスでどう解くか
kts
0
140
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
26k
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
200
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
180
Deno Tunnel を使ってみた話
kamekyame
0
260
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.4k
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
160
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
400
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
82
Claude Code のすすめ
schroneko
67
210k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
110
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
240
The SEO Collaboration Effect
kristinabergwall1
0
310
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
33
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
A better future with KSS
kneath
240
18k
Transcript
Сборка статики
Препроцессоры
Препроцессоры решают одни и создают новые проблемы
Раньше было так — Редактируем код — Запускаем тесты
А стало так — Редактируем код — Компилируем его в
CSS/JS — Запускаем тесты
Варианты — Ручная компиляция — При сохранении файла — При
обновлении страницы
Отладка
Положение ошибки в сообщении косоли браузера не соответствует тому, где
она находится в исходном коде
Source maps (карты кода) позволяют указать соответствия между исходным и
скомпилированным кодом
Объединение файлов
Хочется разбить скрипты приложения на модули
Пример из проекта — CoffeeScript, Handlebars — 80 тысяч строк
кода — 1,3 тысячи файлов
Версионирование
Нет гарантий, что после обновления статики на сервере, она обновится
в браузере клиента
Версия в URL ресурса — http://example.com/static/css/style.css?v=1.1 — http://example.com/static/css/style.a6ebc32.css
Содержимое ресурса, доступного по URL’у, гарантированно не меняется
Кэшируем навсегда location /static/ { expires 1y; add_header Cache-Control public;
add_header ETag ""; alias /var/www/project/static/; }
Минификация и сжатие
Пример из проекта Без минификации и сжатия 4 Мб С
минификацией 2,4 Мб Со сжатием 450 Кб С минификацией и сжатием 330 Кб
Сжимаем заранее location /static/ { gzip_static on; expires 1y; add_header
Cache-Control public; add_header ETag ""; alias /var/www/project/static/; }
Системы сборки статики — Grunt (http://gruntjs.com) — Gulp (http://gulpjs.com) —
Sprockets (https://github.com/.../sprockets) — Gears (https://github.com/gears) (На самом деле их много)
Вопросы? —
[email protected]
— http://github.com/yumike — http://twitter.com/yumatov