8

Node v14.0.0 (Current)

 4 years ago
source link: https://nodejs.org/en/blog/release/v14.0.0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
  • (SEMVER-MAJOR) crypto : move pbkdf2 without digest to EOL (James M Snell) #31166
  • (SEMVER-MAJOR) fs : deprecate closing FileHandle on garbage collection (James M Snell) #28396
  • (SEMVER-MAJOR) http : move OutboundMessage.prototype.flush to EOL (James M Snell) #31164
  • (SEMVER-MAJOR) lib : move GLOBAL and root aliases to EOL (James M Snell) #31167
  • (SEMVER-MAJOR) os : move tmpDir() to EOL (James M Snell) #31169
  • (SEMVER-MAJOR) src : remove deprecated wasm type check (Clemens Backes) #32116
  • (SEMVER-MAJOR) stream : move _writableState.buffer to EOL (James M Snell) #31165
  • (SEMVER-MINOR) doc : deprecate process.mainModule (Antoine du HAMEL) #32232
  • (SEMVER-MINOR) doc : deprecate process.umask() with no arguments (Colin Ihrig) #32499

ECMAScript Modules - Experimental Warning Removal

  • module : remove experimental modules warning (Guy Bedford) #31974

In Node.js 13 we removed the need to include the --experimental-modules flag, but when running EcmaScript Modules in Node.js, this would still result in a warning ExperimentalWarning: The ESM module loader is experimental.

As of Node.js 14 there is no longer this warning when using ESM in Node.js. However, the ESM implementation in Node.js remains experimental. As per our stability index: “The feature is not subject to Semantic Versioning rules. Non-backward compatible changes or removal may occur in any future release.” Users should be cautious when using the feature in production environments.

Please keep in mind that the implementation of ESM in Node.js differs from the developer experience you might be familiar with. Most transpilation workflows support features such as optional file extensions or JSON modules that the Node.js ESM implementation does not support. It is highly likely that modules from transpiled environments will require a certain degree of refactoring to work in Node.js. It is worth mentioning that many of our design decisions were made with two primary goals. Spec compliance and Web Compatibility. It is our belief that the current implementation offers a future proof model to authoring ESM modules that paves the path to Universal JavaScript. Please read more in our documentation.

The ESM implementation in Node.js is still experimental but we do believe that we are getting very close to being able to call ESM in Node.js “stable”. Removing the warning is a huge step in that direction.

New V8 ArrayBuffer API

  • src : migrate to new V8 ArrayBuffer API (Thang Tran) #30782

Multiple ArrayBuffers pointing to the same base address are no longer allowed by V8. This may impact native addons.

Toolchain and Compiler Upgrades

  • (SEMVER-MAJOR) build : update macos deployment target to 10.13 for 14.x (AshCripps) #32454
  • (SEMVER-MAJOR) doc : update cross compiler machine for Linux armv7 (Richard Lau) #32812
  • (SEMVER-MAJOR) doc : update Centos/RHEL releases use devtoolset-8 (Richard Lau) #32812
  • (SEMVER-MAJOR) doc : remove SmartOS from official binaries (Richard Lau) #32812
  • (SEMVER-MAJOR) win : block running on EOL Windows versions (João Reis) #31954

It is expected that there will be an ABI mismatch on ARM between the Node.js binary and native addons. Native addons are only broken if they interact with std::shared_ptr . This is expected to be fixed in a later version of Node.js 14. - #30786

Update to V8 8.1

  • (SEMVER-MAJOR) deps : update V8 to 8.1.307.20 (Matheus Marchini) #32116
    • Enables Optional Chaining by default ( MDN , v8.dev )
    • Enables Nullish Coalescing by default ( MDN , v8.dev )
    • Enables Intl.DisplayNames by default ( MDN , v8.dev )
    • Enables calendar and numberingSystem options for Intl.DateTimeFormat by default ( MDN )

Other Notable Changes:

  • cli, report : move --report-on-fatalerror to stable (Colin Ihrig) #32496
  • deps : upgrade to libuv 1.37.0 (Colin Ihrig) #32866
  • fs : add fs/promises alias module (Gus Caplan) #31553

