Ошибка jscs: validateLineBreaks: недопустимый разрыв строки в filename.js

После grunt-jscs это дает следующие ошибки для base/index.js файл.

Running "jscs:src" (jscs) task
validateLineBreaks: Invalid line break at api/v1/base/index.js :
     1 |var errors = require('restify-errors');
-----------------------------------------------^
     2 |function Base(Model) {

После того как я удалю var errors = require('restify-errors'); эта строка начинает давать ошибку ниже

Running "jscs:src" (jscs) task
validateLineBreaks: Invalid line break at api/v1/base/index.js :
     1 |function Base(Model) {
------------------------------^

Как решить это?

Обходной путь найден: созданный новый файл и скопированное на него все содержимое решает проблему.

Все еще хотите узнать какую-либо конкретную причину, почему это происходит?

3 ответа

Это, вероятно, проблема с переносами строк
Вы можете поставить "validateLineBreaks": null в ваш .jscsrc файл

Если ваш.jscsrs с правилом "validateLineBreaks":"LF", Это означает, что вы должны использовать LF как разрывы строк, если вы используете другой символ перевода строки (например, CRLF), АОС выдаст вам ошибку типа:

validateLineBreaks: недопустимый разрыв строки в api/v1/base/index.js:

Существует два способа решения проблемы: один - изменить правило jscs, а другой - всегда использовать LF как разрывы строк.

Вы можете найти разные между LF а также CR по этой ссылке: https://en.wikipedia.org/wiki/Newline

tldr; Переключение между LF и CRLF, если вы используете VScode, вы можете сделать это, щелкнув опцию в правом нижнем углу:

Подробно: как сказал помидор, проблема, вероятно, в том, что формат разрыва строки вашей IDE несовместим с jsc, из документации eslint:

Разрывы строк (новые строки), используемые в операционной системе Windows, обычно представляют собой символы возврата каретки (CR), за которыми следует перевод строки (LF), что делает его переводом строки возврата каретки (CRLF), тогда как Linux и Unix используют простой перевод строки (LF). Соответствующие управляющие последовательности: «\ n» (для LF) и «\ r \ n» для (CRLF).

Вы также можете попробовать добавить *.js text eol=lf в ваш файл .gitattributes, если вы знаете, что это никак не повлияет на проект.

Вы можете узнать больше о проблеме здесь: https://eslint.org/docs/rules/linebreak-style

Другие вопросы по тегам