Heroku build failing due to Yarn and npm lockfile conflict
Solution 1
Are you committing back to your master branch before pushing it up to Heroku?
Most often for me, problems like this arise when I make a code change and then 'git push heroku master' but my master branch has not been updated as I haven't yet committed my local changes.
Try
git commit -m 'some changes'
then
git push heroku master
Solution 2
If you use npm
:
git rm yarn.lock
git commit -m "Remove yarn lock file"
git push heroku master
If you use yarn
:
git rm package-lock.json
git commit -m "Remove npm lock file"
git push heroku master
Solution 3
delete both yarn.lock and package-lock.json and after it:
git add --all
git commit -a -m "Delete yarn lock and package lock"
git push
git push heroku master
that works for me!
Solution 4
I had the same problem, but the above suggestions didn't help. What I did was to delete yarn.lock (git rm yarn.lock) and the error was gone.
Solution 5
I had the same issue, but in my case I was pushing the master branch which contained both package-lock.json and yarn.lock. I fixed this by using the command git push heroku branch-name:master
.
Related videos on Youtube
SeaWarrior404
Updated on September 15, 2022Comments
-
SeaWarrior404 over 1 year
I'm trying to deploy a React Web app on Heroku using the Heroku CLI. However when I run,
git push heroku master
from my project folder it throws an error as:
Counting objects: 213, done. Delta compression using up to 4 threads. Compressing objects: 100% (212/212), done. Writing objects: 100% (213/213), 515.89 KiB | 0 bytes/s, done. Total 213 (delta 40), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Node.js app detected remote: remote: -----> Build failed remote: ! Two different lockfiles found: package-lock.json and yarn.lock remote: remote: Both npm and yarn have created lockfiles for this application, remote: but only one can be used to install dependencies. Installing remote: dependencies using the wrong package manager can result in missing remote: packages or subtle bugs in production. remote: remote: - To use npm to install your application's dependencies please delete remote: the yarn.lock file. remote: remote: $ git rm yarn.lock remote: remote: - To use yarn to install your application's dependences please delete remote: the package-lock.json file. remote: remote: $ git rm package-lock.json remote: remote: https://kb.heroku.com/why-is-my-node-js-build- failing-because-of-conflicting-lock-files remote: remote: ! Push rejected, failed to compile Node.js app. remote: remote: ! Push failed remote: Verifying deploy... remote: remote: ! Push rejected to MyAPP. remote: To https://git.heroku.com/MyAPP.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to https://git.heroku.com/MyAPP.git'
I did rm and removed the yarn lock file since I use npm. Still the same error shows up. Now when I actually do
rm yarn.lock
I get a no entry found in the terminal. Idk why Heroku CLI insists that I still have yarn lock file in the directory. -
joshuamabina about 6 yearsWhy should git-push care about uncommitted changes? I think it should with or without "some changes".
-
Syam Sankar almost 6 yearsThis helped , Thanks
-
Delorme Grant over 4 yearsBased on the original question this is the best answer!
-
Ali Seivani over 3 yearsThis must be marked as correct answer to the question.