觀點 · 資訊分享

Cloudflare Workers 的 Node.js 相容改預設開啟:相容日期 2026-08-04 起不必再加 nodejs_compat

Cloudflare 宣布,Workers 的相容日期設為 2026-08-04 或更新時,會預設啟用 nodejs_compat 與 nodejs_compat_v2,node:crypto、node:fs、node:http 等內建 API 直接可用;舊相容日期的 Worker 不受影響。

發布
2026-08-05
篇幅
約 3 分鐘 · 1,572 字
結構
7 節 + 3 題常見問題
標籤
#Cloudflare#Workers#Node.js#相容日期#Wrangler
Cloudflare Workers 的 Node.js 相容改預設開啟:相容日期 2026-08-04 起不必再加 nodejs_compat

一句話看懂:Cloudflare 宣布,Workers 的相容日期設為 2026-08-04 或更新時,會預設啟用 Node.js 相容,node:crypto、node:fs、node:http 這些內建 API 不用再手動開旗標就能用。

Workers 預設開啟 Node.js 相容資訊圖卡:相容日期 8/4 起的 Workers,預設就能用 Node.js 內建 API

先用白話講:Workers 與 Node.js 相容是什麼?

Workers 是 Cloudflare 讓你把程式碼放到全球各地機房執行的服務。但它的執行環境不是 Node.js,而是自己的一套,所以很多為 Node.js 寫的函式庫,原本會因為「找不到某個內建功能」而跑不起來。

Node.js 相容就像一個轉接頭:把 Node.js 的內建功能(加密、檔案、網路、串流……)接到 Workers 的環境上,讓 npm 上的套件可以直接用。以前這個轉接頭要自己插上去,現在新的設定預設就插好了。

發生什麼事

Cloudflare 在 8 月 4 日的更新日誌宣布:

  • 當 Workers 的相容日期是 2026-08-04 或更新,會預設啟用 nodejs_compat 與 nodejs_compat_v2 兩個旗標的行為
  • Workers 執行環境支援的 Node.js 內建 API 都預設可用,包含 node:crypto、node:buffer、node:stream、node:net、node:dns、node:fs、node:http 等
  • 依賴這些 API 的 npm 套件,不用額外設定就能運作

哪些人會被影響?

情況 怎麼辦
新專案 不需要加這兩個旗標,預設就有
既有專案,相容日期早於 2026-08-04 完全不受影響;想用的話可以自己加 nodejs_compat
既有專案,更新相容日期到 2026-08-04 以後 不必先把舊旗標拿掉,工具會忽略多餘的旗標
不想要 Node.js 相容 移除舊旗標,改加 no_nodejs_compat 與 no_nodejs_compat_v2

給開發者的技術細節

官方給的關閉設定長這樣(日期請改成你要的相容日期):

{
  "compatibility_date": "2026-08-04",
  "compatibility_flags": ["no_nodejs_compat", "no_nodejs_compat_v2"]
}
  • 官方說明 Wrangler、Miniflare、Cloudflare Vite 外掛與 Vitest Pool Workers,都會忽略這兩個已多餘的旗標
  • 把相容日期往後調之前,建議先在測試環境跑一遍:新的相容日期可能還包含其他行為變更,這則公告只談 Node.js 相容的部分
  • 內建 API「可用」不代表每個行為都和真正的 Node.js 完全一樣,細節請看官方的 Node.js 相容文件

我的看法

這個改變很貼心:以前新手遇到的第一個坑,常常是裝了一個很普通的 npm 套件,部署後卻跳出「找不到某個 node: 模組」,才發現要加旗標。現在新專案預設就沒有這個坑。

但「預設開啟」也有一個副作用:你的 Worker 現在能引入更多本來引入不了的套件,bundle 可能變大、啟動時間也可能受影響。我會建議在更新相容日期之後,順手看一下部署後的大小與冷啟動表現,不要只看功能有沒有跑起來。

名詞小辭典

  • Workers:Cloudflare 的無伺服器執行環境,程式會在離使用者近的機房執行。
  • 相容日期(Compatibility date):用日期固定 Workers 執行環境行為的設定。
  • npm:JavaScript 的套件管理平台,上面有大量現成的函式庫。
  • Wrangler:Cloudflare 提供的命令列工具,用來開發與部署 Workers。

資料來源

常見問題

相容日期(compatibility date)是什麼?
Workers 用一個日期來固定執行環境的行為:設定哪天,就套用那天的行為版本。這樣 Cloudflare 更新執行環境時,你的 Worker 不會突然被改變行為,要升級時自己調整日期。
我現有的 Worker 會被改掉嗎?
不會。官方說相容日期早於 2026-08-04 的 Worker 不受影響;只有你把相容日期更新到 2026-08-04 或之後,才會預設啟用。
如果我不想要 Node.js 相容怎麼辦?
官方的做法是移除原有的 nodejs_compat 與 nodejs_compat_v2 旗標,再加上 no_nodejs_compat 與 no_nodejs_compat_v2 這兩個關閉用旗標。
LINE