fixmyjs - 自動修改 js 的 lint errors

JSHint 是由 community 維護的 static code analysis tool,會掃過你的 code,然後列出錯誤或潛在的問題,不過這不是本文的重點,所以剩下的就不介紹了。

在列出錯誤後,你可以選擇手動去修改,或是有些錯誤實在是太愚蠢了,根本可以透過程式來幫你改,於是就有了 fixmyjs
FixMyJS is a tool that automatically fixes mistakes—such as missing semicolon, multiple definitions, etc.—reported by JSHint.

他有提供幾種執行方式:

我是用 Nodejs 的方式,可以從 command line 去跑,比較方便,基本上執行時有三個模式可以選擇:
  • 直接修改
  • dry-run,列出 diff
  • 生成 patch 檔

我習慣讓他直接改,然後用 version control tool 來看他到底改了什麼,而這時有些改錯的就可以順便修正一下。所以這不是完美的,用的時候要自己注意。例如,這樣的 javascript code
"use strict";
 
var foo = {
  fun1: function() {},
  fun2: function() {}
  fun3: function() {}
}
由於 JSHint 會報出這樣的錯誤
test.js: line 6, col 3, Expected '}' to match '{' from line 3 and instead saw 'fun3'.
test.js: line 6, col 7, Missing semicolon.                                        
test.js: line 6, col 7, Expected '(end)' and instead saw ':'.                        
他覺得第 6 行少一個分號,但我想要的應該是第 5 行少一個逗點,於是根據 JSHint 的結果 fixmyjs 就把他改成了這樣,在錯誤的地方補了 "Missing semicolon" ...

沒有留言:

張貼留言

成為一個努力的人 -- 我的 MOOCs 之旅

記得在去年底的時候,我對自己許了一個新年願望:希望在新的一年,每一天都可以覺得比昨天的自己又更進步了,就如同網路上流傳的一句話「每天進步0.01!一年後你就比現在強大36倍!」。是的,我想成為一個努力的人,我想透過一連串的習慣與改變,讓自己更努力。 不過說真的,要一直努力,其...