npx和npm之间的关系

npx和npm之间的关系


今天的项目中缘遇到用npx执行的命令,现在就把npm和npx之间的关系总结一下,方便以后阅读!


具体实现骨架屏方案:

  • npx是什么?

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

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

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

  • 应用场景举例


一、npx是什么?

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

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

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


npm创建react项目时: 


npx和npm之间的关系


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


npx创建react项目时: 


npx和npm之间的关系


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


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


npm执行webpack里的文件时:


npx和npm之间的关系


npx执行webpack里文件时


npx和npm之间的关系


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


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


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


npx和npm之间的关系


再比如 npx http-server 可以一句话帮你开启一个静态服务器的!


npx和npm之间的关系


运行npm scripts来指定node版本:


npx和npm之间的关系


主要特点:

 1、临时安装依赖包,不用全局安装,不用担心长期的污染。只是运行自己所需要的依赖包文件回家可以了!’

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

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

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


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


五、应用场景举例


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

只能在项目脚本和 package.json 的scripts字段里面, 如果想在命令行下调用,只能像下面这样调用:


npx和npm之间的关系

看到这里,是不是感觉调用很麻烦?所以出现了npx,让项目内部安装的模块用起来更方便,只要像下面这样调用就行了


npx和npm之间的关系


原文始发于微信公众号(Front小思):npx和npm之间的关系

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/40777.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!