開発者が彼のプロジェクトを送ってくれましたが、ベンダーを更新またはインストールしようとすると、最後まですべてがうまく機能し、メッセージが出力されます。
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>
何かアイデアはありますか?ここに完全なログがあります http://Pastebin.com/y9q4Rc5z
composer update
を実行すると、composer
はcomposer.lock
というファイルを生成します。このファイルには、すべてのパッケージと現在インストールされているバージョンがリストされます。これにより、後でcomposer install
を実行して、そのファイルにリストされているパッケージをインストールし、最後に使用していた環境を再作成できます。
ログから、composer.lock
ファイルにリストされているパッケージの一部のバージョンが利用できなくなっているようです。したがって、composer install
を実行すると、エラーが発生して失敗します。通常、これは大したことではありません-composer update
を実行するだけで、連携して動作するパッケージのセットを構築し、新しいcomposer.lock
ファイルを作成しようとします。
ただし、別の問題が発生しています。元の開発者がcomposer.json
ファイルに、失敗する更新前または更新後のアクション、特にphp artisan migrate
コマンドを追加したようです。これは、次を実行することで回避できます。composer update --no-scripts
これにより、composer更新が実行されますが、ファイルに追加されたスクリプトはスキップされます。この方法でアップデートを正常に実行できるはずです。
ただし、これは問題を長期的に解決するものではありません。 2つの問題があります。
移行はデータベースの変更用であり、アセットのコンパイルなどのランダムなものではありません。移行を行い、そこからそのコードを削除します。
composer update
を実行するたびにアセットをコンパイルしないでください。 composer.json
ファイルからそのステップを削除します。
私が読んだことから、ベストプラクティスは開発中に必要に応じてアセットをコンパイルしているようです(つまり、LESSファイルに変更を加えている場合-理想的には gulp.js のようなツールを使用して=)および展開前。
次は私のために働く:
composer update --no-scripts