I’m on a very slow internet connection. While using Rails I used to run rails new myapp --skip bundle
and after that I ran bundle install --local
in the newly generated app’s directory. That’s how I could generate a new app even if my internet was very slow (or even not available sometimes).
Recently I was using React while Yarn was installed on my system, create-react-app detected Yarn and ran it instead of npm, so when next time I generated a new react app while my internet was very-slow/disconnected, create-react-app instelled all the dependencies from the local cache (through Yarn) which was amazing.
While generating a new phoenix application through mix, the elixir dependencies are installed from the cache if there is some problem with internet, ( I know that because I ran mix deps.clean
and then mix deps.get
while my internet was faulty at the moment, and I got results like :timeout, Failed to fetch record for 'hexpm/cowboy' from registry (using cache)
).
The only problem with generating a new Phoenix app is the node_modules which are installed through npm which doesn’t support getting dependencies from the local cache if the internet is slow, if we somehow replace npm with Yarn, this problem will be solved for people who are on slow or faulty internet connections.
I know some people will tell me to go to the assets folder and run yarn
instead of npm install
, and next time Yarn’s cache will be available for me. I tested that, but when the next time I ran yarn
, it told me that there was no lockfile
(Note: In learning stage people run rails new
or mix phx.new
several times a day, so the modules/packages in cache are often recent, so that’s not a problem).