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中依赖版本范围的表示方法有以下几种:
- 通过比较器
表示 | 含义描述 |
<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 |
如果没有指定运算符,默认为 =
- 通过连字符
表示 | 含义描述 |
2.0.0 - 3.1.4 | >=2.0.0 <=3.1.4 |
0.4 - 2 | >=0.4.0 <=2.0.0 |
版本号中缺少的那些部分会用数字 0 填充。
- 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 |
- ~ 字符范围
同时使用字符 ~ 和次版本号,表明允许修订号
变更。同时使用字符 ~ 和主版本号,表明允许次版本
号变更。
表示 | 含义描述 |
~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 |
- ^ 字符范围
字符 ^ 表明不会修改版本号中的第一个非零数字,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
运行
通过读取.yarnclean
文件的每一行并将每个行用作要删除的文件的全局模式来执行清理。
选项:
-I/--init
:如果文件不存在,则创建.yarnclean
文件,并添加默认条目。然后应该审查和编辑该文件以定制将清理哪些文件。如果该文件已经存在,则不会被覆盖。
-F/--force
:如果.yarnclean
文件存在,请运行清理过程。如果该文件不存在,则不执行任何操作。
默认值:
当使用yarn autoclean --init
命令创建.yarnclean
文件时,它将预填充一组缺省项目以供删除。这个默认列表是对可能不需要的猜测。要预测所有现有和将来的NPM软件包实际上不需要的所有目录和文件是不可能的,因此此默认列表可能会导致软件包不再工作。
这是强烈建议您手动审查默认项.yarnclean
和自定义它们来满足您的需求。
如果您发现autoclean进程正在删除软件包正常工作所需的文件,那么您应该从.yarnclean
文件中删除相应的条目。
示例:
您可以安全地删除您安装在.yarnclean
的所有依赖项中的所有YAML和Markdown文件。你制作一个node_modules
文件包含:
*.yaml
*.md
你然后运行yarn install
或yarn autoclean --force
。清理过程将递归地删除node_modules/
中所有*.yaml
文件和*.md
文件(包括嵌套的传递依赖关系)。