npm 与 npx:有什么区别?

作者 fimber elemuwa✏️

在使用 javascript 或 node.js 时,您很可能遇到过 npm,即 node 包管理器。它是管理包、安装依赖项并确保您的项目与其所需的库保持最新状态的首选工具。但是 npx 是另一个与 npm 捆绑在一起的工具,它经常引发这样的问题:两者之间有什么区别

乍一看,npm 和 npx 似乎都可以帮助您与 node.js 包交互,但它们的用途不同。在本文中,我们将详细分析 npm 和 npx 之间的主要区别,向您展示它们的工作原理,并探讨何时使用它们。

无论您是在设置新项目、运行脚本,还是只是想知道何时使用 npm 和 npx,本指南都将帮助您了解这两种工具以及它们如何融入您的开发工作流程。

什么是 npm?

npm 代表 node package manager,顾名思义,它是一个用于管理 node.js 包的工具。每次你的项目需要一个新的“包”时,你都会求助于 npm 来帮助你安装它。这些包的范围可以从小型实用函数到成熟的框架和库。

但是 npm 不仅仅用于安装库。它也非常适合管理项目依赖项和脚本。如果您需要锁定库的特定版本以防止发生重大更改,npm 可以满足您的需求。它还允许您在 package.json 文件中定义脚本来自动执行常见任务,例如测试或构建项目。

npm 是如何工作的

将 npm 视为软件组件的数字商店。当您开始一个新的 node.js 项目时,您将需要各种工具和库来构建它。您可以使用 npm 来获取并安装这些预构建的包,而不是重新发明轮子。它的工作原理是维护一个庞大的在线软件包注册表,每个软件包都有其唯一的名称和版本。

当您使用 npm install 命令时,npm 会下载指定的包及其依赖项,并将它们放置在名为 node_modules 的本地目录中,这是跟踪所有项目依赖项和版本的中心位置。本地安装意味着该软件包仅在您安装它的项目中可用。该命令如下所示:

npm install 

例如,如果您想将owsay库添加到您的项目中,您可以输入:

npm install cowsay

然后您的项目就可以访问该目录,从而允许您在代码中使用该包的功能。全局安装使软件包可供整个系统使用,因此您可以将其用于任何项目。这对于您想要从任何地方运行的命令行工具非常有用。

除了简单的包安装之外,npm 还为每个包提供版本控制,让您可以指定所需的确切版本。这对于避免新版本中的重大更改引起的潜在问题至关重要。

此外,npm 提供了一种在 package.json 中定义脚本的方法 – 这些命令可以自动执行启动服务器、运行测试或构建项目等任务。在 package.json 中,您可以定义如下脚本:

{  "scripts": {    "start": "node index.js",    "test": "jest"  }}

npx是什么?

npx 是在 npm v 5.2.0 中引入的。 npm 是关于安装和管理包的,而 npx 是关于运行它们的。

将 npx 视为一个快速命令运行程序,可让您执行 node.js 包而无需安装它们。当您只想使用某个包一次或对其进行测试而不将其永久添加到系统中时,npx 特别有用。

在 npx 之前,如果您想使用软件包中的命令行工具,则必须先全局安装它。 npx 允许您直接从 npm 注册表运行该工具,无需全局安装,从而简化了这一过程。

npx 的工作原理

当您使用 npx 运行命令时,它首先检查您的本地 node_modules 目录。如果在那里找到包,就会执行它。如果没有,npx 会临时安装该包,运行它,然后将其删除。这意味着您可以使用各种工具,而不会弄乱您的系统。

假设您想使用 create-react-app 启动一个新的 react 项目。通常,您必须先全局安装它:

npm install -g create-react-app

然后,你会运行:

稿定AI社区 稿定AI社区

在线AI创意灵感社区

稿定AI社区 60 查看详情 稿定AI社区

create-react-app my-app

但是使用npx,你可以跳过全局安装,直接运行:

npx create-react-app my-app

此命令下载 create-react-app,运行它,并在完成后丢弃它。它既快速又方便,可以防止您的系统因可能只使用一次的全局包而变得混乱。

如果您已经在项目中本地安装了软件包,npx 可以帮助您运行它,而无需指定 node_modules 的完整路径。例如,如果您在本地安装了 jest 进行测试,则可以使用 npx 运行它,如下所示:

npx jest

npx 会自动在本地 node_modules 文件夹中查找包并运行它,节省您的时间和麻烦。

