yarn的学习-2-从 npm 迁移到 yarn-包管理工具

本文详细介绍了如何从npm平滑过渡到Yarn,包括在现有项目中使用Yarn的基本步骤,解决依赖冲突的方法,以及如何确保团队成员获得相同的依赖配置。同时,对比了Yarn与npm的CLI命令,帮助开发者更好地理解和选择适合自己的包管理工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从npm处迁移过来多许多用户来说是一个相对简单的过程。yarn能想npm一样定制相同的package.json,并能够从npm仓库下载任意的包

如果你想要在已存在的npm项目中使用yarn,运行yarn即可,其默认运行的是yarn install:

yarn

这将使用Yarn的与npm的分辨率算法兼容( node.js module resolution algorithm.)的分辨率算法去部署node_modules文件夹。

如果出现错误,请查看已存在的问题或将其报告给 Yarn issue tracker

当你运行yarn yarn add <package>时,将会在包的根目录下生成yarn.lock文档。你不需要去读或者理解这个文档,只要在源码控制中进行检查即可。当其他人使用yarn来替代npm时,yarn.lock文档将保证他们精确地得到与你相同的依赖

在大多数例子中,第一次运行yarn or yarn add就能成功。但是在一些例子中,package.json中的信息不够明确去排除依赖,且会与yarn选择依赖的明确方式产生冲突。这种情况经常发生在一些大项目中,npm install经常失败,导致开发人员要经常地移除node_modules文件夹去从头开始构建。如果这个情况发生,尽量在转换成yarn之前使用npm去使依赖的版本更加明确

在yarn的1.7.0版本之后,能够使用yarn去import npm生成给yarn的package-lock.json来解决上面的问题

这个项目的其他开发人员还是能够继续使用npm,不需要让这个项目的每个人都同时转换。使用yarn的开发人员都会得到与他人相同的配置,使用npm的可能会有稍微的不同,这是npm有意导致的。

之后,如果你认为yarn不适合你,你仍能够回去使用npm,并不需要做任何的变化。如果这个项目没有人需要使用yarn,那么你就可以删除你的yarn.lock文档,但是这不是必须要做的。

如果你正使用npm-shrinkwrap.json文档,要注意你可能会导致一系列不同的依赖。yarn不支持npm-shrinkwrap.json,因为它没有足够的信息去支持yarn更多的确定性算法。如果你正在使用npm-shrinkwrap.json,那么将这个项目的所有人同时转成使用yarn将更加容易。只要将npm-shrinkwrap.json删除并检查新创建的yarn.lock即可。

 

CLI commands comparison 两者的cli对比:

npm (v5)Yarn
npm installyarn install
(N/A)yarn install --flat
(N/A)yarn install --har
npm install --no-package-lockyarn install --no-lockfile
(N/A)yarn install --pure-lockfile
npm install [package]yarn add [package]
npm install [package] --save-devyarn add [package] --dev
(N/A)yarn add [package] --peer
npm install [package] --save-optionalyarn add [package] --optional
npm install [package] --save-exactyarn add [package] --exact
(N/A)yarn add [package] --tilde
npm install [package] --globalyarn global add [package]
npm update --global                  yarn global upgrade                    
npm rebuildyarn add --force
npm uninstall [package]yarn remove [package]
npm cache cleanyarn 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                  

转载于:https://www.cnblogs.com/wanghui-garcia/p/9928848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值