Node v16.0.0(현재 버전)

주요 변경사항

폐기 예정 및 제거된 기능

  • (SEMVER-MAJOR) fs: rmdir의 recursive 옵션에서는 오류를 발생시키지 않는 동작을 제거했습니다. (Antoine du Hamel) #37216
  • (SEMVER-MAJOR) fs: rmdir recursive 옵션이 런타임 폐기 예정 상태가 되었습니다. (Antoine du Hamel) #37302
  • (SEMVER-MAJOR) lib: process.binding(‘http_parser’)에 접근하는 것은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #37813
  • (SEMVER-MAJOR) lib: process.binding(‘url’)에 접근하는 것은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #37799
  • (SEMVER-MAJOR) lib: process.binding(‘util’)이 타입 체커만을 반환하도록 만들었습니다. (Anna Henningsen) #37819
  • (SEMVER-MAJOR) lib: process.binding(‘crypto’)에 접근하는 것은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #37790
  • (SEMVER-MAJOR) lib: process.binding(‘signal_wrap’)에 접근하는 것은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #37800
  • (SEMVER-MAJOR) lib: process.binding(‘v8’)에 접근하는 것은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #37789
  • (SEMVER-MAJOR) lib: process.binding(‘async_wrap’)에 접근하는 것은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #37576
  • (SEMVER-MAJOR) module: module.createRequireFromPath는 제거되었습니다. (Antoine du Hamel) #37201
  • (SEMVER-MAJOR) module: 하위 경로 폴더 매핑은 런타임 폐기 예정 상태가 되었습니다. (Antoine du Hamel) #37215
  • (SEMVER-MAJOR) module: “main” 색인과 확장 조회는 런타임 폐기 예정 상태가 되었습니다. (Antoine du Hamel) #37206
  • (SEMVER-MAJOR) module: 유효하지 않은 package.json 메인 진입점은 런타임 폐기 예정 상태가 되었습니다. (Antoine du Hamel) #37204
  • (SEMVER-MAJOR) process: process.config 수정은 런타임 폐기 예정 상태가 되었습니다. (James M Snell) #36902

안정적인 Timers Promises API

Timers Promises API는 Promise 객체를 반환하는 타이머 함수의 대안을 제공합니다. Node.js v15.0.0에 추가되었고, 이 릴리스에서 실험 상태를 벗어나 안정 버전으로 변경되었습니다.

James Snell이 기여했습니다. - #38112

툴체인과 컴파일러 업그레이드

Node.js v16.0.0은 애플 실리콘을 위해 미리 빌드한 바이너리를 제공하는 최초 릴리스가 될 것입니다. Intel(darwin-x64)과 ARM(darwin-arm64) 아키텍처에 대해 분리된 타볼을 제공할 예정이지만 macOS 인스톨러(.pkg)는 ‘fat’(멀티 아키텍처) 바이너리로 제공할 예정입니다.

  • (SEMVER-MAJOR) build: Python 2를 지원하지 않습니다. (Christian Clauss) #36691
  • (SEMVER-MAJOR) build: Makefile 내 기본 PYTHON은 python3로 지정됩니다. (Michaël Zasso) #37764
  • build: Makefile이 fat 바이너리를 지원하기 위해 업데이트됩니다. (Ash Cripps) #37861
  • (SEMVER-MAJOR) build: OS X에서 ASLR(PIE)을 활성화합니다. (woodfairy) #35704
  • build: gcc 버전이 8.3.0보다 이전이면 경고합니다. (Richard Lau) #37935
  • (SEMVER-MAJOR) doc: Xcode 최소 지원을 11로 업데이트합니다. (Michaël Zasso) #37872
  • (SEMVER-MAJOR) doc: GCC 최소 지원을 8.3으로 업데이트합니다. (Michaël Zasso) #37871
  • (SEMVER-MAJOR) doc: AIX를 v16.x을 위한 GCC8로 업데이트합니다. (Ash Cripps) #37677
  • tools: Distribution.xml에 아키텍처를 설정했습니다. (Ash Cripps) #38261

V8 9.0

