AppCenter Yarn 1.19错误从缓存中提取时,完整性不正确

时间:2019-10-11 21:08:30

标签: react-native yarn visual-studio-app-center

我在Microsoft App Center上托管了一个React Native应用。由于纱1.19(从缓存中获取时出现错误,完整性不正确),构建(iOS和android)都失败了

我试图删除package-lock.json,但没有帮助。

我想降级纱线或执行cache clean命令,但不知道在哪里执行。 我已经安装了appcenter cli版本2.2.1并成功连接到它。 例如,我在哪里可以执行yarn cache clean

我读过我也可以创建一个脚本,但是我不知道将脚本放置在哪里以及外观如何。应该同时在ios和android目录中吗?还是根源?谢谢

3 个答案:

答案 0 :(得分:1)

我实际上注意到,即使我们在团队中使用npm,我也从初始提交返回了yarn.lock。 在构建日志中,有以下行:

/bin/sh -c if [ -f yarn.lock ]; then { yarn install && yarn list --depth=0; } else npm install; fi

所以我删除了yarn.lock文件,现在它可以使用npm成功构建!

答案 1 :(得分:0)

不确定是否使用Azure Devops管道构建React应用。如果是,则可以使用Command line task完成您想做的事情。

如果在构建期间您使用的代理是托管代理,则由于每个构建都将使用全新的VM,因此您需要为每个构建安装一次AppCenter cli

  1. 使用跟随命令安装AppCenter cli

    sudo npm install -g appcenter-cli

  2. 然后logging in

    appcenter登录--token {令牌}

在这里,您需要首先使用以下描述的doc生成令牌:转到并登录到https://appcenter.ms/->单击“头像”->选择帐户设置->单击 API令牌->单击新API令牌,然后选择此令牌的相应范围。

enter image description here

  1. 在此管道任务中复制并使用它。 注意:建议您存储 此令牌具有用于安全性的秘密变量。

现在,您可以执行清理命令:yarn cache clean

  

将其放置在何处以及外观如何?

根据您的描述,您需要将此command line task放入第一步,然后可以首先清除Yarn缓存。

此外,由于image configuration that the hosted agent is using的原因,其已安装的node.js版本为6.7.0,这与AppCenter cli的运行时环境不匹配。您还需要运行Node.js tool installer任务来安装node.js v10.0.0

所有的人都应该像这样:

enter image description here

  

应该同时在ios和android目录中吗?

正如我之前提到的,对于托管代理,每个构建都将使用全新的VM。因此,是的,您必须在每个构建中首先执行这两个步骤。


如果您使用的是私人代理,则由于您在本地安装了AppCenter cli,因此该代理将在运行command line task时自动调用本地配置。目前,您只需要跳过命令任务中的install命令即可​​

enter image description here

答案 2 :(得分:0)

我们通过在appcenter-post-clone.sh中添加“ yarn cache clean”来修复它,您可以在项目的根目录中添加此shell脚本。 有关详情,请参见此docs