$ npm --version
7.0.3
$ npm root -g
/usr/local/lib/node_module
$ npm i -g npm@latest
removed 51 packages, and changed 197 packages in 4s
2 packages are looking for funding
run `npm fund` for details
$ npm -v
6.14.8
$ npm root -g
/usr/local/Cellar/node/15.0.1/lib/node_modules
$ npm i -g npm@7.0.3
/usr/local/Cellar/node/15.0.1/bin/npm -> /usr/local/Cellar/node/15.0.1/lib/node_modules/npm/bin/npm-cli.js
/usr/local/Cellar/node/15.0.1/bin/npx -> /usr/local/Cellar/node/15.0.1/lib/node_modules/npm/bin/npx-cli.js
+ npm@7.0.3
updated 248 packages in 6.481s
$ npm -v
6.14.8
$ npm root -g
/usr/local/Cellar/node/15.0.1/lib/node_modules
$ npm config -g ls -l | grep prefix
; prefix = "/usr/local/Cellar/node/15.0.1" ; overridden by builtin
save-prefix = "^"
tag-version-prefix = "v"
prefix = "/usr/local"
$ npm i -g npm@7.0.5
changed 1 package in 6s
10 packages are looking for funding
run `npm fund` for details
$ npm config -g ls -l | grep prefix
prefix = "/usr/local/Cellar/node/15.0.1"
save-prefix = "^"
tag-version-prefix = "v"
$ npm -v
7.0.5
$ npm ls -g
/usr/local/Cellar/node/15.0.1/lib
└── (empty)
$ npm config -g set prefix '/usr/local'
$ npm ls -g
/usr/local/lib
├── -@0.0.1
├── commitizen@4.2.1
├── diff-so-fancy@1.3.0
├── ...
╭─────────────────────────────────────────────────────────────────╮
│ │
│ New patch version of npm available! 6.14.8 → 6.14.10 │
│ Changelog: https://github.com/npm/cli/releases/tag/v6.14.10 │
│ Run npm install -g npm to update! │
│ │
╰─────────────────────────────────────────────────────────────────╯
$ npm i -g npm
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
+ npm@6.14.10
added 435 packages from 887 contributors in 4.481s
$ which node
/usr/local/opt/node@12/bin/node
$ sudo chown -R $(whoami) $(brew --prefix)/*
$ brew link --overwrite node@12
Linking /usr/local/Cellar/node@12/12.20.0... 3808 symlinks created
If you need to have this software first in your PATH instead consider running:
echo 'export PATH="/usr/local/opt/node@12/bin:$PATH"' >> /Users/marslo/.bash_profile
$ brew info node@12
==> node@12: stable 12.22.12 (bottled) [pinned at 12.22.12_1, keg-only]
Platform built on V8 to build network applications
https://nodejs.org/
Disabled because it is not supported upstream!
/usr/local/Cellar/node@12/12.22.12_1 (3,875 files, 51.6MB) *
Poured from bottle on 2022-09-21 at 05:19:58
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/node@12.rb
License: MIT
==> Dependencies
Build: pkg-config ✔, python@3.9 ✔
Required: brotli ✔, c-ares ✔, icu4c ✔, libnghttp2 ✔, libuv ✔, openssl@1.1 ✔, macos-term-size ✔
==> Caveats
node@12 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have node@12 first in your PATH, run:
echo 'export PATH="/usr/local/opt/node@12/bin:$PATH"' >> /Users/marslo/.bash_profile
For compilers to find node@12 you may need to set:
export LDFLAGS="-L/usr/local/opt/node@12/lib"
export CPPFLAGS="-I/usr/local/opt/node@12/include"
$ brew info node
==> node: stable 20.8.0 (bottled), HEAD
Platform built on V8 to build network applications
https://nodejs.org/
/usr/local/Cellar/node/20.5.1 (2,356 files, 58MB)
Poured from bottle using the formulae.brew.sh API on 2023-08-14 at 23:26:23
/usr/local/Cellar/node/20.6.0 (2,398 files, 58.4MB)
Poured from bottle using the formulae.brew.sh API on 2023-09-06 at 22:37:08
/usr/local/Cellar/node/20.7.0 (2,517 files, 59.3MB)
Poured from bottle using the formulae.brew.sh API on 2023-09-21 at 23:31:27
/usr/local/Cellar/node/20.8.0 (2,517 files, 59.2MB)
Poured from bottle using the formulae.brew.sh API on 2023-10-05 at 13:31:50
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/node.rb
License: MIT
==> Dependencies
Build: pkg-config ✔, python@3.11 ✔
Required: brotli ✔, c-ares ✔, icu4c ✔, libnghttp2 ✔, libuv ✔, openssl@3 ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Analytics
install: 236,495 (30 days), 613,011 (90 days), 1,316,363 (365 days)
install-on-request: 202,391 (30 days), 538,160 (90 days), 1,166,207 (365 days)
build-error: 360 (30 days)
$ node --version
dyld[73388]: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.73.dylib
Referenced from: <EC40B82A-EB42-3D50-9D84-18BC05643BD3> /usr/local/Cellar/node/21.1.0/bin/node
Reason: tried: '/usr/local/opt/icu4c/lib/libicui18n.73.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/icu4c/lib/libicui18n.73.dylib' (no such file), '/usr/local/opt/icu4c/lib/libicui18n.73.dylib' (no such file), '/usr/local/Cellar/icu4c/74.2/lib/libicui18n.73.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/icu4c/74.2/lib/libicui18n.73.dylib' (no such file), '/usr/local/Cellar/icu4c/74.2/lib/libicui18n.73.dylib' (no such file)
Abort trap: 6
$ which -a node
/usr/local/Cellar/node/21.1.0/bin/node
/usr/local/bin/node
$ otool -L $(which node) | grep icu4c
/usr/local/opt/icu4c/lib/libicui18n.73.dylib (compatibility version 73.0.0, current version 73.2.0)
/usr/local/opt/icu4c/lib/libicuuc.73.dylib (compatibility version 73.0.0, current version 73.2.0)
/usr/local/opt/icu4c/lib/libicudata.73.dylib (compatibility version 73.0.0, current version 73.2.0)
/usr/local/opt/icu4c/lib/libicui18n.71.dylib (compatibility version 71.0.0, current version 71.1.0)
/usr/local/opt/icu4c/lib/libicuuc.71.dylib (compatibility version 71.0.0, current version 71.1.0)
/usr/local/opt/icu4c/lib/libicudata.71.dylib (compatibility version 71.0.0, current version 71.1.0)
$ otool -L $(which node)
/usr/local/Cellar/node/21.1.0/bin/node:
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.12)
/usr/local/opt/libuv/lib/libuv.1.dylib (compatibility version 2.0.0, current version 2.0.0)
/usr/local/opt/brotli/lib/libbrotlidec.1.dylib (compatibility version 1.0.0, current version 1.1.0)
/usr/local/opt/brotli/lib/libbrotlienc.1.dylib (compatibility version 1.0.0, current version 1.1.0)
/usr/local/opt/c-ares/lib/libcares.2.dylib (compatibility version 2.0.0, current version 2.7.1)
/usr/local/opt/libnghttp2/lib/libnghttp2.14.dylib (compatibility version 40.0.0, current version 40.0.0)
/usr/local/opt/openssl@3/lib/libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/opt/openssl@3/lib/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/local/opt/icu4c/lib/libicui18n.73.dylib (compatibility version 73.0.0, current version 73.2.0)
/usr/local/opt/icu4c/lib/libicuuc.73.dylib (compatibility version 73.0.0, current version 73.2.0)
/usr/local/opt/icu4c/lib/libicudata.73.dylib (compatibility version 73.0.0, current version 73.2.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 2048.1.255)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1600.151.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.0.0)
/usr/local/bin/node:
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/usr/local/opt/brotli/lib/libbrotlidec.1.dylib (compatibility version 1.0.0, current version 1.0.9)
/usr/local/opt/brotli/lib/libbrotlienc.1.dylib (compatibility version 1.0.0, current version 1.0.9)
/usr/local/opt/c-ares/lib/libcares.2.dylib (compatibility version 2.0.0, current version 2.5.1)
/usr/local/opt/libnghttp2/lib/libnghttp2.14.dylib (compatibility version 38.0.0, current version 38.0.0)
/usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
/usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
/usr/local/opt/icu4c/lib/libicui18n.71.dylib (compatibility version 71.0.0, current version 71.1.0)
/usr/local/opt/icu4c/lib/libicuuc.71.dylib (compatibility version 71.0.0, current version 71.1.0)
/usr/local/opt/icu4c/lib/libicudata.71.dylib (compatibility version 71.0.0, current version 71.1.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1858.112.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.23.0)
$ showpath
...
/usr/local/Cellar/node/21.1.0/bin
..
# issue fix
$ NODE_HOME=$(brew --prefix node)
$ export PATH=$NODE_HOME:$PATH
# verify
$ node --version
v21.6.2
$ otool -L $(which node) | grep icu4c
/usr/local/opt/icu4c/lib/libicui18n.74.dylib (compatibility version 74.0.0, current version 74.2.0)
/usr/local/opt/icu4c/lib/libicuuc.74.dylib (compatibility version 74.0.0, current version 74.2.0)
/usr/local/opt/icu4c/lib/libicudata.74.dylib (compatibility version 74.0.0, current version 74.2.0)