为啥在 windows 上运行 yarn 会改变 yarn.lock

Posted

技术标签:

【中文标题】为啥在 windows 上运行 yarn 会改变 yarn.lock【英文标题】:Why does running yarn on windows changes yarn.lock为什么在 windows 上运行 yarn 会改变 yarn.lock 【发布时间】:2019-01-11 03:29:44 【问题描述】:

我在 Mac 上的项目上运行了 yarn,生成了一个 yarn.lock 并将其提交给 git。

现在我在 Windows 机器上打开同一个项目,然后运行 ​​yarn 来获取依赖项。它输出

yarn install v0.24.5
[1/4] Resolving packages...
[2/4] Fetching packages...
warning fsevents@1.2.4: The platform "win32" is incompatible with this module.
info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.

并且确实修改了 yarn.lock。

为什么会发生这种情况,我应该怎么做?

注意:Windows 不是我们的主要开发环境,我们主要在 mac 上进行开发,prod 是 linux。由于 Windows 问题,我犹豫是否要更改我的依赖项。

【问题讨论】:

【参考方案1】:

当您在系统上安装了 yarn 后,您需要使用 --frozen-lockfile 选项来防止锁定文件被更改。

您可以找到here 和here 报告的问题。

【讨论】:

以上是关于为啥在 windows 上运行 yarn 会改变 yarn.lock的主要内容,如果未能解决你的问题,请参考以下文章

为啥安装 esparse 时“yarn install”会引发 ENOENT 错误?

windows上npm yarn.ps1,因为在此系统上禁止运行脚本

与原生 Windows NPM/Yarn 处理相比,为啥 WSL 非常慢?

Yarn v3.0.2 为啥不安装 node_modules 文件夹?需要在 yarn 的命令之后运行 npm install 吗?

为啥运行 yarn start 时出现语法错误

Windows平台开发Mapreduce程序远程调用运行在Hadoop集群—Yarn调度引擎异常