V8 자바스크립트 엔진은 성능 조정과 개선을 포함해 V8 9.0으로 업데이트되었습니다.

이 업데이트는 또한 캡처된 문자열의 시작과 끝 인덱스를 제공하는 ECMAScript 정규 표현식 매치 인덱스를 포함합니다. 이 인덱스 배열은 정규 표현식에 /d 플래그가 있는 경우 매치된 객체의 .indices 속성을 통해 확인 가능합니다.

Michaël Zasso가 기여했습니다. - #37587

다른 주요 변경사항

  • (SEMVER-MINOR) assert: assert.match와 assert.doesNotMatch가 실험 상태를 졸업했습니다. (James M Snell) #38111
  • (SEMVER-MAJOR) buffer: btoa와 atob는 전역으로 노출됩니다. (James M Snell) #37786
  • (SEMVER-MAJOR) deps: ICU 최소 버전이 68로 변경되었습니다. (Michaël Zasso) #37330
  • deps: ICU가 69.1로 업데이트되었습니다. (Michaël Zasso) #38178
  • deps: llhttp가 6.0.0으로 업데이트되었습니다. (Fedor Indutny) #38277
  • deps: npm의 버전을 7.10.0으로 업그레이드했습니다. (Ruy Adorno) #38254
  • (SEMVER-MINOR) http: http.ClientRequest.getRawHeaderNames()를 추가했습니다. (simov) #37660
  • (SEMVER-MAJOR) lib,src: 클러스터 모드에서 사용하던 단어 'Master’를 'Parent’로 변경했습니다. (Michael Dawson) #36478
  • (SEMVER-MINOR) module: node:로 시작하는 require(…) 호출을 지원합니다. (ExE Boss) #37246
  • (SEMVER-MINOR) perf_hooks: timerify에 히스토그램 옵션을 추가했습니다. (James M Snell) #37475
  • (SEMVER-MINOR) repl: node:로 시작하는 require(…) 호출에 자동완성을 추가했습니다. (ExE Boss) #37246
  • (SEMVER-MINOR) util: getSystemErrorMap() 구현을 추가했습니다. (eladkeyshawn) #38101

