Ошибка 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