NPM vs. NPX


文章来源

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 使用教程 - 阮一峰的网络日志

声明:一代明君的小屋|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - NPM vs. NPX


欢迎来到我的小屋