即使文件存在,Composer 也找不到 composer.json 文件

Posted

技术标签:

【中文标题】即使文件存在,Composer 也找不到 composer.json 文件【英文标题】:Composer could not find a composer.json file even when the file exists 【发布时间】:2014-02-20 06:43:07 【问题描述】:

我已经安装了 Laravel,并且正在使用它。

我正在学习教程:-

http://geekanddummy.com/how-to-laravel-4-tutorial-part-3-using-external-libraries/

我需要一个新库并已将其添加到 composer.json。

但是当我运行时

php composer.phar update

我收到以下消息:-

Composer could not find a composer.json file in

我需要做些什么来纠正这个问题..?

【问题讨论】:

你在你的 laravel 根目录吗? 是的,我有composer.json、composer.lock、composer.phar、server.php、phpunit.xml、gitignore、gitattributes都在目录里 嘿,这在我删除 composer.json 并再次保存后有效 【参考方案1】:

复制内容后删除现有的composer.json,然后保存一个同名的新文件。

【讨论】:

【参考方案2】:

如果您在 Windows 上(至少根据我的经验)实际上只使用“composer”,而不是 composer.phar/.json 或任何扩展名。

composer update
composer dump-autoload

这是我需要输入的所有内容才能访问我的 laravel 目录中的作曲家。

【讨论】:

这完全取决于 Composer 的安装方式。如果调用 Composer 的方式有效并从它那里返回一个关于错误的真实抱怨,那么调用 Composer 的方法是正确的。 是的,但她/他从未说明 composer 是如何安装的。他们从未说过他们只在命令行中尝试过“composer”,所以我认为他们可能已经以与我相同的方式安装它。【参考方案3】:

我是您链接到的教程的作者(顺便说一下,希望我们的Laravel tutorial series 有一些用处)。从您的回答中我无法完全判断您是否在创建同名的新文件时恢复了原始 composer.json 文件的所有内容......?您绝对不需要核对 composer.json 文件并重新开始。您可能知道,该文件包含 Laravel 项目的所有基于 Composer 的依赖项,因此如果您要擦除它并在重新开始时遗漏任何内容,您当然会失去重要的功能。

在我看来,错误消息要么位于错误的目录中,要么是 composer.json 文件的权限问题。现在确定为时已晚,但如果您再次遇到问题,请尝试运行:

chmod a+r composer.json

在运行composer update 之前在控制台/ssh shell 中。这将恢复读取权限(适用于所有用户)。您可能还希望检查文件所有权。 (这两个命令都假设我们在 Unix/Linux 系统中,所以 YMMV。)

还要注意您正在运行带有 global 参数的 Composer 命令的情况。这将导致与您安装 Composer 的位置相关的更改,而不是您当前工作的目录。

请注意,您也可以使用--working-dir 参数进行更新,因此:

php composer.phar --working-dir=/path/to/laravel/project update

希望这会有所帮助。

罗伯

【讨论】:

抱歉,我遇到了同样的问题。只有提供了--working-dir,我才能让它工作。我必须全局安装它(Windows)。有没有办法在工作目录中仍然运行 composer 而无需提供额外的标志? 恐怕我从来没有在 Windows 下使用过 Composer 并且不确定它在那个环境中的表现如何。【参考方案4】:

我遇到了同样的问题,尝试了许多对其他人有用但不适用于我的解决方案。 然后有人告诉我从我的命令中删除“php”和“.phar”。即直接使用

作曲家更新 作曲家创建项目等。

令我惊讶的是它起作用了..

【讨论】:

【参考方案5】:

有时,由于有些模糊的原因,重新启动服务器似乎可以解决问题。在更改文件权限之前,该步骤可能值得尝试。

【讨论】:

以上是关于即使文件存在,Composer 也找不到 composer.json 文件的主要内容,如果未能解决你的问题,请参考以下文章

即使已安装 Composer 也找不到 ext-mbstring

JasperException - 即使存在标签也找不到文件

在 Mac 上安装 Laravel 会抛出 laravel,即使在设置 PATH 后也找不到

CSS 模块在 Codesandbox 中不起作用 - 即使它们存在也找不到文件

Laravel - 即使路线存在也找不到页面

即使存在,诗歌也找不到依赖的版本