2015-08-03 47 views
3

JSHint抱怨,当文件末尾没有换行时。这里是一个例子:JSHint - 换行错误

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

有这个换行的目的是什么?它会有什么不同?

+4

一个梦幻般的答案它主要是一个惯例,当你在命令行上工作,它具有优势。例如,如果您执行'cat cache.js',如果换行符在那里,就很好。否则,你的命令提示符将如下所示:'})(); james @ localhost $' – amenthes

+1

你可以在这里阅读更多关于它的信息:http://stackoverflow.com/questions/729692/why-should-files-end-与-A-换行符 –

回答

2

如果您直接在HTML或NodeJS中使用.js文件,并且您完全使用IDE的WebStorm或Sublime等进行编辑,那么没有真正的优势。

如果您的构建和部署使用的是类似咕嘟咕嘟来连接多个.js文件像cache.jsedit.js后来到了一起一个master.js,那么cache.js最后一行将是在同一行的第一行的edit.js

也就是说,如果cache.js,因为你写的,没有换行,并与下面的

}); 
})(); 

结束,说你有另一个文件edit.js你连接成一个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://stackoverflow.com/a/25322168/266531