> 技术文档 > nodejs:告别全局安装,npx 命令详解及其与 npm 的区别_npx命令验证

nodejs:告别全局安装,npx 命令详解及其与 npm 的区别_npx命令验证

nodejs 中,npx 扮演着一个方便的工具角色,它与我们熟悉的 npm 既有联系又有明显的区别。下面将详细解释 npx 的作用以及它与 npm 的不同之处。nodejs:告别全局安装,npx 命令详解及其与 npm 的区别_npx命令验证

npx 的作用

npx 是一个 npm 包执行器,自 npm 5.2.0 版本开始,它就与 npm 捆绑在一起。 npx 的主要目的是提升从 npm 注册表中使用软件包的体验。

npx 最核心的功能是让我们能够直接运行 npm 包中的可执行文件,而无需进行全局安装。 当我们执行一个命令时,npx 会检查该命令是否存在于我们的项目本地的 node_modules/.bin 目录或者系统的环境变量 $PATH 中。如果存在,它会直接执行;如果不存在,npx 会临时下载对应的包,执行完命令后,通常会将下载的包删除,从而避免了在本地留下不必要的依赖包。

npx hardhat 命令中:

  • npx 负责执行 hardhat 这个包。
  • hardhat 是一个用于以太坊智能合约开发的流行框架,它提供了一系列工具和插件来帮助开发者进行编译、测试和部署等工作。
  • 通过 npx hardhat,我们可以直接使用 hardhat 提供的各种命令,例如 npx hardhat compile (编译合约) 或 npx hardhat test (运行测试),而不需要先将 hardhat 全局安装到我们的电脑上。

npxnpm 的区别

虽然 npxnpm 的一部分,但它们的侧重点不同,可以总结为以下几点:

特性 npx npm 核心功能 执行 npm 包中的可执行文件。 管理 (安装、卸载、更新) Node.js 包。 安装方式 通常无需全局或本地安装包即可执行。 需要先通过 npm install 命令安装包才能使用。 使用场景 * 临时或一次性使用的命令行工具。
* 避免全局安装,减少版本冲突。
* 方便地使用不同版本的工具。 * 管理项目的依赖项。
* 发布自己的包到 npm 仓库。 对包的处理 临时下载包,执行后通常会删除,不污染全局环境。 将包安装到项目的 node_modules 目录或全局目录中。

举个例子来理解它们的区别:

  • 使用 npm: 如果我们想使用 create-react-app 来创建一个新的 React 项目,我们可能需要先全局安装它:npm install -g create-react-app,然后再执行 create-react-app my-app
  • 使用 npx: 我们可以直接运行 npx create-react-app my-appnpx 会自动下载最新版本的 create-react-app,运行它来创建项目,然后完成任务。我们不需要担心全局安装或者包的版本问题。

总结

总的来说,npx 是一个非常实用的工具,它极大地简化了 Node.js 开发者的工作流程。 它让我们能够轻松地运行各种命令行工具,而无需担心全局安装带来的版本冲突和环境污染问题。而 npm 则更侧重于项目依赖的管理和包的安装。在 npx hardhat 这个命令中,npx 让我们能够便捷地直接使用 hardhat 这个强大的以太坊开发框架所提供的各种功能。