I assume when I install npm package say react for the first time with
yarn add react
this will save react file in local cache. I found .y
In order to use --prefer-offline
you first have to setup your offline package repo.
Let's setup our cache in a hidden dir in the home folder:
yarn config set yarn-offline-mirror ./.npm-offline
Also set a config to have yarn clean the dowloaded tarballs:
yarn config set yarn-offline-mirror-pruning true
Now, whenever you run yarn install
in some project, it will cache the modules in this directory, available for you to then fetch using yarn --prefer-offline
.
When you want to later, perhaps in a new project, install from the cache you will need to specify the desired module version as it doesn't have a concept of latest
. Easiest is to simply try to add:
yarn add moment
On my machine this prints:
error Couldn't find any versions for "moment" that matches "latest" in our cache.
Possible versions: "2.1.0, 2.13.0, 2.17.0, 2.17.1, 2.18.1, 2.19.1, 2.19.2, 2.19.3, 2.8.4"
// Note that above is not in semver order...
I can then install latest offline with:
yarn add moment@2.19.3
The Yarn blog post mentioned by @adrian elaborates on how to a per project cache and how to commit that for your team if desired. I myself use just one cache for in order to be ideally able to bootstrap new projects while offline.