文章来源
NPM vs. NPX,傻傻分不清楚 ——程序员晚天
npm 和 npx 在前端开发中都会时常被用到,npm 大家相对熟悉,npx 是什么则有一定的迷惑性,时常在安装依赖的命令中会看到,但是又不一定知道 npx 到底是什么,和 npm 有什么关系和区别。
NPM vs. NPX
简单来说,npm 是一个 node 包管理器,npx 是一个 Node 包执行器。
NPM 是 Node 包管理器。NPM 内置在 Node.js 中,通过命令行工具 CLI 来和线上 NPM 数据库进行交互,这个数据库被称为 NPM Register,
NPX 是一个 Node 包执行器,该 Node 包可以是本地也可以是远程的。允许开发者在无需安装的情况下执行任意 Node 包。
NPX 安装方法:
npm install -g npx执行本地 Node 包时,NPX 会到node_modules/.bin路径和环境变量 $PATH 里面,检查命令是否存在。
执行远程 Node 包时,NPX 会将 Node 包下载到一个临时目录中,使用以后再删除。
举个栗子
下面我们通过 NPM 和 NPX 执行 Node 包的例子来更具象的了解 NPM 和 NPX 的不同。
使用 NPM 执行
将 Node 包安装到本地:
npm install package_name通过本地路径执行 Node 包:
./node_modules/.bin/package_name也可以通过 package.json 中的 scripts 命令来执行 Node 包:
package.json:
{
"name": "Project-Name",
"version": "x.y.z",
"scripts": {
"package-name": "package-name"
}
}执行 scripts:
npm run package-name使用 NPX 执行
通过 NPX 则简单很多,无需安装 Node 包就可以通过一个命令执行 Node 包。执行执行如下命令:
npx your-package-name总结
NPM 是一个 Node 包管理器,NPX 是一个 Node 包执行器。Node 的执行也可以 NPM 来完成,但是必须进行本地安装,通过定位本地路径或者配置 scripts 来能执行。NPX 则通过一个简单命令大大简化了包运行的成本,既可以运行本地包,也可以远程包,无需安装包也可以执行该包,这就有效避免了本地磁盘污染的问题,节省了本地磁盘空间。
参考资料
Difference between NPM and NPX
npm vs npx — What’s the Difference?
npx
npx 使用教程 - 阮一峰的网络日志


Comments | NOTHING