Un développeur m'a envoyé son projet, mais chaque fois que j'essaye de mettre à jour ou d'installer mes fournisseurs, tout fonctionne parfaitement jusqu'à la fin et le message ci-dessous est affiché.
C:\xampp\htdocs\BigWaveMedia\davinkit>php artisan migrate
{
"error": {
"type": "Exception",
"message": "expected color value: failed at `.clearfix;` C:\\xampp\\htdocs\\BigWaveMedia\\davinkit\\app\\start\/..\/..\/public\/less\/style.less on line 102",
"file": "C:\\xampp\\htdocs\\davinkit\\vendor\\leafo\\lessphp\\lessc.inc.php",
"line": 3258
}
}
C:\xampp\htdocs\BigWaveMedia\davinkit>
Des idées du tout? Voici un journal complet http://Pastebin.com/y9q4Rc5z
Quand vous courez composer update
, composer
génère un fichier nommé composer.lock
qui répertorie tous vos packages et les versions actuellement installées. Cela vous permet de lancer plus tard composer install
, qui installera les packages répertoriés dans ce fichier et recréera l’environnement que vous avez utilisé en dernier.
Il ressort de votre journal que certaines des versions des paquets répertoriés dans votre composer.lock
fichiers ne sont plus disponibles. Ainsi, lorsque vous exécutez composer install
, il se plaint et échoue. Ce n’est généralement pas grave - lancez simplement composer update
et il tentera de construire un ensemble de paquetages fonctionnant ensemble et d’écrire un nouveau composer.lock
fichier.
Cependant, vous rencontrez un problème différent. Il semble que, dans votre composer.json
, le développeur d’origine a ajouté des actions avant ou après la mise à jour qui échouent, en particulier un php artisan migrate
commande. Ceci peut être évité en lançant: composer update --no-scripts
Ceci exécutera la mise à jour composer), mais ignorera les scripts ajoutés au fichier. Vous devriez pouvoir exécuter la mise à jour de cette manière.
Cependant, cela ne résout pas le problème à long terme. Il y a deux problèmes:
Une migration est destinée aux modifications de base de données, pas à des tâches aléatoires telles que la compilation d'actifs. Parcourez les migrations et supprimez ce code à partir de là.
Les actifs ne doivent pas être compilés chaque fois que vous exécutez composer update
. Supprimer cette étape de la composer.json
fichier.
D'après ce que j'ai lu, la meilleure pratique semble être de compiler les actifs au besoin pendant le développement (c'est-à-dire lorsque vous modifiez vos fichiers LESS - idéalement, à l'aide d'un outil tel que gulp.js =) et avant le déploiement.
Ce qui suit fonctionne pour moi:
composer update --no-scripts