拉拉维尔新;应用程序已存在错误

Sey*_*lal 4 php laravel composer-php

我之前安装过 Laravel,并删除了该文件夹,现在几个月后我安装了 Laravel 安装程序,但当我laravel new在 Windows Powershell 中编写命令时,它返回此错误。

 _                               _
| |                             | |
| |     __ _ _ __ __ ___   _____| |
| |    / _` | '__/ _` \ \ / / _ \ |
| |___| (_| | | | (_| |\ V /  __/ |
|______\__,_|_|  \__,_| \_/ \___|_|


In NewCommand.php line 153:

  Application already exists!


new [--dev] [--jet] [-f|--force] [--] [<name>]
Run Code Online (Sandbox Code Playgroud)

kad*_*man 8

我创建了一个项目,但后来删除了它。当我尝试使用相同的名称再次创建项目时,遇到了这个问题。之后,我运行了以下命令:

laravel new project-name --force
Run Code Online (Sandbox Code Playgroud)

只是,我在命令末尾添加了--force 。

  • 它解决了我的问题,谢谢@kadirerman! (2认同)

Vru*_*iya 5

我在通过 Composer 在最新的 Laravel 上创建新项目时遇到了同样的问题,但没有找到任何解决方案,最后,我尝试通过以下命令创建一个 Laravel 项目,它按预期工作。

composer create-project --prefer-dist laravel/laravel ProjectName
Run Code Online (Sandbox Code Playgroud)

或者,您应该删除该文件夹并通过命令创建它,如下所示:

laravel new ProjectName
Run Code Online (Sandbox Code Playgroud)

解释:

当我收到以下错误时。


 _                               _
| |                             | |
| |     __ _ _ __ __ ___   _____| |
| |    / _` | '__/ _` \ \ / / _ \ |
| |___| (_| | | | (_| |\ V /  __/ |
|______\__,_|_|  \__,_| \_/ \___|_|


In NewCommand.php line 184:

  Application already exists!


new [--dev] [--jet] [--stack [STACK]] [--teams] [-f|--force] [--] [<name>]
Run Code Online (Sandbox Code Playgroud)

我试图找出这个问题,发现%appdata%\Composer\vendor\laravel\installer\src\NewCommand.php第 184 行下有一个函数,如下所示:

    /**
     * Verify that the application does not already exist.
     *
     * @param  string  $directory
     * @return void
     */
    protected function verifyApplicationDoesntExist($directory)
    {
        if ((is_dir($directory) || is_file($directory)) && $directory != getcwd()) {
            throw new RuntimeException('Application already exists!');
        }
    }
Run Code Online (Sandbox Code Playgroud)

这里的verifyApplicationDoesntExist功能是检查您尝试创建的应用程序文件夹是否存在,它不是检查应用程序文件夹的大小,因此文件夹是否为空并不重要。因此,由于这样的代码,作曲家认为应用程序已经创建,这就是为什么它会抛出一个错误,就像您的应用程序已经存在一样。

要解决这个问题,您只需删除空项目文件夹并通过命令创建它laravel new ProjectName,这将创建项目文件夹本身,而不会给出任何错误,如Application already exist!.