JSLint

JSLint是一個在软件开发中確認JavaScript源代码代码风格靜態程序分析,可透過网络应用程序jslint.com及命令行界面來進行分析[2],由道格拉斯·克羅克福特於2002年建立[3]

JSLint
原作者道格拉斯·克羅克福特
開發者道格拉斯·克羅克福特
首次发布2002年2002
当前版本
  • 2022.3.30 (2022年3月30日;穩定版本)[1]
源代码库
编程语言JavaScript
操作系统跨平臺
语言英文
类型靜態程式分析
许可协议Unlicense
网站www.jslint.com

授權條款

JSLint曾使用由MIT許可證衍伸而來的JSLint許可證[4][5],兩者的差別在於JSLint許可證多出了一句話"The Software shall be used for Good, not Evil."。

根據自由软件基金会的說法,該條款使JSLint變相成為专有软件[6]。此條款同時阻止了JSLint相關的軟體託管在Google Code[5],也阻止了Debian自由軟體儲存庫綑綁JSLint[7]。根據Crockford的說法,基於此一限制,IBM在2011年向Crockford申請了惡作劇用的許可證,以便其客戶可以使用JSLint[8][9][10]

2021年起,JSLint改使用自由软件基金会开放源代码促进会批准的Unlicense許可證。

影響

多數人認為JSLint是第一個JavaScript語法分析器,並激發了往後其他類似工具的誕生[11][12]

2011年,Anton Kovalyov創建了一個分支,並命名為JSHint[13][14][15]。作者解釋,創建JSHint的原因是想為開發人員提供一種“不那麼執著”和“更容易配置”的方式來分析代碼[16][17][18]

2013年,Nicholas C. Zakas創建了ESLint[12]。作者解釋,由於JSLint和JSHint都無法創建額外的編程規範代码风格規則,在為JSHint做出貢獻後,Zakas決定創建一個新的語法分析器。ESLint所有規則都是可配置的,並且可以在執行期定義或加載其他規則[19]。同時,ESLint還支持分析最新版本的JavaScript,即ECMAScript 2015及更高版本。

2014年,Marat Dulin創建了“JSCS”[20]。2016年,JSCS團隊併入了ESLint項目,同時停止JSCS工具的維護[21][22][23]

2015年,SitePoint發布了一項對ESLint、JSLint、JSHint和JSCS四個項目的比較,其結果為ESLint優於其他三個語法分析器[24]。2016年,CodeKit還稱讚ESLint“發現了更多問題”、“可配置性更高”以及成為JavaScript語法分析器的“行業標準”[11]

2016年,Palantir Technologies建立了TSLint[25],即TypeScript專用的ESLint[26]。2019年,TSLint併入ESLint,成為ESLint的插件typescript-eslint[27][28]

參見

  • 靜態程式碼分析工具列表

參考文獻

  1. https://github.com/jslint-org/jslint/releases/tag/v2022.3.30.
  2. . www.hacksparrow.com. January 2013 [2018-02-26]. (原始内容存档于2018-02-27).
  3. . GitHub. 2010-11-12 [2018-02-25]. (原始内容存档于2021-04-13). Copyright 2002 Douglas Crockford. All Rights Reserved Wrrrldwide and Beyond!
  4. . [2022-07-12]. (原始内容存档于2013-06-09).
  5. . wonko.com. Ryan Grove. 2008-12-08 [2018-02-26]. (原始内容存档于2023-01-14).
  6. . Free Software Foundation. [2022-07-12]. (原始内容存档于2010-07-24).
  7. . www.mail-archive.com. [2022-07-12]. (原始内容存档于2022-12-05).
  8. . Hasen Judy. 2011-02-13 [2018-02-26]. (原始内容存档于2013-02-03).
  9. . YouTube. 2011-08-11 [2018-02-25]. (原始内容存档于2021-12-15). I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.
  10. The JSON Saga by Douglas Crockford
  11. . codekitapp.com. 2016-12-10 [2018-02-25]. (原始内容存档于2018-02-26). JSLint is the original JavaScript syntax checker.
  12. Zakas, Nicholas C. . nczonline.net. 16 July 2013 [2018-02-26]. (原始内容存档于2018-02-26). JSLint was the state of the art in JavaScript linting technology
  13. . anton.kovalyov.net. Anton Kovalyov. 2011-02-20 [2018-02-26]. (原始内容存档于2011-02-24). [JSLint] has gotten uncomfortably opinionated
  14. . badassjs.com. Devon Govett. 18 February 2011 [2011-02-21]. (原始内容存档于21 February 2011). [..] JSLint was getting a bit too opinionated [..]
  15. . codekitapp.com. 2018-02-26 [2018-02-26]. (原始内容存档于2018-02-26). designed to be less opinionated and more configurable
  16. Elliot, Ian. . www.i-programmer.info. 21 February 2011 [2018-02-26]. (原始内容存档于2011-02-23).
  17. Zakas, Nicholas C. . Twitter. 18 December 2017 [2018-02-26]. (原始内容存档于2022-07-08). JSLint complaint: not configurable enough. JSHint complaint: still not configurable enough [..]
  18. . Scott Logic. [2018-02-26]. (原始内容存档于2018-02-26).
  19. . Rangle.io Blog. 2015-03-26 [2018-02-26]. (原始内容存档于2019-02-09).
  20. Dulin (@mdevils), Marat. . frontendbabel.info. 21 April 2014 [2018-02-26]. (原始内容存档于2021-10-18).
  21. . ESLint - Pluggable JavaScript linter. [2018-02-26]. (原始内容存档于2022-12-07).
  22. . ESLint - Pluggable JavaScript linter. [2018-02-26]. (原始内容存档于2022-11-28).
  23. . ESLint. [2022-07-12]. (原始内容存档于2021-04-13).
  24. Hartikainen, Jani. . SitePoint. 2015-03-05 [2018-02-26]. (原始内容存档于2022-12-05).
  25. . npm. [2022-07-12]. (原始内容存档于2023-01-02).
  26. . palantir.github.io. [2022-07-12]. (原始内容存档于2022-12-21).
  27. . Medium. June 5, 2019.
  28. . GitHub. [2022-08-15]. (原始内容存档于2023-01-16).

延伸閱讀

  • Doernhoefer, Mark. . SIGSOFT Softw. Eng. Notes. 2006, 31 (4): 16–24 [2010-03-12]. doi:10.1145/1142958.1142972.
  • Appendix C of Crockford, Douglas. 1. O'Reilly Media. May 2008. ISBN 0-596-51774-2.
  • Section 'Performing JavaScript Syntax Checking with JSLint', Pages 143-145 of Asleson, Ryan; Nathaniel T. Schutta. 1. Apress. 2005-10-14. ISBN 1-59059-582-3.

外部連結

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.