Semver-Major Commits

  • [ 5360dd151d ] - (SEMVER-MAJOR) assert : handle (deep) equal(NaN, NaN) as being identical (Ruben Bridgewater) #30766

  • [ a621608f12 ] - (SEMVER-MAJOR) build : update macos deployment target to 10.13 for 14.x (AshCripps) #32454

  • [ e65bed1b7e ] - (SEMVER-MAJOR) child_process : create proper public API for channel (Anna Henningsen) #30165

  • [ 1b9a62cff4 ] - (SEMVER-MAJOR) crypto : make DH error messages consistent (Tobias Nießen) #31873

  • [ bffa5044c5 ] - (SEMVER-MAJOR) crypto : move pbkdf2 without digest to EOL (James M Snell) #31166

  • [ 10f5fa7513 ] - (SEMVER-MAJOR) crypto : forbid setting the PBKDF2 iter count to 0 (Tobias Nießen) #30578

  • [ 2883c855e0 ] - (SEMVER-MAJOR) deps : update V8 to 8.1.307.20 (Matheus Marchini) #32116

  • [ 1b2e2944bc ] - (SEMVER-MAJOR) dgram : don't hide implicit bind errors (Colin Ihrig) #31958

  • [ 1a1ce93317 ] - (SEMVER-MAJOR) doc : update cross compiler machine for Linux armv7 (Richard Lau) #32812

  • [ dad96e4fc1 ] - (SEMVER-MAJOR) doc : update Centos/RHEL releases use devtoolset-8 (Richard Lau) #32812

  • [ 5317202aa1 ] - (SEMVER-MAJOR) doc : remove SmartOS from official binaries (Richard Lau) #32812

  • [ 75ee5b2622 ] - (SEMVER-MAJOR) doc : deprecate process.umask() with no arguments (Colin Ihrig) #32499

  • [ afe353061b ] - (SEMVER-MAJOR) doc : fs.write is not longer coercing strings (Juan José Arboleda) #31030

  • [ a45c1aa39f ] - (SEMVER-MAJOR) doc : fix mode and flags being mistaken in fs (Ruben Bridgewater) #27044

  • [ 331d636240 ] - (SEMVER-MAJOR) errors : remove unused ERR_SOCKET_CANNOT_SEND error (Colin Ihrig) #31958

  • [ b8e41774d4 ] - (SEMVER-MAJOR) fs : add fs/promises alias module (Gus Caplan) #31553

  • [ fb6df3bfac ] - (SEMVER-MAJOR) fs : validate the input data to be of expected types (Ruben Bridgewater) #31030

  • [ 2d8febceef ] - (SEMVER-MAJOR) fs : deprecate closing FileHandle on garbage collection (James M Snell) #28396

  • [ 67e067eb06 ] - (SEMVER-MAJOR) fs : watch signals for recursive incompatibility (Eran Levin) #29947

  • [ f0d2df41f8 ] - (SEMVER-MAJOR) fs : change streams to always emit close by default (Robert Nagy) #31408

  • [ a13500f503 ] - (SEMVER-MAJOR) fs : improve mode and flags validation (Ruben Bridgewater) #27044

  • [ 535e9571f5 ] - (SEMVER-MAJOR) fs : make FSStatWatcher.start private (Lucas Holmquist) #29971

  • [ c1b2f6afbe ] - (SEMVER-MAJOR) http : detach socket from IncomingMessage on keep-alive (Robert Nagy) #32153

  • [ 173d044d09 ] - (SEMVER-MAJOR) http : align OutgoingMessage and ClientRequest destroy (Robert Nagy) #32148

  • [ d3715c76b5 ] - (SEMVER-MAJOR) http : move OutboundMessage.prototype.flush to EOL (James M Snell) #31164

  • [ c776a37791 ] - (SEMVER-MAJOR) http : end with data can cause write after end (Robert Nagy) #28666

  • [ ff2ed3ec85 ] - (SEMVER-MAJOR) http : remove unused hasItems() from freelist (Rich Trott) #30744

  • [ d247a8e1dc ] - (SEMVER-MAJOR) http : emit close on socket re-use (Robert Nagy) #28685

  • [ 6f0ec79e42 ] - (SEMVER-MAJOR) http,stream : make virtual methods throw an error (Luigi Pinca) #31912

  • [ ec0dd6fa1c ] - (SEMVER-MAJOR) lib : move GLOBAL and root aliases to EOL (James M Snell) #31167

  • [ d7452b7140 ] - (SEMVER-MAJOR) module : warn on using unfinished circular dependency (Anna Henningsen) #29935

  • [ eeccd52b4e ] - (SEMVER-MAJOR) net : make readable/writable start as true (Robert Nagy) #32272

  • [ ab4115f17c ] - (SEMVER-MAJOR) os : move tmpDir() to EOL (James M Snell) #31169

  • [ 8c18e91c8a ] - (SEMVER-MAJOR) process : remove undocumented now argument from emitWarning() (Rich Trott) #31643

  • [ 84c426cb60 ] - (SEMVER-MAJOR) repl : properly handle repl.repl (Ruben Bridgewater) #30981

  • [ 4f523c2c1a ] - (SEMVER-MAJOR) src : migrate to new V8 ArrayBuffer API (Thang Tran) #30782

  • [ c712fb7cd6 ] - (SEMVER-MAJOR) src : add abstract IsolatePlatformDelegate (Marcel Laverdet) #30324

  • [ 1428a92492 ] - (SEMVER-MAJOR) stream : make pipeline try to wait for 'close' (Robert Nagy) #32158

  • [ 388cef61e8 ] - (SEMVER-MAJOR) stream : align stream.Duplex with net.Socket (Robert Nagy) #32139

  • [ 7cafd5f3a9 ] - (SEMVER-MAJOR) stream : fix finished w/ 'close' before 'end' (Robert Nagy) #31545

  • [ 311e12b962 ] - (SEMVER-MAJOR) stream : fix multiple destroy calls (Robert Nagy) #29197

  • [ 1f209129c7 ] - (SEMVER-MAJOR) stream : throw invalid argument errors (Robert Nagy) #31831

  • [ d016b9d708 ] - (SEMVER-MAJOR) stream : finished callback for closed streams (Robert Nagy) #31509

  • [ e559842188 ] - (SEMVER-MAJOR) stream : make readable & writable computed (Robert Nagy) #31197

  • [ 907c07fa85 ] - (SEMVER-MAJOR) stream : move _writableState.buffer to EOL (James M Snell) #31165

  • [ 66f4e4edcb ] - (SEMVER-MAJOR) stream : do not emit 'end' after 'error' (Robert Nagy) #31182

  • [ 75b30c606c ] - (SEMVER-MAJOR) stream : emit 'error' asynchronously (Robert Nagy) #29744

  • [ 4bec6d13f9 ] - (SEMVER-MAJOR) stream : enable autoDestroy by default (Robert Nagy) #30623

  • [ 20d009d2fd ] - (SEMVER-MAJOR) stream : pipe should not swallow error (Robert Nagy) #30993

  • [ 67ed526ab0 ] - (SEMVER-MAJOR) stream : error state cleanup (Robert Nagy) #30851

  • [ e902fadc5e ] - (SEMVER-MAJOR) stream : do not throw multiple callback errors in writable (Robert Nagy) #30614

  • [ e13a37e49d ] - (SEMVER-MAJOR) stream : ensure finish is emitted in next tick (Robert Nagy) #30733

  • [ 9d09969f4c ] - (SEMVER-MAJOR) stream : always invoke end callback (Robert Nagy) #29747

  • [ 0f78dcc86d ] - (SEMVER-MAJOR) util : escape C1 control characters and switch to hex format (Ruben Bridgewater) #29826

  • [ cb8898c48f ] - (SEMVER-MAJOR) win : block running on EOL Windows versions (João Reis) #31954

  • [ a9401439c7 ] - (SEMVER-MAJOR) zlib : align with streams (Robert Nagy) #32220

