Laravel
composer requireコマンドでバージョンが全然うまくいかない時の対処法
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
オススメ本
weidner/goutte というパッケージを入れようと思ったら、バージョン関係でエラーがでました。
Laravel 6.20
Problem 1
- Root composer.json requires weidner/goutte ^2.1 -> satisfiable by weidner/goutte[2.1.0].
- weidner/goutte 2.1.0 requires illuminate/support ^8 -> found illuminate/support[v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.
というエラーの対処法について書いていきます。
解決方法
composer.json に追記
"weidner/goutte": "^1.6"
コマンド
composer update
解説というか考察というかあとがき
色々なコマンドを試しましたが、Laravel6 自体がもう結構古いのでなかなかうまくいきませんでした。
ドキュメントによれば Laravel6 は
"weidner/goutte": "^1.6"
を入れてねと書いてあるものの、それを入れようとするとその他のパッケージ(Guzzle とか)をバージョンダウンさせないとどうやらダメみたいでした。
結果こういったバージョンの変更になりました。
- Removing psr/http-client (1.0.1)
- Locking fabpot/goutte (v3.3.1)
- Downgrading guzzlehttp/guzzle (7.3.0 => 6.5.5)
- Locking symfony/browser-kit (v5.3.4)
- Locking symfony/dom-crawler (v5.3.7)
- Locking weidner/goutte (1.6.1)
まとめ
以上です。パッケージのバージョン関係は全然まだまだよく分からないことだらけですが、
バージョンを 1.6 を入れようとしても、2.0 を入れようとしても無理ぽよーってなった時は、
json に直接書いて update しちゃうというのは選択肢になるんだなと思いました。
開発の序盤であればあんまり気を使わずに使ってもいいのかな?分からないですが、今回は遊びスクレイピング用なのでお咎めなしということで。
人気記事