1. Migrating from npm(从npm迁移)
1.从npm迁移
对于大多数用户而言,从npm迁移应该是一个相当简单的过程。Yarn可以使用与package.json
npm 相同的格式,并且可以从npm注册表中安装任何软件包。
如果你想试试你现有的npm项目,试试运行:
yarn
这将使用与node.js模块解析算法兼容的Yarn解析算法来布局node_modules
文件夹。
如果出现错误,请检查现有问题或将其报告给Yarn题跟踪器。
当你运行yarn或者yarn add <package>,Yarn会在你的包的根目录下生成一yarn.lock个文件。您不需要阅读或理解此文件 - 只需将其检入到源代码管理中即可。当其他人开始使用Yarn而不是npm时,该yarn.lock文件将确保他们获得与您具有完全相同的依赖关系。
在大多数情况下,运行yarn
或yarn 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命令比较
npm | Yarn |
---|---|
npm install | yarn 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 package | yarn add package |
npm install --save-dev package | yarn add package |
(N/A) | yarn add package |
npm install --save-optional package | yarn add package |
npm install --save-exact package | yarn add package |
(N/A) | yarn add package |
npm install --global package | yarn global add package |
npm update --global | yarn global upgrade |
npm rebuild | yarn install --force |
npm uninstall package | (N/A) |
npm uninstall --save package | yarn remove package |
npm uninstall --save-dev package | yarn remove package |
npm uninstall --save-optional package | yarn remove package |
npm cache clean | yarn cache clean package |
rm -rf node_modules && npm install | yarn upgrade |