Node v17.0.0(현재 버전)

주요 변경사항

폐기 예정과 삭제

  • [f182b9b29f] - (SEMVER-MAJOR) dns: dns.lookup 옵션의 타입을 강제하는 기능을 런타임에서 폐기 예정으로 표시합니다. (Antoine du Hamel) #39793
  • [4b030d0573] - doc: http에서 abort와 관련된 부분이 문서에서만 먼저 폐기 예정으로 표시합니다. (dr-js) #36670
  • [36e2ffe6dc] - (SEMVER-MAJOR) module: 하위 경로 매핑이 제거되었습니다. (Guy Bedford) #40121
  • [64287e4d45] - (SEMVER-MAJOR) module: 트레일링 슬래시 패턴을 런타임에서 폐기 예정으로 표시합니다. (Guy Bedford) #40117

OpenSSL 3.0

Node.js는 이제 OpenSSL 3.0을 포함하고 여기에는 QUIC을 지원하는 quictls/openssl이 포함되어 있습니다. OpenSSL 3.0에서는 새로운 FIPS 모듈을 사용해서 FIPS 지원을 다시 이용할 수 있습니다. FIPS 지원으로 Node.js를 빌드하는 자세한 방법은 BUILDING.md를 참고하세요.

OpenSSL 3.0 API는 OpenSSL 1.1.1에서 제공되는 API와 대부분 호환되어야 하지만 허용된 알고리즘과 키 크기에 관해서 제한이 강화되었기 때문에 생태계에 어느 정도의 영향은 있을 것으로 생각합니다.

Node.js 17을 사용하는 애플리케이션에서 ERR_OSSL_EVP_UNSUPPORTED 오류가 발생한다면 애플리케이션이나 사용 중인 모듈이 OpenSSL 3.0이 더는 기본적으로 허용하지 않는 알고리즘이나 키 크기를 사용할 가능성이 높습니다. 이러한 강화된 제한을 임시로 우회하는 방법으로 --openssl-legacy-provider 명령행 옵션을 사용하면 레거시 프로바이더로 되돌릴 수 있습니다.

OpenSSL 3.0의 모든 기능에 대한 자세한 내용은 OpenSSL 3.0 릴리스 블로그를 참고하세요.

https://github.com/nodejs/node/pull/38512, https://github.com/nodejs/node/pull/40478에서 기여되었습니다.

V8 9.5

V8 JavaScript 엔진이 V8 9.5로 업데이트되었습니다. 이 릴리스는 Intl.DisplayNames API에 대한 추가적인 지원 타입과 Intl.DateTimeFormat API의 확장된 timeZoneName 옵션이 포함되어 있습니다.

V8 9.5 릴리스 글에서 자세한 내용을 볼 수 있습니다. - https://v8.dev/blog/v8-release-95

Michaël Zasso가 기여했습니다. - https://github.com/nodejs/node/pull/40178

그 외 주요 변경사항

  • [1b2749ecbe] - (SEMVER-MAJOR) dns: dns.lookup()에서 기본값을 verbatim=true로 변경했습니다. (treysis) #39987
  • [59d3d542d6] - (SEMVER-MAJOR) errors: 종료를 일으키는 치명적인 예외에서 Node.js 버전을 출력합니다. (Divlo) #38332
  • [a35b7e0427] - deps: npm의 버전을 8.1.0으로 업그레이드했습니다. (npm team) #40463
  • [6cd12be347] - (SEMVER-MINOR) fs: FileHandle.prototype.readableWebStream()을 추가했습니다. (James M Snell) #39331
  • [d0a898681f] - (SEMVER-MAJOR) lib: structuredClone() 전역 메서드를 추가했습니다. (Ethan Arrowood) #39759
  • [e4b1fb5e64] - (SEMVER-MAJOR) lib: DOMException을 전역으로 노출합니다. (Khaidi Chu) #39176
  • [0738a2b7bd] - (SEMVER-MAJOR) stream: 오류가 발생한 스트림에서 finishied도 오류가 발생해야 합니다. (Robert Nagy) #39235

