composerで「Unknown package has no name defined」の解決方法

製作 プログラム

最終更新日:2022/07/21

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

composerを使おう(windowsのcmdでやってます)と思ったら、

Unknown package has no name defined ([{"name":"asm89\/stack-cors","version":"v2.1.1","version_normalized":"2.1.1.0"

みたいなのがずらずらと大量に。赤い色で表示されるんで完全になんかよくないやつだなーってことだけはわかる。でもバージョン確認するだけの「composer –version」とかコンポーザーってファミコンチックにでっかく表示されるだけの「composer」でも同じエラーが出る…。つまりcomposerのコマンド全部が使えない状態に。

今回はcomposerで「Unknown package has no name defined」と出てきた時の解決方法を。

プロジェクトの外側で「composer self-update」で解決

いきなり解決方法からですが、そのエラーが出てるプロジェクトの外側に移動して、composerのアップデートをすればOK。

composerのアップデート方法

これだけでもう「Unknown package has no name defined」とは表示されなくなります。

何が原因だったの?

composerってwindowsの場合、たぶんインストールツールを使ってインストールしてるんだと思います。これって遥か昔過ぎてわたしも「あれ?composerってどこにあるんだろう?いつインストールしたのかすらわかんない」状態だったんですが、とりあえずwindowsの場合はどこかのタイミングでcomposer自体をインストールしてるハズ、と。

んでなぜかこの「Unknown package has no name defined」のエラーが出てるプロジェクト内はcomposerのバージョンが今使ってるのと不一致してるんだと思います(厳密にはプロジェクト内のcomposer.jsonのバージョンと実際のcomposerのバージョンが違うんだと思います)。

試しにこのエラーの出てるプロジェクトのフォルダの外側で「composer」って打ってみてください。

エラーが出ずに普通にファミコンチックなcomposerの文字が出てくると思います。

てことでcomposerのバージョンをエラーの出ない所で上げてあげればオーケーという感じ。

まとめ

今回はcomposerで「Unknown package has no name defined」と表示された場合の解決方法を紹介しました。

まとめるとこれはそのディレクトリ(プロジェクト、フォルダ)内のcomposerのバージョン(たぶんcomposer.jsonのバージョン)が今使ってるcomposerと違うから出てるエラー。

そのディレクトリ内だとcomposerコマンド自体が使えないので、違う場所、例えば一つ上の階層とかで「composer self-update」してやってcomposerのバージョンを上げれば解決する…はず。参考にしてみてくださいね。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /