如何解决例外在laravel 5.5中运行Dusk是不安全的?

Sam*_*ari 6 php laravel laravel-dusk laravel-5.5

我将我的项目从laravel 5.4升级到laravel 5.5,

我在本地环境中没有任何问题,但在服务器中我得到这个例外,

我搜索了很多,我知道这个问题可能重复,但没有解决方案解决了我的问题!

当环境生产时,我怎么能不注册黄昏?

我在AppServiceProvider.php中编写了这段代码:

public function register()
{
    // Dusk, if env is appropriate
    if ($this->app->environment('local', 'testing')) {
        $this->app->register(DuskServiceProvider::class);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它似乎无法正常工作.有人可以帮忙吗?

编辑:我的composer.json文件:

 "require-dev": {
    "filp/whoops": "~2.0",
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "1.*",
    "phpunit/phpunit": "^7.0.3",
    "symfony/css-selector": "4.0.*",
    "symfony/dom-crawler": "4.0.0",
    "barryvdh/laravel-ide-helper": "^2.4",
    "laravel/dusk": "^2.0"
  },
Run Code Online (Sandbox Code Playgroud)

例外情况是:

Exception
It is unsafe to run Dusk in production.
Run Code Online (Sandbox Code Playgroud)

CUG*_*een 19

在Laravel 5.5中,软件包会自动被发现并加载,因此您可能需要告诉它不要加载黄昏.

一种方法是将它添加到composer.json中

"extra": {
    "laravel": {
        "dont-discover": [
            "laravel/dusk"
        ]
    }
},
Run Code Online (Sandbox Code Playgroud)

此外,您可以将其添加到您的dev依赖项,并在生产中部署时使用:

composer install --no-dev
Run Code Online (Sandbox Code Playgroud)

泰勒在这里写了一篇关于它的文章.


Ada*_*ski 5

看,因为它被配置为工作不工作localtesting环境。我想您需要添加“生产”(如果您的生产在您的.env文件环境中被称为“生产” :

应用服务提供者

public function register()
{
    // Dusk, if env is appropriate
    if ($this->app->environment('local', 'testing', 'production')) {
        $this->app->register(DuskServiceProvider::class);
    }
}
Run Code Online (Sandbox Code Playgroud)

安装到生产服务器时,我只需要使用--no-dev标志

composer install --no-dev
Run Code Online (Sandbox Code Playgroud)

祝你好运!