華文網

JavaScript開發工具大全

為了保證可讀性,本文採用意譯而非直譯。另外,本文版權歸原作者所有,翻譯僅用於學習。

簡介

2017年1月,Stack Overflow年度開發者調研一共訪問了64000個程式師,發現JavaScript已經連續5年成為最流行的程式設計語言。

這篇博客將介紹一些常用的JavaScript開發工具:

構建&自動化

IDE&編輯器

文檔

測試

調試

安全

代碼優化&分析

包管理

構建 & 自動化

Webpack對JavaScript應用依賴的所有模組進行靜態分析,生成依賴圖,然後將它們打包成數個靜態檔。

Grunt以將重複耗時的任務自動化。Grunt的生態系統非常大,

有超過6010個外掛程式。

Gulp發佈於Grunt之後,採用了完全不同的方式,使用JavaScript函式定義任務。它有超過2770個外掛程式,並且提供了更好的控制。

Browserify使得開發者可以在流覽器使用CommonJS模組。開發者像在node環境一樣,通過require('modules')來組織模組之間的引用和依賴,Browserify將這些依賴打包成流覽器可以直接引用的JS檔。

Brunch非常簡單,速度很快。Brunch的設定檔非常簡單,入門文檔非常詳細。Brunch會自動生成Source Map,方便了開發者Debug。

