registry

是模仓库提供了一个查询服务,也就是我们常说的源。

在执行yarn install 时,就是向registry 查询得到上面的压缩包地址进行下载的。

工作中,我们可能有需要修改镜像源的场景,比如修改成淘宝源或者自己公司的私有源。
查看和设置源,可以通过 yarn config 命令来完成

查看当前使用的镜像源

yarn config get registry


修改镜像源(以修改成淘宝源为例)

yarn config set registry http://registry.npm.taobao.org/

 

.yarnrc

 

yarn配置文件 C:\Users\Admin\.yarnrc

 

registry "https://registry.npm.taobao.org"
global packageManager=yarn
sass-binary-site "http://npm.taobao.org/mirrors/node-sass"

 

其中registry “https://registry.npm.taobao.org“就是指定淘宝镜像源,是最重要的。其余是指定对应包的下载路径
添加文件且编辑结束后再使用yarn add命令就是从配置的镜像源中拉取需要的包,速度会更快

sass环境安装错误

这个就是单纯的node-sass安装不上情况,windows和连接不上外网问题。

与之前区别就是之前的正常情况下可以安装,但是由于node和npm问题导致安装不上。而此单纯环境的问题,是和node及npm无关,仅是当前环境下安装node-sass包的问题

安装错误:"node-sass@4.14.1 postinstall: `node scripts/build.js`"

解决方案:

   1.执行npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass修改sass源

    再npm install node-sass,如果该方案不行则降级node v16版本到v12版本

 

Yarn

是一个包管理器  yarn中文文档

 

yarn的包遵守semver,即语义化版本。

SemVer 是一套语义化版本控制的约定,定义的格式为

X.Y.Z(主版本号.次版本号.修订号): X.主版本号:进行不向下兼容的修改时,递增主版本号 Y.次版本号: 做了向下兼容的新增功能或修改 Z.修订号:做了向下兼容的问题修复 复制代码

 

yarn中依赖版本范围的表示方法有以下几种:

  1. 通过比较器

表示

含义描述

<2.0.0

任何小于 2.0.0 的版本

<=3.1.4

任何小于或等于 3.1.4 的版本

>0.4.2

任何大于 0.4.2 的版本

>=2.7.1

任何大于或等于 2.7.1 的版本

=4.6.6

任何等于 4.6.6 的版本

>=2.0.0 <3.1.4

交集,大于或等于 2.0.0 并小于 3.1.4

<2.0.0 || >3.1.4

并集 小于 2.0.0 或者大于 3.1.4

如果没有指定运算符,默认为 =

  1. 通过连字符

表示

含义描述

2.0.0 - 3.1.4

>=2.0.0 <=3.1.4

0.4 - 2

>=0.4.0 <=2.0.0

版本号中缺少的那些部分会用数字 0 填充。

  1. X范围
    字符 X、x 或者 * 都可以作为通配符,用于填充部分或全部版本号。 被省略的那部分版本号默认为 x 范围。

表示

含义描述

*

>=0.0.0 (任意版本)

2.x

>=2.0.0 <3.0.0(匹配主要版本)

3.1.x

> = 3.1.0 < 3.2.0(匹配主要和次要版本)

``(空字符串)

* 或 > = 0.0.0

2

2.x.x 或 > = 2.0.0 < 3.0.0

3.1

3.1.x 或 > = 3.1.0 < 3.2.0

  1. ~ 字符范围
    同时使用字符 ~ 和次版本号,表明允许 修订号 变更。同时使用字符 ~ 和主版本号,表明允许 次版本 号变更。

表示

含义描述

~3.1.4

>=3.1.4 <3.2.0

~3.1

3.1.x 或 > = 3.1.0 < 3.2.0

~3

3.x 或 > = 3.0.0 < 4.0.0

  1. ^ 字符范围
    字符 ^ 表明不会修改版本号中的第一个非零数字,3.1.4 里的 3 或者 0.4.2 里的 4。版本号中缺少的部分将被 0 填充,且在匹配时这些位置允许改变。

表示

含义描述

^3.1.4

>=3.1.4 <4.0.0

^0.4.2

>=0.4.2 <0.5.0

^0.0.2

>=0.0.2 <0.0.3

 

使用 yarn add [package-name] 命令安装依赖,默认使用的是 ^ 范围。
需要注意的是,如果一个比较器包含有预发布标签的版本,它将只匹配有相同 major.minor.patch 的版本。 例如 >=3.1.4-beta.2,可以匹配 3.1.4-beta.3,但不会匹配 3.1.5-beta.3 版本。

 

 

 依赖

dependences 代码运行时所需要的依赖,比如vue,vue-router。

devDependences 开发依赖,就是那些只在开发过程中需要,而运行时不需要的依赖,比如babel,webpack。

peerDependences 同伴依赖,它用来告知宿主环境需要什么依赖以及依赖的版本范围。
如果宿主环境没有对应版本的依赖,在安装依赖时会报出警告。

