2015-08-03 2 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- с-новая строка –

ответ

2

Если вы используете файл .js непосредственно в HTML или NodeJS, и вы полностью редактируете его, используя IDE, например WebStorm или Sublime и т. Д., Тогда нет реального преимущества.

Если позже в вашей сборке и развертывании вы используете что-то вроде Глотка для конкатенации несколько файлов .js как cache.js и edit.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, инструменты командной строки, такие как cat и wc -l, не дадут ожидаемых результатов.

И, как Przemysław Jan Wróbel привел меня, чтобы видеть, есть фантастический ответ здесь https://stackoverflow.com/a/25322168/266531

Смежные вопросы