npx和npm之间的关系

今天在学习react启动项目的时候看到了npx create-react-app my-app,于是就对npx和npm的关系进行一个整理

首先,介绍一下npx的出现

npx是从npmv5.2版们开始引入的一个命令, 是一个npm的一个包执行器
主要有以下三个地方的区别:

区别1: 一个永久存在(npm),一个临时安装(npx),用完后删除

例子:用创建一个react项目的对比
npm创建

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

npx创建

npx create-react-app test-app

区别:npm他会在本地全局性的安装create-react-app,这个包会存储在node目录下面去。以后创建react项目直接执行create-react-app命令就可以了。
npx命令他会把create-react-app安装包临时安装上,等项目初始化完成以后,他就删除掉。

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

例子:执行webpack里面的文件
(1)npm执行

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

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

(2)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版本、命令的版本,解决了不同项目使用不同版本的命令的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值