首页 > 其他分享 >npx与npm的区别,使用npx的好处

npx与npm的区别,使用npx的好处

时间:2023-05-06 10:56:36浏览次数:45  
标签:npm node 好处 npx 模块 安装 NPX

 

什么是NPX?

一个npm包执行器,指在提高从npm注册表使用软件包时的体验

NPX是NPM包的执行者。最初,NPX于2017年7月推出.NPX只是一个可以像其他NPM软件包一样安装的NPM软件包。目前,在安装NPM 5.2.0或更高版本时,NPX与NPM捆绑在一起。

 

使用NPX

使用NPX,您可以运行和执行软件包,而无需在本地或全局安装它们。

使用NPX运行NPM可执行文件时

如果安装了包,NPX将搜索包二进制文件(本地或全局),然后运行包。

如果之前未安装该软件包,NPX将不会在您的系统中安装该软件包;相反,它将创建一个临时缓存来保存包二进制文件。一旦执行结束,NPX将从系统中删除已安装的缓存二进制文件。

 

使用npx有如下好处:

摘自:npx的使用 - SummerSatr - 博客园


1、可以直接执行npm包中的可执行文件

比如,项目内部安装了测试工具mocha

npm install -D mocha

一般来说,调用mocha,只能在项目脚本和package.jsonscript字段里面,如果想在命令行下调用,必须像下面这样:

node-modules/.bin/mocha --version

这样使用比较麻烦,使用npx就简单多了:

npx mocha --version

npx的原理很简单,就是运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检测命令是否存在,存在则执行,不存在则临时安装mocha来执行。

2、避免全局安装模块

比如我们新建一个vue项目时,需要先进行脚手架@vue-cli的全局安装,然后再进行项目的新建,如下:

npm install -g @vue/cli
vue create my-app

全局包默认的安装路径为C:\Users\xxx\AppData\Roaming\npm,安装成功后,我们可以在该目录下查看到安装的包。

使用npx可简化如下:

npx @vue/cli my-app

上面代码运行时,npx@vue/cli下载到一个临时目录,使用以后再删除。所以,以后再次 执行上面的命令时,会重新下载@vue/cli

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

相信小伙伴们都遇到过旧的项目用的是比较老的node版本,如果新项目想用新的node版本,则会存在不兼容的情况,可以通过安装nvm来给本地安装多个node包解决此问题。使用npx也可解决该问题。

npx [email protected] -v

4、执行GitHub源码

npx还可以执行GitHub上面的模块源码。

npx github:piuccio/cowsay hello

需要注意的是,远程代码必须是一个模块,即必须包含package.json和入口脚本。

 

总结(摘录苏南大叔的说明)

  • npx侧重于执行命令的,执行某个模块命令。虽然会自动安装模块,但是重在执行某个命令。
  • npm侧重于安装或者卸载某个模块的。重在安装,并不具备执行某个模块的功能。
  • npx非常智能的识别模块,如果模块存在,就使用。如果不存在,就临时下载,用完就删除。
  • 使用某个node模块的时候,根本不用关心是否安装过了。npx会给你最满意的答案(没有对应模块就临时下载)。

所以,不使用特殊参数的npx命令的基本逻辑是:先检查当前项目node_modules/下,是否存在。不存在的话,就检查全局是否已经安装对应的模块。如果还没有的话,就去仓库里面去下载对应的模块,下载完毕就执行。执行完毕就删除,不留下一丝痕迹!

标签:npm,node,好处,npx,模块,安装,NPX
From: https://www.cnblogs.com/zccst/p/17376584.html

相关文章

  • npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\node
    npm项目初始化代码npminit--yesidea代码安装npmnpmiexperss我输入的时候报错了,如下图所示没关系,只需要手动打开C盘的路径文件找到这个文件,并且把他Ctrl+D删除掉即可之后在运行这串代码就可以啦明显成功了......
  • npm命令报错:error Unexpected token '.'; error A complete log of this run can be fo
    如果你的npm报错是这样的errorUnexpectedtoken'.'errorAcompletelogofthisruncanbefoundin:并且你你尝试过了网上各种方法不得行。那么会不会是管控版本vnm的问题呢?弄了一早上不得行;最后尝试了下nvm版本。得出结论:nvm1.1.7这个版本有问题。请升级到nvm1.1.10......
  • nvm(Node Version Manager)安装管理多个版本的 Node.js 和 npm。
    在使用npm安装多个版本的软件包时,需要使用Node.js的版本管理工具–n或 nvm(NodeVersionManager)来管理多个版本的Node.js和npm。下面是使用nvm安装和管理Node.js和npm版本的步骤:安装nvm:您可以使用curl或wget命令来下载和安装nvm: curl-o-https:/......
  • VSCode使用npm的详细步骤
    1.打开cmd输入指令npm-v查看npm是否安装,需要先安装node.jsnode.js安装:https://nodejs.org/en/安装包下载后,一直点击next,安装完成,打开cmd输入 node-v 查看安装是否成功   2.打开vscode在工作区创建一个项目,右键打开“在集成终端中打开” 3.终端中......
  • 【nodejs基础】模块加载机制及npm指令详解03
    1.模块化的基本概念模块化:是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成独立并互相依赖的多个小模块。把代码进行模块化拆分的好处*提高了代码的复......
  • 发布一个npm包
    过程如下:1.注册npm账号2.登录npm账号3.发布包1.注册npm账号首先来到npm官网:https://www.npmjs.com/,点击SignUp输入账号密码邮箱等信息并勾选用户协议后点击注册2.登录npm账号登录npm账号必须使用的是npm镜像,使用淘宝镜像会报错,所以我们需要先将镜像切换为n......
  • 【npm】创建私有npm包,使用Verdaccio
    1、npm官网可以创建私有npm包,但是要收费,每人每月7$,先找免费的2、在线的免费的有GitHub,可以看文章:https://andreybleme.com/2020-05-31/hosting-private-npm-packages-for-free/3、自己本地搭建仓库,可以使用开源项目 verdaccio,这个项目的前身是 sinopia,前身已经不维护了,verdaccio......
  • npm安装yarn报npm ERR Unexpected token ‘.‘错误的解决办法
    问题背景最近发现很多前端框架或前端产品的学习和使用都用到了yarn,一开始不知道这是干什么的,后在网上搜索说是JS包管理工具,我一致都是用的nodeJs,难道node过时了,然后有一顿搜索,网上是这么介绍的。Yarn是什么?“Yarn是由Facebook、Google、Exponent和Tilde联合推出了一个新的JS......
  • npm、node本地启动服务访问静态html
    1.使用express启动服务安装expressnpmiexpress--save新建app.js启动命令文件varexpress=require('express');varpath=require('path');varapp=express();app.use(express.static(path.join(__dirname,'public')));varserver=app......
  • pnpm
    当使用npm时,如果你有100个项目,并且所有项目都有一个相同的依赖包,那么,你在硬盘上就需要保存100份该相同依赖包的副本。然而,如果是使用pnpm,依赖包将被存放在一个统一的位置,因此:如果你对同一依赖包需要使用不同的版本,则仅有版本之间不同的文件会被存储起来。例如,如果某个......