当前位置: 首页 > news >正文

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

nodejs 中,npx 扮演着一个方便的工具角色,它与我们熟悉的 npm 既有联系又有明显的区别。下面将详细解释 npx 的作用以及它与 npm 的不同之处。在这里插入图片描述

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 的一部分,但它们的侧重点不同,可以总结为以下几点:

特性npxnpm
核心功能执行 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 这个强大的以太坊开发框架所提供的各种功能。

http://www.dtcms.com/a/292698.html

相关文章:

  • 网络安全渗透攻击案例实战:某公司内网为目标的渗透测试全过程
  • 如何永久删除安卓设备中的照片(已验证)
  • 2025 年非关系型数据库全面指南:类型、优势
  • 【Android】Popup menu:弹出式菜单
  • 小玩 Lifecycle
  • imx6ull-系统移植篇17——linux顶层 Makefile(上)
  • ZooKeeper学习专栏(五):Java客户端开发(原生API)详解
  • map和set的应用与模拟实现
  • UNet改进(24):注意力机制-从基础原理到高级融合策略
  • LLC协议
  • 基于 fastapi 的 YOLO 批量目标检测 API:支持单图 / 文件夹自适应处理
  • 前端葵花宝典
  • 内核协议栈源码阅读(一) ---驱动与内核交互
  • Git的一些使用
  • Vue3 面试题及详细答案120道(31-45 )
  • API网关原理与使用场景详解
  • java学习 leetcode31 下一个排列
  • C语言:第11天笔记
  • ansible 批量 scp 和 load 镜像
  • Spring之【Bean工厂后置处理器】
  • PHP 8.0 超维意识编程终极指南(终篇)终极展望:PHP与宇宙意识融合跨维度架构模式超弦控制器增强版(1)
  • 最新植物大战僵尸杂交版最新版本2.5.1版,内置触屏+加速+全屏,附PC+安卓+iOS最全安装教程!
  • 阶段1--Linux中的文件服务器(FTP、NAS、SSH)
  • 前端_Javascript复习
  • 【C++】第十八节—一文万字详解 | map和set的使用
  • 网络安全第三次作业
  • Java学习第六十六部分——分布式系统架构
  • days32 :零基础学嵌入式之网络2.0
  • Coze智能体工作流:3分钟批量生成连贯人物一致的治愈图文
  • 远程调用图形浏览器(X11 转发)在 CentOS 7 上的安装操作