在眾多可用于簡化 Node.js 開發(fā)的工具中,以下 9 種是最佳選擇。
我最近在 StackOverflow上讀到了一項調(diào)查,該調(diào)查稱超過 49% 的開發(fā)人員在其項目中使用了 Node.js。這結(jié)果對我來說并不意外。
作為一個狂熱的技術(shù)使用者,我可以肯定地說 Node.js 的引入引領(lǐng)了軟件開發(fā)的新時代?,F(xiàn)在,它是軟件開發(fā)最受歡迎的技術(shù)之一,僅次于JavaScript。
Node.js 是什么,為什么如此受歡迎?
Node.js 是一個跨平臺的開源運行環(huán)境,用于在瀏覽器之外執(zhí)行 JavaScript 代碼。它也是建立在 Chrome 的 JavaScript 運行時之上的首選運行時環(huán)境,主要用于構(gòu)建快速、可擴展和高效的網(wǎng)絡(luò)應(yīng)用程序。
我記得當(dāng)時我們要花費幾個小時來協(xié)調(diào)前端和后端開發(fā)人員,他們分別編寫不同腳本。當(dāng) Node.js 出現(xiàn)后,所有這些都改變了。我相信,促使開發(fā)人員采用這項技術(shù)是因為它的雙向效率。
使用 Node.js,你可以讓你的代碼同時運行在客戶端和服務(wù)器端,從而加快了整個開發(fā)過程。Node.js 彌合了前端和后端開發(fā)之間的差距,并使開發(fā)過程更加高效。
Node.js 工具浪潮
對于 49% 的開發(fā)人員(包括我)來說,Node.js 處于在前端和后端開發(fā)的金字塔頂端。有大量的 Node.js 用例幫助我和我的團隊在截止日期之內(nèi)交付復(fù)雜的項目。幸運的是,Node.js 的日益普及也產(chǎn)生了一系列開源項目和工具,以幫助開發(fā)人員使用該環(huán)境。
近來,對使用 Node.js 構(gòu)建的項目的需求突然增加。有時,我發(fā)現(xiàn)管理這些項目,并同時保持交付高質(zhì)量項目的步伐非常具有挑戰(zhàn)性。因此,我決定使用為 Node.js 開發(fā)人員提供的許多開源工具中一些最高效的,使某些方面的開發(fā)自動化。
根據(jù)我在 Node.js 方面的豐富經(jīng)驗,我使用了許多的工具,這些工具對整個開發(fā)過程都非常有幫助:從簡化編碼過程,到監(jiān)測再到內(nèi)容管理。
為了幫助我的 Node.js 開發(fā)同道,我整理了這個列表,其中包括我最喜歡的 9 個簡化 Node.js 開發(fā)的開源工具。
Webpack
Webpack是一個容易使用的 JavaScript 模塊捆綁程序module bundler,用于簡化前端開發(fā)。它會檢測具有依賴的模塊,并將其轉(zhuǎn)換為描述模塊的靜態(tài)素材asset。
可以通過軟件包管理器 npm 或 Yarn 安裝該工具。
利用 npm 命令安裝如下:
npm install --save-dev webpack
利用 Yarn 命令安裝如下:
yarn add webpack --dev
Webpack 可以創(chuàng)建在運行時異步加載的單個捆綁包或多個素材鏈。不必單獨加載。使用 Webpack 工具可以快速高效地打包這些素材并提供服務(wù),從而改善用戶整體體驗,并減少開發(fā)人員在管理加載時間方面的困難。
Strapi
Strapi是一個開源的無界面headless內(nèi)容管理系統(tǒng)(CMS)。無界面 CMS 是一種基礎(chǔ)軟件,可以管理內(nèi)容而無需預(yù)先構(gòu)建好的前端。它是一個使用 RESTful API 函數(shù)的只有后端的系統(tǒng)。
可以通過軟件包管理器 Yarn 或 npx 安裝 Strapi。
利用 Yarn 命令安裝如下:
yarn create strapi-app my-project --quickstart
利用 npx 命令安裝如下:
npx create-strapi-app my-project --quickstart
Strapi 的目標(biāo)是在任何設(shè)備上以結(jié)構(gòu)化的方式獲取和交付內(nèi)容。CMS 可以使你輕松管理應(yīng)用程序的內(nèi)容,并確保它們是動態(tài)的,可以在任何設(shè)備上訪問。
它提供了許多功能,包括文件上傳、內(nèi)置的電子郵件系統(tǒng)、JSON Web Token(JWT)驗證和自動生成文檔。我發(fā)現(xiàn)它非常方便,因為它簡化了整個 CMS,并為我提供了編輯、創(chuàng)建或刪除所有類型內(nèi)容的完全自主權(quán)。
另外,通過 Strapi 構(gòu)建的內(nèi)容結(jié)構(gòu)非常靈活,因為你可以創(chuàng)建和重用內(nèi)容組和可定制的 API。
Broccoli
Broccoli是一個功能強大的構(gòu)建工具,運行在ES6模塊上。構(gòu)建工具是一種軟件,可讓你將應(yīng)用程序或網(wǎng)站中的所有各種素材(例如圖像、CSS、JavaScript 等)組合成一種可分發(fā)的格式。Broccoli 將自己稱為 “雄心勃勃的應(yīng)用程序的素材管道”。
使用 Broccoli 你需要一個項目目錄。有了項目目錄后,可以使用以下命令通過 npm 安裝 Broccoli:
npm install --save-dev broccolinpm install --global broccoli-cli
你也可以使用 Yarn 進行安裝。
當(dāng)前版本的 Node.js 就是使用該工具的最佳版本,因為它提供了長期支持。它可以幫助你避免進行更新和重新安裝過程中的麻煩。安裝過程完成后,可以在 Brocfile.js
文件中包含構(gòu)建規(guī)范。
在 Broccoli 中,抽象單位是“樹”,該樹將文件和子目錄存儲在特定子目錄中。因此,在構(gòu)建之前,你必須有一個具體的想法,你希望你的構(gòu)建是什么樣子的。
最好的是,Broccoli 帶有用于開發(fā)的內(nèi)置服務(wù)器,可讓你將素材托管在本地 HTTP 服務(wù)器上。Broccoli 非常適合流線型重建,因為其簡潔的架構(gòu)和靈活的生態(tài)系統(tǒng)可提高重建和編譯速度。Broccoli 可讓你井井有條,以節(jié)省時間并在開發(fā)過程中最大限度地提高生產(chǎn)力。
Danger
Danger是一個非常方便的開源工具,用于簡化你的拉取請求pull request(PR)檢查。正如 Danger 庫描述所說,該工具可通過管理 PR 檢查來幫助 “正規(guī)化” 你的代碼審查系統(tǒng)。Danger 可以與你的 CI 集成在一起,幫助你加快審核過程。
將 Danger 與你的項目集成是一個簡單的逐步過程:你只需要包括 Danger 模塊,并為每個項目創(chuàng)建一個 Danger 文件。然而,創(chuàng)建一個 Danger 帳戶(通過 GitHub 或 Bitbucket 很容易做到),并且為開源軟件項目設(shè)置訪問令牌更加方便。
可以通過 NPM 或 Yarn 安裝 Danger。要使用 Yarn,請?zhí)砑?danger -D
到package.JSON
中。
將 Danger 添加到 CI 后,你可以:
- 高亮顯示重要的創(chuàng)建工件
- 通過強制鏈接到 Trello 和 Jira 之類的工具來管理 sprint
- 強制生成更新日志
- 使用描述性標(biāo)簽
- 以及更多
例如,你可以設(shè)計一個定義團隊文化并為代碼審查和 PR 檢查設(shè)定特定規(guī)則的系統(tǒng)。根據(jù) Danger 提供的元數(shù)據(jù)及其廣泛的插件生態(tài)系統(tǒng),可以解決常見的議題issue。
Snyk
網(wǎng)絡(luò)安全是開發(fā)人員的主要關(guān)注點。Snyk是修復(fù)開源組件中漏洞的最著名工具之一。它最初是一個用于修復(fù) Node.js 項目漏洞的項目,并且已經(jīng)演變?yōu)榭梢詸z測并修復(fù) Ruby、Java、Python 和 Scala 應(yīng)用程序中的漏洞。Snyk 主要分四個階段運行:
- 查找漏洞依賴性
- 修復(fù)特定漏洞
- 通過 PR 檢查預(yù)防安全風(fēng)險
- 持續(xù)監(jiān)控應(yīng)用程序
Snyk 可以集成在項目的任何階段,包括編碼、CI/CD 和報告。我發(fā)現(xiàn)這對于測試 Node.js 項目非常有幫助,可以測試或構(gòu)建 npm 軟件包時檢查是否存在安全風(fēng)險。你還可以在 GitHub 中為你的應(yīng)用程序運行 PR 檢查,以使你的項目更安全。Synx 還提供了一系列集成,可用于監(jiān)控依賴關(guān)系并解決特定問題。
要在本地計算機上運行 Snyk,可以通過 NPM 安裝它:
npm install -g snyk
Migrat
Migrat是一款使用純文本的數(shù)據(jù)遷移工具,非常易于使用。 它可在各種軟件堆棧和進程中工作,從而使其更加實用。你可以使用簡單的代碼行安裝 Migrat:
$ npm install -g migrat
Migrat 并不需要特別的數(shù)據(jù)庫引擎。它支持多節(jié)點環(huán)境,因為遷移可以在一個全局節(jié)點上運行,也可以在每個服務(wù)器上運行一次。Migrat 之所以方便,是因為它便于向每個遷移傳遞上下文。
你可以定義每個遷移的用途(例如,數(shù)據(jù)庫集、連接、日志接口等)。此外,為了避免隨意遷移,即多個服務(wù)器在全局范圍內(nèi)進行遷移,Migrat 可以在進程運行時進行全局鎖定,從而使其只能在全局范圍內(nèi)運行一次。它還附帶了一系列用于 SQL 數(shù)據(jù)庫、Slack、HipChat 和 Datadog 儀表盤的插件。你可以將實時遷移狀況發(fā)送到這些平臺中的任何一個。
Clinic.js
Clinic.js是一個用于 Node.js 項目的開源監(jiān)視工具。它結(jié)合了三種不同的工具 Doctor、Bubbleprof 和 Flame,幫助你監(jiān)控、檢測和解決 Node.js 的性能問題。
你可以通過運行以下命令從 npm 安裝 Clinic.js:
$ npm install clinic
你可以根據(jù)要監(jiān)視項目的某個方面以及要生成的報告,選擇要使用的 Clinic.js 包含的三個工具中的一個:
- Doctor 通過注入探針來提供詳細的指標(biāo),并就項目的總體運行狀況提供建議。
- Bubbleprof 非常適合分析,并使用
async_hooks
生成指標(biāo)。 - Flame 非常適合發(fā)現(xiàn)代碼中的熱路徑和瓶頸。
PM2
監(jiān)視是后端開發(fā)過程中最重要的方面之一。PM2是一款 Node.js 的進程管理工具,可幫助開發(fā)人員監(jiān)視項目的多個方面,例如日志、延遲和速度。該工具與 Linux、MacOS 和 Windows 兼容,并支持從 Node.js 8.X 開始的所有 Node.js 版本。
你可以使用以下命令通過 npm 安裝 PM2:
$ npm install pm2 --g
如果尚未安裝 Node.js,則可以使用以下命令安裝:
wget -qO- https://getpm2.com/install.sh | bash
安裝完成后,使用以下命令啟動應(yīng)用程序:
$ pm2 start app.js
關(guān)于 PM2 最好的地方是可以在集群模式下運行應(yīng)用程序??梢酝瑫r為多個 CPU 內(nèi)核生成一個進程。這樣可以輕松增強應(yīng)用程序性能并最大程度地提高可靠性。PM2 也非常適合更新工作,因為你可以使用 “熱重載” 選項更新應(yīng)用程序并以零停機時間重新加載應(yīng)用程序??傮w而言,它是為 Node.js 應(yīng)用程序簡化進程管理的好工具。
Electrode
Electrode是 Walmart Labs 的一個開源應(yīng)用程序平臺。該平臺可幫助你以結(jié)構(gòu)化方式構(gòu)建大規(guī)模通用的 React/Node.js 應(yīng)用程序。
Electrode 應(yīng)用程序生成器使你可以構(gòu)建專注于代碼的靈活內(nèi)核,提供一些出色的模塊以向應(yīng)用程序添加復(fù)雜功能,并附帶了廣泛的工具來優(yōu)化應(yīng)用程序的 Node.js 包。
可以使用 npm 安裝 Electrode。安裝完成后,你可以使用 Ignite 啟動應(yīng)用程序,并深入研究 Electrode 應(yīng)用程序生成器。
你可以使用 NPM 安裝 Electrode:
npm install -g electrode-ignite xclap-cli
你最喜歡哪一個?
這些只是不斷增長的開源工具列表中的一小部分,在使用 Node.js 時,這些工具可以在不同階段派上用場。你最喜歡使用哪些開源 Node.js 工具?請在評論中分享你的建議。
via: https://opensource.com/article/20/1/open-source-tools-nodejs
作者:Hiren Dhadhuk選題:lujun9972譯者:stevenzdg988校對:wxy
本文由 LCTT原創(chuàng)編譯,Linux中國榮譽推出
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。