Semver-Major Commits

  • [9dfa30bdd5] - (SEMVER-MAJOR) build: compile with C++17 (MSVC) (Richard Lau) #38807
  • [9f0bc602e4] - (SEMVER-MAJOR) build: compile with --gnu++17 (Richard Lau) #38807
  • [62719c5fd2] - (SEMVER-MAJOR) deps: update V8 to 9.5.172.19 (Michaël Zasso) #40178
  • [66da32c045] - (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0 (Daniel Bevenius) #38512
  • [40c6e838df] - (SEMVER-MAJOR) dgram: tighten address validation in socket.send (Voltrex) #39190
  • [f182b9b29f] - (SEMVER-MAJOR) dns: runtime deprecate type coercion of dns.lookup options (Antoine du Hamel) #39793
  • [1b2749ecbe] - (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup() (treysis) #39987
  • [ae876d420c] - (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2 (Michaël Zasso) #40179
  • [59d3d542d6] - (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that cause exit (Divlo) #38332
  • [f9447b71a6] - (SEMVER-MAJOR) fs: fix rmsync error swallowing (Nitzan Uziely) #38684
  • [f27b7cf95c] - (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing (Nitzan Uziely) #38259
  • [d0a898681f] - (SEMVER-MAJOR) lib: add structuredClone() global (Ethan Arrowood) #39759
  • [e4b1fb5e64] - (SEMVER-MAJOR) lib: expose DOMException as global (Khaidi Chu) #39176
  • [36e2ffe6dc] - (SEMVER-MAJOR) module: subpath folder mappings EOL (Guy Bedford) #40121
  • [64287e4d45] - (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns (Guy Bedford) #40117
  • [707dd77d86] - (SEMVER-MAJOR) readline: validate AbortSignals and remove unused event listeners (Antoine du Hamel) #37947
  • [8122d243ae] - (SEMVER-MAJOR) readline: introduce promise-based API (Antoine du Hamel) #37947
  • [592d1c3d44] - (SEMVER-MAJOR) readline: refactor Interface to ES2015 class (Antoine du Hamel) #37947
  • [3f619407fe] - (SEMVER-MAJOR) src: allow CAP_NET_BIND_SERVICE in SafeGetenv (Daniel Bevenius) #37727
  • [0a7f850123] - (SEMVER-MAJOR) src: return Maybe from a couple of functions (Darshan Sen) #39603
  • [bdaf51bae7] - (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform (Shelley Vohr) #38362
  • [0c6f345cda] - (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error (Rongjian Zhang) #38700
  • [0e841b45c2] - (SEMVER-MAJOR) stream: don’t emit ‘data’ after ‘error’ or ‘close’ (Robert Nagy) #39639
  • [ef992f6de9] - (SEMVER-MAJOR) stream: do not emit end on readable error (Szymon Marczak) #39607
  • [efd40eadab] - (SEMVER-MAJOR) stream: forward errored to callback (Robert Nagy) #39364
  • [09d8c0c8d2] - (SEMVER-MAJOR) stream: destroy readable on read error (Robert Nagy) #39342
  • [a5dec3a470] - (SEMVER-MAJOR) stream: validate abort signal (Robert Nagy) #39346
  • [bb275ef2a4] - (SEMVER-MAJOR) stream: unify stream utils (Robert Nagy) #39294
  • [b2ae12d422] - (SEMVER-MAJOR) stream: throw on premature close in Readable[AsyncIterator] (Darshan Sen) #39117
  • [0738a2b7bd] - (SEMVER-MAJOR) stream: finished should error on errored stream (Robert Nagy) #39235
  • [954217adda] - (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable (Robert Nagy) #34385
  • [f4609bdf3f] - (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration (Robert Nagy) #38505
  • [e1e669b109] - (SEMVER-MAJOR) url: throw invalid this on detached accessors (James M Snell) #39752
  • [70157b9cb7] - (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII (Timothy Gu) #38631

Semver-Minor Commits

  • [6cd12be347] - (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream() (James M Snell) #39331
  • [341312d78a] - (SEMVER-MINOR) readline: add autoCommit option (Antoine du Hamel) #37947
  • [1d2f37d970] - (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) #40478
  • [3b72788afb] - (SEMVER-MINOR) src: add flags for controlling process behavior (Cheng Zhao) #40339
  • [8306051001] - (SEMVER-MINOR) stream: add readableDidRead (Robert Nagy) #36820
  • [08ffbd115e] - (SEMVER-MINOR) vm: add support for import assertions in dynamic imports (Antoine du Hamel) #40249

Semver-Patch Commits

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Documentation: https://nodejs.org/docs/v17.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

ab2a9b508665f88d6516a6322971bbb988dddf311cd26edcaea374ff06ee8f14 node-v17.0.0-aix-ppc64.tar.gz
bba3a1d2638ee194f82a6173296bebabf1b28897a5cd41bbc146629ac05e0751 node-v17.0.0-darwin-arm64.tar.gz
ec178ba85607bde1ead414230c1fb5ad57768dcc224d7a100f13be6f8a0bec3e node-v17.0.0-darwin-arm64.tar.xz
091f29119bfb2a9004171f4626e0e76021f7f8db07148bd45caa6a61eb2a4e3d node-v17.0.0-darwin-x64.tar.gz
05a5308c28711ab5593cfbabadf5c62c5063a182bff413bd1336a824ce4c6f20 node-v17.0.0-darwin-x64.tar.xz
8021132e37f0b7dc85c00ad32fb5176d2933ec4a4056a96bd6c3cf632147ec2f node-v17.0.0-headers.tar.gz
2573e4c4913d38a5d6631ade68fb41ee5ec1e4408024fa4dda3aa4453cefea62 node-v17.0.0-headers.tar.xz
d00e801d49b7419cbb07be4c8f026b43560c4e53579abce9d764edf7ebbc6554 node-v17.0.0-linux-arm64.tar.gz
6573675a97fa63870d5adf4969152e27fb49cdc9a6664bd6364dcc899659d559 node-v17.0.0-linux-arm64.tar.xz
90e0447f4867f624e416fb39373e94734860c7fb158976335673f94607182a43 node-v17.0.0-linux-armv7l.tar.gz
2f260508471f558fa8efa0e1f0be3e3c43c6c6f053db5bfcc8998bd338617fe9 node-v17.0.0-linux-armv7l.tar.xz
9e3f1c7fc59dadb0f9303a11c50247d62688be85c3e70e90c040655b49f93a54 node-v17.0.0-linux-ppc64le.tar.gz
ed5ee6161759cd8db351593a055d279bbf53f28ec45c58236cb275f2f7bc6433 node-v17.0.0-linux-ppc64le.tar.xz
6ae1826a06c974e059b8f6d37d97cce340bcdfc3c6746e1e73139f606de4d6a1 node-v17.0.0-linux-s390x.tar.gz
1b09ea0916cfcfba12b4912cb0671d5331e572b5e14f067433e599ee11ca267c node-v17.0.0-linux-s390x.tar.xz
252505ade312c6c346c6b8d00e2be9e383446d81430ee4c1e5a04972e0817da4 node-v17.0.0-linux-x64.tar.gz
e3b8c76134a4f693607e679b407bc0783cec7b1fdcab9f13ca7df1ae6acee440 node-v17.0.0-linux-x64.tar.xz
481bf9e955f8d613e1513d10c853c7cc4cda4389929ce3a232024fdf093ed98e node-v17.0.0.pkg
bcac24b990be48e6d1fead0726cd395b48b0dd05d030396ddac94b628aa03f2f node-v17.0.0.tar.gz
c352ac4d8e8de429a3f940e202fdffc31dd6809d0e92a5b23ddca9a9a62e35ff node-v17.0.0.tar.xz
053a6e7e34ae791b25a691fded34bcd3259adb519cea8873b74c93eb6f57c667 node-v17.0.0-win-x64.7z
34fdcaff4f930504b08bf9083f2d6e42f874e1bc93e453d592387f1cc5bb4a2b node-v17.0.0-win-x64.zip
cf5ca9d60f2b39518f4503675a4f259b67f81a6148bb6307e04be60f91c5e071 node-v17.0.0-win-x86.7z
bf4d9cef6c5ec93b4c482cf5ff856cedcc8383b888a2e7fdcf2cf43c6e9ad5a2 node-v17.0.0-win-x86.zip
746042b936fbd3c67988fcce2b4bfaa0516765b26a02500376427e907ee929f2 node-v17.0.0-x64.msi
c0a3b338ed0519db2bb14890f27f443dcf620ab6d11ef3ce17b2242074bee5c6 node-v17.0.0-x86.msi
b9745ba9b54e7b9f0cc38d66d4783a7224212e4d8630eed0793430b4d0b756e4 win-x64/node.exe
95d44c197ebbc042dbed838ecde8f78c8902dc6d266605859f93c28d2051b3e0 win-x64/node.lib
b3add83b027a8ddfb92a42b7314f3b8b89bfec4c22c2105cff1ecc4a3e3c9c3c win-x64/node_pdb.7z
da556d50d1a397698aa09b9f6204afd593bae42354384ddc7c6714336bec3152 win-x64/node_pdb.zip
59d4dc681b38776df9baf8b044111b50e29cefb7ec2238d2de8a2df40241f1b3 win-x86/node.exe
708622a96033ea289f09421906e51a32d0cbfde560fb82a78498f3f5a7617152 win-x86/node.lib
7b3108e0a6dd8e068156d009f7aec5b4ee058fd2ece5fd659f421ebda7477f78 win-x86/node_pdb.7z
b23e990313961f397066fb5c729bb4170f80f9dcf40dbac03c482352385a2db9 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAmFu5zoACgkQ1wYoSKGr
AFxaDggAlg1cJMRp5xWV6b3ysIVk685j/3Uf5o/qpdaG5EujLzeCZTr4mP2Xr9J4
rzXZIaafOli9ULGulicmbySKyN3OVOBlIutGDtmFPs3HXj7xjx4M/FWnL3BJ2615
iOYsFQzlaI+9uc83IKAk2Mg/SGNytJhjeikTU0pCaev+SPSXg15a8Z7jl4vLr52K
zPxbb6Oldpc5e0ang9kL0TuJIcVQq97a4jDfm6rEx6h3WCjspDZZPaWOGiCNB1Id
Vce1ptCJOeUzNdpqRhnz4P4mkcSwlDc9Cq6Lq7EeLSfG36djrINgkTGGe/og2YhG
GRHvPoEFIdf+mOxzaJSmJMbhhRWWdQ==
=D37b
-----END PGP SIGNATURE-----