Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2015-03-10

Customizing Bootstrap

Пример сборки фронтэнда по взрослому.
Кто-то не жужжит и просто меняет переменную в коде библиотеки, быстро решая текущую проблему ценой потери возможности обновлений в будущем.
А кто-то пользуется средствами сборки/пересборки (компиляции), автоматом включая свои патчи/кастомизации.

Approach

Here is the approach I took to customize Bootstrap. I'm running on Ubuntu 14.10 Utopic Unicorn 64-bit.

Use the Sass version of Bootstrap. The standard Bootstrap project uses Less but my limited knowledge of frontend technology tells me Sass (specifically SCSS) is a better choice.
Install Bootstrap using Bower. Bower is a tool used to install frontend packages.

"What's bower?" "A package manager, install it with npm." "What's npm?" "A package manager, you can install it with APT" "What's APT?" - adapted from Stefan Baumgartner's tweet

An alternative is to just download Bootstrap and add it to your project. I chose Bower because I wanted to be like the cool kids from 2 years ago and it would be nice to upgrade my libraries with a simple command.
Commit the bower_components directory to git. Alternatively you can leave bower_components out of git and use something like grunt-bower-task or grunt-bower-copy to copy stuff from bower_components into your project. I chose to commit bower_components to git so that I wouldn't need an extra grunt task. The downside is that I have big long ugly paths in my bootstrap.scss file.
Override Bootstrap's Sass variables, remove unneeded components, and combine Bootstrap with my site's stylesheet using Sass @imports.
Compile the Sass SCSS files to CSS using grunt-contrib-sass.
Commit the compiled Sass files to git. An alternative is to compile the files as part of the deploy process. At work, it is a pain keeping these files in git because there are many merge conflicts and differences in build tool versions and platforms between developers. For my blog, I am the only committer so I won't run into this


Вот так, приблизительно, выглядит работа над веб-фронтэндом нынче.
Фронтэндщики обзавелись своими сборщиками и компиляторами, с блекджеком и шлюхами.

Все по взрослому.



original post http://vasnake.blogspot.com/2015/03/customizing-bootstrap.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)