Image
By lew Founder on Tag: Node.js, TypeScript, Programming
Node.js

NodeJS เวอร์ชั่น 22.18.0 Jod เวอร์ชั่นซัพพอร์ตระยะยาวตัวล่าสุดปรับฟีเจอร์ Type Stripping ให้เปิดการใช้งานเป็นมาตรฐาน หลังจากมีฟีเจอร์นี้ตั้งแต่เวอร์ชั่น 22.6.0 ที่ออกมาเมื่อปีที่แล้วแต่ผู้ใช้ต้องเปิด --experimental-strip-types ด้วยตัวเอง

แม้จะรันไฟล์ TypeScript ได้ในตัว แต่ NodeJS ไม่รองรับฟีเจอร์หลายอย่าง เช่น Enum, namespace ที่มีโค้ด runtime ด้วย (ใช้ได้เฉพาะการประกาศ type), การ import type ต้องมี keyword type ด้วยเสมอ

สำหรับการรัน TypeScript เต็มๆ ยังคงใช้งานโมดูล tsx ได้ต่อไป

By lew Founder on Tag: Cloudflare, Open Standard, Node.js
Cloudflare

Cloudflare ประกาศว่าได้ส่งโค้ดการอิมพลีเมนต์ URLPattern API สำหรับการอ่าน URL เข้าโครงการ Ada URL ที่เป็นต้นน้ำของการอิมพลีเมนต์โครงการ NodeJs ทำให้ตอนนี้ API นี้ทำงานตรงกันทั้ง NodeJS และ Cloudflare Worker แล้ว

By lew Founder on Tag: Bun, Node.js, JavaScript
Bun

Bun โครงการรันไทม์ JavaScript/TypeScript ที่ต้องการทดแทน NodeJS ออกเวอร์ชั่น 1.2 ที่ผ่านชุดทดสอบของ NodeJS เองเกิน 90% ในทุกโมดูล

แม้ NodeJS จะเปิดเผยชุดทดสอบจำนวนมากถึง 2,600 ไฟล์ แต่ชุดทดสอบกลับอาศัย API ภายในของ NodeJS เองที่ไม่เกี่ยวข้องกับ API ที่ไลบรารีต่างๆ ใช้งาน ทาง Bun ต้องเขียนชุดทดสอบใหม่บางส่วนเพื่อให้ทดสอบผ่านไปได้ หรือบางครั้งชุดทดสอบก็ทดสอบข้อความเตือนตรงๆ แม้ว่าที่จริงแล้ว NodeJS จะไม่ได้รับประกันว่าข้อความเตือนต้องเหมือนเดิมก็ตาม

By lew Founder on Tag: Deno, Programming, JavaScript, TypeScript, Node.js
Deno

Deno รันไทม์ JavaScript/TypeScript ออกเวอร์ชั่น 2.0 หลังออกเวอร์ชั่นแรกมาสี่ปี ความเปลี่ยนแปลงสำคัญคือการทำงานร่วมกันได้กับ Node.js เต็มตัว สามารถอ่านไฟล์ package.json และโฟลเดอร์ node_modules ได้

สำหรับ Deno เองที่จริงมีระบบจัดการแพ็กเกจผ่านไฟล์ deno.json ของตัวเอง และตอนนี้ก็ยังสามารถใช้งานอ้างอิงแพ็กเกจ npm ได้เหมือนกัน แนวทางการเข้ากันได้กับ Node.js ทำให้ตอนนี้สามารถใช้งานเฟรมเวิร์คยอดนิยมได้แทบทั้งหมด เช่น Next.js, Astro, Remix, Angular, SevelteKit

By lew Founder on Tag: JavaScript, Node.js, Cloudflare
JavaScript

Cloudflare ร่วมกับ Vercel ประกาศสนับสนุน Socket API มาตรฐานของ Web-interoperable Runtimes Community Group (wintercg) เพื่อเปิดทางให้แอปพลิเคชั่นนอกเบราว์เซอร์ที่ต้องการเชื่อมต่อบริการภายนอก

ตอนนี้รันไทม์ต่างๆ มักมี API แตกต่างกันไป เช่น net และ tls ของ NodeJS ขณะที่ Deno ก็มี API ของตัวเองต่างไปทำให้แอปพลิเคชั่นต้องแก้โค้ดไปมา

