1

我对 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。

任何人都可以帮忙吗?提前致谢,

-比利B

D:\BitBucket\dispatch-alert\node_modules\ember-cli\node_modules\broccoli-sane-watcher\node_modules\sane\index.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:\BitBucket\dispatch-alert\node_modules\ember
-cli\node_modules\broccoli-sane-watcher\node_modules\sane\index.js:246:10)
at Watcher.normalizeChange (D:\BitBucket\dispatch-alert\node_modules\ember-c
li\node_modules\broccoli-sane-watcher\node_modules\sane\index.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 项目并在那里寻求帮助?我试图找到可以保存监视目录列表的位置,但到目前为止还没有成功。

4

1 回答 1

0

目前的解决方法是在 sane 模块中更改第 246 行中的 index.js(根据您的错误和我的错误消息)并添加如下内容:

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

不知道这是否是有效的修复。不知何故,这与崇高有关。(缓存,文件锁定?)..

于 2014-06-25T15:26:18.707 回答