安装包管理工具-Yarn

一、介绍与安装

1.1 介绍

Yarn是一款功能包管理工具,与npm(npm:Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。)类似。有着FAST(快速的), RELIABLE( RELIABLE 可信赖的), AND SECURE DEPENDENCY MANAGEMENT(安全依赖关系管理)的特点。
Yarn官网

1.2 安装Node.js与npm

来自Yarn官网:Installation
It is recommended to install Yarn through the npm package manager, which comes bundled with Node.js when you install it on your system.
建议通过npm包管理器安装Yarn,当您在系统上安装它时,它与Node.js捆绑在一起

Once you have npm installed you can run the following both to install and upgrade Yarn: npm install --global yarn
一旦安装了npm,就可以运行以下程序来安装和升级Yarn:npm install --global yarn

#所以,我们首先要下载安装Node.js,安装完成后,使用和Node.js一起捆绑安装的npm包管理器,运行npm install --global yarn 或者npm install --g yarn ,来安装Yarn。

1.2.1 多个Node.js与npm版本共存(推荐这种)

由于Node.js版本原因,可能会出现一些错误,如IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported。而且不同的项目,所采用的Node.js的版本不同,重新卸载安装配置,太过繁琐。所以可以使用nvm来动态灵活管理Node.js的版本

注意:Win7系统不支持最新版本Node.js,目前我在另一部机器上测试,最高版本只能使用Node.js13.14.0。
Node.js is only supported on Windows 8.1,Windows server 2012 R2, or higher.

#nvm:管理Node.js版本的工具,可以管理多个Node.js版本以及其对应的npm。

#Node.js:一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个开源的、跨平台的 JavaScript 运行时环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

#npm:Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。

#npm、Node.js、npm三者关系的总结:nvm管理Node.js的版本,npm管理Node.js的包。

注意:如果你之前已经单独在自己的机器上安装并使用过Node.js,必须先卸载这个已经安装好的版本,否则不仅无法纳入nvm的版本管理中,而且很可能会出现冲突问题。

推荐这种,先安装nvm(Node.js Version Manager,Node.js版本控制器),安装Node.js动态管理Node.js 的版本。

可以参考我这篇文章 :安装配置nvm-windows对Node.js与npm进行版本控制

1.2.2 只安装单个Node.js与npm

如果已经采用了 1.2.1 多个Node.js与npm版本共存(推荐这种) 中的内容,那么此节(1.2.2 只安装单个Node.js与npm)无需再看。

单个Node.js的完整安装配置过程,可以参考我这篇文章:IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported中的二、安装配置,其中已经以图文的形式,详细的展示了这个安装与配置相关环境变量的过程。

根据自己机器的操作系统,来点击下载Node.js(建议下载LTS长期支持版,我这里安装的是v18.16.1):
Node.js官网下载1
在这里插入图片描述
Node.js官网 ,首页也可以点击下载。
在这里插入图片描述

单个Node.js的完整安装配置过程,可以参考我这篇文章:IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported中的二、安装配置,其中已经以图文的形式,详细的展示了这个安装与配置相关环境变量的过程。
注意点:这里需要配置两个环境变量,即配置用户变量NODE_PATH系统变量Path。(文章中也有)

//配置用户变量NODE_PATH
path是Node.js的安装路径

//系统变量Path
在系统变量Path中添加%NODE_PATH%,可以在何处,让系统可以识别并使用相关命令。

检测是否安装成功

#检测path正常
path 或者 echo %path%

#检测Node.js
node -v

#检测npm
npm -v

在这里插入图片描述

配置npm
在Node.js安装目录中新建node_global&node_cache文件夹

#node_global是npm的全局模块的路径
#node_cache是npm使用时的cache即缓存的配置路径。

在CMD中使用npm config 中的npm config set命令配置node_globalnode_cache文件夹:

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"

在CMD中使用nmp config 中的npm config set命令配置镜像-regisry

#npm config set registry 设置镜像站
npm config set registry=http://registry.npm.taobao.org

使用npm config getnpm config list命令可以获取配置的信息。
以管理员身份运行CMD,输入npm info vue,即可查看刚刚配置的信息。

1.3 使用npm来安装Yarn

npm install --global yarn
或
npm install --g yarn

1.4 配置Yarn

配置Yarn淘宝源

//配置Yarn淘宝源
yarn config set registryhttps://registry.npm.taobao.org -g
yarn config set sass_binary_sitehttp://cdn.npm.taobao.org/dist/node-sass -g

//显示所有配置项
yarn config list

//查看Yarn的版本
yarn --version

在这里插入图片描述
查看Yarn的版本-yarn --version:
在这里插入图片描述

二、Yarn常用命令

//安装yarn
npm install --global yarn
或
npm install --g yarn

//查看版本号
yarn --version

//创建文件夹yarn
md yarn

//进入yarn文件夹
cd yarn

//初始化项目
yarn init // 同npm init,执行输入信息后,会生成package.json文件

//yarn的配置项
//显示所有配置项
yarn config list 

