Javascript 警告:丑化失败。意外令牌:eof(未定义)

Javascript 警告:丑化失败。意外令牌:eof(未定义),javascript,uglifyjs,Javascript,Uglifyjs,我在grunt中使用uglify,出于某种原因,它会在我的应用程序文件中抛出一条警告: 警告:丑化失败。意外标记:eof(未定义)。线 dist/app.annotated.js中的15472使用--force继续 这是包含以下行的文件: 15469 $scope.selectLocation = function () { 15470 $("#locationIframe").html(''); 15471 if (($scope.LeadObj.address1

我在grunt中使用uglify,出于某种原因,它会在我的应用程序文件中抛出一条警告:

警告:丑化失败。意外标记:eof(未定义)。线 dist/app.annotated.js中的15472使用--force继续

这是包含以下行的文件:

15469   $scope.selectLocation = function () {
15470       $("#locationIframe").html('');
15471       if (($scope.LeadObj.address1 == "" || $scope.LeadObj.address1 == null) && $scope.LeadObj.ip != null) {
15472           $scope.showLocation = 'loading';
15473           $.ajax({
15474               type: 'GET',

除了这个代码很愚蠢之外,为什么我会收到这个警告?正如评论中所建议的那样,问题在于这些行是如何结束的。并非所有这些都以UNIX风格的
\n
结尾

解决方案是使用
grunt-lineending
将文件转换为使用正确的行尾,然后再进行丑化

lineending: {
    dist: {
        options: {
            overwrite: true,
            eol: 'lf'
        },
        files: {
            '': ['dist/**/*.js']
        }
    }
},

EOF
表示文件在仍希望看到更多代码时结束。有15475行吗?@Pointy还有数千行。使用app.annotated.js对我来说是可行的(在控制台中没有错误),但由于某种原因,它无法使我感到丑陋。这种情况通常表明代码中有一个不可见的字符。问题中的代码中似乎没有,但如果它不是纯粹的复制和粘贴(或者在某些情况下,如果是),它可能会被删除。@t.J.Crowder好的,我将我在这里编写的代码复制回我的源文件,但仍然存在相同的问题,这意味着一个不可见的字符不能删除可能你应该只做wc-l dist/app.annotated.js。如果行计数超过15472,您可能希望在执行
ls-l
vs文件中的实际字节时检查文件中列出的字节数。