我认为 npx 最酷的功能是它能够确定您正在尝试运行哪个包或命令。它遵循三个步骤来决定如何执行任何命令:

本地检查:npx 首先检查包是否本地安装在项目的 node_modules 文件夹中。如果找到该包,就会从那里运行它全局检查:如果在本地找不到该软件包,npx 会检查它是否已全局安装在您的系统上。如果它在全局范围内找到该包,则会运行它从 npm 注册表中获取:最后,如果 npx 在本地或全局都没有找到该包,它会从 npm 注册表中获取该包,运行它,然后在执行后将其删除

注意,默认情况下,npx 将运行软件包的最新版本,但如果您需要特定版本,您也可以告诉它要运行哪个版本。

npm 和 npx 之间的主要区别

npm 和 npx 都是 node.js 生态系统中至关重要的工具,但它们在不同层面上扮演着不同的角色:

featurenpmnpxpurpose and functionalityprimarily used for installing packages from the npm registry and managing dependencies in node.js projects. it helps in adding, removing, and updating packages, and maintaining package versioningdesigned to execute node packages directly without needing to install them globally. it allows users to run packages without cluttering the global or project-specific `node_modules`package installationinstalls packages locally or globallyexecutes packages temporarily without installing them permanentlytemporary usageinstallation with npm persists until explicitly removed. packages remain in `node_modules` or globally installed pathsruns packages temporarily and discards them after execution unless otherwise specifiedusage`npm install “npx `script setuprequires modifications to `package.json` to create custom scriptsno modifications needed in `package.json` for running commandsexecution of cli toolsmust install cli tools globally or locally before using themcan run cli tools directly from the npm registry without prior installationproject setuptypically used for project setup involving multiple dependencies and versions.ideal for quick project scaffolding or one-time command execution, like `create-react-app`node.js compatibilitybundled with node.js for general project and package managementincluded with node.js starting from v 8.2.0, streamlining the execution of packages

结论:什么时候应该使用 npm 和 npx?

决定何时使用 npm 或 npx 取决于任务和项目的需求。

当您需要安装和管理对开发或生产至关重要的项目依赖项时,您应该使用 npm。由于 npm 确保包在 package.json 中列出,因此您可以完全控制项目内的版本控制和一致性。它也是运行 package.json 中定义的脚本的首选工具,使其成为构建、测试或运行服务器等任务的理想选择。

另一方面,npx 最适合快速、一次性命令或测试工具,无需全局安装。如果您只想使用一个工具一次(例如用于引导 react 项目的 create-react-app),npx 可以让您直接运行它,而不会弄乱您的系统。它还可以方便地运行本地安装的软件包,而无需输入完整路径,从而简化了您的工作流程。简而言之,使用 npm 进行长期依赖管理,使用 npx 进行临时任务或动态运行包。

仅 200 个 ✔️ 监控生产中失败和缓慢的网络请求

部署基于节点的 web 应用程序或网站是最简单的部分。确保您的 node 实例继续为您的应用程序提供资源是事情变得更困难的地方。如果您有兴趣确保对后端或第三方服务的请求成功,请尝试 logrocket。

npm 与 npx:有什么区别?

npm 与 npx:有什么区别?

logrocket 就像网络应用程序的 dvr,记录您网站上发生的所有事情。您无需猜测问题发生的原因,而是可以汇总并报告有问题的网络请求,以快速了解根本原因。

logrocket 为您的应用程序记录基准性能计时,例如页面加载时间、第一个字节的时间、缓慢的网络请求,并记录 redux、ngrx 和 vuex 操作/状态。开始免费监控。

以上就是npm 与 npx:有什么区别?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/387269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 14:11:01
下一篇 2025年11月6日 14:15:59

