发布于 2025 年 10 月 7 日,星期二
精通 npx 命令指南
npx 命令深度解析,覆盖一次性执行、本地包调用、注册表缓存、执行策略与 shell 自动回退机制,演示在 CI、脚手架、多版本共存、零全局安装等场景下的最佳实践,提供性能对比、安全风险排查与自定义配置技巧,帮助开发者用一条命令提升工作流效率并避免依赖污染。
该npx命令是 Node.js 生态系统中一个强大的工具,但其单一功能的易用性常常被人们所忽视。虽然npm它主要用于包管理,但npx它擅长于执行 Node.js 包,无需全局安装。
本文为希望充分利用的开发人员提供了一份备忘单npx,其中包括一些可以简化工作流程的鲜为人知的命令。
目录
NPX简介
NPX 是一个与 npm 捆绑在一起的命令行工具。它允许开发人员直接从 npm 注册表执行软件包,而无需全局安装它们。这是特别对于运行一次性命令或测试包很有用,而不会污染全局命名空间。
使用 NPX 运行软件包
NPX 的主要用例是运行 Node.js 包。例如,如果你想运行一个像这样的包create-react-app无需全局安装,您可以使用:
终端窗口
npx create-react-app my-new-app
此命令将下载包,执行它,然后将其从缓存中删除,以保持系统清洁。
查找可执行路径
有时你需要知道npx正在运行一个软件包。我发现这是尤其如果您通过以下方式维护多个版本的 Node.js 运行时,则很有用fnm或nvm。这可以通过使用-p旗帜结合 which或者command -v. 对于类 Unix 系统,命令看起来像这:
终端窗口
npx -p <package-name> which <executable-name>
例子:
要查找可执行文件的位置shellcheck:
终端窗口
npx -p shellcheck which shellcheck
此命令安装shellcheck到 NPX 缓存中的临时位置并报告其可执行文件的路径。
将 NPX 与特定 Node 版本结合使用
NPX 可以习惯于使用特定版本的 Node.js 运行软件包。这是特别测试时有用兼容性跨不同的 Node.js 版本。您可以使用-p旗帜:
终端窗口
npx -p node@14 <command>
此命令将运行指定的使用 Node.js 版本 14 的命令。
执行 GitHub Gists
NPX 可以直接从 GitHub Gists 执行脚本,这对于运行社区共享的小脚本来说非常方便。要执行 Gist,请使用以下命令:
终端窗口
npx gist <gist-id>
替换<gist-id>为您要运行的 Gist 的实际 ID。
安全免责声明:执行来自不受信任来源的代码时要小心,因为它可能包含恶意代码。
NPX 和环境变量
您可以将环境变量传递给 NPX 命令,这对于配置执行包的行为很有用。例如:
终端窗口
MY_VAR=value npx <package-name>
这将设置MY_VAR为value命令执行的持续时间。
安全注意事项
NPX 虽然是一款便捷的工具,但也存在一些安全风险。直接从 npm 仓库运行软件包意味着您正在执行未经您审核的代码。请务必确保您运行的软件包来自可信来源。建议使用npq等工具在执行软件包之前对其进行审核。
常问问题
Q1:NPX 和 npm 有什么区别?
NPX 用于执行软件包,而 npm 用于安装和管理软件包。NPX 允许您运行软件包而无需全局安装它们。
Q2:NPX 可以与私有包一起使用吗?
是的,如果您有必要的身份验证,NPX 可以运行私有包设置在你的 npm 配置中。
Q3:NPX 如何处理包缓存?
NPX 将包临时缓存在目录,该命令执行后将被清除。这可确保您的系统保持清洁。