npx和npm的区别

问题

npx和npm的区别

npm和npx是什么

npm的全称是Node Package Manager12,它是Node.js的包管理器,主要用于自动化项目的依赖性和软件包管理。通过npm,开发者可以在package.json文件中指定项目的依赖项,并通过运行npm install来安装这些依赖项。

而npx12,全称是npm package executor,是一个Node.js的包执行器,它从npm 5.2版本开始与npm捆绑在一起,允许开发者在无需安装的情况下执行任意Node包

两者特性和区别

npx的主要特点是临时安装可执行依赖包2,这意味着它不会在本地全局安装包,从而避免了长期的污染和磁盘空间的浪费。相比之下,npm安装的包通常会存储在本地的node_modules目录下,可能会占用较多的磁盘空间。

npx可以执行依赖包中的命令2,例如,使用npx create-react-app myapp可以创建一个新的React应用,而不需要全局安装create-react-app。这与npm不同,后者需要先通过npm install -g create-react-app安装包,然后才能使用create-react-app命令。

npx支持执行远程Node包4,它能够在需要时下载对应的包并执行,执行完成后会自动删除,这使得npx非常适合一次性使用的场景。而npm则需要先下载并安装包,才能执行。

npx可以指定node版本和命令的版本2,这解决了不同项目使用不同版本的命令的问题。而npm通常需要在项目中指定依赖的具体版本。

npx与npm的另一个区别在于它们的安装方法6。npm是Node.js的一部分,因此通常不需要单独安装。而npx可以从npm中安装,使用命令npm install -g npx6。

npx在执行包时的灵活性8,通过npx二进制文件运行时,必须在任何位置参数之前设置所有标志和选项。而通过npm exec运行时,可以使用双连字符–标志来禁止进一步的解析。

npm init与npx的相似性2,在npm 6版本中,增加了一个新命令npm init,这与npx的功能相似。例如,npm init react-app myapp与npx create-react-app myapp是等价的。但npm init 不能完全取代npx,因为有些包可能需要特定的命名格式才能正确执行。

总结

npx 和 npm 是两个 Node.js 包管理工具中的命令行工具,它们之间有一些区别: 1、npm 是 Node.js 的包管理器,用于安装和管理 JavaScript 模块,以及在项目中运行脚本。npx 是 npm 5.2.0 及更高版本中包含的一个命令行工具,用于执行本地安装的或在线安装的 Node.js 包中的命令。

2、npm 安装的包需要在本地全局或项目依赖中进行安装,才能在命令行中直接使用。而 npx 可以在不需要全局安装的情况下直接运行某个包中的命令。

3、npx 会首先检查本地是否存在指定的包,如果存在则直接运行,如果不存在则先下载该包,再执行其中的命令。这使得 npx 更加灵活,不需要事先安装一个包就能立即运行它的命令。

简而言之,npm 主要用于管理和安装依赖包,而 npx 主要用于运行本地或在线安装的包中的命令。

比如我们用npm安装md5依赖

npm install md5

比如我们用npx运行react 脚手架,来创建项目

npx create-react-app react-demo


原文始发于微信公众号(干货食堂):npx和npm的区别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/273936.html

(0)
青莲明月的头像青莲明月

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!