Проект Ember CLI выходит из строя при изменении CSS-файла. Я что-то упускаю из виду?

#ember-cli

#ember-cli

Вопрос:

Я довольно новичок в Ember, но использовал Ember CLI для создания проекта и уже в пути. Есть чему поучиться, но пока я очень впечатлен.

В любом случае, я понимаю, что проекты Ember CLI используют функции просмотра файлов broccoli для создания среды «непрерывной разработки». Я видел это в действии: когда я меняю шаблоны или файлы javascript, мои изменения сразу становятся очевидными, когда я переключаюсь обратно в браузер.

Но когда я вношу изменения в файлы css, мое приложение вылетает. Вывод консоли приведен ниже. Обратите внимание, что при перезапуске приложения ember server все работает так, как ожидалось. Так что это не какая-то ошибка синтаксиса CSS или тому подобное.

Итак… мне это кажется ошибкой, но я здесь настолько новичок, что мне интересно, не упускаю ли я чего-то очень простого.

Мы также не говорим о файлах SASS. Я получаю эту ошибку, если я изменяю один символ в очень маленьком /app/styles/app.css — сгенерированном ember new . Я также попытался переместить правило стиля в файл с именем my.css и оставить app.css пустым, за исключением одной строки: @import 'my.css'; No love .

Кто-нибудь может помочь? Заранее спасибо,

-Билли Б

 D:BitBucketdispatch-alertnode_modulesember-clinode_modulesbroccoli-sane-watchernode_modulessaneindex.js:246
Object.keys(this.dirRegistery[dir]).forEach(function(file, i, arr) {
     ^
TypeError: Object.keys called on non-object
at Function.keys (native)
at Watcher.detectChangedFile (D:BitBucketdispatch-alertnode_modulesember
-clinode_modulesbroccoli-sane-watchernode_modulessaneindex.js:246:10)
at Watcher.normalizeChange (D:BitBucketdispatch-alertnode_modulesember-c
linode_modulesbroccoli-sane-watchernode_modulessaneindex.js:280:10)
at FSWatcher.EventEmitter.emit (events.js:98:17)
at FSEvent.FSWatcher._handle.onchange (fs.js:1039:12)
 

Обновить:

Основываясь на помощи, которую я получил до сих пор (спасибо, ребята), и немного покопавшись, у меня есть теория: поскольку я могу редактировать файлы в других каталогах и других редакторах просто отлично, я делаю вывод, что app / styles просто нет в списке «просматриваемых» каталогов. Это может быть простой ошибкой из-за упущения, но мне интересно, не является ли это преднамеренным. Не будет ли этот каталог обрабатываться Compass и другими препроцессорами CSS, которые могут иметь свои собственные системы просмотра файлов или иным образом иметь проблемы с просматриваемыми файлами? Возможно, создатели ember-cli намеренно опустили этот каталог?

Как мне это выяснить? И что мне делать? Перейдите к проекту ember-cli и попросите помощи там? Я пытался найти, где может храниться список просматриваемых каталогов, но пока безуспешно.

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

1. Какую версию ember-cli вы используете?

2. используете ли вы sublime (3)? Я смог отследить эту ошибку вплоть до sublime. Когда я меняю файл app.css /.less в другом редакторе, он работает..

3. @JeroenHoek, я использую ember-cli 0.0.36.

4. @AyKarsi, я действительно использую Sublime 3. WebStorm дает те же результаты, но интересно, что когда я редактирую с помощью блокнота (я на Windows), все работает так, как ожидалось

5. На самом деле проблема в том, что приложение / стили просматриваются дважды: один раз через ./app и снова через ./app/styles . Я создал проблему в ember-cli с дополнительной информацией: github.com/stefanpenner/ember-cli/issues/1166

Ответ №1:

Обходным путем на данный момент является изменение index.js в строке 246 (согласно вашей ошибке и моим сообщениям об ошибках) в модуле sane и добавьте что-то вроде этого:

 if (!this.dirRegistery[dir]){
    console.log('error',' empty/unkown dir',dir);
    callback();
    return;
}
 

Не знаю, действительно ли это исправление. Каким-то образом это связано с sublime. (Кэширование, блокировка файла?)..

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

1. Я ввел этот код, и пустой / неизвестный каталог — это app / styles . (Кстати, спасибо за этот фрагмент). Основываясь на том, что я видел до сих пор, у меня есть теория. Смотрите мои правки и вопросы выше.