我对Ember很陌生,但已经使用Ember CLI创建了一个项目,我正在路上。很多东西要学习,但到目前为止我印象非常深刻。
无论如何,我的理解是Ember CLI项目使用西兰花的文件观看功能来创建一个"持续开发"环境。我已经看到了它的实际效果:当我更改模板或javascript文件时,当我切换回浏览器时,我的更改立即显现。
但是当我对css文件进行更改时,我的应用程序崩溃了。控制台输出如下。请注意,当我使用ember server
重新启动应用时,一切都按预期工作。所以这不是一些CSS语法错误等。
所以...这对我来说似乎是个错误,但我在这里很新,我想知道我是否只是缺少一些非常基本的东西。
我们也不是在谈论SASS文件。如果我在非常小的/app/styles/app.css中更改单个字符,我会收到此错误 - 由ember new
生成的字符。我还尝试将样式规则移动到名为my.css的文件中,并将app.css留空,除了这一行:@import 'my.css';
没有爱。
有人可以帮忙吗?提前谢谢,
-Billy 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 /样式很明显不在"观看"目录。这可能是一个遗漏的简单错误,但我想知道它是否是故意的。这个目录是不是由Compass和其他CSS预处理器处理的,这些预处理器可能有自己的文件监视系统,否则会出现监视文件的问题?也许ember-cli的制造者故意省略了这个目录?
我如何找到这个?我该怎么办?前往ember-cli项目并在那里寻求帮助?我试图找到可能保存的目录列表的位置,但到目前为止还没有成功。
答案 0 :(得分:0)
目前的解决方法是在sane模块中更改第246行中的index.js(根据您的错误和我的错误消息)并添加如下内容:
if (!this.dirRegistery[dir]){
console.log('error',' empty/unkown dir',dir);
callback();
return;
}
不知道这是否是有效修复。不知何故,这与崇高有关。 (缓存,文件锁?)..