【问题标题】:Grunt Uglify weird characters at last line leading to no changesGrunt Uglify 最后一行的奇怪字符导致没有变化
【发布时间】:2015-11-19 09:48:16
【问题描述】:

我从一个月以来一直在使用 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 正在丑化并复制所有内容,它正在工作!但只是这一次.. 下一个更改导致相同的奇怪字符,并且浏览器中的文件再次没有更改。

就像我说的:我所做的整个过程工作了几个月!但是从昨天开始就不行了。

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

操作系统是:

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

我从昨天开始一直在搜索,但找不到任何解决方案或想法出了什么问题。

【问题讨论】:

标签: javascript uglifyjs grunt-contrib-uglify


【解决方案1】:

以前也有同样的问题。你应该在 nginx 中关闭你的 sendfile。

sendfile off;

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

【讨论】:

  • 感谢@Christophe,我会在它再次发生后立即对其进行测试,并将您的答案标记为正确,如果它有效的话。这可能需要一段时间 :)
【解决方案2】:

我刚刚重新启动我的电脑,它现在似乎可以工作了。

但是,如果有人提出建议以防止这种情况发生或将来解决此问题,我很高兴收到您的来信!如果在接下来的几天内没有答案,我会将我的答案标记为解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多