1

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) {
------------------------------^

如何解决这个问题?

找到解决方法:创建新文件并将所有内容复制到其中解决了问题。

仍然想知道发生这种情况的任何具体原因吗?

4

3 回答 3

1

这可能是换行符
的问题 您可能希望将其"validateLineBreaks": null放入.jscsrc文件中

于 2016-02-08T16:59:52.533 回答
1

如果您的 .jscsrs 带有规则 "validateLineBreaks":"LF",则意味着您必须LF用作换行符,如果您使用其他换行符(例如CRLF),JSCS 会给您一个错误,例如:

validateLineBreaks: api/v1/base/index.js 处的换行符无效:

解决这个问题有两种方法,一种是改变jscs的规则,另一种是始终使用LF作为换行符。

您可以在此链接中找到和之间的区别: LFhttps : //en.wikipedia.org/wiki/NewlineCR

于 2017-03-20T01:51:13.077 回答
0

tldr; 在 LF 和 CRLF 之间进行更改,如果您使用的是 VScode,您可以通过单击右下角的选项来执行此操作: 单击此处并选择顶部的 porper 选项

详细:正如番茄所说,问题可能是您的 IDE 的换行格式与 jscs 不兼容,来自 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

于 2021-10-22T18:53:53.920 回答