Следите за файлом изменений в пакете без использования api.add_files()

У меня есть несколько миксинов стилуса в пакете Meteorite, которые я не хочу добавлять с помощью api.add_files(). Вместо этого их нужно @import добавить в приложение из каталога пакетов, чтобы получить доступ к миксинам. Однако Meteor не будет следить за изменениями в этих файлах, что немного раздражает разработку и тестирование (нужно либо перезапустить сервер, либо изменить добавленный файл).

Есть ли способ заставить Meteor отслеживать изменения в файле, даже если он не включен напрямую в приложение/пакет?


person sbking    schedule 26.12.2013    source источник
comment
Почему нельзя использовать add_files? Если расширение получает Meteor, попробуйте другое расширение.   -  person matb33    schedule 26.12.2013
comment
@matb33 matb33 Meteor выбирает файлы с помощью стилуса и @import, но не просматривает файлы, не объявленные с помощью .add_files, на предмет любых изменений, которые, как он предполагает, не являются частью пакета. У меня тоже есть проблемы с этим, но я просто добавил их все с помощью .add_files   -  person Tarang    schedule 27.12.2013
comment
@matb33 matb33 У меня есть некоторые переменные в моих файлах стилуса, которые объявлены с помощью ?= (по умолчанию равно). Эти переменные используются для установки некоторых глобальных стилей. Идея заключалась в том, что пользователь может установить эти переменные, а затем импортировать файлы стилуса пакета, чтобы они могли переопределить глобальные переменные настроек. Я понял, что это не обязательно для примесей, но, похоже, это необходимо для обычных стилей, зависящих от переменных. Я полагаю, что могу просто определить эти обычные стили как миксин, который пользователь должен будет применить к своему body стилю после установки своих переменных, а не использовать @import   -  person sbking    schedule 27.12.2013
comment
@Akshat Да, это была почти моя проблема. Я могу добавить их в add_files() только для функции on_test, которая помогает при тестировании. Я могу просто реорганизовать стилус, чтобы все было миксином, позволяющим пользователям переопределять переменные, а затем я мог использовать add_files() в on_use.   -  person sbking    schedule 27.12.2013


Ответы (1)


(Я предполагаю, что вы используете смарт-пакет стилуса, чтобы этот ответ имел смысл)

Я предлагаю вам пойти по тому же маршруту, который рекомендуется для пакета LESS: переименовать нужные файлы с @import на .stylimport и выполнить для них add_files тоже.

Кроме того, вы можете ссылаться на эти .stylimport файлы вне смарт-пакета как таковые:

@import "/packages/name-of-your-package/thefilename.stylimport"

person matb33    schedule 27.12.2013
comment
Спасибо, кажется, это правильный способ сделать это. Интересно, что пакет LESS фактически регистрирует .lessimport файлов в наблюдателе зависимостей, просто ничего с ними не делая: github.com/meteor/meteor/blob/devel/packages/less/plugin/ — однако пакет Stylus не делает этого для .stylimport файлов, поэтому .stylimport файлов в приложении (в отличие от пакета) не будут отслеживаться изменения. Возможно, это недоработка в упаковке Stylus? - person sbking; 31.12.2013