install-node: Upgrade Node.js to 18.14.0; manage Yarn with Corepack.

Corepack manages multiple per-project version of Yarn and PNPM, which
means we have to maintain less installation code, and could help us
switch away from Yarn 1 without making the system unusable for
development of other Yarn 1 projects.

https://nodejs.org/api/corepack.html

The Unicode spaces in the timerender test resulted from an ICU
upgrade: https://github.com/nodejs/node/pull/45068.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2023-02-08 16:13:42 -08:00
committed by Tim Abbott
parent 70ac144d57
commit ec58b6790d
13 changed files with 29 additions and 59 deletions

View File

@@ -250,16 +250,15 @@ reasoning here.
## Node.js and Yarn
Node.js is installed by `scripts/lib/install-node` to
`/srv/zulip-node` and symlinked to `/usr/local/bin/node`. Yarn is
installed by `scripts/lib/install-yarn` to `/srv/zulip-yarn` and
symlinked to `/usr/bin/yarn`.
`/srv/zulip-node` and symlinked to `/usr/local/bin/node`. A Yarn
symlink at `/usr/local/bin/yarn` is managed by
[Corepack](https://nodejs.org/api/corepack.html).
We don't do anything special to try to manage multiple versions of
Node.js or Yarn. (Previous versions of Zulip installed multiple
versions of Node.js using the third-party `nvm` installer, but the
current version no longer uses `nvm`; if its present in
`/usr/local/nvm` where previous versions installed it, it will now be
removed.)
Node.js. (Previous versions of Zulip installed multiple versions of
Node.js using the third-party `nvm` installer, but the current version
no longer uses `nvm`; if its present in `/usr/local/nvm` where
previous versions installed it, it will now be removed.)
## ShellCheck and shfmt