optionalDependencies 可选依赖,这种依赖即便安装失败,Yarn也会认为整个依赖安装过程是成功的。
可选依赖适用于那些即便没有成功安装可选依赖,也有后备方案的情况。

bundledDependencies 打包依赖,在发布包时,这个数组里的包都会被打包打包到最终的发布包里,需要注意 bundledDependencies 中的包必须是在devDependencies或dependencies声明过的。

 

 

常用命令

yarn install 安装依赖

yarn install / yarn  在本地 node_modules 目录安装 package.json 里列出的所有依赖
yarn install --force 重新拉取所有包,即使之前已经安装的(所以以后别在删除node-modules了...)
yarn install --modules-folder <path> 为 node_modules 目录指定另一位置,代替默认的 ./node_modules
yarn install --no-lockfile 不读取或生成 yarn.lock 文件
yarn install --production[=true|false] / --production / --prod 只安装 dependence下的包,不安装 devDependencies 的包

yarn add

yarn add package-name 会安装 latest 最新版本。
yarn add <package...>  安装包到dependencies中
yarn add <package...> [--dev/-D]  用 --dev 或 -D 安装包到 devDependencies
yarn add <package...> [--peer/-P]  用 --peer 或者 -P 安装包到 peerDependencies
yarn add <package...> [--optional/-O] 用 --optional 或者 -O 安装包到 optionalDependencies 
yarn add <package...> [--exact/-E] 用 --exact 或者 -E 会安装包的精确版本。默认是安装包的主要版本里的最新版本。 比如说, yarn add foo@1.2.3 会接受 1.9.1 版,但是 yarn add foo@1.2.3 --exact 只会接受 1.2.3 版。
yarn add <package...> [--tilde/-T]  用 --tilde 或者 -T 来安装包的次要版本里的最新版。 默认是安装包的主要版本里的最新版本。 比如说,yarn add foo@1.2.3 --tilde 会接受 1.2.9,但不接受 1.3.0。

 

yarn config 管理配置文件

yarn config get <key> 查看配置key的值
yarn config list 查看当前的配置
yarn config delete <key> 从配置中删除配置key
yarn config set <key> <value> [-g|--global] 设置配置项 key 的值为 value

其他常用命令

yarn list 查询当前工作文件夹所有的依赖
yarn info <package> [<field>]  查看包信息,可以查看特定
yarn remove <package...>  从依赖里移除名包,同时更新你 package.json 和 yarn.lock 文件。
yarn <script> [<args>] 执行用户自定义的脚本

详细日志模式 运行yarn命令时,增加参数 --verbose,这对排查错误时很有帮助

yarn <command> --verbose

 

yarn autoclean

清除并从软件包依赖关系中删除不必要的文件。

yarn autoclean [-I/--init] [-F/--force]

autoclean命令通过从依赖关系中删除不必要的文件和文件夹来释放空间。它减少了项目node_modules文件夹中的文件数量,这在直接将包检入版本控制的环境中很有用。

注意:此命令仅适用于高级用例。除非您遇到作为node_modules其中一部分安装的文件数量的问题,否则 不建议使用此命令。它将永久删除可能导致软件包停止工作的node_modules 文件。

 

Autoclean功能在默认情况下是禁用的

要启用它,请手动创建一个.yarnclean文件,或运行yarn autoclean --init以使用默认条目创建文件。

.yarnclean文件应该添加到版本控制。

.yarnclean文件存在于包中时,将启用自动清理功能。清理将被执行:

  • install之后
  • add
  • yarn autoclean --force运行

 

ContAlloc yarn 设置 yarn config set registry_ci

 

 

通过读取.yarnclean文件的每一行并将每个行用作要删除的文件的全局模式来执行清理。

选项:

-I/--init:如果文件不存在,则创建.yarnclean文件,并添加默认条目。然后应该审查和编辑该文件以定制将清理哪些文件。如果该文件已经存在,则不会被覆盖。

-F/--force:如果.yarnclean文件存在,请运行清理过程。如果该文件不存在,则不执行任何操作。

默认值:

当使用yarn autoclean --init命令创建.yarnclean文件时,它将预填充一组缺省项目以供删除。这个默认列表是对可能不需要的猜测。要预测所有现有和将来的NPM软件包实际上不需要的所有目录和文件是不可能的,因此此默认列表可能会导致软件包不再工作。

这是强烈建议您手动审查默认项.yarnclean和自定义它们来满足您的需求。

如果您发现autoclean进程正在删除软件包正常工作所需的文件,那么您应该从.yarnclean文件中删除相应的条目。

示例:

您可以安全地删除您安装在.yarnclean的所有依赖项中的所有YAML和Markdown文件。你制作一个node_modules文件包含:

*.yaml
*.md

你然后运行yarn installyarn autoclean --force。清理过程将递归地删除node_modules/中所有*.yaml文件和*.md文件(包括嵌套的传递依赖关系)。