1. Migrating from npm(从npm迁移)

1.从npm迁移

对于大多数用户而言,从npm迁移应该是一个相当简单的过程。Yarn可以使用与package.jsonnpm 相同的格式,并且可以从npm注册表中安装任何软件包。

如果你想试试你现有的npm项目,试试运行:

yarn

这将使用与node.js模块解析算法兼容的Yarn解析算法来布局node_modules文件夹。

如果出现错误,请检查现有问题或将其报告给Yarn题跟踪器

当你运行yarn或者yarn add <package>,Yarn会在你的包的根目录下生成一yarn.lock个文件。您不需要阅读或理解此文件 - 只需将其检入到源代码管理中即可。当其他人开始使用Yarn而不是npm时,该yarn.lock文件将确保他们获得与您具有完全相同的依赖关系。

在大多数情况下,运行yarnyarn add的第一次将会正常工作。在某些情况下,package.json文件中的信息不足以消除依赖关系,并且Yarn选择依赖关系的确定性方式会遇到依赖冲突。这种情况很可能发生在有时npm install无法运行的大型项目中,开发人员经常删除node_modules和从头重建。开始如果发生这种情况,请在转换为Yarn之前尝试使用npm更明确的依赖项版本。

项目中的其他开发人员可以继续使用npm,因此您不需要让项目中的每个人都能同时进行转换。使用yarn的开发人员将获得完全相同的配置,而使用npm的开发人员可能会得到稍微不同的配置,这是预期的npm行为。

然后,如果你决定Yarn不再适合你,你可以不做任何特别的改变就回去使用npm。如果项目中没有人再使用Yarn,则可以删除旧yarn.lock文件,但这不是必需的。

如果您现在正在使用npm-shrinkwrap.json文件,请注意您可能会得到一组不同的依赖关系。Yarn不支持npm shrinkwrap文件,因为它们没有足够的信息来支持Yarn更确定的算法。如果您使用的是shrinkwrap文件,则可以更轻松地将在项目上工作的每个人都同时使用Yarn。只需删除现有npm-shrinkwrap.json文件并检入新创建的yarn.lock文件。

CLI命令比较

npmYarn
npm installyarn install
(N/A)yarn install --flat
(N/A)yarn install --har
(N/A)yarn install --no-lockfile
(N/A)yarn install --pure-lockfile
npm install package(N/A)
npm install --save packageyarn add package
npm install --save-dev packageyarn add package
(N/A)yarn add package
npm install --save-optional packageyarn add package
npm install --save-exact packageyarn add package
(N/A)yarn add package
npm install --global packageyarn global add package
npm update --globalyarn global upgrade
npm rebuildyarn install --force
npm uninstall package(N/A)
npm uninstall --save packageyarn remove package
npm uninstall --save-dev packageyarn remove package
npm uninstall --save-optional packageyarn remove package
npm cache cleanyarn cache clean package
rm -rf node_modules && npm installyarn upgrade