2015-12-09 415 views
4

我試圖用ESLint執行上一個項目的編碼風格,我有許多錯誤Irregular whitespace not allowed造成這樣的代碼之一:ESLint:解決快速路「不規則的空白不允許」

var a = b || 10; //note the 2 spaces between || and 10 
if (a === 10) { // again, 2 spaces between) and { 

我沒有找到任何方法可以輕鬆解決所有文件中的這個問題。 我認爲基本的正則表達式不起作用,因爲雙空格在某些情況下可能有效(JSON對象的列縮進,帶有軟標籤的縮進,字符串縮進)。

我嘗試了諸如js-beautify這樣的工具,但沒有找到任何選項來解決這個問題。有沒有可以幫助我的工具?

+0

當我粘貼代碼到http://danml.com/slim/,然後單擊工具>美化,它消除了額外的空間。 – dandavis

+0

我應該指定我正在尋找命令行工具 – IggY

+0

您使用的是什麼eslint規則? – Gyandeep

回答

1

如果你正在尋找一種方式來做到這一點在命令行中,你可以管的awkts輸出到tee(如果它們可用您的操作系統)。下面的選項將歸在你的文件中的空白,並覆蓋現有文件:

(!警告這將覆蓋的file.js內容)
選項#1:tr -s " " < file.js | tee file.js
選項2:awk '{$2=$2};1' file.js | tee file.js

假設你有一個file.js文件具有以下內容:

// there  are lots  of spaces 
// in  this   file 
var a = b  || 10; 
if ( a === 10 ) { 
//  .... 
} 

運行上面的命令之一後,file.js文件將是這樣的:

// there are lots of spaces 
// in this file 
var a = b || 10; 
if (a === 10) { 
// .... 
} 

如果你只是想打印的修正空白內容到終端的結果不覆蓋文件,只是不管道輸出到tee,像這樣:

選項#1:tr -s " " < file.js
選項2:awk '{$2=$2};1' file.js

否則,如果你想內容輸出到一個新文件

選項#1:tr -s " " < file.js | tee newfile.js
選項#2:awk '{$2=$2};1' file.js | tee newfile.js

輸出到一個相同的文件
選項#1:tr -s " " < file.js | tee file.js
選項#2:awk '{$2=$2};1' file.js | tee file.js

話雖這麼說,你應該永遠是超級小心,你在你的源代碼文件信任的命令行操作之前進行詳細的測試。

檢查更好的細節和更多的選擇了this post