【node】关于npm、yarn、npx的区别与使用

文章目录

  • npm (Node Package Manager):
    • 安装依赖
    • 运行脚本
  • npx:
    • 执行项目依赖中的命令
  • yarn:
    • 安装依赖
      • eg.使用npx yarn install 的作用

npm (Node Package Manager):

  • 用途: npm 是 Node.js 官方提供的包管理工具,用于安装、管理和分享 JavaScript 代码包。
  • 安装依赖: 可以通过 npm install 安装项目依赖,例如:npm install package-name
  • 运行脚本: 可以在 package.json 文件中定义脚本,通过 npm run script-name 执行脚本。
  • 版本管理: 提供版本管理,可以指定安装的包的版本。
  • 全局安装: 通过 -g 参数可以进行全局安装,使包成为全局可执行命令。
  • 安装依赖

    npm install package-name
    

    运行脚本

    npm run start
    

    npx:

  • 用途: npx 是随同 npm 5.2.0+ 版本发布的工具,用于执行项目依赖中的可执行文件,无需显式安装到全局或本地。
  • 临时安装: npx 会在执行命令时,临时安装依赖包,而不需要将其添加到项目的依赖中。
  • 版本检查: 如果本地项目中存在相应版本的依赖,npx 将使用项目中的版本执行,否则会下载并执行最新版本。
  • 执行项目依赖中的命令

    npx package-name
    

    yarn:

  • 用途: yarn 是一个 JavaScript 包管理工具,用于替代 npm 进行包的管理。
  • 性能优化: 具有更快的安装速度、离线安装、并行下载等性能优化。
  • 版本锁定: 通过 yarn.lock 文件可以锁定依赖包的版本,确保团队成员使用相同的版本。
  • 自动清理: 自动清理不再使用的依赖。
  • 安装依赖

    yarn add package-name
    

    选择使用:
    npm vs. yarn: npm 和 yarn 都是常见的包管理工具,选择取决于个人或团队的偏好。在大多数情况下,两者的功能基本相似,可以根据具体需求进行选择。

    npx 的使用场景: npx 通常用于执行项目依赖中的可执行文件,适用于需要一次性执行某个命令而无需全局安装的情况。

    总体来说,这些工具在 JavaScript 生态系统中起到了关键作用,提供了便捷的包管理和执行脚本的方式。

    eg.使用npx yarn install 的作用

    npx yarn install 的作用是使用 npx 命令来运行 yarn install,实际上它等同于直接运行 yarn install。让我们分解一下这个命令:

    npx: 用于执行可执行文件,通常是在项目依赖中找到的可执行文件。如果没有全局安装 yarn,npx 会查找项目依赖中的 yarn 并执行。

    yarn install: 是 yarn 命令的一部分,用于安装项目的依赖。

    因此,npx yarn install 的效果与直接运行 yarn install 是一样的。通常情况下,你可以直接使用 yarn install 来安装项目依赖,而不需要额外使用 npx。

    如果项目中已经存在 yarn 的二进制可执行文件,你也可以直接运行:

    yarn install
    

    或者如果你希望确保使用项目中的 yarn,可以使用 npx:

    npx yarn install
    

    这对于确保使用项目中的本地 yarn 版本而不是全局版本可能是有用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言—fopen和ab+

在C语言中&#xff0c;fopen(“data”,“ab”) 是使用 fopen 函数以追加和读写模式打开一个名为 “data” 的文件的方法。 下面是对这个函数调用的各个部分的解释&#xff1a; fopen 函数 fopen 是一个标准库函数&#xff0c;用于打开文件。它的原型定义在 <stdio.h> 头…

库函数的模拟实现

目录 模拟实现strlen 模拟实现strcpy 模拟实现strcmp 模拟实现strcat 模拟实现strstr 模拟实现memcpy 模拟实现memmove 模拟实现strlen #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int MyStrlen(char* str) {int len 0;while (str[len] ! \0)len;retu…

GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)

目录 前言漏洞分析影响范围查看自己的GitLab版本升级路程 升级过程13.1.1113.8.8 - 14.0.1214.3.614.9.5 - 16.1.6 前言 最近GitLab发了个紧急漏洞需要修复&#xff0c;ok接到命令立刻着手开始修复&#xff0c;在修复之前先大概了解一下这个漏洞是什么东西 漏洞分析 1、组件…

单点登陆(SSO)基于CAS实现前后端分离的SSO系统开发「IDP发起」

关于其他前端常见登录实现单点登录方案&#xff0c;请见「前端常见登录实现方案 单点登录方案 」 前沿 单点登录&#xff08;SSO&#xff09;&#xff0c;英文全称为 Single Sign On。 SSO 是指在多个应用系统中&#xff0c;用户只需要登录一次&#xff0c;就可以访问所有相互…

redis-持久化-1

Redis 提供了2个不同形式的持久化方式。 RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append Of File&#xff09; 一、Redis持久化之RDB 1.什么是RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘&#xff0c; 也就是行话讲的Snapshot快照&#xff0c…

puppeteer实现截图

