当前位置: 首页 > 知识库问答 >
问题:

Travis Ci 出现 eval yarn --frozen-lockfile 报错?

李开宇
2024-04-09

在使用 Travis Ci 构建 Hexo 时出现了构件失败的情况,报错信息为 :

error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`.info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.The command "eval yarn --frozen-lockfile " failed. Retrying, 2 of 3.

共有2个答案

田博易
2024-04-09

Travis Ci 构建 Nodejs 项目的时候,默认使用了 yarn 作为 npm 的替换安装方式。但是在 2020 年 2 月份之前,默认的安装指令为:

$ yarn

但是之后 Travis Ci 修改了默认的安装指令,将其更改为:

$ yarn --frozen-lockfile

yarn --frozen-lockfileyarn指令的区别在于:前者锁定当前依赖包的版本号,其进行的操作就是按照 yarn-lock.json 去安装。但是当一个依赖包拥有新版本时,yarn 为了防止开发者一直使用老旧版本的依赖,就会报出警告,就像我们遇到的问题那样。

我们可以修改 .travis.yml 安装部分的脚本,来取消使用 --frozen-lockfile 指令:

install:  - yarn

同时需要保证node_js再10.0版本以上!

node_js:  - "10"
缪风史
2024-04-09

这个问题与 Travis CI 构建过程中的 Yarn 依赖管理相关。报错信息表明,Yarn 的 lockfile 需要更新,但你使用了 --frozen-lockfile 参数来运行 Yarn,这意味着 Yarn 将不会更改 lockfile。

在 Travis CI 中,你通常希望确保所有构建都在相同的依赖项版本上运行,以确保构建的一致性。为此,你可能会使用 --frozen-lockfile 参数来防止 Yarn 在构建过程中更新 lockfile。然而,这个报错表明,在之前的某个时刻,lockfile 已经被修改,这可能是因为有人更新了项目的依赖项但没有更新 lockfile。

为了解决这个问题,你可以采取以下步骤:

  1. 更新 lockfile:在你的本地环境中,运行 yarn install(不使用 --frozen-lockfile 参数)来更新 lockfile。然后,将更新后的 lockfile 提交到版本控制系统中。
  2. 在 Travis CI 中重试构建:提交更新后的 lockfile 后,重新触发 Travis CI 构建。由于 lockfile 已经更新,并且与你的代码库中的其他文件保持一致,这次构建应该能够成功。

如果你不希望在你的构建过程中自动更新 lockfile,你可以在 .travis.yml 文件中设置一个条件,只在检测到 lockfile 有更改时才运行 yarn install(不使用 --frozen-lockfile 参数)。

例如:

script:  - if [ -n "$(git diff --name-only $TRAVIS_COMMIT_RANGE -- 'yarn.lock')" ]; then yarn install; fi  - yarn --frozen-lockfile

在这个示例中,git diff 命令用于检查 yarn.lock 文件是否在提交范围内有更改。如果有更改,它会先运行 yarn install 来更新 lockfile,然后再运行 yarn --frozen-lockfile。如果 yarn.lock 文件没有更改,它只会运行 yarn --frozen-lockfile

请注意,这些步骤假设你已经正确配置了 Travis CI 和 Yarn,并且你的项目中已经包含了 yarn.lock 文件。如果你还没有这样做,你可能需要先设置这些基础配置。

 类似资料:
  • Frozen 是一个开源的 HTML5 游戏引擎,易用、快速开发。 支持的浏览器: Chrome 27 & 30-canary Firefox 21 & 22 IE10 (sound with supported codecs) Safari 6.0.3 Chrome for Android 27 & Beta 28 (limited sound support) - Suggestion: in

  • The lockfile command isn’t necessary. yarn install will produce a lockfile.

  • Frozen UI是一个开源的简单易用,轻量快捷的移动端UI框架。基于手Q样式规范,选取最常用的组件,做成手Q公用离线包减少请求,升级方式友好,文档完善,目前全面应用在腾讯手Q增值业务中。 非手Q用户不能使用离线包而直接请求核心css也仅28k,另外也可以采用cdn和combo的方式按需加载。 CSS组件包括按钮,列表,表单,通知,提示条,弹出框,选项卡,等级图标,角标,红点,1px解决方案等。

  • ☝️ Important announcement: Greenkeeper will be saying goodbye �� and passing the torch to Snyk on June 3rd, 2020! Find out how to migrate to Snyk and more at greenkeeper.io Greenkeeper Lockfile �� ��

  • lockfile linting �� lint lockfiles for improved security and trust policies About Lockfiles are used as trusted whitelist of resources manifest to fetch packages from.However, keeping track of the cha

  • Frozen-Flask Freezes a Flask application into a set of static files. The result can be hostedwithout any server-side software other than a traditional web server. See documentation: https://pythonhost