姚利锋
姚利锋
首页博客片段项目服务讨论关于
☕
❤️
返回片段

发布于  2025 年 10 月 7 日,星期二

精通 npx 命令指南

AI 生成的摘要
此内容由 AI 生成

npx 命令深度解析,覆盖一次性执行、本地包调用、注册表缓存、执行策略与 shell 自动回退机制,演示在 CI、脚手架、多版本共存、零全局安装等场景下的最佳实践,提供性能对比、安全风险排查与自定义配置技巧,帮助开发者用一条命令提升工作流效率并避免依赖污染。

该npx命令是 Node.js 生态系统中一个强大的工具,但其单一功能的易用性常常被人们所忽视。虽然npm它主要用于包管理,但npx它擅长于执行 Node.js 包,无需全局安装。

本文为希望充分利用的开发人员提供了一份备忘单npx,其中包括一些可以简化工作流程的鲜为人知的命令。

目录

  • 目录
  • NPX简介
  • 使用 NPX 运行软件包
  • 查找可执行路径
  • 将 NPX 与特定 Node 版本结合使用
  • 执行 GitHub Gists
  • 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 将包临时缓存在目录,该命令执行后将被清除。这可确保您的系统保持清洁。

# JavaScript# Node.js
返回片段
目录
  • 无目录