从npm处迁移过来多许多用户来讲是一个相对简单的过程。yarn能想npm同样定制相同的package.json
,并可以从npm仓库下载任意的包html
若是你想要在已存在的npm项目中使用yarn,运行yarn便可,其默认运行的是yarn install:node
yarn
这将使用Yarn的与npm的分辨率算法兼容( node.js module resolution algorithm.)的分辨率算法去部署node_modules文件夹。git
若是出现错误,请查看已存在的问题或将其报告给 Yarn issue trackergithub
当你运行yarn
或 yarn add <package>时,将会在包的根目录下生成
算法yarn.lock文档。你不须要去读或者理解这个文档,只要在源码控制中进行检查便可。当其余人使用yarn来替代npm时,
文档将保证他们精确地获得与你相同的依赖yarn.lock
在大多数例子中,第一次运行yarn
or yarn add就能成功。可是在一些例子中,
npmpackage.json
中的信息不够明确去排除依赖,且会与yarn选择依赖的明确方式产生冲突。这种状况常常发生在一些大项目中,npm install常常失败,致使开发人员要常常地移除node_modules
文件夹去从头开始构建。若是这个状况发生,尽可能在转换成yarn以前使用npm去使依赖的版本更加明确
在yarn的1.7.0版本以后,可以使用yarn去import npm生成给yarn的package-lock.json来解决上面的问题json
这个项目的其余开发人员仍是可以继续使用npm,不须要让这个项目的每一个人都同时转换。使用yarn的开发人员都会获得与他人相同的配置,使用npm的可能会有稍微的不一样,这是npm有意致使的。api
以后,若是你认为yarn不适合你,你仍可以回去使用npm,并不须要作任何的变化。若是这个项目没有人须要使用yarn,那么你就能够删除你的yarn.lock文档,可是这不是必需要作的。
ui
若是你正使用npm-shrinkwrap.json
文档,要注意你可能会致使一系列不一样的依赖。yarn不支持npm-shrinkwrap.json,由于它没有足够的信息去支持yarn更多的肯定性算法。若是你正在使用
spanpm-shrinkwrap.json
,那么将这个项目的全部人同时转成使用yarn将更加容易。只要将npm-shrinkwrap.json
删除并检查新建立的yarn.lock
便可。
npm (v5) | Yarn |
---|---|
npm install |
yarn install |
(N/A) | yarn install --flat |
(N/A) | yarn install --har |
npm install --no-package-lock |
yarn install --no-lockfile |
(N/A) | yarn install --pure-lockfile |
npm install [package] |
yarn add [package] |
npm install [package] --save-dev |
yarn add [package] --dev |
(N/A) | yarn add [package] --peer |
npm install [package] --save-optional |
yarn add [package] --optional |
npm install [package] --save-exact |
yarn add [package] --exact |
(N/A) | yarn add [package] --tilde |
npm install [package] --global |
yarn global add [package] |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall [package] |
yarn remove [package] |
npm cache clean |
yarn cache clean [package] |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |