以下の内容はhttps://let.blog.jp/tag/EOLより取得しました。


OS の EOL を使うのはやめてほしい
※ Life ではなく Line の話

プログラム中の改行の扱いでたまに OS の EOL を使ってるのを見かける
Node.js だとこの値

const os = require("os")

console.log(os.EOL)

Linux だと \n で Windows だと \r\n になる
これを使われると OS 依存で実行結果が変わってしまう
出力時の改行だけならあとから変換できるのでまだいいけど パース時に使われると全然違う結果になったりエラーになったりするのですごく困る

最近では Linux/Windows 間でファイルを受け渡すことは多く OS の標準と異なる EOL のファイルを扱うことは少なくない
特に Windows では Windows で実行したり WSL で実行したりする
これで結果が変わるなんて迷惑でしかない

OS 依存なデータを使わずにアプリケーション側で固定すべき
できればパース時は \r,\n,\r\n 全部に対応して 書き込み時は \n としてほしい

Node.js でライブラリの場合は os.EOL が書き換え可能なので実行前に書き換えて対処できなくもない

const os = require("os")
Object.defineProperty(os, "EOL", { get() { return "\n" } })

// 本来の処理
require("./main.js")
Node.js 16 の EOL が早まるみたい
https://nodejs.org/en/blog/announcements/nodejs16-eol/

もともと Node.js 16 で OpenSSL 3 に切り替える予定だったけど間に合わなくて 1.1.1 になってて このバージョンの OpenSSL の EOL は 2023/09/11 らしい
Node.js 16 の EOL はもっと先の予定だけど EOL を迎えたバージョンの OpenSSL を使い続けるのは脆弱性リスクがあるし OpenSSL 3 にすると互換性の問題もあるしということで Node.js 16 の EOL を OpenSSL 1.1.1 に合わせて早めることにしたみたい

本来の予定だと
https://nodejs.org/en/about/releases/

LTS バージョンごとの Active LTS 開始 / Maintenance LTS 開始 / EOL 日付は

v14  2020-10-27  2021-10-19  2023-04-30
v16 2021-10-26 2022-10-18 2024-04-30
v18 2022-10-25 2023-10-18 2025-04-30

いつも通りだけど毎年 10 月末に新しい LTS がリリースされる
約 1 年経つとメンテナンス LTS に切り替わる
それから約 1 年半後の 4 月末で EOL

Node.js 16 は 2024/04/30 が 2023/09/11 に変わるということみたい
14 の EOL から半年もないので結構短め

最近までは毎年の LTS が変わるたびに大きめな新機能が入ったりで毎年更新してたけど 16 からはそこまで大きく変わらないし しばらくは 16 でいいかななんて思ってたけど 今年も早めに 18 に切り替えて行く方がいいのかも



以上の内容はhttps://let.blog.jp/tag/EOLより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14