'yarn command not found after installing via npm
As per the yarn installation for yarn v2, they want you to install using npm install -g yarn
. So I ran sudo npm install -g yarn
on Ubuntu 20.04. But after I do that, it says command not found.
❯ sudo npm install -g yarn
> [email protected] preinstall /usr/local/lib/node_modules/yarn
> :; (node ./preinstall.js > /dev/null 2>&1 || true)
❯ yarn --version
zsh: command not found: yarn
Solution 1:[1]
sudo npm install -g npm
then
sudo npm install -g yarn
Then reboot your system. That did it for me. Before a reboot only sudo yarn worked. I tried looking at file permissions but everything seemed in order and the files were executable as expected. Nevertheless after a reboot it worked.
If you go to /usr/local/bin after the installation there's a link there to where yarn.js lives, as expected, and file permissions for it were also correct.
/usr/local/bin is added to $PATH, so it's surprising that it doesn't see the new cmd right away, but perhaps it didn't reload or map it until after the reboot? I don't know. But I just spent a good hour trying to figure this out so I'm posting what worked for me to spare other the hassle.
Solution 2:[2]
TL;DR
If you are managing node via nvm
, then probably the path to yarn binary is not included in the $PATH
variable. You should add this -
# Add this at the end (or after the $NVM_DIR initialization)
# in your profile - .bashrc | .zshrc | .profile, etc
export PATH="`yarn global bin`:$PATH"
at the end of your profile file (.zshrc
for me) or at least after the $NVM_DIR
initialization.
I have recently faced this issue and while searching for a solution, I landed up here.
Here is what my environment looks like:
- OS: Ubuntu 20.04
- Shell:
zsh
- NodeJS: managing it via
nvm
, and NOTapt
.
After going through all the answers, I was not keen on uninstalling anything. So I tried to dig a bit deeper.
I installed yarn
via npm install -g yarn
command. So the first thing I wanted to verify was the location of the yarn
binary. To do this, I ran the command where yarn
which lists the installation path for the yarn
binary.
$ where yarn
/home/<user_name>/.nvm/versions/node/v16.11.1/bin/yarn
Then it hit me. In my .zshrc
file, I had added the yarn global bin
command (which spills out the directory of all the global packages installed by yarn) at the top like so:
# Top of my .zshrc file
export PATH="`yarn global bin`:$HOME/bin:/usr/local/bin:$PATH"
and as per the installation instruction of nvm
, the $NVM_DIR
(the variable which holds the nvm
directory path) was added at the end of my .zshrc
file.
So when I was starting up my shell, it was actually trying to load the yarn
command (present inside the nvm
directory) even before loading the $NVM_DIR
path.
To solve this, I tweaked my .zshrc
file and moved the yarn global bin
command after the $NVM_DIR
like this:
# Top of my .zshrc file
export PATH="$HOME/bin:/usr/local/bin:$PATH"
# ...
#
# Something in between
#
# ...
# Bottom of my .zshrc file
export NVM_DIR="${HOME}/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# Here is where I have added the path to yarn global
export PATH="`yarn global bin`:$$PATH"
I hope that this would be of help.
Solution 3:[3]
If you want to avoid reboot, use
/usr/local/lib/node_modules/yarn/bin/yarn --version
Solution 4:[4]
Uninstall cmdtest
:
sudo apt remove cmdtest
Then, run these commands:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn
Solution 5:[5]
The yarn documentation is missing a step, you need to restart your computer between this installation and running yarn --version
.
This worked for me
Solution 6:[6]
I recently had a similar situation and here is how I solved it.
First I troubleshoot the current npm installation:
npm config -list
I had a ~/.npmrc
file that had a different prefix:
PREFIX=/opt/homebrew
That made my npm installation look for globally installed packages under /opt/homebrew
.
In my case, I'm using a different npm installation (not with homebrew anymore). A simple fix is to remove this custom PREFIX
from the ~/.npmrc
file and the problem was solved.
Now npm looks for globally installed packages under /usr/local/bin/
.
Solution 7:[7]
This solved it for me:
corepack enable
(if you get "Internal Error: EACCES: permission denied", run it with sudo)
This is also recommended by the Yarn documentation: https://yarnpkg.com/getting-started/install
Solution 8:[8]
I installed yarn
with npm install -g yarn
on git bash and I tested it with yarn -v
that show the version of the installed yarn, but when I used yarn start
it gives me this error
C:\Users\{username}\AppData\Roaming\npm/node_modules/node/bin/node: line 1: This: command not found
These are simple steps that I used to fix my problem on Windows 10:
- Uninstall node.js
- Restart your computer
- Delete your
C:\Program Files\nodejs
andC:\Users\{username}\AppData\Roaming\npm
- Install node.js again and check it with
node -v
- Start your vs code as an admin and write
npm install
- Write
yarn start
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Anindya Dey |
Solution 3 | DevN |
Solution 4 | |
Solution 5 | NSA_Intern |
Solution 6 | Bassem |
Solution 7 | Seban |
Solution 8 | Rahul Rahatal |