npx和npm之间的关系

57 篇文章 8 订阅
54 篇文章 0 订阅

在这里插入图片描述

今天的项目中缘遇到用npx执行的命令,现在就把npm和npx之间的关系整理一下,方便自己和大家查阅

一、npx是什么?

npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验,npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用CLI工具和其他托管在注册表。

就像npm极大地提升了我们安装和管理包依赖的体验,在npm的基础之上,npx让npm包中的命令行工具和其他可执行文件在使用上变得更加简单。它极大地简化了我们之前使用纯粹的npm时所需要的大量步骤。

二、一个永久存在、一个临时安装,用完删除

例子:用创建一个react项目的对比 npm创建
在这里插入图片描述
npx创建
在这里插入图片描述
区别:npm他会在本地全局性的安装create-react-app,这个包会存储在node目录下面去。以后创建react项目直接执行create-react-app命令就可以了。

这条命令会临时安装 create-react-app 包,等项目初始化完成以后,命令完成后create-react-app 会删掉,不会出现在 global 中。下次再执行,还是会重新临时安装。

三、npx会帮你执行安装包里面的二进制文件

例子:执行webpack里面的文件 npm执行
在这里插入图片描述
npx执行
在这里插入图片描述
也就是说 npx 会自动查找当前依赖包中的可执行文件,如果找不到,就会去环境变量里面的 PATH 里找。如果依然找不到,就会帮你安装!

四、npx可以执行文件,但是npm不可以

npx 甚至支持运行远程仓库的可执行文件:
在这里插入图片描述

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

在这里插入图片描述
指定node版本来运行npm scripts:
在这里插入图片描述
主要特点:

1、临时安装可执行依赖包,不用全局安装,不用担心长期的污染。

2、可以执行依赖包中的命令,安装完成自动运行。

3、自动加载node_modules中依赖包,不用指定$PATH。

4、可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。

变量里面的 PATH 里找。如果依然找不到,就会帮你安装!

五、应用场景举例

项目中(项目内部,不是全局)安装了测试工具Mocha,我想在项目中调用 Mocha ,怎么调用?

只能在项目脚本和 package.json 的scripts字段里面, 如果想在命令行下调用,只能像下面这样调用:
在这里插入图片描述
看到这里,是不是感觉调用很麻烦?所以出现了npx,让项目内部安装的模块用起来更方便,只要像下面这样调用就行了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值