好多主题有 bug。
今天(指昨天凌晨)学习yarn。
1. yarn 介绍
yarn 是重新设计的 npm。甚至 yarn 的包也是发布在 npm 官网上的,即包都是通用的。
毕竟 yarn 就是为了改善 npm 的一些缺点而出世的。
3. yarn 安装
官网下载安装即可。
3. yarn 基本命令
很多命令的作用和 npm 非常像,但是单词不一样。
3.1 初始化
-
yarn init
和yarn init -y
生成 package.json 和 npm 一模一样。不过默认是 MIT 认可证,并且默认生成内容要少一些。 -
也可以设置默认 init 生成的内容,和 npm 区别如下:
yarn config set init-author-name oyishyi yarn config set init-author-email oyishyi@balabala.com yarn config set init-license MIT
比起 npm, set 前多了个 config,init与属性之间用的是短杠
-
而不是点.
3.2 安装/添加包
- yarn 把安装包叫做添加包,install 换成 add,其他语法和 npm 一样。install 有别的用法。
yarn add <packageName>@<version>
- 和 npm 一样,会自动加到 package.json 中的 dependencies 属性中。
- 如果要加到 devDependencies 中,后接
--dev
参数。 - yarn 还有两个可选的 dependencies 属性。
peerDependencies
和optionalDependencies
。具体说明见这里。
各自的参数为--peer
和--optional
。 - yarn 里的 install 用法为 yarn install(或者简写单独一个 yarn),根据 package.json 安装所有的依赖。
3.3 升级包
npm 叫更新(update),yarn 叫升级(upgrade)。
yarn upgrade <paclageName>
yarn upgrade <packageName>@<version>
如上所示,可以指定版本升级,甚至可以指定更低的版本,即可以降级。
查看是否需要更新也是用 outdated。
yarn outdated
3.4 删除包
yarn remove <packageName>
3.5 全局操作
- 非常不一样,全局命令不是加
-
前缀的参数,而是在 yarn 后加 global 命令,如下:
yarn global add <packageName>
-
并且全局包安装位置和 npm 不一样,不是在 node.js 下的 node_modules,而是在一个犄角旮旯里:
-
可以通过
yarn global dir
查看这个路径。如果在 vscode 里,查看路径后可以 ctrl+click 快速打开文件夹。 -
可以在安装的时候通过
--prefix
指定安装路径:yarn global add <packageName> --prefix ~/user/myGlobalPackage
-
可以通过
yarn config set
来设置 prefix,从而不再安装到犄角旮旯里。 -
如果
yarn global list
无法使用,这是 bug,等官方修复吧。反正全局安装本来也是不推荐的手段。
5. 用 yarn 发布包
可以用 yarn login 登录,但是不需要密码,等到需要密码的场合才会要求输入密码。
yarn publish 的时候会让你输入新的版本号,所以不用先手动改版本号。
其他操作一模一样,只是每次发布时需要输入密码。
6. 从 npm 转到 yarn
- 如果是一个已经采用 npm 的项目。
- 旧版本,在项目目录里直接运行
yarn
即可,会生成一个yarn.lock
文件,有些时候用 npm 生成的 package.json 的版本依赖不明确,yarn 会遇到麻烦。因此需要先在 npm 里写明确一些再用 yarn。 - yarn 的新版本支持
yarn import
,会把package-lock.json
转成yarn.lock
文件。也避免了上面的情况。
- 旧版本,在项目目录里直接运行
- 之后 npm 和 yarn 互相用都可以,甚至可以部分人用 npm,部分人用 yarn,互不影响。因为两边的安装/删除包都会修改 package.json,因此也不用担心 lock 的修改不一致。因为两者都是先从 package.json 里找要安装哪些包,再从 lock 里找版本。
- yarn.lock 就是锁定版本,可以保证所有人同样版本。
- 不要编辑 yarn.lock,应该完全由 yarn 更改。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!