まじで焦りました。
何かミスってLINEノード消えてしまってる... #linedc pic.twitter.com/z1MAwAEpBb
— 菅原のびすけ (プロトアウト9期募集中) (@n0bisuke) December 11, 2023
↑のLINEの自作ライブラリです。今は復旧してますが半日くらいLINEのノードの新規インストールはできなかったと思います。
自作ノードを更新してみたら削除された
久々に更新しようと思い更新してみたら missing 'node-red'(後でよく見たら'node-red' keyword)というエラーがflows.nodered.org/add/nodeのサイト側で発生しました。
まぁでも更新できないくらいなら一旦あとで調べよーって思ってたのですが、
なんと削除されている という。
ソースコードではなくpackege.jsonの説明書きの問題らしい
調べたら公式ドキュメントなどにありましたが、package.jsonに"keywords": [ "node-red" ],
を入れることがマストになっている模様です。
https://nodered.jp/docs/creating-nodes/packaging
https://nodered.jp/blog/2022/01/31/introducing-scorecard
ほうほう、と思って自分の設定を見てみると確かに空になってました。
とうことでここにnode-red
と追加して更新したら復帰してくれました。
普通にnpmは更新されてしまう問題
問題というか仕様ですがnpm publish
でnpmのレジストリ側を更新 -> Node-REDがそれを取得なのでnpm側で公開されたものに異常があるとNode-RED側で読み取ってくれないという感じみたい。。
それにしても削除(Not Found)にされるのはちょっと、、 前のバージョンのままにしておいてくれても良さそうだけど厳しいのかな
まとめ: 何もプログラムを更新してなくても動かなくなる場合がある
という教訓。何もしてないけど壊れましたってやつですね。
ローカルで試す分には壊れてないんですけど、レジストリ側で受け付けてくれませんでした。
Node-REDのレジストリはそんな感じの更新をしているみたいなので注意が必要そうです。
とはいえ下位互換考えまくると負の遺産も増えていくのでこんな感じで方針示して過去のものを切っていくのも一つの方向性だと思います。
どうするとよいのか
久々に更新する時は機能追加など無しでも一旦publishしてみると良いです。
コード変更してると中身の問題も疑ってしまいますからね
関連記事