📜  npm 和 npx 有什么区别?(1)

📅  最后修改于: 2023-12-03 14:44:47.090000             🧑  作者: Mango

npm 和 npx 有什么区别?

在 Node.js 生态系统中,npm 和 npx 是两个非常常用的工具,它们都是用来管理和执行 Node.js 模块的。虽然它们的名称很相似,但实际上它们在功能和使用上有很大的区别。

npm

npm(Node Package Manager)是 Node.js 默认的包管理器,它的主要功能是用于安装和管理 Node.js 模块。通过 npm,开发者可以很方便地引入其他人已经开发好的模块,以及把自己开发的模块发布到 npm 仓库供他人使用。npm 还可以通过脚本命令来执行本地安装的模块,例如:

npm install react
node_modules/react/bin/react

在这个例子中,我们先使用 npm 安装了 react 模块,然后使用执行了 react 脚本。

npx

npx 是一个执行 Node.js 模块的工具,在执行时会先查找本地是否存在该模块,如果不存在则会自动下载安装该模块。npx 的主要目的是为了解决在执行全局安装的 Node.js 模块时可能会遇到的冲突和版本不一致的问题,例如:

npm install -g create-react-app
create-react-app my-app

在这个例子中,我们全局安装了 create-react-app 模块,并使用它来创建了一个新的 React 应用。但是如果我们在另外一台机器上使用不同的 Node.js 版本或者 create-react-app 版本时,很可能会出现不兼容的问题。

使用 npx 来代替全局安装的模块可以解决这个问题,并且还可以在执行时指定使用的 Node.js 版本,例如:

npx create-react-app@4.0.1 my-app --use-npm

在这个例子中,我们使用 npx 来在本地临时安装 create-react-app@4.0.1 模块,并在执行时指定使用 npm 作为包管理器。

总结

npm 和 npx 都是用于管理和执行 Node.js 模块的工具,但它们在功能和使用上有很大的区别。npm 主要用于安装和管理模块,而 npx 则用于执行模块,并且可以避免全局安装模块可能会遇到的冲突和版本不一致的问题。在日常开发中,我们需要灵活地使用这两个工具来提高开发效率。