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).