Heroku 部署在不存在的 yarn.lock 文件上失败
Posted
技术标签:
【中文标题】Heroku 部署在不存在的 yarn.lock 文件上失败【英文标题】:Heroku deployment fails over yarn.lock file that doesn't exist 【发布时间】:2020-05-16 11:43:01 【问题描述】:尝试部署到 Heroku 时,我不断收到“发现两个不同的锁定文件”错误
remote: Building source:
remote: ! Two different lockfiles found: package-lock.json and yarn.lock
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.
我在这里找到了一些具有相同问题的线程,除了... 我没有要删除的 yarn.lock 文件。
如果我运行此线程中建议的命令:Heroku build failing due to Yarn and npm lockfile conflict,我只会收到一条消息,说没有要删除的文件。我在 vsCode 中检查 repo 和我的文件,但我没有看到 yarn.lock
文件,那么为什么 Heroku 认为我有一个 yarn.lock 文件?
解决方案:我发现我已将 heroku 项目配置为根据我对 Github 上的 repo 的提交进行自动部署。我猜我收到的错误消息只是我尝试手动推送到 heroku 时应用的错误消息,而我不应该这样做。如果你遇到这个检查你的heroku设置,如果你有自动部署这种情况可能会出现。
【问题讨论】:
你能不能到你的项目根目录执行命令ls -a
?仍然没有yarn.lock
文件?您确定yarn.lock
文件已从远程存储库中删除吗?
我用 ls -a 检查了两者,但仍然没有 yarn.lock。不知道我还能做什么
您是否尝试过通过 Heroku CLI 运行 ls -a? Heroku 上的应用程序实例可能有一个 yarn.lock 文件。示例:“heroku run bash --app your-app-name”。 bash 挂载后,尝试输入 ls -a,看看你是否同时拥有 package.lock 和 yarn.lock。
错误消息是一个但具有误导性的信息,但我发现了我的问题所在。我的部署设置被设置为自动
【参考方案1】:
以防万一...当您键入git push heroku master
时,请确保您是主分支,其中没有两个锁定文件。如果您在另一个分支机构,请尝试git push heroku <your branch name you want to push>
【讨论】:
以上是关于Heroku 部署在不存在的 yarn.lock 文件上失败的主要内容,如果未能解决你的问题,请参考以下文章
Yarn:将 JavaScript 依赖项重新部署到生产服务器的过程(使用 `yarn.lock` 文件)