【发布时间】:2015-11-19 09:48:16
【问题描述】:
我从一个月以来一直在使用 Grunt Watch,它使用 Uglify 来缩小 Javascript 文件并生成一个 .map 文件,该文件从昨天开始就完美运行。
当我现在执行grunt watch 并保存 Javascript 文件时,Grunt 会按预期工作并运行将 Javascript 文件复制到公共区域并将 filename.js 和 filename.js.map 文件生成到公共区域的任务。
现在我正在刷新页面以查看我的更改,但浏览器似乎加载了旧的 Javascript 文件而不是我的更改(是的,我使用的版本类似于 filename.js?v=....)。
当我查看源代码并打开 Javascript 文件时,在文件末尾有以下奇怪的字符:
//# sourceMappingURL=filename.js.map��������������������
我使用 Chrome 作为我的浏览器和 PHPStorm 作为我的 IDE。
我尝试转换为 UTF-8,不带 BOM 的 UTF-8,将换行符更改为 LF 和 CRLF,但似乎没有任何解决方案。
我还显示了所有不可见的字符以查看是否有隐藏的东西,但什么都没有。
在生成的文件里面有我写入的console.log('Test');,但是在我在源代码中打开的同一个文件中,console.log('Test');不存在:
在任何 IDE 中打开文件:[public/js/filename.js]
... function(){l=!0,console.log("Test"),c.setTimeout(fun ...
在任何浏览器中打开文件:[/js/filename.js]
... function(){l=!0,c.setTimeout(fun ...
如果我删除公用文件夹中的 2 个文件,更改原始文件中的某些内容并保存,grunt 正在丑化并复制所有内容,它正在工作!但只是这一次.. 下一个更改导致相同的奇怪字符,并且浏览器中的文件再次没有更改。
就像我说的:我所做的整个过程工作了几个月!但是从昨天开始就不行了。
我没有安装/修补任何东西。这种行为从一秒钟到另一秒钟。
操作系统是:
Linux packer-virtualbox-iso-14225xxxxx 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1 x86_
我从昨天开始一直在搜索,但找不到任何解决方案或想法出了什么问题。
【问题讨论】:
-
你在使用 nginx 吗?
-
是的。我正在使用 nginx
-
我们遇到了同样的问题,给你 :D -> github.com/mitchellh/vagrant/issues/351#issuecomment-1339640
-
将其添加为答案 :)
标签: javascript uglifyjs grunt-contrib-uglify