我最近在 StackOverflow 上读到一项调查,该调查显示超过 49% 的开发人员在其项目中使用 Node.js。 这对我来说并不意外。
作为一名技术爱好者,我认为可以肯定地说,Node.js 的引入开创了软件开发的新时代。 现在,它已成为最受欢迎的软件开发技术之一,仅次于 JavaScript。
什么是 Node.js,为什么它如此受欢迎?
Node.js 是一个跨平台的开源运行时环境,用于在浏览器外部执行 JavaScript 代码。 它也是一个首选的运行时环境,构建于 Chrome 的 JavaScript 运行时之上,主要用于构建快速、可扩展且高效的网络应用程序。
我记得我们过去常常花费数小时与前端和后端开发人员协调,他们为每一方编写不同的脚本。 这一切都随着 Node.js 的出现而改变。 我认为,将开发人员推向这项技术的一个原因是它的双向效率。
借助 Node.js,您可以在客户端和服务器端同时运行代码,从而加快整个开发过程。 Node.js 弥合了前端和后端开发之间的差距,并使开发过程更加高效。
Node.js 工具浪潮
对于 49% 的开发人员(包括我),在前端和后端开发方面,Node.js 处于金字塔的顶端。 有大量的 Node.js 用例 帮助我和我的团队在截止日期前交付复杂的项目。 幸运的是,Node.js 日益普及也催生了一波开源项目和工具,以帮助开发人员使用该环境。
最近,对使用 Node.js 构建的项目的需求突然增加。 有时,我发现管理这些项目并在交付高质量成果的同时保持进度非常具有挑战性。 因此,我决定使用一些最有效的开源工具来自动化开发的某些方面,这些工具可供 Node.js 开发人员使用。
在我与 Node.js 的广泛经验中,我使用过各种各样的工具,这些工具帮助我完成了整个开发过程,从简化编码过程到监控到内容管理。
为了帮助我的 Node.js 同行开发人员,我整理了这份包含 9 个我最喜欢的开源工具的列表,这些工具用于简化 Node.js 开发。
Webpack
Webpack 是一个方便的 JavaScript 模块打包器,用于简化前端开发。 它检测具有依赖关系的模块,并将它们转换为表示模块的静态资源。
您可以通过 npm 或 Yarn 包管理器安装该工具。
使用 npm
npm install --save-dev webpack
使用 Yarn
yarn add webpack --dev
Webpack 创建单个捆绑包或多个资产链,这些资产链可以在运行时异步加载。 每个资产不必单独加载。 使用 Webpack 工具,捆绑和提供资产变得快速高效,从而改善了整体用户体验,并减少了开发人员在管理加载时间方面的麻烦。
Strapi
Strapi 是一个开源的无头内容管理系统 (CMS)。 无头 CMS 基本上是一种软件,可让您管理您的内容,而无需预构建的前端。 它是一个仅后端的系统,使用 RESTful API 运行。
您可以通过 Yarn 或 npx 包安装 Strapi。
使用 Yarn
yarn create strapi-app my-project --quickstart
使用 npx
npx create-strapi-app my-project --quickstart
Strapi 的目标是以结构化的方式跨任何设备获取和交付您的内容。 该 CMS 使您可以轻松管理应用程序的内容,并确保它们在任何设备上都是动态且可访问的。
它提供了许多功能,包括文件上传、内置电子邮件系统、JSON Web 令牌 (JWT) 身份验证和自动生成的文档。 我发现它非常方便,因为它简化了整个 CMS,并让我可以完全自主地编辑、创建或删除所有类型的内容。
此外,通过 Strapi 构建的内容结构非常灵活,因为您可以创建和重用内容组和可自定义的 API。
Broccoli
Broccoli 是一个强大的构建工具,它在 ES6 模块上运行。 构建工具是让您将应用程序或网站中的所有不同资产(例如,图像、CSS、JavaScript 等)组装成一种可分发格式的软件。 Broccoli 将自己标榜为“雄心勃勃的应用程序的资产管道”。
您需要一个项目目录才能使用 Broccoli。 一旦您有了项目目录,您就可以使用 npm 安装 Broccoli,方法是
npm install --save-dev broccoli
npm install --global broccoli-cli
您也可以使用 Yarn 进行安装。
当前版本的 Node.js 将是该工具的最佳版本,因为它提供长期支持。 这有助于您避免在进行过程中更新和重新安装的麻烦。 安装过程完成后,您可以将构建规范包含在您的 Brocfile.js 中。
在 Broccoli 中,抽象单元是一棵树,它在特定子目录中存储文件和子目录。 因此,在构建之前,您必须对您希望构建的外观有一个具体的想法。
Broccoli 最好的部分是它带有一个内置的开发服务器,可让您在本地 HTTP 服务器上托管您的资产。 Broccoli 非常适合简化的重建,因为它简洁的架构和灵活的生态系统提高了重建和编译速度。 Broccoli 让您有条不紊,从而节省时间并在开发期间最大限度地提高工作效率。
Danger
Danger 是一个非常方便的开源工具,用于简化您的拉取请求 (PR) 检查。 正如 Danger 的库描述所说,该工具通过管理 PR 检查来帮助您“形式化”您的代码审查系统。 Danger 与您的 CI 集成,并帮助您加快审查过程。
将 Danger 与您的项目集成是一个简单的分步过程,您只需要包含 Danger 模块并为每个项目创建一个 Danger 文件。 但是,创建一个 Danger 帐户(通过 GitHub 或 Bitbucket 轻松完成),然后为您的开源软件项目设置访问令牌会更方便。
Danger 可以通过 NPM 或 Yarn 安装。 要使用 Yarn,请添加 danger -D 以将其添加到您的 package.JSON。
将 Danger 添加到您的 CI 后,您可以
- 突出显示重要的构建工件
- 通过强制链接到 Trello 和 Jira 等工具来管理冲刺
- 强制实施变更日志
- 利用描述性标签
- 以及更多
例如,您可以设计一个系统,该系统定义团队文化并制定代码审查和 PR 检查的具体规则。 常见问题可以根据 Danger 提供的元数据及其广泛的插件生态系统来解决。
Snyk
网络安全是开发人员的主要关注点。 Snyk 是最著名的工具之一,用于修复开源组件中的漏洞。 它最初是一个修复 Node.js 项目中漏洞的项目,后来发展到检测和修复 Ruby、Java、Python 和 Scala 应用程序中的漏洞。 Snyk 主要在四个阶段运行
- 查找漏洞依赖项
- 修复特定漏洞
- 通过 PR 检查防止安全风险
- 持续监控应用程序
Snyk 可以在任何阶段与您的项目集成,包括编码、CI/CD 和报告。 我发现它对于测试 Node.js 项目以测试 npm 包是否存在安全风险或在构建时非常有用。 您还可以在 GitHub 中为您的应用程序运行 PR 检查,以使您的项目更安全。 Synx 还提供了一系列集成,您可以使用这些集成来监控依赖项并修复特定问题。
要在本地计算机上运行 Snyk,您可以通过 NPM 安装它
npm install -g snyk
Migrat
Migrat 是一个非常易于使用的数据迁移工具,它使用纯文本。 它适用于各种不同的堆栈和流程,这使其更加方便。 您可以使用简单的代码行安装 Migrat
$ npm install -g migrat
Migrat 不特定于特定的数据库引擎。 它支持多节点环境,因为迁移可以在一个节点上全局运行,也可以在每个服务器上运行一次。 Migrat 的便利之处在于方便将上下文传递给每个迁移。
您可以定义每个迁移的用途(例如,数据库集、连接、日志记录接口等)。 此外,为了避免多个服务器全局运行迁移的随意迁移,Migrat 在进程运行时方便全局锁定,以便它只能全局运行一次。 它还附带一系列用于 SQL 数据库、Slack、HipChat 和 Datadog 仪表板的插件。 您可以将实时迁移发送到任何这些平台。
Clinic.js
Clinic.js 是一个用于 Node.js 项目的开源监控工具。 它结合了三个不同的工具——Doctor、Bubbleprof 和 Flame——它们可以帮助您监控、检测和解决 Node.js 的性能问题。
您可以通过运行此命令从 npm 安装 Clinic.js
$ npm install clinic
您可以根据要监控的项目的哪个方面以及要生成的报告来选择要使用的 Clinic.js 的三个工具中的哪一个
- Doctor 通过注入探针提供详细的指标,并提供有关项目整体健康状况的建议。
- Bubbleprof 非常适合分析,并使用 async_hooks 生成指标。
- Flame 非常适合发现代码中的热路径和瓶颈。
PM2
监控是任何后端开发过程中最重要的方面之一。 PM2 是一个用于 Node.js 的进程管理工具,可帮助开发人员监控其项目的多个方面,例如日志、延迟和速度。 该工具与 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
安装完成后,使用以下命令启动应用程序
$ pm2 start app.js
PM2 最好的部分是它允许您在集群模式下运行您的应用程序。 您可以一次为多个 CPU 核心生成一个进程。 这使得增强应用程序性能和最大限度地提高可靠性变得容易。 PM2 也非常适合更新,因为您可以使用“热重载”选项更新您的应用程序并以零停机时间重新加载它们。 总的来说,它是一个简化 Node.js 应用程序进程管理的好工具。
Electrode
Electrode 是沃尔玛实验室的开源应用程序平台。 该平台可帮助您以结构化的方式构建大规模、通用的 React/Node.js 应用程序。
Electrode 应用程序生成器允许您构建一个专注于代码的灵活核心,提供一些很棒的模块来为应用程序添加复杂的功能,并提供各种工具来优化应用程序的 Node.js 捆绑包。
可以使用 npm 安装 Electrode。 安装完成后,您可以使用 Ignite 启动应用程序,并使用 Electrode 应用程序生成器立即开始使用。
您可以使用 NPM 安装 Electrode
npm install -g electrode-ignite xclap-cli
您最喜欢哪些?
这些只是在使用 Node.js 时在不同阶段可以派上用场的不断增长的开源工具列表中的一小部分。 您首选哪些开源 Node.js 工具? 请在评论中分享您的建议。
3 条评论