Notable changes

Updated npm to 9.3.1

Based on the list of guidelines we’ve established on integrating

1
npm

and

1
node

,
here is a grouped list of the breaking changes with the reasoning as to why they
fit within the guidelines linked above. Note that all the breaking changes were
made in 9.0.0.
All subsequent minor and patch releases after

1
npm@9.0.0

do not contain any
breaking changes.

Engines

Explanation: the node engines supported by

1
npm@9

make it safe to allow

1
npm@9

as the default in any LTS version of

1
14

or

1
16

, as well as anything later than or including

1
18.0.0

  • 1
    npm

    is now compatible with the following semver range for node:

    1
    ^14.17.0 || ^16.13.0 || >=18.0.0
Filesystem

Explanation: when run as root previous versions of npm attempted to manage file ownership automatically on the user’s behalf. this behavior was problematic in many cases and has been removed in favor of allowing users to manage their own filesystem permissions

  • 1
    npm

    will no longer attempt to modify ownership of files it creates.

Auth

Explanation: any errors thrown from users having unsupported auth configurations will show

1
npm config fix

in the remediation instructions, which will allow the user to automatically have their auth config fixed.

  • The presence of auth related settings that are not scoped to a specific
    registry found in a config file is no longer supported and will throw errors.
Login

Explanation: the default

1
auth-type

has changed and users can opt back into the old behavior with

1
npm config set auth-type=legacy

.

1
login

and

1
adduser

have also been seperated making each command more closely match it’s name instead of being aliases for each other.

  • Legacy auth types
    1
    sso

    ,

    1
    saml

    &

    1
    legacy

    have been consolidated into

    1
    "legacy"

    .

  • 1
    auth-type

    defaults to

    1
    "web"
  • 1
    login

    and

    1
    adduser

    are now separate commands that send different data to the registry.

  • 1
    auth-type

    config values

    1
    web

    and

    1
    legacy

    only try their respective methods,
    npm no longer tries them all and waits to see which one doesn’t fail.

Tarball Packing

Explanation: previously using multiple ignore/allow lists when packing was an undefined behavior, and now the order of operations is strictly defined when packing a tarball making it easier to follow and should only affect users relying on the previously undefined behavior.

  • 1
    npm pack

    now follows a strict order of operations when applying ignore rules.
    If a

    1
    files

    array is present in the

    1
    package.json

    , then rules in

    1
    .gitignore

    and

    1
    .npmignore

    files from the root will be ignored.

Display/Debug/Timing Info

Explanation: these changes center around the display of information to the terminal including timing and debug log info. We do not anticipate these changes breaking any existing workflows.

  • Links generated from git urls will now use
    1
    HEAD

    instead of

    1
    master

    as the default ref.

  • 1
    timing

    has been removed as a value for

    1
    --loglevel

    .

  • 1
    --timing

    will show timing information regardless of

    1
    --loglevel

    , except when

    1
    --silent

    .

  • When run with the
    1
    --timing

    flag,

    1
    npm

    now writes timing data to a file
    alongside the debug log data, respecting the

    1
    logs-dir

    option and falling
    back to

    1
    <CACHE>/_logs/

    dir, instead of directly inside the cache directory.

  • The timing file data is no longer newline delimited JSON, and instead each run
    will create a uniquely named

    1
    <ID>-timing.json

    file, with the

    1
    <ID>

    portion
    being the same as the debug log.

  • 1
    npm

    now outputs some json errors on stdout. Previously

    1
    npm

    would output
    all json formatted errors on stderr, making it difficult to parse as the
    stderr stream usually has logs already written to it.

Config/Command Deprecations or Removals

Explanation:

1
install-links

is the only config or command in the list that has an effect on package installs. We fixed a number of issues that came up during prereleases with this change. It will also only be applied to new package trees created without a package-lock.json file. Any install with an existing lock file will not be changed.

  • Deprecate boolean install flags in favor of
    1
    --install-strategy

    .

  • 1
    npm config set

    will no longer accept deprecated or invalid config options.

  • 1
    install-links

    config defaults to

    1
    "true"

    .

  • 1
    node-version

    config has been removed.

  • 1
    npm-version

    config has been removed.

  • 1
    npm access

    subcommands have been renamed.

  • 1
    npm birthday

    has been removed.

  • 1
    npm set-script

    has been removed.

  • 1
    npm bin

    has been removed (use

    1
    npx

    or

    1
    npm exec

    to execute binaries).

Other notable changes

  • doc:

    • add parallelism note to os.cpus() (Colin Ihrig) #45895
  • http:

    • join authorization headers (Marco Ippolito) #45982
    • improved timeout defaults handling (Paolo Insogna) #45778
  • stream:

    • implement finished() for ReadableStream and WritableStream (Debadree Chatterjee) #46205

Commits

Windows 32-bit Installer: https://nodejs.org/dist/v18.14.0/node-v18.14.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v18.14.0/node-v18.14.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v18.14.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v18.14.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v18.14.0/node-v18.14.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v18.14.0/node-v18.14.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v18.14.0/node-v18.14.0.tar.gz
Other release files: https://nodejs.org/dist/v18.14.0/
Documentation: https://nodejs.org/docs/v18.14.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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

