how to update npm on macOS - macos

For reasons unknown to me, I haven't been able to update to the latest version of npm on macOS (it works fine on Windows). It displays no error, only 'updated 1 package'.
Using Node.js 8.11.1
node -v
v8.11.1
What version of npm do I have?
$ npm -v
5.6.0
I tried this...
$ npm i -g npm
+ npm#5.8.0
updated 1 package in 7.37s
And it fails to update.
$ npm -v
5.6.0
Where is npm?
$ which npm
/usr/local/bin/npm
So I try brew...
brew install npm
And it fails...
$ npm -v
5.6.0
*And then I tried this... *
npm install npm#latest -g
+ npm#5.8.0
updated 1 package in 7.618s
And it fails...
npm -v
5.6.0
With sudo:
sudo npm i -g npm
+ npm#5.8.0
updated 1 package in 7.794s
And it fails...
npm -v
5.6.0
This also fails...
sudo npm install npm#latest -g
I followed the directions found on this Q&A, completely removing npm and node from my system and reinstalling them from scratch, and it also fails to update.
Screenshot, per request:
Close the terminal, and then re-open the terminal and running:
$ npm -v
5.6.0
sudo twice:
$ sudo npm i -g npm
+ npm#5.8.0
updated 1 package in 7.478s
$ sudo npm i -g npm
+ npm#5.8.0
updated 1 package in 7.434s
Also fails:
$ npm -v
5.6.0
What did I miss? What's going on here?

This works on my mac.
Based on docs https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm :
npm install -g npm#latest
There is a note stated on the docs that depends on your installation method, you might addd some sudo.
Upgrading on *nix (OSX, Linux, etc.)
(You may need to prefix these commands with sudo, especially on Linux,
or OS X if you installed Node using its default installer.)

npm install -g npm#latest
works fine!!
and you can also replace the latest for specific versions
like
npm install -g npm#5.6.0
I hope it will help!!!

Perhaps you have already solved this, but here is what I found when I had exactly this issue. I had 2 versions of npm installed.
I verified this as follows:
grep \"version\" ~/.npm-packages/lib/node_modules/npm/package.json
"version": "6.2.0"
grep \"version\" /usr/local/lib/node_modules/npm/package.json
"version": "5.6.0",
I worked around the issue by updating the path in my bash profile, but would like to know why (how) I ended up with 2 versions. Here is the update:
tail -2 ~/.bash_profile
NPM_PACKAGES="${HOME}/.npm-packages"
PATH="$NPM_PACKAGES/bin:$PATH"

In my case, none of the previous answers worked. For me, a working solution was a simple, five-step process.
Make sure (the old version of) npm is installed.
npm -v
If npm is not installed, then install it on the Mac with Node.js.
Globally installed the desired version of npm.
npm install -g npm#latest
This command uses the old version of npm (installed by Node), to globally install the latest version of npm at ~/.npm-global/. Once installed, close and open a new terminal shell.
Remove the old version of npm installed by Node
rm -r /usr/local/lib/node_modules/npm/
Sometimes this doesn't work, so I had to go into finder to delete the /npm/ folder.
Make sure to set the correct path variable.
echo $PATH
If ~/.npm-global/bin does not show up between the colons, then update the path variable. Open up ~/.zshrc in a text editor and add the following line. If you don't use zsh, open the profile for your corresponding shell (i.e. ~/.bash_profile)
export PATH=$PATH:$HOME/.npm-global/bin
Save your changes and close the text editor.
Close and reopen the terminal shell and run npm -v to check that npm is correctly on the latest version.
The reason for updating the path variable is because the npm cli suggests you update npm with npm install -g npm which will install npm at a different location than where Node installs npm originally.

In my case, only the following has helped:
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf ~/.npm
brew uninstall --ignore-dependencies node
brew install node
EDIT NOV 21: These days, I bypass brew entirely and use "n":
https://www.npmjs.com/package/n
And so I can change between versions too.

I faced the same problem.
You might have already installed the npm version, and now it is time to point the new npm version install. You can do that by following below steps.
sudo nano /usr/local/lib/node_modules/npm/package.json
change "version" : "5.6.0" to "verison": "5.8.0"

In my case, I'm using nvm to manage different versions of node. In order to upgrade npm version, I have to
1 - Install the latest version of npm by navigating to your current
version of node
cd ~/.nvm/versions/node/v10.9.0
npm install npm
or you can probably use
nvm install-latest-npm
2 - Edit $PATH to point to your current version of node
NPM_PACKAGES="${HOME}/.nvm/versions/node/v10.9.0"
PATH="$NPM_PACKAGES/bin:$PATH"

On my macOS the homebrew-installed npm did not want to upgrade due to pre-existing link file. I ran the install with --force flag and now things are okay.
$ npm --version
6.14.16
$ npm install -g npm#8
npm ERR! EEXIST: file already exists, symlink ...
$ npm install -g --force npm#8
npm WARN using --force I sure hope you know what you are doing.
+ npm#8.19.2
$ npm --version
8.19.2
Note also that in my case, no 'sudo' was required, thanks to homebrew. To check if your npm is installed with homebrew, use brew list.
$ brew list | grep node
node#12

Related

Error:Unable to install composer-cli

