当前位置: 首页 > 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.xdnf.cn/news/1165681.html

相关文章:

  • npm全局安装后,依然不是内部或外部命令,也不是可运行的程序或批处理文件
  • Go语言切片(Slice)与数组(Array)深度解析:避坑指南与最佳实践
  • rocky9-zabbix简单部署
  • Vue底层换成啥了?如何更新DOM的?
  • 基于单片机智能消毒柜设计
  • 【IDEA】如何在IDEA中通过git创建项目?
  • 原型链污染
  • uniapp请求封装上传
  • uniapp app打包流程
  • 【Python办公】Excel工作表拆分工具(按照sheet进行拆分-calamine-极速版)
  • NIO技术原理以及应用(AI)
  • Kotlin介绍
  • 重构创作边界:川翔云电脑 - UE5云端超算引擎​
  • Kafka——揭开神秘的“位移主题”面纱
  • Springboot+vue个人健康管理系统的设计与实现
  • 【电影剖析】千钧一发
  • ISPDiffuser文章翻译理解
  • 深入解析MIPI C-PHY (二)C-PHY三线魔术:如何用6种“符号舞步”榨干每一滴带宽?
  • uni-api交互反馈组件(showToast)的用法
  • SmartETL循环流程的设计与应用
  • 《Linux 环境下 Nginx 多站点综合实践:域名解析、访问控制与 HTTPS 加密部署》​
  • 【金仓数据库产品体验官】_KingbaseES(SQLServer兼容版)保姆级安装教程
  • AC身份认证实验之AAA服务器
  • Linux中ELF区域与文件偏移量的关系
  • 【牛客算法】小美的排列询问
  • DL00691-基于深度学习的轴承表面缺陷目标检测含源码python
  • Python可迭代归约函数深度解析:从all到sorted的进阶指南
  • scratch音乐会开幕倒计时 2025年6月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析
  • docker 软件bug 误导他人 笔记
  • Linux网络信息(含ssh服务和rsync)