最近都在研究跟使用跟 lint 有關的 NodeJS 工具,
所謂 lint 請參照上面維基百科的說明,
目前我常用的工具有 jslint, jshint, jsonlint 還有一些 有趣的 utility,
以下是其簡單介紹。
jslint 對我來說是第一個知道的 lint 工具,
它是由 JavaScript 的大師 Douglas Crockford 貫徹其意志所定出的一套 JavaScript 語法與格式的規範,
它的網路介面網址為 http://www.jslint.com/
也可以在 github 上找到 jslint 的原始碼,
寫在這篇文章當然是有 NodeJS 版本,
請用 $ sudo npm i jslint -g 來安裝,
接下來就可以用下面的指令來檢測 JavaScript 。
jslint [--indent] [--maxerr] [--maxlen] [--predef] [--anon] [--bitwise] [--browser] [--cap] [--continue] [--css] [--debug] [--devel] [--eqeq] [--es5] [--evil] [--forin] [--fragment] [--newcap] [--node] [--nomen] [--on] [--passfail] [--plusplus] [--properties] [--regexp] [--rhino] [--undef] [--unparam] [--sloppy] [--stupid] [--sub] [--vars] [--white] [--widget] [--windows] [--json] [--color] [--terse] [--] <scriptfile>...
(話說很懷念那年和大師一起吃鼎泰豐的日子 .Orz)
JSHint 算是 JSLint 的分支,
同樣有 網頁介面 http://www.jshint.com/
原始碼可以在 https://github.com/jshint/jshint 閱讀,
透過
$ sudo npm i jshint -g
可以安裝 nodejs 版本。
到底 JSHint 和 JSLint 有什麼不同,
我目前的看法是這是 JSLint 的彈性版本,
如果 JSLint 是 Douglas 的意志,
JSHint 則是 變成 JSHint Community 的意識。
JSHint 的主要維護者 Anton 在他的部落格有說明 JSHint 的誕生緣由。
JSHint 的偏好設定可以吃 json 格式的檔案,
事實上 json 算是 JavaScript 的好朋友。
不過我有時總會漏打一個逗點或大中括號,
這個時候 jsonlint 就登場了!
jsonlint 同樣有網路介面可以直接用
http://jsonlint.com/
除此之外,
當然也有 NodeJS 的 package,
請用 $ npm install jsonlint -g 來安裝,
使用方式也很簡單,
就是 $jsonlint json檔案 即可
這裡是 它的 github 網址 https://github.com/zaach/jsonlint/
那這樣子,
有沒有 csslint 呢!
答案是有的
https://github.com/stubbornella/csslint
然後 twitter 也推了一套自己的工具 recess ,
https://github.com/twitter/recess
http://twitter.github.com/recess/
最後我們要怎麼修掉我們 JavaScript 的 lint 錯誤呢,
也許可以試試 fixmyjs 這個 package ,
不過 話說在前面 fixmyjs 不能修掉所有錯誤,
也可能會 弄壞掉 code,
不過幸好它有 dry-run 模式,
也算是有幫助的了!
各位開發者朋友,
你們都用什麼工具來輔助開發呢?
歡迎來分享囉 :)
Technorati Tags: Nodejs, javascript, lint, jslint, jshint, csslint, jsonlint, recess, fixmyjs