Semver-Minor Commits

  • [ 63f0dd1ab9 ] - (SEMVER-MINOR) async_hooks : merge run and exit methods (Andrey Pechkurov) #31950
  • [ a683e87cd0 ] - (SEMVER-MINOR) async_hooks : prevent sync methods of async storage exiting outer context (Stephen Belanger) #31950
  • [ f571b294f5 ] - (SEMVER-MINOR) doc : deprecate process.mainModule (Antoine du HAMEL) #32232
  • [ e04f599258 ] - (SEMVER-MINOR) doc : add basic embedding example documentation (Anna Henningsen) #30467
  • [ e93503be83 ] - (SEMVER-MINOR) embedding : provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
  • [ a8cf886de7 ] - (SEMVER-MINOR) src : shutdown platform from FreePlatform() (Anna Henningsen) #30467
  • [ 0e576740dc ] - (SEMVER-MINOR) src : fix what a dispose without checking (Jichan) #30467
  • [ 887b6a143b ] - (SEMVER-MINOR) src : allow non-Node.js TracingControllers (Anna Henningsen) #30467
  • [ 7e0264d932 ] - (SEMVER-MINOR) src : add ability to look up platform based on Environment\* (Anna Henningsen) #30467
  • [ d7f11077f1 ] - (SEMVER-MINOR) src : make InitializeNodeWithArgs() official public API (Anna Henningsen) #30467
  • [ 821e21de8c ] - (SEMVER-MINOR) src : add unique_ptr equivalent of CreatePlatform (Anna Henningsen) #30467
  • [ 7dead8440c ] - (SEMVER-MINOR) src : add LoadEnvironment() variant taking a string (Anna Henningsen) #30467
  • [ c44edec4da ] - (SEMVER-MINOR) src : provide a variant of LoadEnvironment taking a callback (Anna Henningsen) #30467
  • [ a9fb51f9be ] - (SEMVER-MINOR) src : align worker and main thread code with embedder API (Anna Henningsen) #30467
  • [ 084c379648 ] - (SEMVER-MINOR) src : associate is_main_thread() with worker_context() (Anna Henningsen) #30467
  • [ 64c01222d9 ] - (SEMVER-MINOR) src : move worker_context from Environment to IsolateData (Anna Henningsen) #30467
  • [ 288382a4ce ] - (SEMVER-MINOR) src : fix memory leak in CreateEnvironment when bootstrap fails (Anna Henningsen) #30467
  • [ d7bc5816a5 ] - (SEMVER-MINOR) src : make FreeEnvironment() perform all necessary cleanup (Anna Henningsen) #30467
  • [ 43d32b073f ] - (SEMVER-MINOR) src,test : add full-featured embedder API test (Anna Henningsen) #30467
  • [ 2061c33670 ] - (SEMVER-MINOR) test : add extended embedder cctest (Anna Henningsen) #30467
  • [ 2561484dcb ] - (SEMVER-MINOR) test : re-enable cctest that was commented out (Anna Henningsen) #30467