Cloudflare นำมาตรฐาน Socket API นี้มาใช้งานใน Cloudflare Workers ของตัวเอง โดยชูประเด็นว่าสามารถเลือกใช้งาน TLS ได้โดยง่าย และแนวทางใช้งานสำคัญของไลบรารีนี้คือการเชื่อมต่อฐานข้อมูล เช่น MySQL หรือ PostgreSQL จากในรันไทม์

By lew Founder on Tag: Node.js
Node.js

NodeJS ออกเวอร์ชั่น 20.6 ความเปลี่ยนแปลงสำคัญคือออปชั่น --env-file ที่รองรับการโหลดค่าตัวแปร environment จาก NodeJS ได้โดยตรง ไม่จำเป็นต้องลงโมดูลใดเพิ่มอีก

ปกติแล้ว ตัวแปรภายใต้ process.env นั้นจะรับจาก environment variable ที่ตั้งค่าไว้ล่วงหน้าใน shell ที่รัน node อยู่ หากต้องการอ่านค่าจากไฟล์แทนต้องใช้โมดูลเพิ่มเติม และนอกเหนือจากการตั้งค่าสำหรับแอปพลิเคชั่น เช่น รหัสผ่านฐานข้อมูล หรือ URL ของบริการภายนอกต่างๆ ผู้ใช้ยังสามารถใช้คอนฟิกตัว NodeJS เองผ่านตัวแปร NODE_OPTIONS ได้ด้วย

By mk Founder on Tag: Bun, JavaScript, Node.js, Programming
Bun

Bun รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.0 ตามที่ประกาศไว้ ของใหม่ที่เพิ่มเข้ามาจากเวอร์ชัน 0.8 คือรองรับการรันเฟรมเวิร์คยอดนิยม Next.js, Astro, Nest.js แล้ว

By lew Founder on Tag: Bun, JavaScript, TypeScript, Node.js
Bun

Bun รันไทม์จาวาสคริปต์ออกเวอร์ชั่น 0.7 โดยตัว Bun นั้นมีทั้ง runtime, bundler, transpiler, และ package manager โดยชูจุดแข็งที่ประสิทธิภาพดีกว่า NodeJS มาก ในเวอร์ชั่นล่าสุดก็หันมาปรับปรุงการทำงานร่วมกับโค้ด NodeJS เดิมพร้อมกับเพิ่มโหมดประหยัดแรม

By mk Founder on Tag: Node.js
Node.js

Node.js ออกเวอร์ชัน 20 ตามแนวทางการออกรุ่นใหม่ทุก 6 เดือน (ทุกเดือนเมษายน-ตุลาคม)

ของใหม่เวอร์ชันนี้คือ Permission Model เป็นฟีเจอร์การจำกัดสิทธิตอนรัน Node.js เพื่อไม่ให้เข้าถึงสิทธิบางอย่างของเครื่อง เช่น ระบบไฟล์ เธร็ด โพรเซส เพื่อความปลอดภัยที่ดีขึ้น แล้วอนุญาตการเข้าถึงสิทธิบางอย่างทีละตัวแทน

  • --allow-fs-read / --allow-fs-write
  • --allow-child-process
  • --allow-worker

ฟีเจอร์นี้ยังอยู่ในสถานะทดลอง (experimental) โดยต้องรันแบบ --experimental-permission ก่อนถึงเริ่มจำกัดสิทธิ

By mk Founder on Tag: Deno, NPM, Node.js, JavaScript, Programming
Deno

โครงการ Deno รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.28 มีของใหม่ที่สำคัญคือรองรับโมดูล npm ของโครงการ Node.js ตามที่ประกาศไว้ ทำให้เราสามารถอิมพอร์ตโมดูล npm ที่มีมหาศาล 1.3 ล้านโมดูลมาใช้กับ Deno ได้

การใช้งาน npm ของ Deno ไม่จำเป็นต้องสั่ง npm install เพราะโมดูลจะถูกติดตั้งตอนรันโปรแกรมครั้งแรก, ไม่ต้องมีไฟล์ package.json และไม่ต้องมีโฟลเดอร์ node_modules เพราะโมดูลจะถูกแคชในไดเรคทอรี global แทน

By lew Founder on Tag: JavaScript, Open Source, Node.js
JavaScript

