inkluter
@inkluter
Frontend developer

Как работать с мелкими css-файлами?

Я работаю верстальщиком около года, за это время стили всегда писал в одном большом файле "main.css", куда подключал css-reset, фонт-фейсы, основные стили, стили плагинов, в общем, абсолютно все стили.

Недавно я понял, что хорошая практика во фронтенде - разбивать js- и css-файлы на маленькие составляющие модули при разработке, и склеивать все в один болшой на продакшене.

У меня на подходе сейчас один крупный проект, и я задался целью грамотно организовать процесс разработки и поддержки.
Хочу писать стили в маленьких sass-файлах.

Вопрос в следующем - как работать с маленькими css-файлами? Просто прописывать в head пути к файлам при разработке, а на продакшене склеивать в один? Или использовать для этого grunt и ему подобные инструменты, и как это лучше делать?
С grunt'ом никогда не работал, только-только начал ковырять.

Есть ли какой-то best-way в этом вопросе?
  • Вопрос задан
  • 2483 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Есть best-way, использовать препроцессоры стилей (less/sass) + gulp
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Возможно я отвечу немного оффтоп, но всё же.

Что плохого в едином стилевом файле? Едином - это значит в нём все стили относящиеся к вёрстке сайта, за исключением базовых стилей плагинов, подключения шрифтов. Ресет - как по мне так вообще вселенское зло, от него только проблемы у меня всегда были...
Ответ написан
@vsuhachev
Поглядите на sprockets, по всем признакам это то что вам нужно. Эта библиотека используется в RubyOnRails как раз для сборки css, js и умеет компилировать scss/sass, CoffeeScript

Для сборки используются т.н. файлы-манифесты (свои для css и js) в которых вы указываете что должно быть упаковано в результирующий файлы (css и js соответственно).

Например манифест для css, в нем используются команды
require_self - включить в сборку сам манифест (то, что после комента-манифеста)
require path/filename - включить конкретный файл, как правило это сторонние компоненты
require_tree . - включить все файлы из каталога, в данном примере все что лежит в каталоге с манифестом

/*
 *= require_self

 *= require bootstrap-datepicker
 *= require select2
 *= require select2-bootstrap
 *= require dropzone-basic

 *= require_tree .
 */


Тут пример как это все запустить
Ответ написан
Комментировать
rie
@rie
Modernizr.load();
Хотя все зависит от того, что у вас на бекенде.
Ответ написан
Комментировать
Хочу писать стили в маленьких sass-файлах.

Вопрос в следующем - как работать с маленькими css-файлами


вы определитесь сначала для себя что все таки использовать sass или css. Пишите мелкие sass, заводите еще один sass, главный, в котором подключаете все мелкие, в тело страницы подключаете только этот главный, затем заливаете. В майновом sass всегда легко можно что-то подключить/отключить, вот вам и модульность. Не сможете на sass, по тому же принципу пилите на less, разницы в схеме не будет.
Ответ написан
Комментировать
Я делаю main.less а в нем:
@import "mixins";
@import "variables";
@import "reset";
@import "typography";
@import "grid";


и т.д.
Тоже можно и на SCSS сделать.
Его потом в CSS и продакшн.
Не пользуюсь грунтами и гульпами для склейки файлов в один потому, что они не умеют склеивать их в том порядке, каком я хочу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы