Keystone: Command 'yo' does not exist


I’m trying to install Keystone.js which as a pre-requisite, requires installation of both Node and MongoDB, so I followed the following posts to do so:

This has installed a ‘stable’ version of NodeJS on my server. However, when I then install keystone with the following commands:

npm install -g generator-keystone

and create a directory:

mkdir test-directory
cd test-directory

I’m required to run the generator

yo keystone

which returns:

yo: command not found

Searching around, it’s cleary that perhaps my PATH wasn’t exported:

export PATH="$PATH":~/.node/bin

but that doesn’t fix the issue. So I decided to follow the advice of the last post here instead, which uninstalls grunt and yo, and reinstalls yo:

But after uninstalling both packages, I’m now faced with this error upon reinstalling just yo:

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read

How do I resolve this?

For reference, the Keystone documentation is here for installation -

It is probably related to a shift in commands from one version of node to the other, so perhaps I should be installing a specific version of node instead?

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hey there, If you installed node.js with sudo apt-get install nodejs on Ubuntu, you will have the binary named nodejs and not node which may be the reason for your error message. If this is your issue, you could install node via the PPA here.

To test if node is installed and in your path, you can run node -v and you should get a version number returned, for example:

sammy@ubuntu $ node -v

After you have resolved the node “command not found” issue, you should be able to install yeoman system-wide:

sudo npm install -g yo

You can then check your yo installation:

sammy@ubuntu $ yo --version