警告:丑化失败。意外的标记:eof(未定义)

Warning: Uglification failed. Unexpected token: eof (undefined)

我将 uglify 与 grunt 结合使用,出于某种原因,它会在我的应用程序文件中发出警告:

Warning: Uglification failed. Unexpected token: eof (undefined). Line 15472 in dist/app.annotated.js Use --force to continue.

这是包含以下行的文件:

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',

除了这段代码很愚蠢之外,为什么我会收到这个警告?都检查过了..

正如评论中所建议的那样,问题在于行的结束方式。并非所有这些都以 \n.

的 UNIX 风格结尾

解决方案是使用 grunt-lineending 将文件转换为在 uglifying 之前使用正确的行结尾。

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