Semver-Major Commits

  • [324a6c235a] - (SEMVER-MAJOR) async_hooks: add thisArg to AsyncResource.bind (James M Snell) #36782
  • [d1e2184c8e] - (SEMVER-MAJOR) buffer: expose btoa and atob as globals (James M Snell) #37786
  • [4268fae04a] - (SEMVER-MAJOR) build: remove support for Python 2 (Christian Clauss) #36691
  • [c3a5e15ebe] - (SEMVER-MAJOR) build: default PYTHON to python3 in Makefile (Michaël Zasso) #37764
  • [1d8c022544] - (SEMVER-MAJOR) build: update Makefile to support fat binary (Ash Cripps) #37861
  • [38f32386c1] - (SEMVER-MAJOR) build: include minimal V8 headers in distribution (Michaël Zasso) #37570
  • [a19af5ee71] - (SEMVER-MAJOR) build: use C11 ABI with libstdc (Anna Henningsen) #36634
  • [8d6b74d347] - (SEMVER-MAJOR) build: enable ASLR (PIE) on OS X (woodfairy) #35704
  • [732ad99e47] - (SEMVER-MAJOR) deps: update V8 to 9.0.257.11 (Michaël Zasso) #37587
  • [43cc8e4b2e] - (SEMVER-MAJOR) deps: bump minimum ICU version to 68 (Michaël Zasso) #37330
  • [c5ff019a4e] - (SEMVER-MAJOR) deps: update V8 to 8.9.255.19 (Michaël Zasso) #37330
  • [c7b3292251] - (SEMVER-MAJOR) deps: update V8 to 8.8.278.17 (Michaël Zasso) #36139
  • [48db20f6f5] - (SEMVER-MAJOR) deps: update V8 to 8.7.220 (Michaël Zasso) #35700
  • [d85e1f0703] - (SEMVER-MAJOR) dns: use url module instead of punycode for IDNA (Antoine du Hamel) #35091
  • [290c158018] - (SEMVER-MAJOR) doc: update minimum supported Xcode to 11 (Michaël Zasso) #37872
  • [1ff2918d80] - (SEMVER-MAJOR) doc: update minimum supported GCC to 8.3 (Michaël Zasso) #37871
  • [2706e67116] - (SEMVER-MAJOR) doc: update AIX to GCC8 for v16.x (Ash Cripps) #37677
  • [5ae5ca90ef] - (SEMVER-MAJOR) doc: add http.IncomingMessage#connection (Pranshu Srivastava) #33768
  • [83d6e63aee] - (SEMVER-MAJOR) events: change EventTarget handler exception behavior (Nitzan Uziely) #37237
  • [9948036ee0] - (SEMVER-MAJOR) fs: remove permissive rmdir recursive (Antoine du Hamel) #37216
  • [d4693ff430] - (SEMVER-MAJOR) fs: add validation for fd and path (Dylan Elliott) #35187
  • [0ddd75bcd8] - (SEMVER-MAJOR) fs: runtime deprecate rmdir recursive option (Antoine du Hamel) #37302
  • [da217d0773] - (SEMVER-MAJOR) fs: fix flag and mode validation (James M Snell) #37480
  • [2ef9a76ece] - (SEMVER-MAJOR) http: use objects with null prototype in Agent (Michaël Zasso) #36409
  • [25e30005b8] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding(‘http_parser’) (James M Snell) #37813
  • [8bb4e048af] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding(‘url’) (James M Snell) #37799
  • [fe73e4d578] - (SEMVER-MAJOR) lib: make process.binding(‘util’) return only type checkers (Anna Henningsen) #37819
  • [3bee6d8aad] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding(‘crypto’) (James M Snell) #37790
  • [ac00df112e] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding(‘signal_wrap’) (James M Snell) #37800
  • [ae595d76e3] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding(‘v8’) (James M Snell) #37789
  • [104dac79cc] - (SEMVER-MAJOR) lib: aggregate errors to avoid error swallowing (Antoine du Hamel) #37460
  • [1468c9ff7c] - (SEMVER-MAJOR) lib: runtime deprecate access to process.binding(‘async_wrap’) (James M Snell) #37576
  • [295e766c27] - (SEMVER-MAJOR) lib: remove usage of url.parse (raisinten) #36853
  • [cb3020d824] - (SEMVER-MAJOR) lib: add error handling for input stream (rexagod) #31603
  • [15164cebce] - (SEMVER-MAJOR) lib,src: update cluster to use Parent (Michael Dawson) #36478
  • [3cc9aec988] - (SEMVER-MAJOR) module: runtime deprecate subpath folder mappings (Antoine du Hamel) #37215
  • [9fab73c73b] - (SEMVER-MAJOR) module: runtime deprecate “main” index and extension lookups (Antoine du Hamel) #37206
  • [76a073b67e] - (SEMVER-MAJOR) module: runtime deprecate invalid package.json main entries (Antoine du Hamel) #37204
  • [674614b3f5] - (SEMVER-MAJOR) module: remove module.createRequireFromPath (Antoine du Hamel) #37201
  • [aecd5ebf49] - (SEMVER-MAJOR) module: only set cache when finding module succeeds (Yongsheng Zhang) #36642
  • [f0bf373176] - (SEMVER-MAJOR) perf_hooks: make performance a global (James M Snell) #37970
  • [f3eb224c83] - (SEMVER-MAJOR) perf_hooks: complete overhaul of the implementation (James M Snell) #37136
  • [f1753d4c76] - (SEMVER-MAJOR) process: disallow adding options to process.allowedNodeEnvironmentFlags (Antoine du Hamel) #36660
  • [96f3977ded] - (SEMVER-MAJOR) process: runtime deprecate changing process.config (James M Snell) #36902
  • [45dbcbef90] - (SEMVER-MAJOR) readline: cursorTo throw error on NaN (Zijian Liu) #36379
  • [bf79987433] - (SEMVER-MAJOR) src: mark internally exported functions as explicitly internal (Tyler Ang-Wanek) #37000
  • [1fe571aa0c] - (SEMVER-MAJOR) src: inline AsyncCleanupHookHandle in headers (Tyler Ang-Wanek) #37000
  • [dfc288e7fd] - (SEMVER-MAJOR) src: clean up embedder API (Anna Henningsen) #35897
  • [65e8864fa3] - (SEMVER-MAJOR) worker: send correct error status for worker init (Yash Ladha) #36242

