.npmrc prefix override nvm
SeeThruHead opened this issue · 18 comments
symptoms, npm install -g npm installs npm to the wrong directory
overridden by .npmrc
removing "prefix=~/.node" from npmrc fixes the issue
osx ver: osx 10.10.1
zsh ver: zsh 5.0.5 (x86_64-apple-darwin14.0)
.npmrc:
prefix=~/.node
I don't believe this is an nvm
specific issue.
I asked @SeeThruHead to file this - the problem as I see it is that nvm
(correctly) doesn't respect npm
's prefix
option, but npm
itself will.
I'm not sure how to handle this, but at the least, nvm
could print out a warning.
Noting from #427 that the env var $NPM_CONFIG_PREFIX
also causes problems with nvm
.
Maybe detect the nvm config setting upon installation and issue a stern warning?
I'm considering making nvm
refuse any operation whatsoever when problematic settings are set.
sure, just do a npm config get prefix
and if it doesn't contain /.nvm/
then bail out.
Ugh. Until this is patched, you might want to put a note in the README … I have no idea where my ~/.npmrc
came from, but I've been complaining about being unable to update npm
for ages. (At least now I know why.)
Good idea - I'll get to one or the other hopefully in the next few weeks, but a README PR is welcome in the meantime.
I'm leaving it open until nvm
itself refuses to do anything when a prefix is set.
Now nvm use
will refuse to work if $PREFIX
or npm config get prefix
is set, and will provide instructions about how to fix it.
Reopening, however, because I forgot about $NPM_CONFIG_PREFIX
.
Would be nice if this prefix thing could be omitted somehow through .nvmrc
(just thinking).
@leomoreno in what way? The whole concept of PREFIX is incompatible with nvm.
If the suggested fix is to nvm use --delete-prefix vx.x.x
, what if --delete-prefix
is configurable?
I added that line to my .bash_profile
so I end up with the node version I need to use.
May be I'm misunderstanding and should not nvm use --delete-prefix vx.x.x
?
I was just thinking in something that let you delete-prefix
at .nvmrc
level, some kind of flag or similar. 🤷♂️ (that will make it easier to deal inside scripts)
@elmorenocivitas --delete-prefix
should be a command that's only needed once, and manually, after that your machine ideally never has a prefix to delete again :-)
@ljharb for some reason it's necessary all the times here.
I'll double check the discussion above to see what's the issue.
Thanks for the fast answer!
I followed this comment to solve my issue.
#1245 (comment)