由于 Yarn 和 npm 锁文件冲突,Heroku 构建失败
Heroku build failing due to Yarn and npm lockfile conflict
我正在尝试使用 Heroku CLI 在 Heroku 上部署 React Web 应用程序。然而当我 运行,
git push heroku master
从我的项目文件夹中它抛出一个错误:
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'
因为我使用 npm,所以我做了 rm 并删除了 yarn lock 文件。仍然出现相同的错误。现在,当我实际执行 rm yarn.lock
时,我在终端中找不到任何条目。不知道为什么 Heroku CLI 坚持认为目录中还有 yarn lock 文件。
在将其推送到 Heroku 之前,您是否会提交回您的 master 分支?
对我来说,最常见的问题是当我更改代码然后 'git push heroku master' 但我的主分支尚未更新,因为我尚未提交本地更改。
尝试
git commit -m 'some changes'
然后
git push heroku master
有同样的问题。不确定在部署到 heroku 时如何重新创建包锁,但这似乎正在发生。尝试创建一个 .npmrc 文件并添加 package-lock=false
这解决了我的问题。
我遇到了同样的问题,但以上建议没有帮助。我所做的是删除 yarn.lock (git rm yarn.lock) 并且错误消失了。
如果你使用npm
:
git rm yarn.lock
git commit -m "Remove yarn lock file"
git push heroku master
如果你使用yarn
:
git rm package-lock.json
git commit -m "Remove npm lock file"
git push heroku master
同时检查您是否需要构建包来部署到 heroku。
例如,对于流星,您需要添加一个构建包
heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git
如果你有多个应用程序 git 请确保将 --app foobar
作为你的应用程序名称添加到你的 heroku 命令
我有同样的问题,但在我的例子中,我正在推送包含 package-lock.json 和 yarn.lock 的 master 分支。我使用命令 git push heroku branch-name:master
.
解决了这个问题
如果您使用 npm,请遵循以下步骤:
rm yarn.lock
git add .
git commit -m 'remove yarn.lock file'
git push origin
git push heroku origin
同时删除 yarn.lock 和 package-lock.json 以及之后的内容:
git add --all
git commit -a -m "Delete yarn lock and package lock"
git push
git push heroku master
对我有用!
就我而言,我必须检查主分支和 运行
git push heroku main
。
这解决了我的问题
我正在尝试使用 Heroku CLI 在 Heroku 上部署 React Web 应用程序。然而当我 运行,
git push heroku master
从我的项目文件夹中它抛出一个错误:
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'
因为我使用 npm,所以我做了 rm 并删除了 yarn lock 文件。仍然出现相同的错误。现在,当我实际执行 rm yarn.lock
时,我在终端中找不到任何条目。不知道为什么 Heroku CLI 坚持认为目录中还有 yarn lock 文件。
在将其推送到 Heroku 之前,您是否会提交回您的 master 分支?
对我来说,最常见的问题是当我更改代码然后 'git push heroku master' 但我的主分支尚未更新,因为我尚未提交本地更改。
尝试
git commit -m 'some changes'
然后
git push heroku master
有同样的问题。不确定在部署到 heroku 时如何重新创建包锁,但这似乎正在发生。尝试创建一个 .npmrc 文件并添加 package-lock=false
这解决了我的问题。
我遇到了同样的问题,但以上建议没有帮助。我所做的是删除 yarn.lock (git rm yarn.lock) 并且错误消失了。
如果你使用npm
:
git rm yarn.lock
git commit -m "Remove yarn lock file"
git push heroku master
如果你使用yarn
:
git rm package-lock.json
git commit -m "Remove npm lock file"
git push heroku master
同时检查您是否需要构建包来部署到 heroku。
例如,对于流星,您需要添加一个构建包
heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git
如果你有多个应用程序 git 请确保将 --app foobar
作为你的应用程序名称添加到你的 heroku 命令
我有同样的问题,但在我的例子中,我正在推送包含 package-lock.json 和 yarn.lock 的 master 分支。我使用命令 git push heroku branch-name:master
.
如果您使用 npm,请遵循以下步骤:
rm yarn.lock
git add .
git commit -m 'remove yarn.lock file'
git push origin
git push heroku origin
同时删除 yarn.lock 和 package-lock.json 以及之后的内容:
git add --all
git commit -a -m "Delete yarn lock and package lock"
git push
git push heroku master
对我有用!
就我而言,我必须检查主分支和 运行
git push heroku main
。
这解决了我的问题