Semver-Minor Commits

  • [944a956087] - (SEMVER-MINOR) assert: graduate assert.match and assert.doesNotMatch (James M Snell) #38111
  • [6a1986d50a] - (SEMVER-MINOR) deps: update llhttp to 5.1.0 (Fedor Indutny) #38146
  • [069b5df4f6] - (SEMVER-MINOR) module: add support for node:‑prefixed require(…) calls (ExE Boss) #37246
  • [b803bca4fa] - (SEMVER-MINOR) perf_hooks: add histogram option to timerify (James M Snell) #37475
  • [95391fe689] - (SEMVER-MINOR) repl: add auto‑completion for node:‑prefixed require(…) calls (ExE Boss) #37246
  • [15b8e6b1c4] - (SEMVER-MINOR) timers: graduate awaitable timers and improve docs (James M Snell) #38112
  • [802171057f] - (SEMVER-MINOR) util: add getSystemErrorMap() impl (eladkeyshawn) #38101

Semver-Patch Commits

Windows 32-bit Installer: https://nodejs.org/dist/v16.0.0/node-v16.0.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v16.0.0/node-v16.0.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v16.0.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v16.0.0/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v16.0.0/node-v16.0.0.pkg

macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-darwin-arm64.tar.gz

macOS Intel 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-aix-ppc64.tar.gz

ARMv7 32-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v16.0.0/node-v16.0.0.tar.gz

Other release files: https://nodejs.org/dist/v16.0.0/

Documentation: https://nodejs.org/docs/v16.0.0/api/

SHASUMS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