Semver-Patch Commits

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

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

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

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

macOS 64-bit Installer: Coming soon

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

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

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

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

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

SmartOS 64-bit Binary: Coming soon

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

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

Source Code: Coming soon

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

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

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

9d6b1bf5df82fac15ca1df96155092d7463c300b82cae4c25e5e8a13227b7993  node-v14.0.0-aix-ppc64.tar.gz
4e50cec7aeef91c6d00d08a3bab938358da182984aa549c2aeab9868e3342f55  node-v14.0.0-darwin-x64.tar.gz
3e9986a8e5392dcf9f9ab0055fe472e24263067088d905da34917ba0c2877b35  node-v14.0.0-darwin-x64.tar.xz
3391dfc99db10c02540db8eabecb61794be8045587c3b4ce0aab40db810e8b61  node-v14.0.0-headers.tar.gz
f7d1a9c3912d50fb8151677b79668339e6f68caf2211badea1d4fda5653819fb  node-v14.0.0-headers.tar.xz
4da6fd45e7a26037c82f931f173695547f774b780986d545efc266a5a9b80906  node-v14.0.0-linux-arm64.tar.gz
29c612fcdb40133171959b269878138bbfe7723d46681f70e2017ee30134e7ad  node-v14.0.0-linux-arm64.tar.xz
e998790e8d992e32917482cd6ae658cdc04ada98e67495e1c8bd44b3112d742d  node-v14.0.0-linux-armv7l.tar.gz
d3dbf6d2003ea51ae01b636a92f67422fb2e7b508b7297042002a5a74089bbaf  node-v14.0.0-linux-armv7l.tar.xz
8baeb23c7cdbdb47387c243b6b5bac17443cbb58f6aa0a7913a0126f241c598b  node-v14.0.0-linux-ppc64le.tar.gz
095af83c5c5397d8b2f2f830a8057f447ff657c05687cfa523c25a6da01a9418  node-v14.0.0-linux-ppc64le.tar.xz
c460ca5f5bab96dae12c378cd569f0ced5102e5da2ed023aff0cc592b85828e1  node-v14.0.0-linux-s390x.tar.gz
e9a33652234ee657264de265ce90b71087ba80dd46e33e8bef632fcc29718810  node-v14.0.0-linux-s390x.tar.xz
0c3224a9e946e46793e81bced623bb7c0c06538aebea6383ca318a62ac1f49fd  node-v14.0.0-linux-x64.tar.gz
a2aaaa621074e1b56bb751bda53ce726319fac617587443371c0a7742481e5b6  node-v14.0.0-linux-x64.tar.xz
99bdbf39b1db0f300cbea54ca62fb48e100a594953b575467d4e54f18ebe1d40  node-v14.0.0.pkg
5ee2a8d3036a1652ec93bbd8b5812e0ae41e0450af729b14df4a27afc6f17cf8  node-v14.0.0.tar.gz
6e220129f1d3101695ce63af59f353bd915bafbd61fb954010c6e59cf550c764  node-v14.0.0.tar.xz
a325bbabadacb684c30e01156bc176252737059008fa0309f38037e373ad7ced  node-v14.0.0-win-x64.7z
e8f73d4f2e9935df929360c09ae932ceb316784a7450b256024af5d01fe29b75  node-v14.0.0-win-x64.zip
edab1900004fae29575a151e4953b296013f583b4aac22b6d758eeb595055e15  node-v14.0.0-win-x86.7z
62382dae915ecfc00b2345511ce50cb6ef96eced191123b019fe552f2c640cd6  node-v14.0.0-win-x86.zip
1e90cb6aa0de5516db594f094109acae208919a39ff66d5dcde3549545c03d78  node-v14.0.0-x64.msi
2ad4bd3d4e12c56e3cdee9f04bde50e5d5c0c02359955f88a17531e4cff7cf04  node-v14.0.0-x86.msi
b388738c1619e11d8f028fe38e30018d8a00d7d1ff85c9831b00300e6fdbc930  win-x64/node.exe
365b8e1dce6884d8866110d257451db1c87e3c006cfa5c2d21ad6082baf9af09  win-x64/node.lib
579161e5a16f87ee8cf1850425824f0b477b5860e130fd989c30db8f4722e0c9  win-x64/node_pdb.7z
e20746d9805d2221bfae05d105d4984e6e2c3ac229cd849c4d3d1a74f6376624  win-x64/node_pdb.zip
9976ff8d2b2d18a815eaa2e9286e34b4da50617c9643f3daf8b865f948d402ea  win-x86/node.exe
15556719f4f35c0942368d8710878cfb8794b5aec4c389bc4a5d6d30eb0199fa  win-x86/node.lib
51ddcf4d61c948705393236ee9911a7cc63c0511230190aa1bcdb99eb087ec13  win-x86/node_pdb.7z
1cd961948281c62add40665dd0054e15ae138cc8f8cd69f51fc397e00e2b241f  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAl6fCfYACgkQ1wYoSKGr
AFybzwgAnpJsb/9X5q/snNyU+YjqwuBErsjAcCzLH03PTeX5H4igpe06zWedb+4H
0anxdkEl6cHCb+VdCNfeOKKYQoY4UIWQDQyZ+CgSPr/9qBlK8YONLAZFOAJcnpR+
ywpvE1SDLeBXsEoFF6sTD+MyfXz9LeIMVBrYUPibUj4SzB7H6istjx34pza54bbt
GdwHdjT5TbaGwJYBxMCD/w41DjdLJ6O+eI/Kc1CcJTN1QiKc6L/aH4KrSyj/mSVd
24t20X9J6VVjn8Axl9k2MD7HUIHesOGkNqN7FJ7fRS8KjNGrhh+BwI2Q4z6JZtLk
mgiEtXL7Mz4aq+U6+Y3z8lR3Jcwrzw==
=glXd
-----END PGP SIGNATURE-----

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK