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

Coffeescript js源映射在修改任何文件后消失,coffeescript,brunch,Coffeescript,Brunch,我有一个关于咖啡脚本和早午餐的项目 有以下用于文件连接的配置: files: javascripts: joinTo: 'js/app.js': /^app(\/|\\)(?!templates)/ 'js/vendor.js': /^vendor/ templates: joinTo: 'js/templates.js': /^app\/templates/ 当我克隆这个项目并构建它时,一切正常——我在开发者控制台中看到了我的所有

我有一个关于咖啡脚本和早午餐的项目

有以下用于文件连接的配置:

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

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

构建的代码是有效的,工作正常,但没有可用的源代码映射

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

同时,源构建文件是绝对有效的(抱歉,不能发布第三个链接):它的末尾有“/#sourceMappingURL=app.js.map”行,没有任何尾随空格或其他任何内容


你知道这是什么吗?如何解决这个问题?

我发现我错在哪里了

首先。关于浏览器加载的损坏文件

正如我在上面的评论中所注意到的,问题在于环境。我的文件由nginx提供服务,运行在Vagrant VM中——看起来本地文件和VM之间的同步被破坏了

我的解决办法如下:

  • 禁用VirtualBox中的缓存(机器设置->选项卡“存储”->选择控制器->取消选中“使用主机I/O缓存”)

  • 编辑nginx配置并在“http”部分设置“sendfile off”选项

不确定这是绝对正确的解决方案,但在浏览器加载正确的文件之后

第二。关于Chrome中仍然缺少app.js的地图


这只是我的疏忽。我正在使用Webstorm,它定期建议为我打开的coffeescript文件启用watcher。如果您同意(我不小心遗漏了“同意”按钮而不是“驳回”),它将自己编译该文件,在origin.coffee旁边创建.map和.js文件——当然,不管您的早午餐或其他设置如何。这些附加文件显示为.coffee文件的子文件夹,因此您很可能没有注意到它们。这些文件正是Chrome不喜欢的。除非您将其全部删除,否则Chrome将不会显示任何源地图,无论是brunch创建的.map文件,而对于FF来说,这不是问题。

您能在我们的GitHub上创建一个问题吗?好的,看来brunch是无罪的。所以不需要任何问题。坏文件的问题在我的环境中的某个地方。但有时类似的问题会再次发生——而且只发生在Chrome上。my app.js没有源映射,模板和供应商的映射已正确加载(现在加载的app.js文件有效)。这真的没有规律可言:我可以工作一整天,只是在应用程序的随机刷新地图消失之后。这有什么魔力?