Импорт стилуса Meteor

Я работаю над дизайном сайта метеора, созданного с помощью метеора. Я использую стилус для написания css. Я читал, что Meteor поддерживает импорт стилуса по умолчанию, но когда я разделяю свою основную таблицу стилей на частичные, они импортируются отдельно метеором. Если я хочу закомментировать часть, чтобы отключить ее, она все равно будет импортирована.

У меня есть следующая структура:

site/
  client/
    stylesheets/
      partials/
        all.styl
        typography.styl
        webform.styl
        etc.styl
      main.styl

В main.styl я делаю @import 'partials/all и все импортирует все партиалы:

@import 'typography'
@import 'webform'
@import 'etc'

Метеор поддерживает @import в стилусе? Я пытался добавить пакет стилуса, стилус-последний, но безрезультатно.

Кажется, этот человек говорит, что он работает из коробки: https://github.com/percolatestudio/ground-control. Я пытался запустить приложение, но оно не работает с последней версией метеора.

У кого-нибудь есть совет?

ваше здоровье


person Yannick Schall    schedule 29.01.2014    source источник


Ответы (3)


Вы должны использовать .import.styl для файлов, которые вы будете импортировать. Исправлено в https://github.com/meteor/meteor/pull/1803.

person Jaro    schedule 04.05.2015

Это сложный вопрос. @imports работают с другими подключаемыми модулями стилуса, такими как nib, поскольку каждый файл запускает собственный набор подключаемых модулей. Однако для импорта в рамках проекта обычный способ не сработает, поскольку Meteor будет загружать каждый файл. Это обсуждается в следующей теме:

https://github.com/meteor/meteor/pull/462

Обходной путь заключается в том, чтобы импортировать файл вручную, либо с помощью

  • Поместите некоторые файлы для ручного импорта в каталог .import (или любой другой каталог, начинающийся с ., который игнорируется Meteor)
  • Поместите изменение расширения файла на что-то .stylimport, которое также игнорируется Meteor.

Обе вышеперечисленные проблемы связаны с тем, что Meteor не отслеживает изменения в файле во время разработки. Если вы хотите, чтобы эта проблема была исправлена, я призываю вас принять участие в этом обсуждении.

person Andrew Mao    schedule 29.01.2014
comment
Благодарю за разъяснение :) - person Yannick Schall; 30.01.2014
comment
Тем временем я перейду на меньшее с .lessimport. Это позволило Meteor сделать компиляцию. Я пробовал .stylimport, но стилус жалуется, когда я пытаюсь импортировать файл с @import 'file.stylimport' - person Yannick Schall; 30.01.2014
comment
Думаю, они над этим работают. Импорт стилуса отлично работает из корня папки, но не из клиентской или вложенной папки. - person Yannick Schall; 30.01.2014
comment
Хорошо, так что это действительно работает. Я переместил свой main.styl из папки client/stylesheets/ и @import 'client/stylesheets/file. Я не знаю, может ли это быть проблемой, но сейчас все хорошо для меня. Кроме того, мне не нужно использовать меньше :) - person Yannick Schall; 30.01.2014
comment
дальнейшее уточнение: main.styl @import 'client/stylesheets/all'. все.стиль @import 'file-1', @import 'file-2' и т.д... - person Yannick Schall; 30.01.2014
comment
@YannickSchall, вы уверены, что это не приводит к дублированию вашего CSS на стороне клиента? (Вы используете расширение .lessimport?) А как насчет перезагрузки горячего кода, определяет ли он, когда вы изменяете импортированный файл? - person Andrew Mao; 30.01.2014
comment
На самом деле вы правы, я ошибся. Я проверил вывод, и все файлы стилуса загружаются по отдельности, что является обломом. Я работал над предыдущим проектом с .lessimport, и все было в порядке. Тогда мне придется отказаться от стилуса :( - person Yannick Schall; 31.01.2014
comment
Я решил поместить все свои .styl файлы в папку stylesheets/.include/. Затем я запускаю стилус-часы как отдельный процесс и вывожу один файл css в папку stylesheets/. Таким образом, метеор игнорирует все @import и каждый раз автоматически перезагружает css. stylus -u autoprefixer-stylus -w .includes/main.styl -o ./ - person Yannick Schall; 31.01.2014
comment
@YannickSchall, вы должны написать все эти комментарии в ответе, чтобы кто-то другой мог собрать их воедино, когда у них также возникнет этот вопрос. - person Andrew Mao; 31.01.2014

Моя предыдущая попытка использовать @import со стилусом-метеором потерпела неудачу.

Пробовал оставить main.styl в корне приложения и загрузить импорт из /client/stylesheets. Я думал, что это сработало, но, как упомянул @AndrewMao, код дублируется.

Я работал над предыдущим проектом с расширением less и .lessimport. но для этого я хочу продолжать использовать стилус. Поэтому я решил переместить все свои .styl в client/stylesheets/.includes/. Я запускаю stylus -u autoprefixer-stylus -w .includes/main.styl -o ./ для вывода новой копии css каждый раз, когда наблюдатель за стилусом компилирует файлы. Таким образом, он сохраняет преимущества горячей перезагрузки метеора.

Хотелось бы, чтобы был способ указать параметр для стилуса-автопрефиксера cli. кто-нибудь знает, возможно ли это? в противном случае мне придется использовать приложение prepos.

person Yannick Schall    schedule 31.01.2014
comment
Все это может скоро появиться на метеоре, github.com/mquandalle/meteor/commit/ и github.com/meteor/meteor/pull/1803 - person Yannick Schall; 01.02.2014
comment
Умно импортировать такой скрытый файл. - person corysimmons; 12.08.2014