a6aee31e1fd8f55dc78007de2e4ac0d8e0dadd36beacfbabbaf9ab27a5f1f2f4 node-v16.0.0-aix-ppc64.tar.gz
2d6d412abcf7c9375f19fde14086a6423e5bb9415eeca1ccad49638ffc476ea3 node-v16.0.0-darwin-arm64.tar.gz
f8710a83738b4408da82fe81b7934373e4d2f84d40c8c1217676119fd3c77c7e node-v16.0.0-darwin-arm64.tar.xz
b00457dd7da6cc00d0248dc57b4ddd01a71eed6009ddadd8c854678232091dfb node-v16.0.0-darwin-x64.tar.gz
66ecffa48b98cf1ca4d038b42b74f05bfc4d31681e2aa43a1ba50919ea23823b node-v16.0.0-darwin-x64.tar.xz
a4d665582e492bf013ce67b1fadb7db9cb8fd46e7d02a30f5e473373d452e377 node-v16.0.0-headers.tar.gz
f5f178e75d78bd050d1a85ea56189bae6038d9d21d032e7889dbb22fa54da71d node-v16.0.0-headers.tar.xz
22e7d326b21195c4a0df92a7af7cfdf1743cd46fcc50e335e4086a1c1f2a9a13 node-v16.0.0-linux-arm64.tar.gz
c6dc688de6373049f21cb1ca4f2ceefe80a5d711e301b8d54fd0a7c36a406b03 node-v16.0.0-linux-arm64.tar.xz
d4e2965224ca0667732836be249ec32ad899f7f01d932121daca76cbf38e75f1 node-v16.0.0-linux-armv7l.tar.gz
1cb4bf1bac74f492f9182e44422e245cc2a971889e34f4e554b7c45eb080304c node-v16.0.0-linux-armv7l.tar.xz
bc28902e8e1453531bb38001cf705dff2456cdf5b856a37dac2f2d3d771b02c1 node-v16.0.0-linux-ppc64le.tar.gz
10bc1b3c18a05811a4497aa77b7951d963baecf033aa436358e28ba3cde28090 node-v16.0.0-linux-ppc64le.tar.xz
3cdfafc6425aace2ab24a31dcac26564a494094c7521b50dc41f3c538b3700ec node-v16.0.0-linux-s390x.tar.gz
27a5a70178cd765c8b37aa49d18d05e7338c9b043b3195d4cbf28955ca3c9aa2 node-v16.0.0-linux-s390x.tar.xz
9268cdb3c71cec4f3dc3bef98994f310c3bef259fae8c68e3f1c605c5dfcbc58 node-v16.0.0-linux-x64.tar.gz
1736446bb102e19942addce29f6a12b157ca71f38b9159d0446f51ba69618b8d node-v16.0.0-linux-x64.tar.xz
fe1d4f458a8b3e85c7c927c5a342d09407915b77ade5303fc98b0deeec89a3db node-v16.0.0.pkg
ef4928ed381dcb8f5eca9c521b3ffa4a384c75cc76656999e16f5d1c171d8e7b node-v16.0.0.tar.gz
47cb90111e8c3dc42dc538464789415354f0d933587fc89fff71f9bd816aaa02 node-v16.0.0.tar.xz
8b78d362582746c5157b9e703bdd16c3da54c51efa12bed8fdf0e30e2bfdbce6 node-v16.0.0-win-x64.7z
99c2b01afb8d966fc876ec30ac7dfdbd9da9b17a3daeda92c19ce657ab9bea61 node-v16.0.0-win-x64.zip
04859c6d5a1d5054e57d1c1eb8f58a13d9d6e0ea079fe83d9b79d3a9aa401cc5 node-v16.0.0-win-x86.7z
0600dffb5331b6f49e6ff4fa97770811746e0e2ecaf53de6deaafff277a644b4 node-v16.0.0-win-x86.zip
9309bda5a68c353145acc2fa9fbe3ec98a0234b3946a9861997f60b4b89b83a7 node-v16.0.0-x64.msi
6d7404b6e6f0c2a9cd396ce56eb68d2e0d2e5df434554345e075707bff7bc384 node-v16.0.0-x86.msi
f5d19a86afc817068ab7120919a4f96b43e60a7abe3282c3797a50f1cc723930 win-x64/node.exe
32063b59c6df338e1d367eea513dc04abcc1768f4af5ba2bb764dfd1af41e6cc win-x64/node.lib
f369ce51bda686c451740c1805fa692554568dbc55992026bb17346f5ada6f7e win-x64/node_pdb.7z
aa12acfbc081eea9a5d625471ce93ebd711c9c6785a76d940b442b672a1d2025 win-x64/node_pdb.zip
eab4525927aadf29b0e257a96a0c7afab1d42a52680622b6bf366690a6fc4d38 win-x86/node.exe
3130ffd2b70c7b3b227f62d97090d3204bb64a319a7257821ff61eb86b645d61 win-x86/node.lib
2d7feeb1a4bb7b2a7e0fe45dc39550d5913d96ff34f10f48d747f2e90b143745 win-x86/node_pdb.7z
47a135fcf66526de3fae114a554ff810567fd837d9f764527e307acc076f1384 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAmB++dEACgkQ1wYoSKGr
AFzs1Af/T7bep8whLJueuaJzRhh7BGX/nzPEHU7GP215nNqbN7Simg1Xj+5QCANb
AQYjNe86Fff8JaIp6sQV40qeSEC2PNGx6mp0Rjq8SogqT5NXmRs74VVLZ+H1YERf
0Zy19USOlpSMsK4LJdhU5paShzl9xsw1Lpk7e3XDhANmL2Fd+OWiV546z/dIoKN4
v7e2cbdiYrCYEjQbY6EFyPi/As+r9MjnX7ggXQ8ZD7hRshv7dxYFSRSaIkcUNBZn
J6qRFwbVyAdFzmbUNJREt8ky2ZpwU1p2Cdl/jkWGCjxl1fUSN4/V+9bMSzRaQW/+
t/e5lo+lKhleYXFEK7B5h1Ss6F2MpA==
=v9uW
-----END PGP SIGNATURE-----