//显示某配置项
yarn config get 

//删除某配置项
yarn config delete

//设置配置项
yarn config set [-g|--global] 

使用npm config get 和npm config list命令可以获取配置的信息
npm config set 参数:可以设置相关内容。


//安装包
//安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock
yarn install

//安装一个包的单一版本
yarn install --flat 

//强制重新下载所有包
yarn install --force 

//只安装dependencies里的包
yarn install --production 

//不读取或生成yarn.lock
yarn install --no-lockfile

//不生成yarn.lock
yarn install --pure-lockfile

//添加包(会更新package.json和yarn.lock)
// 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中
yarn add [package] 

//安装指定版本,这里指的是主要版本,如果需要精确到小版本,使用-E参数
yarn add [package]@[version] 

//安装某个tag(比如beta,next或者latest)
yarn add [package]@[tag]


//不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型:
//加到devDependencies
yarn add --dev/-D

//加到peerDependencies
yarn add --peer/-P 

//加到optionalDependencies
yarn add --optional/-O 


//默认安装包的主要版本里的最新版本,下面两个命令可以指定版本:
//安装包的精确版本。例如yarn add foo@1.2.3会接受1.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3版
yarn add --exact/-E 

//安装包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接受1.2.9,但不接受1.3.0
yarn add --tilde/-T 

//发布包
yarn publish

//移除一个包
//移除一个包,会自动更新package.json和yarn.lock
yarn remove 

//更新一个依赖
//用于更新包到基于规范范围的最新版本
yarn upgrade

//运行脚本
yarn run 用来执行在 package.json 中 scripts 属性下定义的脚本

//显示某个包的信息
yarn info 可以用来查看某个模块的最新版本信息

//缓存
yarn cache

//列出已缓存的每个包
yarn cache list 
//返回 全局缓存位置
yarn cache dir 
//清除缓存
yarn cache clean 


//----------------------------------------------
//npm config get 获取npm 相关配置信息
#npm config list            查看npm config配置的信息
#npm config get cache       获取cache配置的信息 (npm使用时的cache即缓存的配置路径)
#npm config get prefix      获取npm的全局模块的路径
#npm config get registry    获取镜像信息

#经过测试下列简化命令也适用
#npm  get cache       获取cache配置的信息 (npm使用时的cache即缓存的配置路径)
#npm  get prefix      获取npm的全局模块的路径
#npm  get registry    获取镜像信息

三、npm 与 yarn命令比较

引用内容:什么是yarn?如何使用yarn安装依赖?

比如说你的项目模块依赖是图中描述的,@1.2.1代表这个模块的版本。在你安装A的时候需要安装依赖C和D,很多依赖不会指定版本号,默认会安装最新的版本,这样就会出现问题:比如今天安装模块的时候C和D是某一个版本,而当以后C、D更新的时候,再次安装模块就会安装C和D的最新版本,如果新的版本无法兼容你的项目,你的程序可能就会出BUG,甚至无法运行。这就是npm的弊端,而yarn为了解决这个问题推出了yarn.lock的机制,这是作者项目中的yarn.lock文件。
大家会看到,这个文件已经把依赖模块的版本号全部锁定,当你执行yarn install的时候,yarn会读取这个文件获得依赖的版本号,然后依照这个版本号去安装对应的依赖模块,这样依赖就会被锁定,以后再也不用担心版本号的问题了。其他人或者其他环境下使用的时候,把这个yarn.lock拷贝到相应的环境项目下再安装即可。
注意:这个文件不要手动修改它,当你使用一些操作如yarn add时,yarn会自动更新yarn.lock。

四、参考

IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported
安装配置nvm-windows对Node.js与npm进行版本控制
Downloads
Download Node.js®
How to Contribute
Yarn
Installation
什么是yarn?如何使用yarn安装依赖?
什么是yarn?如何使用yarn安装依赖?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QGIS之二十四安装插件

1、从菜单栏中找到插件 2、搜索插件 从搜索框中搜索插件,如“cesium" 3、安装插件 4、查看插件 安装好的插件从这边可以看到,当然,其它插件可能在其它位置 5、已安装插件 可以查看已安装的插件

【实施】Sentry-self-hosted部署

Sentry-self-hosted部署 介绍 Sentry 是一个开源的错误追踪(error tracking)平台。它主要用于监控和追踪应用程序中的错误、异常和崩溃。Sentry允许开发人员实时地收集和分析错误,并提供了强大的工具来排查和修复问题,研发最近是…

HTML特殊字符对照码(避免字符乱码)

最近做了个vue项目,页面上写大于等于符号,小于等于符号的时候,总是出现乱码。特别让人头疼,后来查了资料,使用特殊字符的方式,能解决掉这个问题。所以将这些HTML 特殊字符对照码列出来,方便日后…

电影《惊奇队长2》观后感

上周看完了电影《惊奇队长2》,可能是最近国片看多了,看看国外电影还是感觉非常不错的,其中就有特效部分。目前来说,国内特效和国外还是有一定差距的,在过年时,备受好评的《流浪地球2》据说也是用的国外特效…

