我在Microsoft App Center上托管了一个React Native应用。由于纱1.19(从缓存中获取时出现错误,完整性不正确),构建(iOS和android)都失败了
我试图删除package-lock.json,但没有帮助。
我想降级纱线或执行cache clean命令,但不知道在哪里执行。
我已经安装了appcenter cli版本2.2.1并成功连接到它。
例如,我在哪里可以执行yarn cache clean
?
我读过我也可以创建一个脚本,但是我不知道将脚本放置在哪里以及外观如何。应该同时在ios和android目录中吗?还是根源?谢谢
答案 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
。
使用跟随命令安装AppCenter cli
:
sudo npm install -g appcenter-cli
然后logging in:
appcenter登录--token {令牌}
在这里,您需要首先使用以下描述的doc生成令牌:转到并登录到https://appcenter.ms/->单击“头像”->选择帐户设置->单击 API令牌->单击新API令牌,然后选择此令牌的相应范围。
现在,您可以执行清理命令: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
。
所有的人都应该像这样:
应该同时在ios和android目录中吗?
正如我之前提到的,对于托管代理,每个构建都将使用全新的VM。因此,是的,您必须在每个构建中首先执行这两个步骤。
如果您使用的是私人代理,则由于您在本地安装了AppCenter cli
,因此该代理将在运行command line task
时自动调用本地配置。目前,您只需要跳过命令任务中的install
命令即可
答案 2 :(得分:0)
我们通过在appcenter-post-clone.sh中添加“ yarn cache clean”来修复它,您可以在项目的根目录中添加此shell脚本。 有关详情,请参见此docs。