修改任何文件后,js源映射消失

时间:2014-03-19 12:14:15

标签: coffeescript brunch

我有一个带有咖啡和早午餐的项目。

文件串联有以下配置:

files:
  javascripts:
    joinTo:
      'js/app.js': /^app(\/|\\)(?!templates)/
      'js/vendor.js': /^vendor/

  templates:
    joinTo:
      'js/templates.js': /^app\/templates/

当我只是克隆这个项目并构建它时,一切正常 - 我在开发者控制台中看到了所有源文件。 然后我在项目的任何文件中做了一些无害的修改(比如添加一个无用的变量声明或复制“return”语句),并发生奇怪的事情:

enter image description here

构建的代码有效且工作正常,但没有可用的源地图。

如果我完全禁用源地图,我仍然可以看到一些错误的行为:

enter image description here

同时,原始构建文件绝对有效(不能发布第三个链接,抱歉):它最后有'//#sourceMappingURL = app.js.map'行,没有任何尾随空格或无论如何。

任何想法是什么以及如何解决这个问题?

1 个答案:

答案 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而言,这不是问题。