Yeoman可以用於任何程式設計語言(JavaScript, Python, C#, Java, etc.)。

它是前端開發的腳手架,有6213個外掛程式。

IDE & 編輯器

WebStorm是一款強大的JavaScript IDE。它支援多種框架和CSS語言,包括前端,後端,移動端以及桌面應用。WebStorm可以無縫整合協力廠商工具,例如構建構建、語法檢查構建linter等等。它提供了代碼補全,即時錯誤監測,導航,內置控制台,各種外掛程式等一系統功能。

Atom是GitHub團隊開發的。開發者可以很容易地對Atom進行自訂。Atom自帶了一個包管理工具,代碼補全,

檔案系統流覽器,支援多個平臺以及其他有用的功能。

Visual Studio Code是微軟開發的IDE,支援TypeScript。它提供了代碼補全,語法高亮,支援Git命令等等。另外,它還有非常多的外掛程式。

Brackets是一個羽量級的開源編輯器。它專注於視覺化工具,可以幫助開發者開發Web應用。Brackets支持即時預覽以及行內編輯。

文檔

Swagger提供了一系列規則用於描述API。使用Swagger,可以創建清晰的文檔,並且自動化API相關的操作(例如功能測試)。

JSDoc可以根據javascript檔中注釋資訊,

生成JavaScript應用程式或庫、模組的API文檔。JSDoc可以用於管理大型專案。

jGrouseDoc 是一個開源工具,可根據JavaScript注釋生成類似Jaavdoc 的源碼文檔。它不僅可以為變數和函數生成文檔,還可以為模組等其他元素生成文檔。

YUIDoc基於Nodejs,可以將文檔中的注釋生成API文檔。它使用類似於Javadoc與Doxygen的語法,並且支援即時預覽,支援各種語言,並且支援標記語言。

Docco 是免費的文檔工具,由Literate CoffeeScript編寫。它將代碼中的注釋生成HTML文檔。

Docco並不限於JavaScript,同時支援Python, Ruby, Clojure等語言。

測試

Jasmine 是一個行為驅動開發(BDD)框架,用於測試JavaScript代碼。它不依賴任何協力廠商模組,也不需要DOM。它的語法非常簡單易懂,使得編寫測試變得很簡單。另外,它也可以用於測試Node.js,Python以及Ruby。

Mocha是一個功能測試框架,用於測試Node.js以及流覽器端JavaScript。作為開發者首選的測試框架,它可以自由的編寫測試組,提供詳細的測試報告,同時讓非同步測試非常簡單。Mocha通常與斷言庫Chai來驗證測試結果。

PhantomJS用於前端單元測試。由於PhantomJS是一個無介面的Webkit流覽器引擎,與直接使用流覽器測試相比,使用PhantomJS腳本可以運行得更快。它支持各種網頁標準,例如JSON, Canvas, DOM操作, SVG以及CSS選擇器。

Protractor是一個端到端測試框架,用於測試Angular應用。它是基於WebDriverJS構建的,它可以通過流覽器事件或者原生事件,從而模擬真實用戶,來測試應用。

調試

JavaScript Debugger由Mozilla Developer Network (MDN)開發,可以獨立用於調試Node.js代碼,或者用於其他流覽器。Firefox提供了本地和遠端調試功能,並且,Firefox安卓端也用於調試運行在安卓應用。

Chrome Dev Tools提供了一系列工具,可以用於調試JavaScript代碼,編輯CSS,以及測試應用性能。

ng-inspector是Firefox,Chrome和Safari流覽器外掛程式,可以幫助開發者開發、理解以及調試AngularJS應用。它提供了即時更新,DOM高亮等功能。

Augury是一個Chrome外掛程式,可以用於調試Angular 2應用。它讓開發者可以直接查看應用結構,操作特徵以及狀態變化。

安全

Snyk是一個付費服務,用於發現、修復和預防JavaScript,Node.js和Ruby應用的已知漏洞。Snyk擁有自己的漏洞庫,以及NSP和NIST NVD的漏洞資料。它允許開發者使用它們的補丁和更新來修復這些安全性漏洞。

Node Security Project提供了工具用於掃描依賴來監測漏洞。NSP使用自己的漏洞資料,以及來自NIST NVD的漏洞資料。NSP支援集成GitHub和CI軟體,即時監測和報警,並且可以提供如何修復Node.js應用漏洞的建議。

RetireJS是一個開源的依賴監測工具。它包含了多個元件,包括命令列工具,Grunt外掛程式,Firefox和Chrome外掛程式,Burp和OWASP ZAP外掛程式。Retirejs從NIST NVD,漏洞追蹤系統,博客和郵寄清單等手機漏洞資料。

Gemnasium是一個付費工具,不過有免費方案。它支援各種技術,比如Ruby, PHP, Bower, Python和npm。Gemnasium提供很多非常有用的特性,比如自動更新,即時報警以及Slack集成等。

OSSIndex支援多個生態系統(Java, JavaScript和.NET/C#),以及多個平臺,例如NuGet, npm, Bower, Chocolatey, Maven, Composer, Drupal和MSI。它從NVD以及其他來源收集漏洞資料。

代碼優化 & 分析

JSLint是一個Web服務,用於驗證JavaScript的代碼品質。當它診斷到一個問題時,它會返回問題的大致位置和出錯資訊。JSLint可以分析一些編碼規範以及語法錯誤。

JSHint可以發現JavaScript中的錯誤以及一些潛在的問題。JSHint是一個靜態代碼分析工具,旨在幫助開發者編寫大型的程式。它可以診斷語法錯誤、隱形類型轉換等問題,但是它並不能確定你的應用是否正確、性能是否足夠好、以及是否會發生記憶體洩漏。 JSHint是JSLint的一個fork。

ESLint是一個開源診斷工具,用於JSX和JavaScript應用。它可以幫助開發者發現可疑的或者不符合特定程式設計規範的代碼。它幫助開發者在沒有執行代碼之前發現JS代碼中問題,節省了不少時間。ESLint由Node.js編寫,可以使用NPM安裝。

Flow是JavaScript代碼靜態類型檢測器,由Facebook開發。Flow可以在編碼時檢查到類型錯誤並做出提示。

包管理

Bower是一個用於管理前端依賴的包管理器,Twitter創建。它提供了大量可供使用的依賴包,幫助JavaScript開發者更方便地管理前端依賴的JS庫。

NPM是node package manager的縮寫,事實上NPM包可以用於前後端。它是JavaScript包管理系統,也是世界上最大的依賴庫,有超過475,000個模組。

Yarn是Facebook, Google, Exponent 和 Tilde 開發的一款新的 JavaScript 包管理工具。與NPM相比,它解決了安全、性能以及一致性問題。

Duo吸取了Component, Browserify和Go的經驗,致力於簡化大型Web應用的構建過程。

原文: THE ULTIMATE LIST OF JAVASCRIPT TOOLS

譯者: Fundebug

PhantomJS用於前端單元測試。由於PhantomJS是一個無介面的Webkit流覽器引擎,與直接使用流覽器測試相比,使用PhantomJS腳本可以運行得更快。它支持各種網頁標準,例如JSON, Canvas, DOM操作, SVG以及CSS選擇器。

Protractor是一個端到端測試框架,用於測試Angular應用。它是基於WebDriverJS構建的,它可以通過流覽器事件或者原生事件,從而模擬真實用戶,來測試應用。

調試

JavaScript Debugger由Mozilla Developer Network (MDN)開發,可以獨立用於調試Node.js代碼,或者用於其他流覽器。Firefox提供了本地和遠端調試功能,並且,Firefox安卓端也用於調試運行在安卓應用。

Chrome Dev Tools提供了一系列工具,可以用於調試JavaScript代碼,編輯CSS,以及測試應用性能。

ng-inspector是Firefox,Chrome和Safari流覽器外掛程式,可以幫助開發者開發、理解以及調試AngularJS應用。它提供了即時更新,DOM高亮等功能。

Augury是一個Chrome外掛程式,可以用於調試Angular 2應用。它讓開發者可以直接查看應用結構,操作特徵以及狀態變化。

安全

Snyk是一個付費服務,用於發現、修復和預防JavaScript,Node.js和Ruby應用的已知漏洞。Snyk擁有自己的漏洞庫,以及NSP和NIST NVD的漏洞資料。它允許開發者使用它們的補丁和更新來修復這些安全性漏洞。

Node Security Project提供了工具用於掃描依賴來監測漏洞。NSP使用自己的漏洞資料,以及來自NIST NVD的漏洞資料。NSP支援集成GitHub和CI軟體,即時監測和報警,並且可以提供如何修復Node.js應用漏洞的建議。

RetireJS是一個開源的依賴監測工具。它包含了多個元件,包括命令列工具,Grunt外掛程式,Firefox和Chrome外掛程式,Burp和OWASP ZAP外掛程式。Retirejs從NIST NVD,漏洞追蹤系統,博客和郵寄清單等手機漏洞資料。

Gemnasium是一個付費工具,不過有免費方案。它支援各種技術,比如Ruby, PHP, Bower, Python和npm。Gemnasium提供很多非常有用的特性,比如自動更新,即時報警以及Slack集成等。

OSSIndex支援多個生態系統(Java, JavaScript和.NET/C#),以及多個平臺,例如NuGet, npm, Bower, Chocolatey, Maven, Composer, Drupal和MSI。它從NVD以及其他來源收集漏洞資料。

代碼優化 & 分析

JSLint是一個Web服務,用於驗證JavaScript的代碼品質。當它診斷到一個問題時,它會返回問題的大致位置和出錯資訊。JSLint可以分析一些編碼規範以及語法錯誤。

JSHint可以發現JavaScript中的錯誤以及一些潛在的問題。JSHint是一個靜態代碼分析工具,旨在幫助開發者編寫大型的程式。它可以診斷語法錯誤、隱形類型轉換等問題,但是它並不能確定你的應用是否正確、性能是否足夠好、以及是否會發生記憶體洩漏。 JSHint是JSLint的一個fork。

ESLint是一個開源診斷工具,用於JSX和JavaScript應用。它可以幫助開發者發現可疑的或者不符合特定程式設計規範的代碼。它幫助開發者在沒有執行代碼之前發現JS代碼中問題,節省了不少時間。ESLint由Node.js編寫,可以使用NPM安裝。

Flow是JavaScript代碼靜態類型檢測器,由Facebook開發。Flow可以在編碼時檢查到類型錯誤並做出提示。

包管理

Bower是一個用於管理前端依賴的包管理器,Twitter創建。它提供了大量可供使用的依賴包,幫助JavaScript開發者更方便地管理前端依賴的JS庫。

NPM是node package manager的縮寫,事實上NPM包可以用於前後端。它是JavaScript包管理系統,也是世界上最大的依賴庫,有超過475,000個模組。

Yarn是Facebook, Google, Exponent 和 Tilde 開發的一款新的 JavaScript 包管理工具。與NPM相比,它解決了安全、性能以及一致性問題。

Duo吸取了Component, Browserify和Go的經驗,致力於簡化大型Web應用的構建過程。

原文: THE ULTIMATE LIST OF JAVASCRIPT TOOLS

譯者: Fundebug