ไลบรารี Axios สำหรับการเชื่อมต่อ HTTP ไปยังเซิร์ฟเวอร์อื่นๆ ที่นิยมในหมู่นักพัฒนาที่ใช้ Node.JS ออกเวอร์ชั่น 1.0 ซึ่งเป็นเวอร์ชั่นเสถียรตัวแรก ใช้เวลากว่า 6 ปีหลังจากออกเวอร์ชั่นแรกเมื่อปี 2016

โครงการไลบรารีโอเพนซอร์สจำนวนมากมักออกเวอร์ชั่นก่อนหน้าเวอร์ชั่นเสถียรมาเรื่อยๆ และประกาศเวอร์ชั่นเสถียรโดยปรับจากเวอร์ชั่นล่าสุดไม่มากนัก แต่ Axios ออกเวอร์ชั่นก่อนหน้านี้คือ 0.27.2 มาตั้งแต่เดือนเมษายน และออกเวอร์ชั่น 1.0 alpha1 มาเมื่อเดือนมิถุนายนก่อนจะออกเวอร์ชั่นจริงในสัปดาห์นี้ โดยมีความเปลี่ยนแปลงค่อนข้างมาก

By mk Founder on Tag: Node.js, OpenSSL, Security
Node.js

โครงการ Node.js ประกาศเลื่อนวันหมดอายุของ Node.js 16 LTS รุ่นปัจจุบัน ให้เร็วกว่าเดิม 7 เดือน จากเดิมหมดระยะซัพพอร์ตเดือนเมษายน 2024 มาเป็น 11 กันยายน 2023

By mk Founder on Tag: Ruby, Rails, Node.js, Development, JavaScript
Ruby

Ruby on Rails ออกเวอร์ชันใหญ่ 7.0 ซึ่งมีการเปลี่ยนแปลงสำคัญ 2 เรื่องคือ ไม่ต้องผูกกับโลกของ Node.js อีกแล้ว และเปลี่ยนระบบ front-end มาเป็นตัวใหม่คือ Hotwire

David Heinemeier Hansson หรือ DHH ผู้สร้าง Rails อธิบายว่าโครงสร้างของภาษา JavaScript ในอดีตเป็นปัญหาของโปรแกรมเมอร์มาก ทางออกจึงเป็นการเขียนภาษาอื่นแล้วแปลงเป็น JavaScript (เรียกว่า transpiling เช่น CoffeeScript หรือ Babel) ที่ช่วยให้เขียนโค้ดง่ายขึ้น แต่ก็ต้องแลกมาด้วยความซับซ้อนที่เพิ่มขึ้น

By mk Founder on Tag: Node.js, Open Source
Node.js

Node.js ออกเวอร์ชันเลขคู่ประจำปี 2021 คือ Node.js 16.0.0 โค้ดเนม Gallium ที่จะกลายเป็นเวอร์ชันซัพพอร์ตระยะยาว (LTS) ในอนาคต

ปกติแล้ว Node.js ออกเวอร์ชันใหม่ปีละ 2 รอบคือ รุ่นเลขคู่ในเดือนเมษายน และรุ่นเลขคี่ในเดือนตุลาคม โดยรุ่นเลขคู่จะเข้าสถานะ LTS เมื่อรุ่นเลขคี่ออกตามมา (เช่น 16.x จะเป็น LTS เมื่อ 17.0 ออก)

ของใหม่ใน Node.js 16.0 คือรองรับ Apple Silicon, ปรับมาใช้เอนจินจาวาสคริปต์ V8 เวอร์ชัน 9.0, เพิ่ม Timers Promises API, เลิกซัพพอร์ต Python 2 เป็นต้น

By lew Founder on Tag: Microsoft, Microsoft 365, Node.js, Open Source
Microsoft

ไมโครซอฟท์เปิดโครงการ Fluid Framework เฟรมเวิร์คสำหรับสร้างเว็บแอปที่เปิดทางให้ผู้ใช้ทำงานร่วมกันแบบเรียลไทม์โดยอาศัยระบบข้อมูลกระจายตัว (distributed data structure - DDS) ที่เปิดทางให้เบราว์เซอร์แต่ละตัวแจ้งเซิร์ฟเวอร์ว่าแก้ไขเอกสารไปอย่างไรบ้าง จากนั้นเบราว์เซอร์ตัวอื่นๆ จะนำข้อมูลนั้นไปรวม (merge) กับเอกสารที่อยู่ในตัวเพื่อให้เบราว์เซอร์ทุกตัวเห็นเอกสารตรงกัน

