Yarn 是 facebook 发布的一款取代 npm 的包管理工具。
Yarn 缓存了每个下载过的包, 所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率, 因此安装速度更快。
在执行代码之前, Yarn 会通过算法校验每个安装包的完整性。
使用详细、简洁的锁文件格式和明确的安装算法, Yarn 能够保证在不同系统上无差异的工作。
npm 存在一些历史遗留问题, npm 很多依赖不会指定版本号, 默认会安装最新的版本, 这样就会出现问题: 当新版本无法兼容之前的项目, 原项目可能会出现 bug。yarn 为了解决这个问题推出了 yarn.lock 的机制, 把依赖模块的版本号全部锁定, 当你执行 yarn install 的时候, yarn 会读取这个文件获得依赖的版本号, 然后依照这个版本号去安装对应的依赖模块, 这样依赖就会被锁定, 以后再也不用担心版本号的问题了。其他人或者其他环境下使用的时候, 把这个 yarn.lock 拷贝到相应的环境项目下再安装即可。
注意: 这个文件不要手动修改它, 当你使用一些操作如 yarn add 时, yarn 会自动更新 yarn.lock。
npm install -g yarn
查看版本: yarn --version
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
yarn init // 同 npm init, 执行输入信息后, 会生成 package.json 文件
yarn config list
// 显示所有配置项yarn config get <key>
// 显示某配置项yarn config delete <key>
// 删除某配置项yarn config set <key> <value> [-g|--global]
// 设置配置项yarn install
// 安装 package.json 里所有包, 并将包及它的所有依赖项保存进 yarn.lockyarn install --flat
// 安装一个包的单一版本yarn install --force
// 强制重新下载所有包yarn install --production
// 只安装 dependencies 里的包yarn install --no-lockfile
// 不读取或生成 yarn.lockyarn install --pure-lockfile
// 不生成 yarn.lockyarn add [package]
// 在当前的项目中添加一个依赖包, 会自动更新到 package.json 和 yarn.lock 文件中yarn add [package]@[version]
// 安装指定版本, 这里指的是主要版本, 如果需要精确到小版本, 使用 - E 参数yarn add [package]@[tag]
// 安装某个 tag(比如 beta,next 或者 latest)默认安装包的主要版本里的最新版本, 下面两个命令可以指定版本:
yarn add --exact/-E
// 安装包的精确版本。例如 yarn add foo@1.2.3
会接受 1.9.1 版, 但是 yarn add foo@1.2.3 --exact
只会接受 1.2.3 版yarn add --tilde/-T
// 安装包的次要版本里的最新版。例如 yarn add foo@1.2.3 --tilde
会接受 1.2.9, 但不接受 1.3.0yarn publish
yarn remove <packageName>
: 移除一个包, 会自动更新 package.json 和 yarn.lock
yarn upgrade
用于更新包到基于规范范围的最新版本
yarn run
用来执行在 package.json 中 scripts 属性下定义的脚本
yarn info <packageName>
可以用来查看某个模块的最新版本信息
NPM | YARN | 说明 |
---|---|---|
npm init | yarn init | 初始化某个项目 |
npm install/link | yarn install/link | 默认的安装依赖操作 |
npm install taco --save | yarn add taco | 安装某个依赖, 并且默认保存到 package |
npm uninstall taco --save | yarn remove taco | 移除某个依赖项目 |
npm install taco --save --dev | yarn add taco --dev | 安装某个开发时依赖项目 |
npm update taco --save | yarn upgrade taco | 更新某个依赖项目 |
npm install taco --global | yarn global add taco | 安装某个全局依赖项目 |
npm publish/login/logout | yarn publish/login/logout | 发布 / 登录 / 登出, 一系列 NPM Registry 操作 |
npm run/test | yarn run/test | 运行某个命令 |
yarn global add yrm
yrm ls
yrm use yarn
手动删除真的很慢:
npm install rimraf -g
rimraf node_modules
rimraf 是 node 的一个包, 可以快速删除 node_modules, 再也不用等半天了。