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)
我创建了一个项目,但后来删除了它。当我尝试使用相同的名称再次创建项目时,遇到了这个问题。之后,我运行了以下命令:
laravel new project-name --force
Run Code Online (Sandbox Code Playgroud)
只是,我在命令末尾添加了--force 。
我在通过 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!
.