npm 与 npx 之间的联系和区别

npm 和 npx 都是 Node.js 中的命令行工具,但它们的作用和使用方法有所不同。

npm 是 Node.js 自带的包管理器,可以用于安装和管理 Node.js 模块和包。npm 可以从公共仓库(npm registry)中下载和安装各种包,也可以将自己编写的包发布到公共仓库中供他人使用。npm 可以在全局和局部环境中使用。在局部环境中使用时,npm 会将安装的包放在当前项目的 node_modules 目录下,并将它们添加到项目的 package.json 文件中。

npx 是 npm 5.2.0 版本以后引入的一个命令行工具,用于执行当前项目或者全局安装的 Node.js 模块中的可执行文件。npx 的作用类似于 npm run,但它不需要在 package.json 文件中定义脚本命令。npx 可以在命令行中直接指定要执行的模块和可执行文件,也可以从公共仓库中下载并执行模块和可执行文件,而不需要提前进行安装。

npx 与 npm 的区别在于,npx 是临时安装模块并执行,执行完毕后会自动删除,而 npm 安装的模块是长期存在的。

因此,npx 更适合于在临时需要使用某个 Node.js 模块的情况下使用,而 npm 则更适合于管理项目中的依赖项和构建工具。

下面是 npm 和 npx 常见使用方法的示例:

1.使用 npm 安装包

使用 npm 安装 React 框架:

1
npm install react

这会将 React 安装到当前项目的 node_modules 目录中,并将其添加到 package.json 文件中的 dependencies 字段中。

2.使用 npm 安装全局包

使用 npm 安装 Babel 编译器:

1
npm install -g babel-cli

这会将 Babel 安装到全局环境中,可以在任何目录中使用。

3.使用 npm 运行脚本

在 package.json 文件中定义一个脚本:

1
2
3
4
5
{
"scripts": {
"start": "node index.js"
}
}

然后使用 npm 运行该脚本:

1
npm run start

这将运行 index.js 文件。

4.使用 npx 运行本地模块

使用 npx 运行本地安装的 React 脚手架:

1
npx create-react-app my-app

这将在当前目录下创建一个名为 my-app 的新 React 应用程序。

5.使用 npx 运行远程模块

使用 npx 运行远程安装的 http-server:

1
npx http-server

这将从公共仓库中下载 http-server 模块,并在当前目录下启动一个 HTTP 服务器。

版权所有,如有侵权请联系我