JSLint

维基百科,自由的百科全书
跳转到导航 跳转到搜索
JSLint
File:Jslint logo 512x512 v2022.5.3 svg.svg
原作者道格拉斯·克羅克福特
開發者道格拉斯·克羅克福特
首次发布2002年,​24年前​(2002
当前版本v2022.3.30(2022年3月30日,​4年前​(2022-03-30
源代码库
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
编程语言JavaScript
引擎
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    操作系统跨平臺
    语言英文
    类型靜態程式分析
    许可协议Unlicense英语Unlicense
    网站www.jslint.com

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

    授權條款[编辑]

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

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

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

    影響[编辑]

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

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

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

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

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

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

    參見[编辑]

    參考文獻[编辑]

    1. ^ JSLint from the Command Line. www.hacksparrow.com. January 2013 [2018-02-26]. (原始内容存档于2018-02-27). 
    2. ^ first commit. GitHub. 2010-11-12 [2018-02-25]. (原始内容存档于2021-04-13). Copyright 2002 Douglas Crockford. All Rights Reserved Wrrrldwide and Beyond! 
    3. ^ JSLint source file, including license. [2022-07-12]. (原始内容存档于2013-06-09). 
    4. ^ 4.0 4.1 JSMin isn't welcome on Google Code. wonko.com. Ryan Grove. 2008-12-08 [2018-02-26]. (原始内容存档于2023-01-14). 
    5. ^ Various Licenses and Comments About Them. Free Software Foundation. [2022-07-12]. (原始内容存档于2010-07-24). 
    6. ^ Re: The Software shall be used for Good, not Evil.. www.mail-archive.com. [2022-07-12]. (原始内容存档于2022-12-05). 
    7. ^ IBM and its minions .... Hasen Judy. 2011-02-13 [2018-02-26]. (原始内容存档于2013-02-03). 
    8. ^ Douglas Crockford: The JSON Saga. 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. 
    9. ^ The JSON Saga by Douglas Crockford
    10. ^ 10.0 10.1 Help: JSLint. codekitapp.com. 2016-12-10 [2018-02-25]. (原始内容存档于2018-02-26). JSLint is the original JavaScript syntax checker. 
    11. ^ 11.0 11.1 Zakas, Nicholas C. Introducing ESLint. nczonline.net. 16 July 2013 [2018-02-26]. (原始内容存档于2018-02-26). JSLint was the state of the art in JavaScript linting technology 
    12. ^ Why I forked JSLint to JSHint. anton.kovalyov.net. Anton Kovalyov. 2011-02-20 [2018-02-26]. (原始内容存档于2011-02-24). [JSLint] has gotten uncomfortably opinionated 
    13. ^ JSHint: A Community Driven Fork of JSLint. badassjs.com. Devon Govett. 18 February 2011 [2011-02-21]. (原始内容存档于21 February 2011). [..] JSLint was getting a bit too opinionated [..] 
    14. ^ Help: JSHint. codekitapp.com. 2018-02-26 [2018-02-26]. (原始内容存档于2018-02-26). designed to be less opinionated and more configurable 
    15. ^ Elliot, Ian. JSHint - the (gentler) JavaScript code quality tool. www.i-programmer.info. 21 February 2011 [2018-02-26]. (原始内容存档于2011-02-23). 
    16. ^ Zakas, Nicholas C. Tweet from Nicholas C. Zakas (@slicknet), creator of ESLint. Twitter. 18 December 2017 [2018-02-26]. (原始内容存档于2022-07-08). JSLint complaint: not configurable enough. JSHint complaint: still not configurable enough [..] 
    17. ^ JSLint vs JSHint. Scott Logic英语Scott Logic. [2018-02-26]. (原始内容存档于2018-02-26). 
    18. ^ Understanding the Real Advantages of Using ESLint. Rangle.io Blog. 2015-03-26 [2018-02-26]. (原始内容存档于2019-02-09). 
    19. ^ Dulin (@mdevils), Marat. JSCS: JavaScript Code Style — Frontend Babel. frontendbabel.info. 21 April 2014 [2018-02-26]. (原始内容存档于2021-10-18). 
    20. ^ Welcoming JSCS To ESLint. ESLint - Pluggable JavaScript linter. [2018-02-26]. (原始内容存档于2022-12-07). 
    21. ^ JSCS End of Life. ESLint - Pluggable JavaScript linter. [2018-02-26]. (原始内容存档于2022-11-28). 
    22. ^ Future of Typescript Linting. ESLint. [2022-07-12]. (原始内容存档于2021-04-13). 
    23. ^ Hartikainen, Jani. A Comparison of JavaScript Linting Tools. SitePoint. 2015-03-05 [2018-02-26]. (原始内容存档于2022-12-05). 
    24. ^ tslint. npm. [2022-07-12]. (原始内容存档于2023-01-02). 
    25. ^ TSLint. palantir.github.io. [2022-07-12]. (原始内容存档于2022-12-21). 
    26. ^ TSLint in 2019. Medium. June 5, 2019. 
    27. ^ Roadmap: TSLint -> ESLint · Issue #4534 · palantir/tslint. GitHub. [2022-08-15]. (原始内容存档于2023-01-16). 

    延伸閱讀[编辑]

    外部連結[编辑]