前置(3):npm 和npx异同点

打印 上一主题 下一主题

主题 510|帖子 510|积分 1530

npm(Node Package Manager)和npx(Node Package Execute)是两个密切干系但用途不同的命令行工具,它们都是Node.js生态系统中的重要组成部门。
npm



  • 用途:npm是Node.js的包管理器,主要用于安装、更新和管理项目中的依靠包以及其他包。
  • 功能

    • 安装和卸载包。
    • 管理项目的依靠关系。
    • 发布和控制Node.js包。
    • 执行脚本和其他命令。

  • 常用命令:npm install、npm update、npm uninstall、npm run等。
npx



  • 用途:npx是一个命令行工具,它可以执行在npm注册表中的包,无需用户显式下载或安装。
  • 功能

    • 运行在npm注册表中的任何包而不必要全局安装。
    • 执行一次性命令或脚本。
    • 可以运行项目内部安装的命令而不必要通过脚本或者全局安装。

  • 常用场景:比方,你可以直接通过npx运行create-react-app来初始化一个新的React项目,而不必要首先全局安装create-react-app。
核心区别


  • 安装需求

    • npm:通常用于恒久必要在项目中或全局环境中安装的依靠。
    • npx:用于执行一次性利用的包,无需事先安装。

  • 便捷性

    • npm:必要先安装包才气利用,适用于经常必要重复利用的工具。
    • npx:允许用户非常便捷地运行包,特殊是工具或脚本,无需事先安装。

  • 利用场景

    • npm:管理项目依靠,比方在你的Node.js项目中安装Express框架。
    • npx:一次性运行脚本或工具,比方快速试用某个CLI工具或库。

结论

简而言之,npm更侧重于包的管理,而npx则侧重于包的执行。利用npx可以避免全局安装很多不经常利用的Node.js工具,从而保持系统的整齐,并且方便快速地尝试新工具或库。
   npm注册表(npm registry)在那里啊

  npm注册表(npm registry)是一个在线数据库,用于存储由开发者发布的npm软件包。它是npm生态系统的核心部门,为开发者提供了一个中心化的地方来发布和共享JavaScript代码。
默认的npm注册表

默认环境下,npm的命令行工具配置为利用npm官方注册表,其URL是:
  1. https://registry.npmjs.org/
复制代码
访问和利用注册表

当你利用npm install命令安装包时,你的npm客户端会主动连接到这个注册表,下载所需的包和它们的依靠项。同样,当你利用npm publish命令发布一个包时,你的包会被上传到这个注册表,从而使得全世界的其他开发者也能通过npm安装你的包。
修改默认注册表

你可以配置npm利用其他的注册表(好比私有注册表或镜像),这通常是通过修改配置文件或直接在命令行中指定注册表URL来实现的。比方,要改变全局的npm注册表地址,可以利用以下命令:
  1. npm config set registry https://registry.npmmirror.com/
复制代码
这个命令将npm的注册表地址改为一个镜像地址,这在某些地区大概会提供更快的访问速度。
利用第三方注册表

除了npm官方注册表外,还有一些第三方服务提供了自己的npm注册表,比方:


  • Yarn 也利用相同的npm注册表,但它允许配置不同的注册表。
  • CNPM 针对中国大陆地区用户提供了一个镜像注册表,以办理访问官方注册表速度慢的问题。
这些注册表提供了与npm相同的基本功能,但大概会在性能、可用性和特定功能上有所不同。
   npm注册表中的包,无需用户显式下载或安装。这个注册表啥意思啊,无需用户显示下载和安装是啥意思啊?

  在Node.js的生态系统中,npm注册表(npm registry)是一个大型的数据库,用于存储公开发布的Node.js包(libraries)。这些包可以通过npm或npx命令行工具举行访问和管理。注册表允许开发者发布自己的包并且使得其他人能够下载和利用这些包。
无需用户显式下载或安装的含义

当我们说利用npx可以执行npm注册表中的包而“无需用户显式下载或安装”时,意味着:

  • 暂时安装

    • 利用npx执行一个包时,如果你的本地开发环境中没有安装这个包,npx会暂时下载并安装这个包到一个暂时目次。这个过程对用户来说是透明的,即用户不必要手动去执行npm install命令来先安装这个包。

  • 一次性利用

    • 安装完毕后,npx会立即执行这个包的命令,执行完成后通常会主动清理掉这个暂时安装的包,不会留在你的系统中。如许做的好处是你可以非常方便地运行任何npm包中的命令,而无需担心因为全局安装了很多不常用的包而导致的版本冲突或其他问题。

示例

比方,如果你想利用create-react-app这个工具来创建一个新的React应用,你不必要首先运行npm install -g create-react-app来全局安装它。相反,你可以直接运行:
  1. npx create-react-app my-app
复制代码
这条命令会让npx查找create-react-app是否存在于你的本地呆板上,如果不存在,它会从npm注册表中下载最新版,创建你的应用,然后清理掉暂时安装的create-react-app。
这种方式尤其适合在你必要尝试或一次性运行某个包时利用,避免了对全局环境的污染。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表