web-dev-qa-db-fra.com

Composer Mise à jour Laravel

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

22
Brent

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:

  1. 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à.

  2. 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.

48
Kryten

Ce qui suit fonctionne pour moi:

composer update --no-scripts
19
Ghulam Akbar