Window服务器说明 1.在本地安装 puppeteer 先创建一个本地文件夹puppeteer&#xff0c;我的地址D:\common_workspace\puppeteer 然后使用cmd打开这个文件夹所在位置&#xff0c;再执行如下两条命令即可。 npm install -g cnpm --registryhttps://registry.npm.taobao.orgcnpm …

剖析EasyExcel导入出现 The index of ‘xx‘ and ‘xx‘ must be inconsistent 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 在导出Excel的时候,出现如下问题: com.alibaba.excel.exception.ExcelCommonException: The index of tyreNumber and remark must be inconsistentat com.alibaba.exce

为什么需要数据仓库

为什么不在OLTP环境下分析&#xff1f; OLTP环境也会存储历史数据&#xff0c;但这些历史数据并不是业务运行所需的&#xff0c;这些历史数据需要经常归档到数据仓库&#xff0c;并且在OLTP数据库中删除。 相比之下&#xff0c;事务环境适用于连续处理事务&#xff0c;通常应…

搭建通讯猫类似的TCP服务端

最近需要一个公网的TCP服务端平台来做4G模组的发包测验&#xff0c;通讯猫(http://www.tongxinmao.com/App/Detail/id/1)貌似使用不了&#xff0c;就干脆在自己的腾讯云上搭建了简单的TCP服务端。 我们搭建可以在服务器上使用Python、Java、C#等语言自行编写服务器程序。 目前是…

KADB使用PXF连接KES验证

验证环境 KADB版本&#xff1a;Greenplum Database 6.0.0 build dev.V003R002C001B0181.d354cc9215 KES版本&#xff1a;KingbaseES V008R006C007B0012 Java版本&#xff1a;openjdk version "1.8.0_262" PXF部署 以下操作假设KADB和KES已经部署完成并且启动正常…

nomachine下载安装使用教程(远程桌面)

文章目录 参考链接 nomachine 参考链接 [1]【远程桌面】nomachine下载安装使用教程、zerotier下载安装使用教程超详细&#xff1a;https://blog.csdn.net/weixin_44029896/article/details/128555481 [2] 树莓派开发之旅&#xff08;一&#xff09;——使用Nomachine进行远…

java动态导入excel按照表头生成数据库表

1、创建接口接收文件 //controller层 PostMapping("/importExcel1")public void importExcel1(HttpServletRequest request, MultipartFile file) {try {waterMeterService.importExcel1(request,file);} catch (Exception e) {throw new RuntimeException(e);}}//se…

selenium执行出现异常,SessionNotCreatedException ChromeDriver only supports

问题现状&#xff1a; 运行程序报错&#xff1a; selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114 Current browser version is 121.0.6167.85 with binary path /App…

重构改善既有代码的设计-学习(四):简化条件逻辑

1、分解条件表达式&#xff08;Decompose Conditional&#xff09; 可以将大块代码分解为多个独立的函数&#xff0c;根据每个小块代码的用途&#xff0c;为分解而得的新函数命名。对于条件逻辑&#xff0c;将每个分支条件分解成新函数还可以带来更多好处&#xff1a;可以突出条…

cartopy绘图特征

文章目录 添加特征add_feature区域截取 添加特征 cartopy中最基础的地图绘制函数是coastlines&#xff0c;即海岸线线条图&#xff0c;这很复合我们的绘图直觉&#xff0c;毕竟陆地和海洋的边缘&#xff0c;是最清晰的地理特征。而在此之上&#xff0c;还可以通过add_feature函…

Java 面试题库

基础篇 面向对象的特征 封装&#xff08;Encapsulation&#xff09;&#xff1a; 封装是指将对象的数据&#xff08;属性&#xff09;和行为&#xff08;方法&#xff09;结合在一起&#xff0c;形成一个独立的实体。对象的数据被隐藏在内部&#xff0c;只能通过定义好的接口&…

【嵌入式学习】网络通信基础-项目篇:简单UDP聊天室

源码已在GitHub开源&#xff1a;0clock/LearnEmbed-projects/chat 实现的功能 客户端功能&#xff1a; 上线发送登录的用户名[yes] 发送消息和接收消息[yes] quit退出 服务器端功能&#xff1a; 统计用户上线信息&#xff0c;放入链表中[yes] 接收用户信息并给其他用户发送消…

Windows11 鼠标拖动文件到CMD控制终端窗口无效,无法显示具体文件路径

对于某些用户来说&#xff0c;他们可能会在Windows 11上遇到鼠标拖动文件到CMD控制终端时&#xff0c;无法显示具体文件路径的情况。 系统更新&#xff0c;习惯基础操作无效了&#xff0c;真的有点烦&#xff0c;不会提问就无计可施。 果然善于提问&#xff0c;才有果子吃 问…

架构师之路(十五)计算机网络(网络层协议)

前置知识&#xff08;了解&#xff09;&#xff1a;计算机基础。 作为架构师&#xff0c;我们所设计的系统很少为单机系统&#xff0c;因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 ARP协议 地址解…

分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别

分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别 目录 分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 …