เกิดอะไรขึ้น
ทีม Node.js ปล่อย Node.js 27.0.0-alpha.0.0.0 เมื่อ 29 ตุลาคม 2026 เป็นรุ่น alpha ตัวแรกของสาย 27 ความต่างจากรุ่น Current ปกติคือ นี่คือรุ่นทดสอบที่ยังไม่พร้อมใช้งานจริง แต่เปิดให้เห็นรายการเปลี่ยนแปลงล่วงหน้าหลายเดือน
สิ่งที่เปลี่ยนไปพร้อมกันคือรอบปล่อยรุ่น หน้า release schedule ของ Node.js ระบุว่าตั้งแต่รุ่น 27 เป็นต้นไป Node.js จะออกรุ่นใหญ่ปีละครั้ง แต่ละรุ่นมีช่วง alpha หกเดือน ตามด้วยช่วง Current หกเดือน แล้วจึงเข้า LTS ตารางเดียวกันแสดงรุ่น 27 ในสถานะ Alpha ลงวันที่ 29 ตุลาคม 2026 โดยยังไม่ระบุวันออกรุ่นจริงหรือวันเข้า LTS
รุ่นที่ควรใช้งานจริงตอนนี้ยังเป็นสาย LTS ซึ่งในวันเดียวกันหน้า release ชี้ว่า 26.13.0 เป็น Latest LTS และสาย 24 ได้ 24.22.2 เมื่อ 28 ตุลาคม 2026 ซึ่งเป็นแพตช์ปกติที่ backport การแก้ของ V8 และแก้ stream ให้เก็บ async context ของงานเขียนที่ค้างอยู่ ไม่ได้ระบุว่าเป็น security release
มีอะไรเปลี่ยนใน alpha นี้
หน้า release ของ 27 alpha ลิสต์การเปลี่ยนแปลงแบบ SEMVER-MAJOR ยาวกว่ารุ่นใหญ่ที่ผ่านมา กลุ่มที่กระทบงานทั่วไปมากที่สุดมีดังนี้
V8 15.6 อัปเกรดจาก 14.6 ของ Node.js 26 ไปเป็น 15.6.75.13 เปิดฟีเจอร์ภาษาใหม่เป็นค่าเริ่มต้น เช่น Math.sumPrecise(), Iterator.prototype.join(), Iterator.prototype.includes(), Iterator.zip() และ Iterator.zipKeyed() ส่วน import defer และ immutable ArrayBuffer ยังอยู่หลัง flag ทดลอง
ขีดจำกัดหน่วยความจำ ถ้าไม่ตั้ง --max-old-space-size ขีดจำกัด heap จะเป็นครึ่งหนึ่งของหน่วยความจำกายภาพ โดยถูกบีบให้อยู่ระหว่าง 256 MB ถึง 4 GB และหน่วยความจำที่ Buffer กับ ArrayBuffer ถืออยู่จะถูกนับรวมในขีดจำกัดนี้ด้วย หน้า release แนะนำตรงๆ ว่าแอปที่พึ่งค่าเริ่มต้นเดิมควรตั้งค่าตัวเลือกนี้เอง
รูปแบบ serialization ใหม่ v8.serialize(), structuredClone() และ postMessage() ใช้รูปแบบที่ Node.js รุ่นเก่ากว่าอ่านไม่ได้ และ v8.cachedDataVersionTag() กับ compile cache จะเปลี่ยนทุกครั้งที่ Node.js อัปเดตแพตช์ของ V8
OpenSSL 4.1.0 รุ่นนี้ถอด build ที่มี FIPS provider ในตัวออก ต้องใช้ OpenSSL 3 ขึ้นไป ถอด code path เก่าและการรองรับ OpenSSL engine และตรวจ encoding ของ input/output เข้มขึ้น ทีมที่ใช้ native addon หรือพึ่ง FIPS ต้องตรวจส่วนนี้เป็นพิเศษ
HTTP และเครือข่าย http.keepAliveTimeout มีค่าเริ่มต้น 65 วินาที, req.headers เป็น object ที่ไม่มี prototype, window size เริ่มต้นของ HTTP/2 ใหญ่ขึ้น และการเรียก listen() ซ้ำบน net server จะ throw แทนที่จะเงียบ
ของที่ถูกถอดหรือเลิกใช้ โมดูล domain ถูก deprecate ตอน runtime และย้ายไปใช้ AsyncLocalStorage ภายใน, โมดูลภายใน _tls_* และ _http_* เข้าสู่ end-of-life หรือ deprecated, flag --no-experimental-websocket ถูกถอด และ node::ObjectWrap ถูก deprecate อย่างเป็นทางการ
ของใหม่ fs.glob แบบ native, fs.mkstemp(), net/promises (ทดลอง), crc32c ใน zlib, สิทธิ์ --allow-env, npm อัปเป็น 12.1.0 และ NODE_MODULE_VERSION เป็น 153 ส่วน macOS บน Intel ถูกลดเป็น experimental และไบนารีสำหรับ Intel ยังขึ้นสถานะ coming soon
พฤติกรรมเล็กๆ ที่อาจทำให้ test เดิมพังคือ Math ใช้ libm ของ LLVM ซึ่งผลลัพธ์อาจต่างกันที่บิตสุดท้าย, ลำดับของ Math.random() เปลี่ยนแม้ตั้ง --random-seed เดิม, error.stack ไม่ไล่หาผ่าน prototype chain, heap snapshot ใช้เวลาและมีขนาดราวสองเท่า และ asm.js ไม่ถูกคอมไพล์เป็น WebAssembly อีกต่อไป
ใครได้รับผล
- ทีมที่ deploy Node.js บน container หรือ serverless ขีดจำกัด heap ใหม่และการนับ
Bufferรวมเข้าไปอาจทำให้ process ที่เคยอยู่ได้ชน out-of-memory เร็วขึ้น หรือในทางกลับกัน ใช้หน่วยความจำมากกว่าที่ orchestrator จองไว้ - ทีมที่มี worker หลายรุ่นคุยกัน ถ้ามี process รุ่น 26 กับ 27 ส่งข้อมูลผ่าน
postMessage()หรือเก็บผลv8.serialize()ลงดิสก์ ฝั่งรุ่นเก่าจะอ่านไม่ออก - ผู้ดูแล native addon และ image
NODE_MODULE_VERSIONใหม่, OpenSSL 4 และการถอด engine หมายถึงต้อง build ใหม่และตรวจ dependency ด้าน crypto - ทีมที่ยังอยู่บน Node.js 24 ตาราง release แสดงวันที่ 27 ตุลาคม 2026 ในช่องของสาย 24 แต่ไม่ได้เขียนคำว่า end-of-life ไว้ตรงๆ ควรเปิดตารางอ่านสถานะล่าสุดก่อนวางแผน
ควรทำอะไร
- งานจริงให้อยู่บน 26.13.0 หรือ 24.22.2 ต่อไป อย่าใช้ alpha ใน production
- เพิ่ม job ใน CI ที่รัน test suite กับ
27.0.0-alpha.0.0.0แบบ allow-failure เพื่อเห็นก่อนว่าโค้ดส่วนไหนพัง โดยเฉพาะ test ที่เทียบค่าทศนิยมแบบตรงตัวหรือพึ่งลำดับของMath.random() - ตั้ง
--max-old-space-sizeให้ชัดในทุก environment แทนการพึ่งค่าเริ่มต้น และตรวจ memory limit ของ container ให้สอดคล้อง - ค้นหาการใช้
domain,_http_*,_tls_*, OpenSSL engine และ FIPS ในโค้ดและ dependency แล้วจดไว้เป็นงานที่ต้องแก้ก่อนรุ่นจริงออก - ติดตามหน้า release schedule เพราะรอบปีละครั้งหมายถึงช่วง alpha ยาวและ LTS มาช้ากว่าที่เคยชิน
ข้อจำกัด
หน้า release ของ alpha ยังไม่มี changelog ฉบับเต็มของ V8 ระหว่าง 14.6 ถึง 15.6 โดยบอกว่าจะเผยแพร่ภายหลัง และไม่ได้ให้วันออกรุ่นจริงหรือวันเข้า LTS ของสาย 27 ReefSight ยังไม่ได้ทดสอบ alpha นี้กับโค้ดของตัวเอง ตัวเลขและพฤติกรรมในบทความอ้างจากหน้าประกาศทางการเท่านั้น
