yarn
yarn的出现是解决了npm2,node_modules嵌套问题,多个包之间如果有共同依赖就要复制多份,非常浪费磁盘空间。
于是出现了yarn,采用扁平化的方案,将所有依赖平铺成了一层,大大节省了磁盘空间。npm3也采用了同样的方式。
yarn与npm3还存在两个问题没有解决
- 幽灵依赖,什么是幽灵依赖呢。
- 比如我们项目只装了antd却可以使用moment,就是因为antd又依赖了moment,如果我们哪天不用antd,那我们项目中使用的moment就都会报错。这就是幽灵依赖。
- 依赖需要重复安装
- 我们如果有100个项目,电脑上就会存在100个node_modules,如果都依赖了antd,就要装100次,也很浪费磁盘空间。那可不可以100个项目中相同的依赖只装一次呢? pnpm的出现同时解决了上面两个问题。 pnpm采用link软链接的方式,解决了上面两个问题。
# 安装依赖
- 全局安装
yarn global add [package]
- 安装到devDependencies
yarn add -D [package]
- 指定版本
yarn add [package]@[version]
- 安装多个依赖
yarn add [package] [package] [package]
# 升级依赖包
- 升级全局依赖
yarn global upgrade [package]
- 升级到最新版
yarn upgrade [package]
- 升级到指定版本
yarn upgrade [package]@[version]
# 移除依赖
- 局部
yarn remove [package]
- 全局
yarn global remove [package]
# 查看全局安装
- 查看全局安装位置
yarn global dir
- 查看全局安装的依赖
yarn global list
# 缓存
- 获取缓存列表
yarn cache list
- 获取全局缓存位置
yarn cache dir
- 清除缓存
yarn cache clean
# 配置信息
yarn config list
获取全部配置
{
'version-tag-prefix': 'v',
'version-git-tag': true,
'version-commit-hooks': true,
'version-git-sign': false,
'version-git-message': 'v%s',
'init-version': '1.0.0',
'init-license': 'MIT',
'save-prefix': '^',
'bin-links': true,
'ignore-scripts': false,
'ignore-optional': false,
registry: 'https://registry.npm.taobao.org/',
'strict-ssl': true,
'user-agent': 'yarn/1.22.19 npm/? node/v16.14.0 darwin x64',
lastUpdateCheck: 1661781465443
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
yarn config set key value -g
配置某项属性(-g 全局生效,不加-g只在当前项目生效)
示例:yarn config set registry https://registry.npm.taobao.org -g
设置源yarn config get key
获取某项配置
示例:yarn config get registry
获取源
编辑 (opens new window)
上次更新: 2022/11/06