npx 和 npm 之间的区别和联系

🌙
手机阅读
本文目录结构

npx 是什么

npx 是一个工具,是 npm 的一个包执行器,为了提高从 npm 注册表使用软件包的体验 。

它极大地简化了我们之前使用纯粹的 npm 时所需要的大量步骤。

npm 5.2 及更高版本会自带 npx。

区别 1: 工作方式不同

npm 安装的包永久存在,

npx 是临时安装,用完后删除。

比如你使用 create-react-app 创建项目,那么只需要 npx create-react-app my-app 就可以借助create-react-app来初始化一个my-app的 React 项目了。

npm 安装与创建例子

npm install -g create-react-app
create-react-app test-app

区别:npm 他会在本地全局性的安装 create-react-app,这个包会存储在 node 目录下面去。以后创建 react 项目直接执行 create-react-app 命令就可以了。

npx 创建例子

npx create-react-app test-app

npx 命令他会把 create-react-app 安装包临时安装上,等项目初始化完成以后,他就删除掉。

区别 2: 依赖包中的命令

npx 会帮你执行依赖包里的二进制文件。

例子:执行 webpack 里面的文件

npm 执行

npm i -D webpack ./node_modules/.bin/webpack -v
结果是:6.9.0

或者执行
npm i -D webpack`npm bin`/webpack -v

npx 执行

npm i -D webpack
npx webpack -v

也就是说 npx 会自动查找当前依赖包中的可执行文件,如果找不到,就会去环境变量里面的 PATH 里找。如果依然找不到,就会帮你安装!

区别 3.npx 可以执行文件,但是 npm 不可以

npx 支持运行远程仓库的可执行文件:

npx github:piuccio/cowsay hello

再比如 npx http-server 可以一句话帮你开启一个静态服务器!(第一次运行会稍微慢一些)

npx http-server

指定 node 版本来运行 npm scripts:

npx -p node@8 npm run build

主要特点

  • 1、临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
  • 2、可以执行依赖包中的命令,安装完成自动运行。
  • 3、自动加载 node_modules 中依赖包,不用指定 $PATH。
  • 4、可以指定 node 版本、命令的版本,解决了不同项目使用不同版本的命令的问题。

参考

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了