When I run npm install -g composer-cli I get this error:
"Need to have composer-cli installed at v0.15 or greater".
How can I resolve that?
Try running the command with --unsafe-perms , like this:
sudo npm install --unsafe-perm -g composer-cli
Reference: https://github.com/nodejs/node-gyp/issues/454
On Ubuntu (the supported Linux development environment) we do not recommend using sudo to install Composer.
The usual reason people would resort to sudo is a permission problem, but it is better to resolve the permission problem rather than use sudo. Often the problem is the npm prefix which can get set to /usr/local to which the user doesn't have write access. Issuing an npm config set prefix /home/<myuser>/ will solve the problem.
You may have an old version of Composer or one of the components installed. Try using npm ls -g --depth=0 to see if you have some composer code already installed, and if so remove it with npm uninstall -g composer-<component> where might be cli, or playground etc. The retry the install-g command.
Try this....this is the command to install 0.20 version.
npm install -g composer-cli#0.20
I changed my node version from
11
to
8.8.15
and did npm install -g composer-cli.It worked for me .
You need to use a 8.* node version,
My solution was:
nvm install 8.9.0
nvm use 8.9.0
npm install -g composer-cli

npm already installed but then says "command not found"

I keep having this problem so I uninstalled homebrew and tried to uninstall npm, but it did not work. I installed homebrew again and then typed "brew install npm." It returned "Warning: node-0.12.7 already installed." I then tried to use npm with the following command: "npm install -g mup" and it returned "-bash: npm: command not found."
I have trouble uninstalling npm because on the site it uses npm to uninstall npm... Otherwise, it denies me permission. How can I get around this so that I can install mup with "npm install -g mup"? What's weird is that it was working earlier but now it is failing me. Thank you.
Try this
cd ~
sudo rm -rf .npm
brew update
brew uninstall npm
brew install npm

Command error running installed npm modules

Hi guys could you help me? i've installed the latest version of node.js and installed cordova and ionic framework the problem starts is when i'm trying to run the ionic command, the console throw me the following message:
MacBook-Pro-de-Diego:~ diegochavez$ ionic start myApp
-bash: ionic: command not found
So then i looked for the root of my npm modules
MacBook-Pro-de-Diego:~ diegochavez$ npm root
/Users/diegochavez/node_modules
if you guys know something to fix this? Thanks in advance
First check if ionic is installed at path like /usr/local/lib/node_modules/ionic/bin/ionic. If it is there, you need to check the npm default global path.
Run command npm config get prefix to check the default path, it should be /usr/local. If it is not /usr/local, run command npm config set prefix /usr/local to set it. And then install again. Also see this answer
I having issue while running - sudo npm install -g gulp ionic with below version of node installed
node -v v0.10.15
npm -v 1.3.5
Error went way after I update node to latest version v0.10.26
The error you are getting is because ionic was not installed successfully. Trying updating node and run command as mentioned sudo npm install -g gulp ionic
Check where your npm folder is located. If your npm folder is located in $Home..then type this:
export PATH="$HOME/npm/bin:$PATH"
You need to run sudo npm install -g ionic from the command line.

Lesscss command line compiler Lessc

Hi Im trying to get the LessCss command line compiler installed on a Mac.
I've tried
brew install less
Error: No available formula for less
brew install lessc
Error: No available formula for lessc
sudo npm install -g less
..Installs happily..
sudo npm install -g lessc
npm http GET https://registry.npmjs.org/lessc
npm http 404 https://registry.npmjs.org/lessc
npm ERR! 404 'lessc' is not in the npm registry.
npm install less --global
..Installs happily..
npm install lessc --global
npm http GET https://registry.npmjs.org/lessc
npm http 404 https://registry.npmjs.org/lessc
npm ERR! 404 'lessc' is not in the npm registry.
and all I get is
less js/less/style.less > style-theme.css
-bash: less: command not found
lessc js/less/style.less > style-theme.css
-bash: lessc: command not found
Does anyone have any experience with this?
I found something said my path variable might be messed up. This:
/bin/echo $PATH
gets me:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
the npm package name for lessc is less
try writing
sudo npm install -g less
I will try to provide a complete answer.
All commands must be executed in the Terminal application.
If you don't have it: Install Command Line Tools for Xcode
xcode-select --install
If you don't have it: Install HomeBrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
If you don't have it: Install Node.js
brew install node
Install LessCSS
sudo npm install -g less
Now you can execute lessc commands.
i`m using macOS Siera and work for me, you can try:
install npm using brew:
brew install node
check node and npm version using:
node -v
npm -v
3.change user to SU using:
sudo su
install less:
npm install -g less
Good Luck.....

OSX Mountain Lion Cloud 9 install instructions

How can I install cloud9 locally on osx mountain lion?
following the instructions at https://github.com/ajaxorg/cloud9/ did not work.
You should check your nodejs version node --version. Use a version lower than 0.8.x
If you are already using 0.10.x and don't intend to go backwards, then you should try nvm:
curl https://raw.github.com/creationix/nvm/master/install.sh | sh
open a new terminal window (or do a shell logout + login)
nvm install 0.8
nvm use 0.8
Then follow cloud9 instructions
git clone https://github.com/ajaxorg/cloud9.git
cd cloud9
npm install
If this doesn't work try updating npm by executing npm update -g
NOTE: if you get EACCES errors then you should probably try sudo npm update -g
Ok, finally figured it out:
Using
node --version = v0.10.5
npm --version = 1.2.18
npm install cloud9
edit node_modules/cloud9/bin/cloud9.js
goto line 42
where: require("cloud9").main(options);
change to: require("../server/cloud9").main(options);
./node_modules/cloud9/bin/cloud9.sh
Haven't found any errors yet, but only just started using it.

Resources