ทางไมโครซอฟท์เปิดโครงการนี้พร้อมกันโครงการตัวอย่าง เช่น Brainstrom สำหรับการแชร์กระดานป้ายกระดาษ post it, แชร์เอกสารให้แก้ไขได้พร้อมกับ, และเกม Sudoku แบบช่วยกันเล่น

By mk Founder on Tag: Node.js, COVID-19, Development
Node.js

เราเห็นโครงการซอฟต์แวร์หลายตัว ปรับแผนการออกรุ่นหลังได้รับผลกระทบจาก COVID-19 (เช่น Chrome, Firefox) ล่าสุด Node.js ออกมาปรับแผนการออกรุ่นเช่นกัน

ปกติแล้ว Node.js มีรอบการออกรุ่นใหม่ (Current) ทุก 6 เดือน จากนั้นรุ่นที่เป็นเลขคี่จะเลิกซัพพอร์ตไป และรุ่นที่เป็นเลขคู่จะเข้าสถานะพร้อมใช้งานจริง (Active LTS) เป็นเวลา 12 เดือน หมดแล้วจะเป็นสถานะ Maintenance LTS อีก 18 เดือน (รวมเป็น 30 เดือน)

By mk Founder on Tag: App Engine, Google Cloud, PHP, Python, Go, Node.js
App Engine

กูเกิลเพิ่งประกาศ App Engine รองรับรันไทม์ Java 11 LTS ไปหมาด ๆ ล่าสุด App Engine ประกาศรองรับภาษาโปรแกรมเวอร์ชันใหม่ๆ อีกชุดใหญ่ดังนี้

By mk Founder on Tag: Node.js, Programming, JavaScript
Node.js

Node.js ออกเวอร์ชัน 13.0 (และออกรุ่นแก้บั๊ก 13.0.1 ตามมาในวันถัดมา) ถือเป็นเวอร์ชันแรกของ Node.js สาย 13.x

ระบบการออกรุ่นของ Node.js ในปัจจุบันคือออกเวอร์ชันใหญ่ทุก 6 เดือน โดยแบ่งเป็นรุ่นเลขคี่ (ไม่เสถียร) และรุ่นเลขคู่ (เสถียร) และมีเงื่อนไขว่าเมื่อออกรุ่นเลขคี่แล้ว จะปรับเวอร์ชันของรุ่นเลขคู่เป็นรุ่นซัพพอร์ตระยะยาว (LTS) ทันที และเลื่อนรุ่น LTS สองรุ่นก่อนหน้าเป็นสถานะ Maintenance

การออก Node.js 13.0 จึงมีผลทำให้ Node.js 12 มีสถานะเป็น LTS (เริ่มนับที่ 12.13.0) และส่งผลให้ Node.js 8 LTS เข้าสถานะ Maintenance

By mk Founder on Tag: Google Cloud Functions, Google Cloud, Serverless, Python, Node.js
Google Cloud Functions

Google Cloud Functions บริการคลาวด์แบบ serverless ของกูเกิล ประกาศรองรับภาษาโปรแกรมเวอร์ชันต่างๆ เพิ่มเติมดังนี้

By nrad6949 Writer on Tag: Fuchsia, Node.js, JavaScript
Fuchsia

อาจเป็นสัญญาณที่ดีสำหรับนักพัฒนาสาย JavaScript เมื่อ Yang Guo หนึ่งในนักพัฒนาของโครงการ Node.js ประกาศออกทวิตว่ากำลังช่วย Google หาคนทำงานอยู่ โดยเป็นนักพัฒนาที่สามารถพอร์ต (port) โครงการ Node.js ลง Fuchsia ได้

รายละเอียดของทวิตระบุว่า นักพัฒนาที่ได้ตำแหน่งนี้จะได้ทำงานในตำแหน่งวิศวกรซอฟต์แวร์ที่ Google ประจำสำนักงานเมืองมิวนิค ประเทศเยอรมนี และจะต้องทำงานในสถานที่จริงเท่านั้น โดยจะต้องมีประสบการณ์ในการพัฒนา Node.js ส่วนแกนที่สำคัญ (core), C++ และ C++ toolchain ด้วย

Subscribe to Node.js