相关推荐

  • 币安、欧易、HTX哪个更适合你?三大交易所优劣势深度剖析

    币安 (Binance) 币安作为当前全球用户数量与交易量最大的加密货币交易平台之一,提供广泛的加密资产交易服务。其生态系统庞大,涵盖现货、合约、期权交易,以及质押、借贷、NFT市场和IEO平台Launchpad等。币安链(BNB Chain)的发展也为其生态系统注入了活力,BNB作为平台币在全球范…

    2025年12月8日
    000
  • 十大货币交易入口地址大全

    虚拟货币交易入口地址 1. Binance Binance(币安)继续以其庞大的生态系统和无可匹敌的交易深度,稳坐全球最大虚拟货币交易平台的宝座。其现货和衍生品市场的交易量长期占据行业领先地位,为用户提供了极佳的流动性,这意味着交易者可以以更小的滑点完成大额订单。Binance的成功很大程度上归功于…

    2025年12月8日 好文分享
    000
  • 【新手必看】币安、欧易、火币区别全解析

    在数字资产交易领域,选择一个合适的平台对于用户而言至关重要。目前市场上存在众多交易平台,其中一些平台因其规模、用户基础和提供的服务而受到广泛关注。了解不同平台之间的差异,能够帮助用户根据自身需求做出明智的决策。 币安 币安作为全球领先的数字资产交易平台之一,以其庞大的交易量和广泛的用户分布闻名。该平…

    2025年12月8日
    000
  • 比特币,黑客和印度储备:加密鸡尾酒

    从使用比特币的黑客到印度考虑比特币储备,加密货币世界永远不会睡觉。让我们分解最新。 比特币,黑客和印度储备:加密鸡尾酒 比特币展现出的韧性不断受到挑战。从大规模黑客攻击到印度可能将比特币纳入储备体系,最近的动态凸显了加密货币的多面性,在这里创新与风险持续交织。 黑客落网:比特币在网络犯罪中的角色 据…

    2025年12月8日
    000
  • 必安和欧意如何选择 全方位分析

    必安 必安是全球范围内用户基数庞大、交易量名列前茅的数字资产交易平台。该平台提供了极其丰富的加密货币交易对,覆盖了从比特币、以太坊等主流币到许多新兴的DeFi、NFT和GameFi项目代币。必安不仅是一个交易场所,它还构建了一个围绕其原生代币BNB的庞大生态系统,包括币安智能链(BNB Chain)…

    2025年12月8日
    000
  • 币圈三大交易所哪个最好 新手选择指南

    进入加密货币世界,选择一个合适的交易平台是重要一步。目前市场上有众多交易所,其中几个头部平台因其用户体量、交易深度和产品多样性受到广泛关注。对于刚接触数字资产的新手来说,了解这些平台的特点有助于做出更适合自己的决定。 币安binance 币安作为全球用户数量多的数字货币交易所之一,提供了丰富的交易对…

    2025年12月8日
    000
  • PI硬币价格预测今天:它会释放吗?

    分析6月27日pi coin价格走势及其未来影响因素:genai整合与pi2day hype能否抵消代币解锁压力? Pi Coin近期的表现可谓跌宕起伏,令投资者情绪波动剧烈。它究竟会迎来上涨还是面临崩盘?让我们聚焦今日Pi Coin的市场动态及未来价格预测。 当前Pi币价格:陷入震荡区间? 截至6…

    2025年12月8日
    000
  • 虚拟币交易所哪个好?2025新手必看!

    在数字资产日益成为全球关注焦点的当下,选择一个可靠、易用的交易平台是迈入这个领域的第一步。对于刚开始探索虚拟货币世界的新手来说,理解不同交易平台的特点和优势,是做出明智选择的关键。以下将对几个市场上备受关注的虚拟币交易平台进行介绍和对比,希望能为你提供参考。 Binance 作为全球用户量和交易量较…

    2025年12月8日
    000
  • 哪个交易所比较靠谱 十大交易所全方位对比分析

    币安 (Binance) 币安是全球领先的加密货币交易所,提供广泛的数字资产交易服务。它于2017年由赵长鹏创立,迅速发展成为交易量最大的平台之一。币安平台支持多种交易对,包括现货交易、合约交易、期权交易等。除了交易功能,币安生态系统还涵盖了Launchpad(新币发行平台)、币安智能链(BNB C…

    2025年12月8日
    000
  • Resolv协议,令牌销售和波动率:导航加密货币景观

    在市场波动的环境下,resolv协议对代币销售投机行为做出了回应,并揭示了加密启动平台及代币表现的一些整体趋势。 加密行业是一个充满挑战的领域,理解协议、代币发售与市场波动之间的关系至关重要。围绕Resolv协议的最新动态,以及代币发行和表现的整体趋势,带来了许多有价值的观察。让我们一起深入了解! …

    2025年12月8日
    000
  • 系绳,加密和投资基金:一个新时代?

    探索系绳、加密投资基金与数字世界演进的交汇点。 系绳、加密和投资基金:迈向新纪元? 加密货币领域持续演变,由Tether、加密投资基金以及AI代理共同引领这一浪潮。让我们深入探讨最新的进展及其对未来可能带来的影响。 Tether的蓝图:万亿AI代理交易加密资产 Tether首席执行官Paolo Ar…

    2025年12月8日
    000
  • 虚拟货币交易平台入口官网

    最新虚拟货币交易入口地址 1. Binance Binance(币安)继续以其庞大的生态系统和无可匹敌的交易深度,稳坐全球最大虚拟货币交易平台的宝座。其现货和衍生品市场的交易量长期占据行业领先地位,为用户提供了极佳的流动性,这意味着交易者可以以更小的滑点完成大额订单。Binance的成功很大程度上归…

    2025年12月8日 好文分享
    000
  • Sahara AI项目是做什么的?谁创建了Sahara AI代币?团队背景可靠吗?

    sahara ai代币(sahara)是围绕人工智能(ai)相关项目或生态系统构建的数字资产。它通常作为该项目内部功能的一部分,可能用于支付服务、参与治理或获取特定权限。 Sahara AI代币(SAHARA)定义与所属区块链 1. Sahara AI代币(SAHARA)是一种加密货币,其价值和用途…

    2025年12月8日
    000
  • Chainlink(LINK)是什么?预言机如何连接现实与区块链?

    Chainlink(LINK)是一个在区块链领域扮演关键角色的去中心化预言机网络。它解决了一个区块链固有的难题:如何安全可靠地获取和使用链外的现实世界数据。本文将详细介绍Chainlink是什么,以及预言机如何作为桥梁,连接孤立的区块链环境与外部世界的信息,让智能合约能够根据现实情况执行。 2025…

    2025年12月8日
    000
  • 比特币现金(BCH)分叉往事:现在还有投资价值吗?

    比特币现金(BCH)是加密货币世界中一个备受关注的分支,其诞生和后续的发展充满了争议与故事。它源自比特币网络的一次硬分叉,旨在解决原链的扩容问题。然而,BCH自身也经历了一次重大的分叉,形成了不同的阵营。本文将回顾BCH的关键分叉历史,特别是其内部的分裂,并探讨在这些分叉往事之后,BCH在当前市场环…

    2025年12月8日
    000
  • Cosmos(ATOM)生态解析:如何玩转“区块链互联网”?

    Cosmos(ATOM)被誉为“区块链互联网”,其核心目标是构建一个互相连接、能够自由交互的区块链网络。本文将深入解析Cosmos生态系统的独特之处,阐述其如何通过创新技术打破不同区块链之间的壁垒。同时,我们将探讨如何实际参与和“玩转”这一生态,从了解基础概念到进行关键操作,帮助读者更好地理解并利用…

    2025年12月8日
    000
  • 如何用USDT或ETH购买SAHARA?存储SAHARA用什么钱苞最安全

    关于sahara ai代币(sahara) SAHARA代币与所属区块链 1. Sahara AI代币,标识为SAHARA,是Sahara AI项目的原生功能型代币。 2. SAHARA代币通常基于以太坊区块链发行。 3. 作为一种ERC-20标准的代币,SAHARA兼容以太坊生态系统。 Sahar…

    2025年12月8日
    000
  • SAHARA的历史价格走势如何?影响SAHARA价格的因素有哪些?

    Sahara AI代币(SAHARA)是与特定人工智能项目关联的数字资产,主要用于支付服务、治理投票、奖励用户或访问功能;1. SAHARA通常基于如以太坊或BNB Chain等区块链网络构建,不同链的选择影响交易速度、成本和安全性;2. 其价格走势受市场供需关系影响,历史表现包含初期探索、调整及增…

    2025年12月8日
    000
  • 在哪里可以买到SAHARA代币?支持哪些交易所(CEX/DEX)?

    Sahara AI代币(SAHARA)是一种与人工智能项目相关的数字资产,主要用于支付服务费用、获取特定功能访问权限以及参与平台治理。1、它旨在支持和推动底层AI技术的发展;2、该代币部署在BNB Chain上,具备较快交易速度、较低费用及遵循BEP-20标准;3、获取途径包括中心化交易所(如币安、…

    2025年12月8日
    000
  • DeLorean Labs(DMC币)是什么?DMC代币经济学、功能和用途介绍

    目录 什么是 DeLorean Labs(DMC 代币)DeLorean Labs 与 DMC 代币:主要区别DeLorean Labs Crypto 解决了哪些问题?1. 不可退还的定金和预售风险2. 车辆交易中的欺诈和身份盗窃3.车辆历史记录和维护记录不完整4. 不断发展的汽车行业动态5. We…

    2025年12月8日 好文分享
    000

发表回复

登录后才能评论
关注微信