如何使纱线具有确定性?
[the Yarn blog他们说:
纱线是完全确定性的,只要您的所有队友都使用相同的纱线版本即可。
要求每个人都使用相同的版本似乎是一个很大的限制。
[使用Gradle时,它们具有the Gradle Wrapper,存储在源代码控制中,并确保所有使用包装器进行构建的人都使用相同版本的Gradle 无论本地安装了什么版本的Gradle。
纱线有这样的东西吗?无论本地安装了哪个版本的yarn / node / npm,我们如何才能使我们的纱线调用具有类似的确定性?
我们已经尝试过使用Gradle node plugin,它使用Gradle来排序bootstrap节点,npm和yarn(在存储库中本地安装副本),但是在我们使用的某些机器上似乎根本不起作用已经尝试过了。
回答如下:Yarn始终具有该限制,对此无能为力。但是,如果您使用的是NPM,则可以。
NPM现在与纱线(和许多其他卷装管理器)强制执行相同的工作流程。它生成package-lock.json
以知道您的项目使用的确切版本。
并且npm具有坚固的优势,因为它在npm版本中比在不同版本的纱线上具有完全确定性。
如何使纱线具有确定性?
[the Yarn blog他们说:
纱线是完全确定性的,只要您的所有队友都使用相同的纱线版本即可。
要求每个人都使用相同的版本似乎是一个很大的限制。
[使用Gradle时,它们具有the Gradle Wrapper,存储在源代码控制中,并确保所有使用包装器进行构建的人都使用相同版本的Gradle 无论本地安装了什么版本的Gradle。
纱线有这样的东西吗?无论本地安装了哪个版本的yarn / node / npm,我们如何才能使我们的纱线调用具有类似的确定性?
我们已经尝试过使用Gradle node plugin,它使用Gradle来排序bootstrap节点,npm和yarn(在存储库中本地安装副本),但是在我们使用的某些机器上似乎根本不起作用已经尝试过了。
回答如下:Yarn始终具有该限制,对此无能为力。但是,如果您使用的是NPM,则可以。
NPM现在与纱线(和许多其他卷装管理器)强制执行相同的工作流程。它生成package-lock.json
以知道您的项目使用的确切版本。
并且npm具有坚固的优势,因为它在npm版本中比在不同版本的纱线上具有完全确定性。