2024清理mac苹果电脑内存免费工具CleanMyMac X4.15

当你使用苹果电脑时,内存的优化和清理变得至关重要。随着时间的推移,我们的电脑内存可能会变得拥挤,导致性能下降。清理内存可以提高电脑的速度和反应能力,并确保它始终在良好状态下运行。本文将向您介绍怎么清理苹果电脑内存的方…

2016Outlook显示正在启动无法进入Outlook

2016Outlook显示正在启动无法进入Outlook 故障现象: 因上次非正常关闭,导致Outlook启动时,一直处于启动界面,无法进入主界面正常工作 故障截图: 故障原因: 数据文件异常导致 解决方案: 1、关…

[模版总结] - 树的基本算法3 - 结构转化

二叉树结构转化 通常将二叉树根据某些要求进行结构重构,比如线性结构转化(链表,数组),序列化等。 常见题型 注:这类题目最基本的解题思路是利用递归分治 (也可以使用迭代方法),在构建树结构的时候,我们通…

有什么进销存软件,比较适合零售行业日常开单要求及库存记录?

本文将为大家总结一下对于进销存软件要求: 基础功能:可以日常开单、退换货处理、出入库进阶功能:电脑、手机数据同步,保障数据安全,可进行数据分析 其实无论是小型创业公司,还是一家大型企业,…

Linux下好玩的指令(持续更新)

适用于centOS下,别的Linux换个指令就行,内容是一样的 centOS有的指令安装不了?试试拓展yum源,再安装基本就OK啦! yum install -y epel-release 下面是作者在centOS环境下亲测可以使用的,如果你是root用户直…

软件测试/测试开发丨掌握未来,引领人工智能测试新潮流!

点此领取人工智能课程 在数字化革命的浪潮中,人工智能软件成为企业创新和成功的关键推动力。为了在这个竞争激烈的市场中脱颖而出,精湛的人工智能软件测试技能变得至关重要。 ChatGPT应用实战: 学员将深入了解 ChatGPT 的实际应用&#xf…

微服务和Spring Cloud Alibaba介绍

1、微服务介绍 1.1 系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构 —> 垂直应用架构 —> 分布 式架构—>…

2022年6月 电子学会青少年软件编程 中小学生Python编程 等级考试一级真题答案解析(判断题)

2022年6月Python编程等级考试三级真题解析 判断题(共10题,每题2分,共20分) 26、运行下列python代码后可绘制出下面的半径为50的圆形 import turtle turtle.color(red) turtle.penup() turtle.circle(50) turtle.pendown() 答案:错 考点分析:考查turtle模块的使用,程…

为什么阿里不推荐使用 keySet() 遍历HashMap?

为什么阿里不推荐使用 keySet() 遍历HashMap? HashMap相信所有学Java的都一定不会感到陌生,作为一个非常重用且非常实用的Java提供的容器,它在我们的代码里面随处可见。因此遍历操作也是我们经常会使用到的。HashMap的遍历方式现如今有非常多…

Java爬取哔哩哔哩视频(可视化)

链接:我的讲解视频https://www.bilibili.com/video/BV14e411Q7oG/ 本文仅供学术用途 先上图 代码 爬虫核心 import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.gargoylesoftware.htmlunit.*; import org.apache.commons.…

系列二十六、idea安装javap -c

一、概述 javap -c是一个能够将.java文件反编译为.class文件的指令,例如我在idea中编写了一个Car.java文件,我想看看这个类被编译后长什么样的,就可以使用该指令进行查看。 二、配置 2.1、 Java Bytecode Decompiler File>Settings>Pl…

大数据分析与应用实验任务八

大数据分析与应用实验任务八 实验目的 进一步熟悉pyspark程序运行方式;熟练掌握pysaprk RDD基本操作相关的方法、函数。 实验任务 进入pyspark实验环境,在图形界面的pyspark命令行窗口中完成下列任务: 在实验环境中自行选择路径新建以自…

非对口专业测试人,婉拒猎头、放弃6份高薪offer,你敢信?

从非对口的国贸专业,步入测试之路;从红色旅游小城湘潭,迈入国际化都市上海。“明确方向-及时实践-谨慎选择-踏实扎根-计划未来”。她的每一步,都走得格外坚定有力......话不多说,让我们一起来看看这位小姐姐的成长故事…

PyTorch:张量与矩阵

PyTorch 是一个基于 Python 的科学计算包,专门针对深度学习研究,提供了丰富的工具和库。在 PyTorch 中,张量(tensor)是深度学习的核心数据结构,它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…

DSVPN简介

定义 动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。 目的 越来越多的企业希望建立Hub-Spoke方式的IPSec VPN网络将企业总部…

Linux学习第42天:Linux RS232/485/GPS 驱动实验:天外来客

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 Linux的学习笔记今天更新到了第42天。鉴于国往笔记内容整理中出现的问题,我尽量按照平时学习时笔记的要求进行优化。尽量不再大段大段的贴代码。而是…