npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解

简介: npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解

一、npx介绍及使用

平时安装node模块的时候,经常使用的命令是npm。其实还有另外一个命令,叫做npx。网上的说法都是:npx是npm命令的升级版本,功能非常强大。

1、npx 是什么

npx是一个由Node.js官方提供的用于快速执行npm包中的可执行文件的工具。它可以帮助我们在不全局安装某些包的情况下,直接运行该包提供的命令行工具。npx会在执行时,检查本地项目中是否安装了对应的依赖,如果没有安装则会自动下载安装,并执行命令。如果本地已经存在该依赖,则直接执行命令。


使用npx时,可以在命令行中输入要执行的包名加上其参数,例如:

用npx创建vue项目

npx @vue/cli create your-project-name

用npx创建react项目

npx create-react-app your-project-name

2、npx 会把远端的包下载到本地吗?

npx 不会像 npm 或 yarn 一样将包下载到本地的 node_modules 目录中。相反,它会在执行命令时,在本地缓存中寻找并下载包,然后执行该包中的命令。这样可以避免在开发过程中在全局安装大量的包,同时也可以确保使用的是最新版本的包。

3、npx 执行完成之后, 下载的包是否会被删除?

是的,npx会在执行完命令后删除下载的包。这是因为npx会在执行命令之前,将需要执行的包下载到一个临时目录中,并在执行完毕后删除该目录。这样可以避免在本地留下不必要的依赖包。如果需要保留依赖包,可以使用–no-cleanup选项来禁止删除下载的包。


4、npx和npm的区别

npx侧重于执行命令的,执行某个模块命令。虽然会自动安装模块,但是重在执行某个命令。


npm侧重于安装或者卸载某个模块的。重在安装,并不具备执行某个模块的功能。


二、yarn介绍及使用

1、Yarn是什么?

Yarn是一个流行的JavaScript包管理器,它提供了方便的方式来安装、管理、更新和删除JavaScript库和框架。Yarn可以与npm(Node Package Manager)互操作,并且具有更高的性能和更可靠的网络连接。

2、Yarn的常见场景:
  • 安装依赖:使用Yarn可以轻松地安装项目所需的JavaScript库和框架。通过运行yarn install命令,Yarn会读取项目中的package.json文件,并安装所有列出的依赖项。
  • 版本控制:Yarn支持版本控制,可以轻松地管理依赖项的版本。通过运行yarn upgrade命令,可以更新所有依赖项到最新版本。而通过yarn downgrade命令,可以将特定依赖项降级到以前的版本。
  • 发布包:Yarn也允许你发布自己的JavaScript包到npm仓库。通过运行yarn publish命令,可以准备一个npm包并将其发布到npm仓库。
  • 链接依赖:Yarn支持链接依赖项,允许开发人员在不同项目之间共享依赖项。通过运行yarn link命令,可以将一个项目的依赖项链接到另一个项目。
  • 脚本执行:Yarn允许在项目中使用自定义脚本。通过在package.json文件中定义脚本命令,可以轻松地执行自定义脚本,例如运行测试、构建应用程序或启动开发服务器等。

总之,Yarn是一个功能强大的工具,可以帮助开发人员更有效地管理JavaScript项目中的依赖项和脚本。

3、Yarn常用命令

安装yarn命令:

npm install -g yarn

查看版本号

yarn version

初始化项目

yarn init

查看全部配置项

yarn config list

显示某配置项

yarn config get <key>

删除某配置项

yarn config delete <key>

设置配置项

yarn config set <key> <value> [-g|--global]

安装包命令,该命令会根据packge.json文件安装依赖包,生成node_modules文件夹。

yarn install xxx

强制重新下载所有包

yarn install --force

添加包,该命令会自动更新package.json和yarn.lock

yarn add [package]

删除包,该命令会自动更新package.json和yarn.lock

yarn remove <packageName>

发布包

yarn publish

查看缓存

yarn cache

运行脚本,该命令执行在 package.json 中 scripts 属性下定义的脚本。

yarn run

打包,该命令将源码编译成dist目录下发行文件。

yarn build


三、nvm介绍及使用

1、nvm是什么?

nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看等等,与npm不同的是,npm是依赖包的管理工具。

2、nvm的安装

1.下载

2.安装

安装后的目录:C:\Users\admin\AppData\Roaming\nvm

3、nvm的使用

1.看安装的所有node.js的版本

nvm ls

2.查显示可以安装的所有node.js的版本

nvm list available

4.安装所对应的版本。

nvm install 版本号 

// 例如:nvm install 16.20.1

5.// 切换到使用指定的nodejs版本

nvm use 版本号

6.检测是否切换完成,新开一个cmd

node -v

8、删除已安装node

nvm uninstall 版本  

// 例如:nvm uninstall 14.19.0
目录
相关文章
|
8月前
|
资源调度 JavaScript 前端开发
yarn如何用node替换
Yarn 是一个由 Facebook 开发的 JavaScript 包管理工具,提供比 npm 更快、更可靠的依赖管理体验。然而,在某些情况下,使用 Node.js 内置的 npm 工具替代 Yarn 可能更为合适。通过简化项目结构、统一命令行工具、利用丰富的社区资源和支持,npm 能够减少不必要的复杂性。转换步骤包括:安装 Node.js 和 npm、初始化项目、安装依赖包、转换脚本以及使用 npm 运行命令。这样可以确保项目在保持高效的同时,避免引入额外的工具依赖。
178 2
|
4月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
964 11
|
缓存 JavaScript 前端开发
Vue3与Vue2生命周期对比:新特性解析与差异探讨
Vue3与Vue2生命周期对比:新特性解析与差异探讨
652 3
|
7月前
|
存储 人工智能 API
离线VS强制登录?Apipost与Apifox的API工具理念差异深度解析
在代码开发中,工具是助手还是枷锁?本文通过对比Apipost和Apifox在断网环境下的表现,探讨API工具的选择对开发自由度的影响。Apifox强制登录限制了离线使用,而Apipost支持游客模式与本地存储,尊重开发者数据主权。文章从登录策略、离线能力、协作模式等方面深入分析,揭示工具背后的设计理念与行业趋势,帮助开发者明智选择,掌握数据控制权并提升工作效率。
|
11月前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
12月前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
389 4
|
12月前
|
存储 关系型数据库 MySQL
MySQL 字段类型深度解析:VARCHAR(50) 与 VARCHAR(500) 的差异
在MySQL数据库中,`VARCHAR`类型是一种非常灵活的字符串存储类型,它允许存储可变长度的字符串。然而,`VARCHAR(50)`和`VARCHAR(500)`之间的差异不仅仅是长度的不同,它们在存储效率、性能和使用场景上也有所不同。本文将深入探讨这两种字段类型的区别及其对数据库设计的影响。
415 2
|
11月前
|
机器学习/深度学习 人工智能 算法
机器学习与深度学习:差异解析
机器学习与深度学习作为两大核心技术,各自拥有独特的魅力和应用价值。尽管它们紧密相连,但两者之间存在着显著的区别。本文将从定义、技术、数据需求、应用领域、模型复杂度以及计算资源等多个维度,对机器学习与深度学习进行深入对比,帮助您更好地理解它们之间的差异。
|
供应链 网络协议 数据安全/隐私保护
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
747 29

推荐镜像

更多