Grunt在最后一行丑化了奇怪的角色,导致没有变化

时间:2015-11-19 09:48:16

标签: javascript uglifyjs grunt-contrib-uglify

我在Grunt Watch上工作了一个月,它正在使用Uglify来缩小Javascript文件,并生成一个自昨天以来完美运行的.map文件。

当我现在执行grunt watch并保存Javascript文件时,Grunt按预期工作并运行将Javascript文件复制到公共区域并生成filename.jsfilename.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是uglifying并复制所有内容并且它正在工作!但只是这一次..下一次更改导致相同的奇怪字符,并且再次没有对浏览器中的文件进行任何更改。

就像我说的:我正在做的整个过程已经工作了好几个月!但是从昨天起它就不再起作用了。

我没有安装/修补任何东西。这种行为是从一个到另一个。

操作系统是:

Linux packer-virtualbox-iso-14225xxxxx 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1 x86_

我从昨天开始搜索,但无法找到任何解决方案或想法。

2 个答案:

答案 0 :(得分:1)

曾经有同样的问题。你应该在nginx中关闭你的sendfile。

sendfile off;

请参阅https://github.com/mitchellh/vagrant/issues/351#issuecomment-1339640

答案 1 :(得分:0)

我只是重新启动计算机,它现在似乎正常工作。

但如果有人建议在将来阻止这个或解决这个问题,我会很高兴听到它!如果在接下来的几天里没有答案,我会将答案标记为解决方案。