JSHint - 换行符错误

3

JSHint 会在文件结尾没有换行符的情况下报错。以下是一个示例:

Missing line feed at file end at app/services/cache.js :
    14 |
    15 |  });
    16 |})();
-------------^

这个换行符的作用是什么?会有什么不同?

4
大多数情况下,这只是一个惯例,并且在使用命令行时具有优势。例如,如果您执行cat cache.js,那么有换行符会很好。否则,您的命令提示符将变成这样:})();james@localhost$ - amenthes
1
你可以在这里阅读更多相关信息:https://dev59.com/b3RB5IYBdhLWcg3wET1J - Przemysław Jan Wróbel
1个回答

1
如果直接在HTML或NodeJS中使用.js文件,并且使用WebStorm或Sublime等IDE对其进行编辑,则没有实际优势。如果将多个.js文件(如cache.js和edit.js)合并成一个master.js,然后在构建和部署过程中使用类似Gulp的工具,则cache.js的最后一行将与edit.js的第一行位于同一行。这就是如果cache.js没有换行符,并以以下内容结束。
  });
})();

假设你有另一个文件edit.js,你可以使用像Gulp这样的工具将其合并到一个master.js中,而edit.js的开头如下所示:

/* a really krufty set of code for editing barrels of kittens */
$().read(function() {
    // ... da code be here ...

那么你的最终 master.js 文件将会有如下一行。
})();/* a really krufty set of code for editing barrels of kittens */

这样做有什么问题吗?其实没有。这可能会使调试或稍后阅读时,根据相关代码行数变得更加困难。

正如amenthes所评论的那样,像catwc -l这样的命令行工具不会给出预期的结果。

并且,正如Przemysław Jan Wróbel让我看到的那样,在这里有一个很棒的答案https://dev59.com/b3RB5IYBdhLWcg3wET1J#25322168


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接