13
7

More than 1 year has passed since last update.

Firebase CLIとかの出力が2022-01-10の一時期に乱れてた件

Last updated at Posted at 2022-01-10

※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

試す

該当バージョンの colors を読み込むだけで発症?します。 npm 側が問題のあるバージョンを削除しました。

当時:

$ 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 さんの記事が出たのでそちらをどうぞ。

おしまい

やんやは終わりました。ひとまずおつかれさまでした。

しかし色々つらいね……。

13
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7