簡體   English   中英

jscs 錯誤:validateLineBreaks:filename.js 處的換行符無效

[英]jscs error : validateLineBreaks: Invalid line break at 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) {
------------------------------^

如何解決這個問題?

找到的解決方法:創建新文件並將所有內容復制到其中解決了問題。

仍然想知道發生這種情況的任何具體原因?

這可能是換行符的問題
您可能需要將"validateLineBreaks": null放入您的.jscsrc文件中

如果您的.jscsrs帶有規則"validateLineBreaks":"LF" ,則意味着您必須使用LF作為換行符,如果您使用其他換行符(例如CRLF ),則JSCS將給您以下錯誤:

validateLineBreaks:在api / v1 / base / index.js處無效的換行符:

有兩種方法可以解決問題,一種是更改jscs的規則,另一種是始終使用LF作為換行符。

您可以在此鏈接中找到LFCR之間的區別: https : //en.wikipedia.org/wiki/Newline

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM