misskey-hub icon indicating copy to clipboard operation
misskey-hub copied to clipboard

package.jsonにnodeおよびnpmの必須バージョンを明記

Open samunohito opened this issue 2 years ago • 2 comments

日々お世話になっております。 package.jsonにnodeおよびnpmの必須バージョンを記載する対応を行いました。

なぜ?

  • 複数バージョンあるnodeのうち、何を使えば良いのか初見で分からなかった
  • ltsのv16ではMisskeyHubを起動できず、v18では起動することが出来たので明記したほうが良いのではと考えた
  • maintenanceとはいえまだ生きているLTSが複数バージョンある(参考:https://endoflife.date/nodejs)

何をした?

package.jsonにengines項目を追記し、そこに最低限必要なnodeおよびnpmのバージョンを記載した。

  • nodeのバージョン 18.0.0としているが、これはv16、v17、v18とnodeのバージョンを切り替えてMisskeyHubの起動を試行し、 トップページの表示に成功したバージョンを指定している。
  • npmのバージョン nodeのバージョンを切り替えた際にセットで入ってくるもののバージョンをそのまま指定した。

影響範囲

開発者自身のみ。プロダクトやユーザ影響は無い。 開発者各位はローカルで起動に成功しているはずで、起動に成功している=node v18.0.0以上を使っているはず。 npmの実行時にバージョンの確認が走るようになるだけで、生成物などには影響はないと考える。

適合したバージョンを使用していないと以下のような警告が出るようになる

osamu@localhost:~/work/misskey-hub$ npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>=18.0.0', npm: '>=8.6.0' },
npm WARN EBADENGINE   current: { node: 'v16.19.1', npm: '8.19.3' }
npm WARN EBADENGINE }

samunohito avatar Mar 08 '23 23:03 samunohito

こちら設定するのであれば、以下のような .npmrc も追加すると、適合しないバージョンでの npm install 時にWarningではなくエラーが出るようになって、より良いかと思います。

engine-strict=true

massongit avatar Mar 12 '23 00:03 massongit

@massongit コメントありがとうございます。提案いただいた内容を取り込ませて頂きました。

samunohito avatar Mar 12 '23 11:03 samunohito