我一直在使用npm进行个人项目,最近才偶然发现纱线。在使用npm的同一项目中切换到yarn的卷装管理器是否有任何危害或“预期的副作用”?
因为对我来说,将它们同时使用到一个项目中没有任何害处。
我在开发环境中使用 npm 和 yarn (50/50)。但是在 ci/di 上,我只使用纱线,因为它更快,而且由于纱线,我减少了构建时间。
此外,它们都创建了不同的 .lock 文件名。
尽管这里有一些评论者说可以在同一项目中同时混合纱线和npm,但是在使用yarn和npm之后再再次使用yarn时,这是纱线必须要说的:
warning package-lock.json found. Your project contains lock files generated by tools
other than Yarn. It is advised not to mix package managers in order to avoid resolution
inconsistencies caused by unsynchronized lock files. To clear this warning, remove
package-lock.json.
Run Code Online (Sandbox Code Playgroud)
没有人告诉我们锁定文件的事。
想象一下您在开发环境中使用yarn,并在构建/生产服务器上使用yarn。当您使用纱线安装包并且您的项目在您的计算机上运行时,您可能希望使其在生产环境(您的服务器)上运行。
遗憾的是,当项目在您的计算机上运行时,您将提交您的yarn.lock 文件,该文件“保存”您拥有的每个包的确切版本。
在您的 buid/生产服务器上,您应该调用yarn install,但要求保留带有--frozen-lockfile参数的所有相同版本。有些人甚至说“yarn install --frozen-lockfile应该是默认行为”,我同意。
然后...在您正在工作的项目中进行另一个开发跳转并使用npm(除了yarn)安装包。该新包不会包含在您的yarn.lock文件中,但是,一个新的package-json.lock会创建一个新文件,告诉它正在使用的确切包版本。
当该提交到达您的构建/生产服务器时,它将崩溃、失败,因为文件中不存在该新包yarn.lock。有人需要拉取这些更改,调用 ayarn来安装依赖项并使用新的包依赖项更新锁定文件,然后再次将其推送到存储库。
关于是否使用锁定文件的快速说明。如果您在计算机上上次安装几周后在构建/生产服务器上调用“yarn install”,则该服务器将拥有许多其他新版本,而不是您的上一个“稳定”版本。这种事已经在我身上发生过很多次了。
我最近发布了package-locks-checks,它有助于确保您不仅拥有一个锁定文件,而且还锁定了项目上的每个包版本。
| 归档时间: |
|
| 查看次数: |
2005 次 |
| 最近记录: |