bc9302e8ad5f835caf359ec727127bb8232c633f62ba60ec22f581a570c8816d  node-v18.14.0-aix-ppc64.tar.gz
514438c258ee87e3083c21359f6d5e84988946db8a5ed5fa8bb0485276ea99f0  node-v18.14.0-darwin-arm64.tar.gz
d6bc589395ffd24c9e7cca3a1fb7a2764f8261e8f8817b5c8e44ea762302d8ae  node-v18.14.0-darwin-arm64.tar.xz
274a62f2f1c21e6216a9be1445c53ef63814db4a3ffeea8028b507fb6453c0ac  node-v18.14.0-darwin-x64.tar.gz
2ee2de15a11d4db7bb6a127d2d5428df52d35af25ccbd674679777454e6d0902  node-v18.14.0-darwin-x64.tar.xz
04978e8ac20452e55773ecf8e0eb0215793477ecac6c7c9b20afd75f8cacc3be  node-v18.14.0-headers.tar.gz
f69f182eecdb289cae73958ddcb05e95e23a49a1ae6a7a9e53d96ab01f240cbc  node-v18.14.0-headers.tar.xz
29b38346f6b01e14a7582adf0132fae83410a8da21cdba936357010a065290a6  node-v18.14.0-linux-arm64.tar.gz
30ef375f0b8006759c0e08bee9d4b74915b95abfa924006c289d2d474a8b152e  node-v18.14.0-linux-arm64.tar.xz
3f70e965a387fc4c1dc2697ea5db0ac35bbc94f6f4767242e3986536ac66cd14  node-v18.14.0-linux-armv7l.tar.gz
d0a9f377507b070b47437c2b6229a564b94aed518fb367106c0e1861bb992770  node-v18.14.0-linux-armv7l.tar.xz
9218cc9001aced06d8f0017a151663277aa641f1420a966631c3f49633638cde  node-v18.14.0-linux-ppc64le.tar.gz
068a3b6852ddc1bdf09314501549e3b434599df13dd69cd5ed54d2521e787f2c  node-v18.14.0-linux-ppc64le.tar.xz
1e7b3e203c82680d2740a7cf780efc81fb8ea356a24bf4608273a50188f1eb8e  node-v18.14.0-linux-s390x.tar.gz
b413b6f207de43827d9fa33c9abc9e01f5f43c176777d65337da0d1e7d5333c6  node-v18.14.0-linux-s390x.tar.xz
bcdfd28bb7ab9a53c7045e0862556f77c250580c6d3d6cb960843895e024cac6  node-v18.14.0-linux-x64.tar.gz
1ccec74b6240fce8754813e31fdbc93ad520df2e814729cea29efe9075e48350  node-v18.14.0-linux-x64.tar.xz
732f9d65476d48c14574ce20e7c32083d56fe1fb794d7b862fee2af6b008f7e2  node-v18.14.0.pkg
4a13d9561ecc8d3c998ef952ab173396f84357572bd6ff1100012e4a10604c6b  node-v18.14.0.tar.gz
42ef9dd31993d5c8e82b0ab0969135093e6a296efa27b1be9afc04ac00f0267a  node-v18.14.0.tar.xz
0ead0ec8c5a1d605722bd03f77ab4f4d4f2e7390b55fac44c89e4920d7f13793  node-v18.14.0-win-x64.7z
2e8f00da72f6bd993e3b980ff844b948baf936e1e67e3694a7a3e5f6f7c9beb4  node-v18.14.0-win-x64.zip
272bac8871d2879f4b75ae8198898d65683f835fd3277be01e79fa1f14da4b3b  node-v18.14.0-win-x86.7z
48b16e8917c334b2373b88113b609302bc3a43dda3bbca1ea00d9f0ebf8e6ea9  node-v18.14.0-win-x86.zip
944eff6104be19d1dc24f3940ab365aa972c47ee2a6b7cfee49dd436e748bd99  node-v18.14.0-x64.msi
745c33832b86aada7cd3efc6d9f99bc8f86a7c7006e3cb230f661d9461b1028c  node-v18.14.0-x86.msi
9e0d584e98f982f51e44f05340d927b982480bf76e61de87c3988256a6780e4b  win-x64/node.exe
28973fbe8ae770a132b4851b0166ec9ba435595f786bb05fc47c3611fefb1cf2  win-x64/node.lib
48525aeb8132b3dde13d772b821549978c99a96465ee48baeeadd4540fafdacb  win-x64/node_pdb.7z
dce86cf5b83c6bf54261e1e0c30a141d7b45ed79fe706f77cc7a0b6747631322  win-x64/node_pdb.zip
92ccedd38375e8a8fb9f1028666038a7cc8f20918539d39199641b505bf8c08c  win-x86/node.exe
a10d89fbd502902abaf307fe73b604a4733d403ac5c577e536607c1f3b16ac14  win-x86/node.lib
ea9ee369f8db18e5ef70c70ff84a65f3809c7bd6c648f6f0b4c6a12e70dd2627  win-x86/node_pdb.7z
86d3ea50b7839e477b091e7d90d4e348d62685ee398c3a884859483ec63662ec  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAmPcDTEACgkQ1wYoSKGr
AFyqkQgAytlGlw1aO1g9oy0he5XB8JrHwTax7qmvjPVQNzU93D5s1VwoCYZARGws
oTeY0P+v07OvVQ9xEa0AZleOJ6rJHqOuSRMYKQH246GLR9SDBPtI7isLUBQYmT71
bS7w5dIecmBlbiP8uy/gEztv/Wjeqfco7JB2J8fiANJipHTnuiEXCTjQZQO9j6MM
bL8PyVADluCla4oUpTIObYh0wh1aXJ4DWWsmKQT9fKpwRLJeaszHZTHgdlVE2iWo
JIso+oCunjLY/wrw5DeOK1zWSucTIoctUb3fLqzR2oU+28wWl8PIKhFl3flVfGyc
MTEKH+PKSXGQIz85sbsZ1eFURYpmEQ==
=prOf
-----END PGP SIGNATURE-----
Categories: NewsReleases

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *