nvm is not compatible with the npm config “prefix” option:

前端 未结 16 1395
梦毁少年i
梦毁少年i 2020-12-07 06:47

I am trying to run another NodeJS version with nvm but getting this error:

$ nvm use v4.2.4

nvm is not compatible with the npm config \"prefix\         


        
相关标签:
16条回答
  • 2020-12-07 07:32

    I just have a idea. Use the symbolic link to solve the error and you can still use your prefix for globally installed packages. ln -s [your prefix path] [path in the '~/.nvm'] then you will have a symbolic folder in the ~/.nvm folder, but in fact, your global packages are still installed in [your prefix path]. Then the error will not show again and you can use nvm use ** normally. ps: it's worked for me on mac. pps: do not forget to set $PATH to your npm bin folder to use the globally installed packages.

    0 讨论(0)
  • 2020-12-07 07:33

    I had the same problem and executing npm config delete prefix did not help me.

    But this did:

    After installing nvm using brew, create ~/.nvm directory:
    $ mkdir ~/.nvm

    and add following lines into ~/.bash_profile:

    export NVM_DIR=~/.nvm
    . $(brew --prefix nvm)/nvm.sh
    

    (Check that you have no other nvm related command in any ~/.bashrc or ~/.profile or ~/.bash_profile)

    Open a new terminal and this time it should not print any warning message.
    Check that nvm is working by executing nvm --version command.
    After that, install/reinstall NodeJS using nvm install node && nvm alias default node.

    More Info

    I installed nvm using homebrew and after that I got this notification:

    Please note that upstream has asked us to make explicit managing nvm via Homebrew is unsupported by them and you should check any problems against the standard nvm install method prior to reporting.

    You should create NVM's working directory if it doesn't exist:

     mkdir ~/.nvm
    

    Add the following to ~/.bash_profile or your desired shell configuration file:

     export NVM_DIR=~/.nvm
     . $(brew --prefix nvm)/nvm.sh
    

    You can set $NVM_DIR to any location, but leaving it unchanged from /usr/local/Cellar/nvm/0.31.0 will destroy any nvm-installed Node installations upon upgrade/reinstall.

    Ignoring it brought me to this error message:

    nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local/Cellar/nvm/0.31.0/versions/node/v5.7.1"
    Run nvm use --delete-prefix v5.7.1 --silent to unset it.

    I followed an earlier guide (from homebrew/nvm) and after that I found that I needed to reinstall NodeJS. So I did:

    nvm install node && nvm alias default node
    

    and it was fixed.

    Update: Using brew to install NVM causes slow startup of the Terminal. You can follow this instruction to resolve it.

    0 讨论(0)
  • 2020-12-07 07:37

    I was looking for a solution for the nvm prefix problem a found this question(before finding the solution). Here is my shell "dialog". I hope, it can be usefull for somebody. I was able to set to prefix with the help of this post: https://github.com/npm/npm/issues/6592

    When I tried npm config delete prefix or nvm use --delete-prefix before using npm --prefix="" set prefix "", I got only: npm ERR! not ok code 0

    Note that you will have to repeat the same procedure with every node version, the prefix is set back to (in my case) /usr/local after installation.

        $ nvm install 0.10
        ######################################################################## 100.0%
        nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
        Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
        $ npm --prefix="" set prefix ""
        $ nvm use 0.10.44
        nvm is not compatible with the npm config "prefix" option: currently set to "/home/john"
        Run `npm config delete prefix` or `nvm use --delete-prefix v0.10.44` to unset it.
        $ nvm use --delete-prefix v0.10.44
        Now using node v0.10.44 (npm v1.3.10)
        $ nvm ls
        v0.10.44
                 v4.4.3
        ->       system
        default -> 4.4.3 (-> v4.4.3)
        node -> stable (-> v4.4.3) (default)
        stable -> 4.4 (-> v4.4.3) (default)
        iojs -> N/A (default)
        $ npm config get prefix
        /usr/local
    
    0 讨论(0)
  • 2020-12-07 07:38

    I followed https://stackoverflow.com/a/47861348/2391795 answer but it didn't work out well.

    $ npm config delete prefix 
    $ npm config set prefix $NVM_DIR/versions/node/v6.11.1
    

    After running the recommended commands my nvm didn't work anymore, running nvm use would display the proper node version being used, but running node -v would show another. It wasn't possible to change node's version anymore.

    I uninstalled and reinstalled nvm entirely to fix it. I followed https://github.com/creationix/nvm#manual-uninstall by running

    $ rm -rf "$NVM_DIR"
    

    Then edited my .zshrc to remove the lines related to nvm, which in my case were

    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"
    

    Then started a new shell (so that nvm isn't loaded in this new shell) and ran https://github.com/creationix/nvm#install-script

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
    

    Which added nvm the lines I previously had removed in my .zshrc.

    Then I was able to use nvm as I used to. I guess that's an odd case were things went wrong and forced me to reinstall everything, doesn't look like most people go through this due to this issue.

    0 讨论(0)
  • 2020-12-07 07:41

    I have the same error message but other solution. The autogenerated path during curl (install.sh) does not match. Check this with:

    echo $NVM_DIR
    

    In my case: /var/www//.nvm. Show in your auto generated bash file and change it and replace it: (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc)

    replace

    export NVM_DIR="$HOME/.nvm"
    

    with (e.g.)

    export NVM_DIR="$HOME.nvm"
    
    0 讨论(0)
  • 2020-12-07 07:41

    I solved this problem when it was showing on VSCode and JetBrains Terminals, but not in the native terminal using the following commands:

    ls -la /usr/local/bin | grep "np[mx]"
    

    This will give you the resolved path at the end:

    ... npm -> ../lib/node_modules/npm/bin/npm-cli.js
    ... npx -> ../lib/node_modules/npm/bin/npx-cli.js
    

    From there, removing the files and relaunching VS Code should fix the issue:

    rm -R /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js
    rm -R /usr/local/bin/npx /usr/local/lib/node_modules/npm/bin/npx-cli.js
    

    fix link: https://github.com/nvm-sh/nvm/issues/1690#issuecomment-392014774

    0 讨论(0)
提交回复
热议问题