美文网首页
Nvm 管理不同版本的 node 与 npm

Nvm 管理不同版本的 node 与 npm

作者: 并肩走天涯 | 来源:发表于2016-08-12 15:09 被阅读4786次

    Nvm 管理不同版本的 node 与 npm

    nvmNodeJS 的多版本管理工具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推荐是使用 nvmwnvm-windows

    卸载已安装的全局 node/npm

    在官网下载的 node 安装包,运行后会自动安装在全局目录,其中node 命令在 /usr/bin/node ,npm 命令在全局 node_modules 目录中,具体路径为 /usr/lib[lib64]/node_modules/npm

    安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:

    npm ls -g --depth=0 // 查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
    
    sudo rm -rf /usr/lib[lib64]/node_modules // 删除全局 node_modules 目录
    sudo rm /usr/bin/node // 删除 node
    cd /usr/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm // 删除全局 node 模块注册的软链
    
    // suse uninstall zypper install package
    zypper uninstall node
    

    Install nvm

    To install or update nvm, you can use the install script using cURL:

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

    or Wget:

    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
    

    The script clones the nvm repository to ~/.nvm and adds the source line to your profile (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
    

    can customize the install source, directory, profile, and version using the NVM_SOURCE, NVM_DIR, PROFILE, and NODE_VERSION variables. Eg: curl ... | NVM_DIR=/usr/local/nvm bash for a global install.

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | NVM_DIR=/usr/local/nvm bash
    

    Verify installation

    command -v nvm
    or which nvm
    

    Install node/npm and Change version

    nvm ls
    nvm install stable|node // 安装最新稳定版 node,现在是 6.3.1
    nvm install 4.4.7 // 安装 4.4.7 版本
    nvm install 0.12.12 // 安装 0.12.12 版本
    
    // 说明:以下模块安装仅供演示说明,并非必须安装模块
    nvm use node
    nvm run node --version
    nvm exec 4.2 node --version
    nvm which 6.3.2
    nvm use 0 // 切换至 0.12.12 版本
    npm install -g mz-fis #安装 mz-fis 模块至全局目录,安装完成的路径是 ~/.nvm/versions/node/v0.12.12/lib/mz-fis
    nvm use 4 // 切换至 4.4.7 版本
    npm install -g react-native-cli // 安装 react-native-cli 模块至全局目录,安装完成的路径是 ~/.nvm/versions/node/v4.4.7/lib/react-native-cli
    
    nvm alias default 0.12.12 // 设置默认 node 版本为 0.12.7
    
    • node: this installs the latest version of node
    • iojs: this installs the latest version of io.js
    • stable: this alias is deprecated, and only truly applies to node v0.12 and earlier. Currently, this is an alias for node.

    Use .nvmrc file, Configing projects use node version

    如果默认 node 版本(通过 nvm alias 命令设置的)与项目所需的版本不同,则可在项目根目录或其任意父级目录中创建 .nvmrc 文件,在文件中指定使用的 node 版本号:

    cd <项目根目录>  // 进入项目根目录
    echo 4 > .nvmrc // 添加 .nvmrc 文件
    nvm use // 无需指定版本号,会自动使用 .nvmrc 文件中配置的版本
    node -v // 查看 node 是否切换为对应版本
    

    nvm 与 n 的区别

    node 版本管理工具还有一个是 n 命令,n 命令是作为一个 node 的模块而存在,而 nvm 是一个独立于 node/npm 的外部 shell 脚本,因此 n 命令相比 nvm 更加局限。

    由于 npm 安装的模块路径均为 /usr/lib[lib64]/node_modules ,当使用 n 切换不同的 node 版本时,实际上会共用全局的 node/npm 目录。 因此不能很好的满足『按不同 node 版本使用不同全局 node 模块』的需求。

    相关文章

      网友评论

          本文标题:Nvm 管理不同版本的 node 与 npm

          本文链接:https://www.haomeiwen.com/subject/wmqesttx.html