54 lines
1.3 KiB
Markdown
54 lines
1.3 KiB
Markdown
# How to install NPM on Ubuntu 18.04
|
|
|
|
The default `nodejs` package on Ubuntu installs an ancient version of Node/NPM
|
|
that often doesn't work properly with contemporary code.
|
|
|
|
As of the time of writing (October 12, 2022), Ubuntu's repository contains Node
|
|
8.10.0, which is 6 years out of date.
|
|
|
|
To install the latest version of Node (currently: 18.10.0)
|
|
|
|
```
|
|
sudo snap refresh
|
|
sudo snap install node --channel 18/stable
|
|
```
|
|
|
|
You can use `snap info node` to get more information about the latest available
|
|
versions.
|
|
|
|
You can use `node --version` to verify you are running the most recent version
|
|
of Node.
|
|
|
|
```
|
|
$ node --version
|
|
v18.10.0
|
|
```
|
|
|
|
|
|
# How to install packages from NPM on unix without using `sudo`
|
|
|
|
To install an executable package from NPM (such as the TypeScript compiler),
|
|
you use `npm install -g PACKAGE`. By default, this attempts to install
|
|
`PACKAGE` in a privileged directory, thus requiring `sudo` to execute
|
|
successfully.
|
|
|
|
In order to avoid running NPM as root, do the following:
|
|
|
|
```
|
|
mkdir ~/.npm-packages
|
|
npm config set prefix "${HOME}/.npm-packages"
|
|
```
|
|
|
|
Edit `~/.bashrc` or `~/.zshrc` with
|
|
|
|
```
|
|
NPM_PACKAGES="${HOME}/.npm-packages"
|
|
export PATH=$NPM_PACKAGES/bin:$PATH
|
|
```
|
|
|
|
Now, `npm install -g` will install to `~/.npm-packages`
|
|
|
|
```
|
|
npm install -g typescript
|
|
```
|