※Firebase CLI については更新されたので npm update
すればもう大丈夫です
※npm 側で対応して該当バージョンが削除されました。よって我々側の作業不要です。
どうした
firebase-tools
とかの出力がおかしい。
どうして
依存の依存の(中略)依存である colors
に変なリリースがあった。作者故意のものなのでそこの更新は期待できなさそう。
-
v1.4.2
,v1.4.1
← 問題あり -
v1.4.0
← 大丈夫
どうする
※既に npm 側で対応されたので、現在は作業不要です。
直接利用している場合
過去のバージョンで固定すれば大丈夫。
$ npm install colors@1.4.0
依存の依存の場合
基本的には対象パッケージの更新待ちです。動く状態の package-lock.json
が残っている場合、そのままにしておきましょう。
更新が来たら npm update
で新しいバージョンがインストールされます。
ちなみに対象パッケージ自体のバージョンを下げてもたぶん改善しません。
更新が必要だったり新規プロジェクトとかでロックファイルがない場合は、直接書き換えれば差し当たりは動きます。package-lock.json
から "colors"
で検索してね。(このやり方で大丈夫なのか不安。)
"dependencies": {
"colors": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.2.tgz",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-5QhJWPFZqkKIieXJPpCprdOytvH7v0AGWpu9K2jZ4LWkGg3dVBNoYPgGGRpEsc0jb8Boy0ElYrdjH9uXfhRSqw=="
}
}
(1.4.x
以外は大丈夫なので 1.0.3
とかは放っておいてください。)
ロックファイル更新したら npm ci
で再インストールです。
他に overrides という仕組みが便利だそう。詳しくは azu さんの記事を。
どうしてこうなった
faker
と同じ作者さんです。2020 年に火事に遭い、寄付も集まらず「これ以上無償では働けない」とのことです。
今回のニュース。
npm はかつて faker
はバージョンを戻すなどしたらしい。 やってくれました。もう該当バージョンはレポジトリーから消えています。colors
も待ってれば npm 側がうまいことやってくれるかも?
その他
出力が乱れるのはそれはそれでバグ?
作者さんがむちゃくちゃにしてやる!!という気持ちで更新したのは間違いないと思うんだけど本来は AA が表示される予定だったっぽい?
color
じゃないよ
colors
です。
colors
vs colors.js
npm のパッケージ名は colors
、GitHub のレポジトリー名は colors.js です。
npm ls
でリスト表示して確認
依存ツリーとバージョンを表示できるので、不安なひとはこれで確認してみてください。
$ npm ls colors
my-project@0.0.0 /path/to/project
└─┬ firebase-tools@10.0.1
├─┬ cli-table@0.3.11
│ └── colors@1.0.3
└─┬ winston-transport@4.4.1
└─┬ logform@2.3.0
└── colors@1.4.0
試す
該当バージョンの npm 側が問題のあるバージョンを削除しました。colors
を読み込むだけで発症?します。
当時:
$ npm install colors@1.4.2
$ node
Welcome to Node.js v16.13.1.
Type ".help" for more information.
> require('colors')
(ギャー)
Ctrl+C
で止めて Ctrl+D
で Node.js の REPL 終了です。
今:
$ npm install colors@1.4.2
npm ERR! code ETARGET
npm ERR! notarget No matching version found for colors@1.4.2.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
Firebase CLI は直接ダウンロードできる
動かすだけならこれでも。
(日本語で読みたければ右上から言語選択してください。)
もっと詳しく
azu さんの記事が出たのでそちらをどうぞ。
おしまい
やんやは終わりました。ひとまずおつかれさまでした。
しかし色々つらいね……。