J'ai mis mon projet de laravel 5.4 à laravel 5.5,
Je n'ai aucun problème dans env locale mais dans le serveur j'obtiens cette exception,
J'ai cherché beaucoup et je sais que ce problème peut être dupliqué mais aucune solution n'a résolu mon problème!
Comment puis-je ne pas enregistrer crépuscule lorsque l'environnement est une production?
j'ai écrit ce code dans AppServiceProvider.php:
public function register()
{
// Dusk, if env is appropriate
if ($this->app->environment('local', 'testing')) {
$this->app->register(DuskServiceProvider::class);
}
}
mais cela ne semble pas fonctionner .. Quelqu'un peut-il aider?
EDITED: Mon fichier 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"
},
L'exception est:
Exception
It is unsafe to run Dusk in production.
Dans Laravel 5.5, les paquets sont automatiquement découverts et chargés, vous devrez donc probablement lui dire de ne pas charger crépuscule.
Une façon est d'ajouter ceci à votre composer.json
"extra": {
"laravel": {
"dont-discover": [
"laravel/dusk"
]
}
},
En outre, vous pouvez l'ajouter à vos dépendances dev et lorsque vous déployez en production, utilisez:
composer install --no-dev
Taylor a écrit un article à ce sujet ici .
Regardez, cela ne fonctionne pas car il est configuré pour fonctionner sur les environnements local
et testing
. Je suppose que vous devez ajouter 'production' (si votre production s'appelle 'production dans votre environnement de fichier .env
:
public function register()
{
// Dusk, if env is appropriate
if ($this->app->environment('local', 'testing', 'production')) {
$this->app->register(DuskServiceProvider::class);
}
}
Lors de l'installation sur un serveur de production, je devais simplement utiliser l'indicateur --no-dev
composer install --no-dev
Bonne chance!
Si vous rencontrez ce problème dans un environnement en développement et que vous avez atterri ici par inadvertance à cause du titre, vérifiez que votre fichier .env
est configuré pour le développement. Il devrait contenir la ligne
APP_ENV=local
Voici un exemple de l'apparence possible du fichier .env
: https://github.com/laravel/laravel/blob/master/.env.example
Et voici la documentation de Laravel: https://laravel.com/docs/5.7/configuration
De plus, dans composer.json
, laravel/dusk
devrait figurer sous require-dev
et non pas require
.