@stevenzdg988
This commit is contained in:
Xingyu Wang 2021-03-15 23:37:32 +08:00
parent 6b5852d242
commit d83e6d44a4

View File

@ -1,6 +1,6 @@
[#]: collector: (lujun9972)
[#]: translator: (stevenzdg988)
[#]: reviewer: ( )
[#]: reviewer: (wxy)
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (9 favorite open source tools for Node.js developers)
@ -9,200 +9,201 @@
9 个 Node.js 开发人员最喜欢的开源工具
======
在可用于简化 Node.js 开发的各种工具中,
以下 10 种是最佳选择。
![工具说明][1]
我最近在 [StackOverflow][2] 上阅读了一项调查,该调查称超过 49 的开发人员在其项目中使用 Node.js。这对我来说不足为奇
> 在众多可用于简化 Node.js 开发的工具中,以下 9 种是最佳选择。
作为热衷于技术的用户,我可以肯定地说 Node.js 的采用引领了软件开发的新时代。现在,它仅次于 JavaScript 成为最受欢迎的软件开发技术之一。
![](https://img.linux.net.cn/data/attachment/album/202103/15/233658i99wxvzin13o5319.png)
我最近在 [StackOverflow][2] 上读到了一项调查,该调查称超过 49 的开发人员在其项目中使用了 Node.js。这结果对我来说并不意外。
作为一个狂热的技术使用者,我可以肯定地说 Node.js 的引入引领了软件开发的新时代。现在它是软件开发最受欢迎的技术之一仅次于JavaScript。
### Node.js 是什么,为什么如此受欢迎?
Node.js 是一个跨平台的开源运行环境,用于在浏览器外部执行 JavaScript 代码。它也是基于 Chrome 的 JavaScript 运行时创建的首选运行环境,主要用于快速创建,可扩展和高效的网络应用程序。
Node.js 是一个跨平台的开源运行环境,用于在浏览器之外执行 JavaScript 代码。它也是建立在 Chrome 的 JavaScript 运行时之上的首选运行时环境,主要用于构建快速、可扩展和高效的网络应用程序。
记得当时我们花费几个小时来协调为各自编写不同脚本的前端和后端开发人员。当 Node.js 出现后,所有这些都改变了。我相信,促使开发人员采用这项技术是因为它的双向效率。
记得当时我们花费几个小时来协调前端和后端开发人员,他们分别编写不同脚本。当 Node.js 出现后,所有这些都改变了。我相信,促使开发人员采用这项技术是因为它的双向效率。
使用 Node.js您可以同时在客户端和服务器端运行代码从而加快了整个开发过程。Node.js 弥合了前端和后端开发之间的差距,并使开发过程更加高效。
使用 Node.js你可以让你的代码同时运行在客户端和服务器端从而加快了整个开发过程。Node.js 弥合了前端和后端开发之间的差距,并使开发过程更加高效。
### 来一波 Node.js 工具
### Node.js 工具浪潮
对于 49 的开发人员(包括我)Node.js 在前端和后端开发方面处于金字塔顶端。有大量的 [Node.js 用例][3] 帮助我和我的团队在截止日期之内交付复杂的项目。幸运的是Node.js 的日益普及也产生了一系列开源项目和工具,以帮助开发人员使用该环境。
对于 49 的开发人员(包括我)来说Node.js 处于在前端和后端开发的金字塔顶端。有大量的 [Node.js 用例][3] 帮助我和我的团队在截止日期之内交付复杂的项目。幸运的是Node.js 的日益普及也产生了一系列开源项目和工具,以帮助开发人员使用该环境。
近,对使用 Node.js 构建的项目的需求突然增加。有时,我发现管理这些项目并同时保持交付高质量项目的步伐非常具有挑战性。因此,我决定使用一些为 Node.js 开发人员提供的许多可用的开源工具中最高效的工具,使某些方面的开发自动化。
,对使用 Node.js 构建的项目的需求突然增加。有时,我发现管理这些项目并同时保持交付高质量项目的步伐非常具有挑战性。因此,我决定使用为 Node.js 开发人员提供的许多开源工具中一些最高效的,使某些方面的开发自动化。
根据我在 Node.js 方面的丰富经验,我使用了许多的工具,这些工具对整个开发过程都非常有帮助-从简化编码过程到监测再到内容管理。
根据我在 Node.js 方面的丰富经验,我使用了许多的工具,这些工具对整个开发过程都非常有帮助:从简化编码过程,到监测再到内容管理。
为了帮助我的 Node.js 开发同道,我整理了最喜欢的 9 种开源工具清单,以简化 Node.js 开发
为了帮助我的 Node.js 开发同道,我整理了这个列表,其中包括我最喜欢的 9 个简化 Node.js 开发的开源工具
### Webpack
[Webpack][4] 是一个容易使用的 JavaScript 模块捆绑程序,用于简化前端开发。它检测具有依赖的模块,并将其转换为静态的描述模块。
[Webpack][4] 是一个容易使用的 JavaScript <ruby>模块捆绑程序<rt>module bundler</rt></ruby>,用于简化前端开发。它检测具有依赖的模块,并将其转换为描述模块的静态<ruby>素材<rt>asset</rt></ruby>
可以通过软件包管理器 npm 或 Yarn 安装该工具。
利用 npm 命令安装如下:
```
`npm install --save-dev webpack`
npm install --save-dev webpack
```
利用 Yarn 命令安装如下:
```
`yarn add webpack --dev`
yarn add webpack --dev
```
Webpack 创建可以在运行时异步加载的单个包或多重约束。不必单独加载。使用 Webpack 工具可以快速高效地打包和提供服务,从而改善用户整体体验,并减少开发人员在管理加载时间方面的困难。
Webpack 可以创建在运行时异步加载的单个捆绑包或多个素材链。不必单独加载。使用 Webpack 工具可以快速高效地打包这些素材并提供服务,从而改善用户整体体验,并减少开发人员在管理加载时间方面的困难。
### Strapi
[Strapi][5] 是一个开放源代码的无头内容管理系统CMS。无头 CMS 是一种基础软件,可以管理内容而无需预先构建前端。是一个只使用 RESTful API 功能的后端系统。
[Strapi][5] 是一个开源的<ruby>无界面<rt>headless</rt><ruby>内容管理系统CMS。无界面 CMS 是一种基础软件,可以管理内容而无需预先构建好的前端。它是一个使用 RESTful API 函数的只有后端的系统。
可以通过软件包管理器 Yarn 或 npx 安装 Strapi。
利用 Yarn 命令安装如下:
```
`yarn create strapi-app my-project --quickstart`
yarn create strapi-app my-project --quickstart
```
利用 npx 命令安装如下:
```
`npx create-strapi-app my-project --quickstart`
npx create-strapi-app my-project --quickstart
```
Strapi 的目标是在任何设备上以结构化的方式获取和交付内容。CMS 使您可以轻松管理应用程序的内容,并确保它们是动态的并且可以访问任何设备
Strapi 的目标是在任何设备上以结构化的方式获取和交付内容。CMS 可以使你轻松管理应用程序的内容,并确保它们是动态的,可以在任何设备上访问
它提供了许多功能,包括文件上传内置的电子邮件系统JSON Web Token JWT验证和自动生成文档。我发现它非常方便因为它简化了整个 CMS并为我提供了编辑创建或删除所有类型内容的完全自主权。
它提供了许多功能,包括文件上传、内置的电子邮件系统、JSON Web TokenJWT验证和自动生成文档。我发现它非常方便因为它简化了整个 CMS并为我提供了编辑创建或删除所有类型内容的完全自主权。
另外,通过 Strapi 构建的内容结构非常灵活,因为可以创建和重用内容组和可定制的 API。
另外,通过 Strapi 构建的内容结构非常灵活,因为可以创建和重用内容组和可定制的 API。
### Broccoli
[Broccoli][6] 是一个功能强大的构建工具,可在 [ES6][7] 模块上运行。生成工具是一种软件可让您将应用程序或网站中的所有不同的有用内容例如图像CSSJavaScript 等组合成一种可分配的格式。Broccoli 将自己称为 “有用的雄心勃勃的应用程序管道”。
[Broccoli][6] 是一个功能强大的构建工具,运行在 [ES6][7] 模块上。构建工具是一种软件可让你将应用程序或网站中的所有各种素材例如图像、CSS、JavaScript 等组合成一种可分发的格式。Broccoli 将自己称为 “雄心勃勃的应用程序的素材管道”。
您需要一个项目目录才能使用 Broccoli。放置好项目目录后,可以使用以下命令通过 npm 安装 Broccoli
使用 Broccoli 你需要一个项目目录。有了项目目录后,可以使用以下命令通过 npm 安装 Broccoli
```
npm install --save-dev broccoli
npm install --global broccoli-cli
```
也可以使用 Yarn 进行安装。
也可以使用 Yarn 进行安装。
当前版本的 Node.js 是该工具的最佳版本,因为对它提供了长期的支持。可以帮助您避免进行更新和重新安装过程中的麻烦。安装过程完成后,可以在 Brocfile.js 文件中包含创建规范。
当前版本的 Node.js 就是使用该工具的最佳版本,因为它提供了长期支持。它可以帮助你避免进行更新和重新安装过程中的麻烦。安装过程完成后,可以在 `Brocfile.js` 文件中包含构建规范。
在 Broccoli 中,抽象单位是树,该树将文件和子目录存储在特定子目录中。因此,在创建之前,您必须对要构建的外观有一个特定的了解。必须有一个明确的想法,你想让创建的看起来与其一样
在 Broccoli 中,抽象单位是,该树将文件和子目录存储在特定子目录中。因此,在构建之前,你必须有一个具体的想法,你希望你的构建是什么样子的
Broccoli最好的部分是它带有用于开发的内置服务器可让您将有用的内容托管在本地 HTTP 服务器上。Broccoli 非常适合合理化重建因为其简洁的架构和灵活的生态系统可提高重建和编译速度。Broccoli 可让井井有条,以节省时间并在开发过程中最大限度地提高生产力。
最好的是Broccoli 带有用于开发的内置服务器,可让你将素材托管在本地 HTTP 服务器上。Broccoli 非常适合流线型重建因为其简洁的架构和灵活的生态系统可提高重建和编译速度。Broccoli 可让井井有条,以节省时间并在开发过程中最大限度地提高生产力。
### Danger
[Danger][8] 是一个非常方便的开源工具,用于简化您的拉取请求PR检查。正如 Danger 库描述所说,该工具可通过管理 PR 检查来帮助 “形式化” 您的代码检查系统。Danger 与您的 CI 集成在一起,可帮助您加快审核过程。
[Danger][8] 是一个非常方便的开源工具,用于简化你的<ruby>拉取请求<rt>pull request</rt></ruby>PR检查。正如 Danger 库描述所说,该工具可通过管理 PR 检查来帮助 “正规化” 你的代码审查系统。Danger 可以与你的 CI 集成在一起,帮助你加快审核过程。
将 Danger 与您的项目集成是一个简单的分步过程-您只需要包括 Danger 模块并为每个项目创建一个 Danger 文件。然而创建一个Danger 帐户(通过 GitHub 或 Bitbucket 轻松完成),并且为开源软件项目设置访问令牌更加方便。
将 Danger 与你的项目集成是一个简单的逐步过程:你只需要包括 Danger 模块,并为每个项目创建一个 Danger 文件。然而,创建一个 Danger 帐户(通过 GitHub 或 Bitbucket 很容易做到),并且为开源软件项目设置访问令牌更加方便。
可以通过 NPM 或 Yarn 安装 Danger。要使用 Yarn请添加 Danger -D 将其添加到 package.JSON 中。
可以通过 NPM 或 Yarn 安装 Danger。要使用 Yarn请添加 `danger -D``package.JSON` 中。
After you add Danger to your CI, you can:
将 Danger 添加到 CI 后,您可以:
将 Danger 添加到 CI 后,你可以:
* 高亮显示创建建重要的工件
* 高亮显示重要的创建工件
* 通过强制链接到 Trello 和 Jira 之类的工具来管理 sprint
* 强制更新日志
* 强制生成更新日志
* 使用描述性标签
* 以及更多
例如,可以设计一个定义团队文化并为代码审查和 PR 检查设定特定规则的系统。常见议题可以根据 Danger 提供的元数据及其广泛的插件生态系统来解决
例如,可以设计一个定义团队文化并为代码审查和 PR 检查设定特定规则的系统。根据 Danger 提供的元数据及其广泛的插件生态系统,可以解决常见的<ruby>议题<rt>issue</rt></ruby>
### Snyk
网络安全是开发人员的主要关注点。[Snyk][9] 是修复开源组件中漏洞的最著名工具之一。它最初是一个用于修复 Node.js 项目漏洞的项目,并且已经演变为可以检测并修复 RubyJavaPython 和 Scala 应用程序中的漏洞。Snyk 主要运行四个阶段
网络安全是开发人员的主要关注点。[Snyk][9] 是修复开源组件中漏洞的最著名工具之一。它最初是一个用于修复 Node.js 项目漏洞的项目,并且已经演变为可以检测并修复 Ruby、Java、Python 和 Scala 应用程序中的漏洞。Snyk 主要分四个阶段运行
* 查找漏洞依赖性
* 修复特定漏洞
* 通过 PR 检查预防安全风险
* 持续监控应用程序
Snyk 可以在任何阶段与项目集成包括编码CI/CD 和报告。我发现这对于测试 Node.js 项目以测试 npm 软件包是否存在安全风险或在构建时非常有帮助。您还可以在 GitHub 中为您的应用程序运行 PR 检查以使您的项目更安全。Synx 还提供了一系列集成,可用于监视依赖关系并解决特定问题。
Snyk 可以集成在项目的任何阶段包括编码、CI/CD 和报告。我发现这对于测试 Node.js 项目非常有帮助,可以测试或构建 npm 软件包时检查是否存在安全风险。你还可以在 GitHub 中为你的应用程序运行 PR 检查以使你的项目更安全。Synx 还提供了一系列集成,可用于监控依赖关系并解决特定问题。
要在本地计算机上运行 Snyk可以通过 NPM 安装它:
```
`npm install -g snyk`
npm install -g snyk
```
### Migrat
[Migrat][10] 是一种非常易于使用的使用纯文本的数据迁移工具。 它可在各种堆栈和进程中工作,从而使其更加实用。您可以使用简单的代码行安装 Migrat
[Migrat][10] 是一款使用纯文本的数据迁移工具,非常易于使用。 它可在各种软件堆栈和进程中工作,从而使其更加实用。你可以使用简单的代码行安装 Migrat
```
`$ npm install -g migrat`
$ npm install -g migrat
```
Migrat 不是特定于特别的数据库引擎。它支持多节点环境,因为迁移可以在一个全局节点上运行,也可以在每个服务器上运行一次。使 Migrat 方便的原因是便于将上下文传递给每个迁移
Migrat 并不需要特别的数据库引擎。它支持多节点环境,因为迁移可以在一个全局节点上运行,也可以在每个服务器上运行一次。Migrat 之所以方便,是因为它便于向每个迁移传递上下文
您可以定义每种迁移的用途例如数据库集连接日志记录接口等。此外为了避免随意迁移即多个服务器正在全局范围内进行迁移Migrat 有助于在进程运行时进行全局锁定,从而使其只能在全局范围内运行一次。它还附带了一系列用于 SQL 数据库SlackHipChat 和 Datadog 仪表盘的插件。您可以将实时迁移状况发送到任意一个平台
你可以定义每个迁移的用途例如数据库集、连接、日志接口等。此外为了避免随意迁移即多个服务器在全局范围内进行迁移Migrat 可以在进程运行时进行全局锁定,从而使其只能在全局范围内运行一次。它还附带了一系列用于 SQL 数据库、Slack、HipChat 和 Datadog 仪表盘的插件。你可以将实时迁移状况发送到这些平台中的任何一个
### Clinic.js
[Clinic.js][11] 是一个用于 Node.js 项目的开源监视工具。它结合了三种不同的工具 DoctorBubbleprof 和 Flame可利用 Node.js 帮助您监视,检测和解决性能问题。
[Clinic.js][11] 是一个用于 Node.js 项目的开源监视工具。它结合了三种不同的工具 Doctor、Bubbleprof 和 Flame帮助你监控、检测和解决 Node.js 的性能问题。
可以通过运行以下命令从 npm 安装 Clinic.js
可以通过运行以下命令从 npm 安装 Clinic.js
```
`$ npm install clinic`
$ npm install clinic
```
可以根据要监视项目的某个方面以及要生成的报告,选择要使用的包含 Clinic.js 的三个工具中的一个:
可以根据要监视项目的某个方面以及要生成的报告,选择要使用的 Clinic.js 包含的三个工具中的一个:
* Doctor 通过注入探针来提供详细的指标,并就项目的总体运行状况提供建议。
* Bubbleprof 非常适合分析,并使用 `async_hooks` 生成标
* Bubbleprof 非常适合分析,并使用 `async_hooks` 生成标。
* Flame 非常适合发现代码中的热路径和瓶颈。
### PM2
监视是任何后端开发过程中最重要的方面。[PM2][12] 是 Node.js 的进程管理工具,可帮助开发人员监视项目的多个方面,例如日志,延迟和速度。该工具与 LinuxMacOS 和 Windows 兼容,并支持从 Node.js 8.X 开始的所有 Node.js 版本。
监视是后端开发过程中最重要的方面之一。[PM2][12] 是一款 Node.js 的进程管理工具,可帮助开发人员监视项目的多个方面,例如日志、延迟和速度。该工具与 Linux、MacOS 和 Windows 兼容,并支持从 Node.js 8.X 开始的所有 Node.js 版本。
可以使用以下命令通过 npm 安装 PM2
可以使用以下命令通过 npm 安装 PM2
```
`$ npm install pm2 --g`
$ npm install pm2 --g
```
如果尚未安装 Node.js则可以使用以下命令安装
```
`wget -qO- https://getpm2.com/install.sh | bash`
wget -qO- https://getpm2.com/install.sh | bash
```
安装完成后,使用以下命令启动应用程序:
```
`$ pm2 start app.js`
$ pm2 start app.js
```
关于 PM2 的最好之处在于,可以在集群模式下运行应用程序。可以同时为多个 CPU 内核生成一个进程。这样可以轻松增强应用程序性能并最大程度地提高可靠性。PM2也非常适合更新,因为您可以使用 “热重载” 选项更新应用程序并以零停机时间重新加载应用程序。总体而言,它是为 Node.js 应用程序简化进程管理的好工具。
关于 PM2 最好的地方是可以在集群模式下运行应用程序。可以同时为多个 CPU 内核生成一个进程。这样可以轻松增强应用程序性能并最大程度地提高可靠性。PM2 也非常适合更新工作,因为你可以使用 “热重载” 选项更新应用程序并以零停机时间重新加载应用程序。总体而言,它是为 Node.js 应用程序简化进程管理的好工具。
### Electrode
[Electrode][13] 是 Walmart Labs 的开源应用程序平台。该平台可帮助您以结构化方式构建大规模通用的 React/Node.js 应用程序。
[Electrode][13] 是 Walmart Labs 的一个开源应用程序平台。该平台可帮助你以结构化方式构建大规模通用的 React/Node.js 应用程序。
Electrode 应用程序生成器使可以构建专注于代码的灵活内核,提供一些出色的模块以向应用程序添加复杂功能,并提供了广泛的工具来优化应用程序的 Node.js 包。
Electrode 应用程序生成器使可以构建专注于代码的灵活内核,提供一些出色的模块以向应用程序添加复杂功能,并附带了广泛的工具来优化应用程序的 Node.js 包。
可以使用 npm 安装 Electrode。安装完成后您可以使用 Ignite 启动应用程序,并直接使用 Electrode 应用程序生成器进行深入研究
可以使用 npm 安装 Electrode。安装完成后你可以使用 Ignite 启动应用程序,并深入研究 Electrode 应用程序生成器
可以使用 NPM 安装 Electrode
可以使用 NPM 安装 Electrode
```
`npm install -g electrode-ignite xclap-cli`
npm install -g electrode-ignite xclap-cli
```
### 你最喜欢哪一个?
这些只是不断增长的开源工具列表中的一小部分,在使用 Node.js 时,这些工具可以在不同阶段派上用场。您最喜欢使用哪些开源 Node.js 工具?请在评论中分享您的建议。
这些只是不断增长的开源工具列表中的一小部分,在使用 Node.js 时,这些工具可以在不同阶段派上用场。你最喜欢使用哪些开源 Node.js 工具?请在评论中分享你的建议。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/1/open-source-tools-nodejs
@ -210,7 +211,7 @@ via: https://opensource.com/article/20/1/open-source-tools-nodejs
作者:[Hiren Dhadhuk][a]
选题:[lujun9972][b]
译者:[stevenzdg988](https://github.com/stevenzdg988)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出