我有一个带有咖啡和早午餐的项目。
文件串联有以下配置:
files:
javascripts:
joinTo:
'js/app.js': /^app(\/|\\)(?!templates)/
'js/vendor.js': /^vendor/
templates:
joinTo:
'js/templates.js': /^app\/templates/
当我只是克隆这个项目并构建它时,一切正常 - 我在开发者控制台中看到了所有源文件。 然后我在项目的任何文件中做了一些无害的修改(比如添加一个无用的变量声明或复制“return”语句),并发生奇怪的事情:
构建的代码有效且工作正常,但没有可用的源地图。
如果我完全禁用源地图,我仍然可以看到一些错误的行为:
同时,原始构建文件绝对有效(不能发布第三个链接,抱歉):它最后有'//#sourceMappingURL = app.js.map'行,没有任何尾随空格或无论如何。
任何想法是什么以及如何解决这个问题?
答案 0 :(得分:0)
我发现我错了。
首先。关于浏览器加载的损坏文件。
正如我在上面的评论中所注意到的,问题出在环境中。我的文件由nginx提供,在Vagrant VM中运行 - 似乎本地文件和VM之间的同步被破坏了。
我的解决方案如下:
在VirtualBox中禁用缓存(计算机设置 - &gt;选项卡&#39;存储&#39; - >选择控制器 - &gt;取消选中&#39;使用主机I / O缓存&#39;); < / p>
编辑nginx配置并设置&#39; sendfile off&#39;选项&#39; http&#39;部分。
不确定这是绝对正确的解决方案,但是在浏览器加载了正确的文件之后。
二。关于Chrome中app.js的地图仍然不存在。
这只是我的注意力不集中。我正在使用Webstorm,并且它会定期启用观察者为我打开的coffeescript文件。如果你同意(我不小心错过了什么&#39;同意&#39;按钮而不是&#39; Dismiss&#39;),它将自己编译该文件,创建.map和.js文件和原产地.coffee - 当然,无论你的早午餐还是其他任何设置。这些附加文件显示为.coffee文件的子文件夹,因此很可能您没有注意到它们。确切地说,Chrome不喜欢这些文件。在您全部删除之前,Chrome不会显示任何源地图,无论是早午餐创建的.map文件 - 而对于FF而言,这不是问题。