npm install 指定版本_没错,是npx而非npm——二者区别在哪?

全文共1269字,预计学习时长4分钟

4e724025ec181f36cbe73c2c95d0a13f.png

图源:Unsplash

最近,小芯发现很多人开始学习React时,都会普遍感到困惑,大家常常看见的是npx 而非众所周知的npm。

一些人觉得它很奇怪,但没有多想,其他人则认为这是一个错字,甚至错误地要通过运行npm而非npx来“修复”。

当某件事不止一次发生时,就值得我们仔细揣摩,问题究竟出在哪里?

bbc4e46798317a594fd5278df40f543c.gif

为此,小芯整理出来本文给所有怀有同样误解的小伙伴:

不是错字,是npx,不是npm! :)

NPM

众所周知,npm是Node.js的软件包管理器,其目标是自动化的依赖性和软件包管理。

这意味着,可以在package.json文件中为项目指定所有依赖项(软件包),当需要为其安装依赖项时,只要运行npm install,这样就好啦!

它还提供了版本控制,即可以指定项目的依赖版本,这样可以在大多数情况下,防止更新破坏项目,或者使用首选版本。

a87cc434c358f77fd3cdf0c74bf65504.png

图源:Unsplash

NPX

另一方面,npx是执行Node软件包的工具,它从 npm5.2版本开始,就与npm捆绑在一起。

npx的作用如下:

1.默认情况下,首先检查路径中是否存在要执行的包(即在项目中);2.如果存在,它将执行;3.若不存在,意味着尚未安装该软件包,npx将安装其最新版本,然后执行它;

上文已说明,此行为是npx的默认行为之一,但它具有可用来阻止的标志。

例如,如果运行npx some-package --no-install,意味着告诉npx ,它应该仅执行。

some-package,如果之前未安装,则不安装。

示例

假设有一个名为my-package的软件包,想要执行它。

好吧,若没有npx,要执行一个软件包,必须通过其本地路径运行来完成,如下所示:

./node_modules/bin/my-package

或在 package.json文件的 scripts section中将其定义为单独的脚本,如下所示:

{

"name":"something",

"version": "1.0.0",

"scripts": {

"my-package":"./node_modules/bin/my-package"

}

}

然后使用npm run my-package运行。

现在,运用npx,只需运行npx my-package.,即可轻松实现此目的。

e27136ec13e3e44c422a9e58f9f74ae1.png

图源:Unsplash

现在,大家清楚了吗?

小芯希望本文能帮大家理清这种误解,继续在代码路上一路高歌~

c210b5b9988c46fdcbe9de88bfa6fdb5.png
f8c70238d6ca245e6a952652184f4471.png

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值