提升 JavaScript 开发效率的 Node.js 包
您是否在 JavaScript 代码编写上花费了过多时间?本文将介绍一些可以使 JavaScript 开发人员的工作更加高效和轻松的 Node.js 包。
JavaScript 是一种同步、单线程的编程语言,广泛应用于软件和应用程序开发。许多框架,如 React、Angular、Vue、Express 和 Node.js,都是基于 JavaScript 构建的。
由于 Promise、事件循环、回调、提升、闭包等复杂概念,许多开发人员在编写 JavaScript 代码时会遇到挑战。
为了简化 JavaScript 开发,许多 Node.js 包可以帮助处理错误、格式化代码、删除文件、调试代码、确保安全等。有些包还提供交互式命令行用户界面,以更直观地展示 CPU 使用率、处理能力和错误严重程度。
Retire.js
Retire.js 是一个 JavaScript 库,用于识别项目中使用的 JavaScript 库版本中存在的已知漏洞。
它可以用作 Chrome 扩展、Firefox 扩展、命令行扫描器或 Grunt 插件等。可以使用以下命令进行安装:
$ npm install -g retire
Retire.js 提供了多种命令来扫描 JavaScript 和 Node 文件。它可以扫描 JavaScript 网站并将警告记录在开发人员的控制台中。当发现漏洞时,Retire.js 会生成退出代码 13。Gulp 任务可以自动扫描文件并报告漏洞。
Np
Np 是一个 JavaScript 包,提供代码清理、依赖安装、包和标签发布等多种功能。它确保代码被推送到主分支,并提供交互式用户界面。
双因素身份验证可以提高新存储库的安全性。它通过重新安装依赖项来确保工作基于最新版本。最新版本会被推送到 npm。可以使用以下命令安装:
$ npm install --global np
Np 的各种功能包括从任何分支发布代码、创建用于发布的子目录以及跳过代码清理和测试等。np 可以通过配置文件(如 np-config.js 和 np-config.json)中的 CLI 标志进行配置。
ESLint
ESLint 是一个 JavaScript 包工具,用于解析 JavaScript 并识别 ECMAScript/JavaScript 代码中的模式。它使用 AST(抽象语法树)来评估代码中的模式。该工具的所有规则都以插件的形式定义,并可以在运行时动态添加。可以使用以下命令安装 ESLint:
$ npm init @eslint/config
安装完成后,将生成一个 .eslintrc 文件,其中包含一组规则及其相应的条件。ESLint 允许在用户的 .lock 文件中定义所有依赖项,而不使用自己的 .lock 文件。它还具有很高的安全性。
Shelljs
Shelljs 提供了一个可以在任何操作系统上通过 Node.js API 执行 UNIX 命令的环境。Shelljs 是可移植的,并且支持第三方插件。常用的命令包括 echo、exec、chmod、pushd、popd、cd 和 cat 等。可以使用以下命令安装 Shelljs:
$ npm install [-g] shelljs
它已经在 Firefox、JSHint、ESLint 和 Zepto 等多个项目中进行了测试。本地导入 Shelljs 包优于全局导入。它还可以配置为静默、致命、详细等模式。
Omelette
Omelette 为 Node 和 Deno 项目的代码自动完成提供了一个模板。它使用非常简单的 API,并且支持异步 API 和树形 API。以下是一个使用 Omelette 的示例代码片段:
import * as omelette from 'omelette';
const firstArgument = ({ reply }) => {
reply([ 'beautiful', 'cruel', 'far' ])
}
const planet = ({ reply }) => {
reply([ 'world', 'mars', 'pluto' ])
}
omelette`hello|hi ${firstArgument} ${planet}`.init()
导入 Omelette 后,必须创建一个 Omelette 对象。然后,可以在 omelette 对象上调用各种用于代码自动完成的函数,例如 setupShellInitFile() 用于设置,cleanupShellInitFile() 用于清理。它还支持使用 Lambda 函数来创建复杂的模板文字 API。
Prettier
Prettier 用于格式化代码。它可以帮助调整制表符空格,控制一行中的最大内容,并确保条件和循环语句的正确缩进。它可以将代码转换为简洁易读的格式。例如:
以下代码片段:
foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());
使用 Prettier 格式化后,将转换为以下形式:
foo(
reallyLongArg(),
omgSoManyParameters(),
IShouldRefactorThis(),
isThereSeriouslyAnotherOne()
);
它可以在 CI 环境和集成开发环境(IDE)中运行。
jscpd
jscpd 是一项技术债务管理服务,也是一个 JavaScript 包,可以帮助在各种代码和数字文档中查找重复的代码片段。它使用一种称为 Rabin-Karp 的字符串匹配算法来查找代码重复。
jscpd/core 可以在各种环境中检测代码重复,jspd/tokenizer 用于标记程序源代码。此外,还有许多其他包,如 html-reporter、badge-reporter 和 leveldb-store 等。可以使用以下命令安装 jscpd:
$ npm install -g jscpd
jscpd 被 GitHub Super Linter、Code-Inspector、Mega-Linter 和 Codacy 等项目使用,它们各自将 jscpd 用于不同的目的,例如自然语言处理、行聚合和代码分析等。
Vtop
Vtop 是一个监视器,它可以提供命令行活动的图形化表示。它通过分析正在运行的各种线程和进程,并通过图表、峰值等方式以图形方式展示 CPU 利用率。它是使用 JavaScript、Makefile 和 Shell 开发的。可以使用以下命令安装 Vtop:
$ npm install -g vtop
可以根据需要使用各种主题和颜色代码来使 GUI 更具吸引力。还可以使用各种键盘快捷键,例如 “u” 用于更新,”g” 用于转到列表的顶部进程,”G” 用于移动到列表的末尾,以及 “dd” 用于终止特定组的进程等。
Standardjs
Standardjs 是一个 JavaScript 库,可以自动执行文件配置、格式化代码并快速发现程序员的异常处理问题。可以使用以下命令安装 Standardjs:
$ npm install standard --global
安装完成后,可以使用命令行界面中的“standard”命令在文件或代码片段上运行它。可以通过在 package.json 文件的依赖对象中定义 “standard:”* 来添加 Standardjs 的所有依赖项。
它也可以作为插件安装到各种文本编辑器,如 Visual Studio Code、Sublime Text、Atom、Vim 和 Brackets 等。Node.js、Expressjs、npm、Brave 和 GoDaddy 等公司使用 Standardjs 来满足他们的业务需求。
NodeJsScan
NodeJsScan 是一个用于 Node.js 应用程序的静态安全代码扫描器。它通过交互式用户界面通知应用程序的安全状态。它可以与各种应用程序集成,如用于警报或通知的 Slack、通过配置 NodeJsScan 的 settings.py 文件中的 SMTP 设置实现的电子邮件警报,以及 CI/CD 管道等。它还有助于构建 Docker 镜像。
它会记录错误、信息和警告消息,提供错误的详细描述,例如错误发生的原因、严重性、发生错误的行号、扫描的文件数以及发现的问题等。它还会绘制图形和图表,以提高可读性和分析能力。
Trash
Trash 是一个 JavaScript 库,可以将已删除的文件移动到回收站,而不是永久删除它们。它支持 Mac、Linux 和 Windows 系统。可以使用以下命令安装 Trash:
$ npm install trash
Trash 是一个 API,在调用 trash() 函数时,会将输入和选项作为函数参数。输入可以是字符串或字符串数组,选项可以是一个对象。trash 函数会返回一个 Promise。不同的操作系统使用不同的命令:macOS-trash 在 macOS 中使用,XDG Spec 在 Linux 中使用,而回收站在 Windows 中使用。
Xo
Xo 是一个 JavaScript 和 TypeScript 的包装器,它在底层使用了 ESLint。它通过为代码添加缩进、分号、单引号和逗号等来帮助创建可读性强的代码。Xo 可以使用许多 ESLint 插件,如 unicorn、import、ava 和 n 等。可以使用以下命令安装 xo:
$ npm install xo --save-dev
可以使用 $ xo –fix
命令自动修复问题。可以通过 package.json 文件中的 xo 属性来配置 Xo。它可以作为插件安装到各种编辑器,如 Vim、Visual Studio Code、Atom、Sublime Text 和 Emacs 等。
diff2html
diff2html 代表 “差异解析器和漂亮的 HTML 生成器”。它可以突出显示当前版本的代码与先前版本相比的变化,帮助开发人员轻松识别和理解所做的更改。它使用颜色代码来实现这一目标。
它通过突出显示逐行和并排的变化来实现,同时也会突出显示代码语法更改,并将类似的行组合在一起,以便轻松跟踪代码更改。可以使用以下命令安装 diff2html:
$ npm install diff2html
它还与命令行集成。一些使用 diff2html 的项目包括 Jenkins、Codacy、Ungit、git-explorer 和 code-annotation 等。
Chalk
Chalk 是一个 Node.js 模块,可以帮助格式化和样式化代码。它还可以帮助为文本创建和添加颜色主题。它是一个富有表现力的 API,具有出色的性能。它支持嵌套样式并且没有依赖项。以下是 Chalk 的用法示例:
import chalk from 'chalk';
console.log(chalk.blue('Hello world!'));
chalk.level
定义了每个级别支持的颜色。“0”表示禁用所有颜色,“1”表示支持基本颜色,“2”表示支持 256 色,“3”表示支持真彩色。Chalk 支持的各种用于格式化文本的样式修饰符包括反向、隐藏、可见、删除线、粗体、重置、斜体、下划线、上划线和暗淡等。
Npkill
Npkill 是一个删除旧的和庞大的节点模块文件夹的工具。它有助于快速删除节点模块并清理系统中的空间。它是使用 TypeScript、JavaScript 和 Go 开发的,没有任何依赖关系并且易于使用。可以使用以下命令安装 Npkill:
$ npm i -g npkill
使用 npkill
命令将删除指定路径中的所有节点模块。但删除节点模块时必须小心,因为它是一个不可逆的操作。如果删除任何活动项目正在使用的模块,文件可能会损坏,需要重新安装这些节点模块。
fkill-cli
fkill-cli 是一个开源的交互式命令行工具,用于终止 Linux 进程和端口。它使用 Node.js 开发,简单、免费、安全且跨平台兼容,适用于 Windows、Linux 和 macOS。可以使用以下命令安装 fkill-cli:
$ npm install --global fkill-cli
终止进程需要提供进程名称和 ID。“-f” 可以强制执行操作,而 “-v” 命令可以显示进程参数。fkill API 会将输入和选项作为参数,并返回一个 Promise 对象。一些选项包括 force、silent、ignoreCase、tree 和 forceAfterTimeout。
Localtunnel
Localtunnel 是一个允许从外部环境与计算机的本地环境共享 Web 服务的平台,无需更改系统的 DNS 和防火墙设置。
请求由 Localtunnel 代理,在分配了一个可公开访问的 URL 后,请求将被传递到本地部署的服务器。可以使用以下命令安装 Localtunnel:
$ npm install -g localtunnel
它是安全的并且使用 HTTPS 请求。这些 API 可用于测试 Webhook。可以使用 Localtunnel 在云浏览器中测试 UI。
Inquirer.js
Inquirer.js 是一个用于 Node.js 应用程序的交互式命令行用户界面。它可以简化查找错误、解析输入、验证答案和管理分层提示的过程。它使用原生 ESM 模块来实现其功能。可以使用以下命令安装 Inquirer.js:
$ npm install --save inquirer
常用的方法包括 prompt、registerPrompt 和 createPromptModule 等。prompt()
是一个将问题和答案作为输入并在调用时返回 Promise 的函数。
问题是一个对象,它是与问题相关的值的散列版本,例如类型、消息、默认值、选择和过滤器等。答案键值对包含客户端响应的散列版本。键是问题属性,值可以包含 confirm、input、number 和 rawlist 等。
http-server
http-server 是一个命令行静态 HTTP 服务器。它非常简单,不需要任何配置。它由两个文件组成:index.html 和 404.html。index.html 是请求时渲染的默认文件。找不到文件时会渲染 404.html。可以使用以下命令安装 http-server:
$ npm install --global http-server
它是使用 HTML 和 JavaScript 开发的,并通过 TLS/SSL 证书来保证安全性。它使用 RSA 算法进行密钥加密和解密。出于安全目的,它还允许人们定义密码短语和私钥。
总结
JavaScript 是软件开发中使用最广泛的编程语言。为了使开发人员的工作更加轻松,开发了各种 Node.js 包。
Retire.js、Localtunnel、Xo、Inquirer.js、Shelljs、fpkill、NodeJsScan 和 Prettier 等 Node.js 包可用于格式化代码、确保安全性、突出显示代码更改、删除大型和不需要的节点模块等,有助于开发人员更有效地调试、编写和管理代码。
您还可以阅读有关如何在 Windows 和 macOS 上安装 Node.js 和 NPM 的信息。