HomeGuidesReferenceLearn
ArchiveExpo SnackDiscord and ForumsNewsletter

Use npm cache with Yarn Classic

Learn how to use npm cache by overriding the registry in Yarn Classic.


By default, the EAS npm cache won't work with Yarn 1 (Classic), because yarn.lock files contain URLs to registries for every package and Yarn does not provide any way to override it. The issue is fixed in Yarn 2+ (Berry), but the Yarn team does not plan to backport it to Yarn v1.

If you want to take advantage of the npm cache, you can add the eas-build-pre-install npm hook in package.json to override the registry in the yarn.lock:

package.json
{
  "scripts": {
    "eas-build-pre-install": "bash -c \"[ ! -z \\\"$EAS_BUILD_NPM_CACHE_URL\\\" ] && sed -i -e \\\"s#https://registry.yarnpkg.com#$EAS_BUILD_NPM_CACHE_URL#g\\\" yarn.lock\" || true"
  }
}