IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    如何优雅的安装Node.js和npm

    颜海镜发表于 2024-05-01 00:00:00
    love 0

    我之前写过一篇小白的 Mac 上手指南(干货),受到了很多掘友好评,最近重新安装环境,我发现以前安装 Node 和 npm 的方法还有优化空间,原来老司机也有翻车的时候。

    所以我决定重写一篇文章,本文的技巧一定会让你效率翻倍,老规矩本文不止告诉你怎么做,还告诉你为什么这么做。

    Node.js 是现代 Web 开发中不可或缺的工具,随着项目需求的变化,可能需要使用不同版本的 Node.js。因此,优雅地管理和切换 Node.js 版本显得尤为重要。本文将介绍如何在 Mac 上使用 Homebrew 安装n工具来管理多个 Node.js 版本,并解决 npm 全局安装包时需要sudo权限的问题。

    开始之前先说明下,我的系统是 macOS 14.x,本文中介绍的工具安装方法,可能具有时效性,比如 brew 的安装可能会过时,如果遇到问题,可以去官网查看最新安装方法。

    优雅地安装n

    n是一个 Node.js 版本管理工具,允许你轻松地安装、管理和切换多个 Node.js 版本。它的使用简单直观,非常适合开发者。通过n,你可以在不同版本的 Node.js 之间快速切换,以满足不同项目的需求。

    为什么选择 Homebrew?

    Homebrew 是 macOS 上的一个包管理工具,它使得软件的安装和管理变得非常方便。通过 Homebrew 安装n,可以简化安装过程,并确保环境的整洁和一致性。

    使用 Homebrew 安装n

    第 1 步,安装 Homebrew,如果你还没有安装 Homebrew,可以通过以下命令在终端中安装:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    第 2 步,使用 Homebrew 安装n:

    brew install n
    

    安装完成后,你就可以使用n来管理 Node.js 版本了。

    优雅的管理 Node.js 多版本

    为什么使用n来管理 Node.js 版本?

    不同项目可能依赖于不同版本的 Node.js,手动管理这些版本不仅麻烦,而且容易出错。n简化了这个过程,使得安装、切换和卸载 Node.js 版本变得非常方便。

    类似的工具还有 nvm,这里不对二者的优缺点做评价,笔者平时比较习惯使用 n,所以这里介绍的是 n,当然 nvm 也可以解决这个问题。

    设置 N_PREFIX 环境变量

    默认情况下,n 会将 Node.js 安装到 /usr/local 目录下,这通常需要管理员权限。为了避免权限问题,我们可以设置 N_PREFIX 环境变量,将 n 安装的 Node.js 版本放在用户目录下。

    这个小技巧我最近才知道,再也需要 sudo 了,^_^。

    创建自定义目录

    首先,为n创建一个目录来存放 Node.js 版本:

    mkdir -p $HOME/.n
    

    设置环境变量

    如果现在使用 n 安装了 Node.js,你会发现在命令行里执行 node 命令会说找不到 node 命令,这是因为我们改变了 n 的默认安装路径,需要将新的路径加入到 PATH 中,在你的 shell 配置文件中(如.bashrc或.zshrc)添加以下行:

    export N_PREFIX=$HOME/.n
    export PATH=$N_PREFIX/bin:$PATH
    

    保存并执行以下命令使配置生效:

    source ~/.bashrc   # 对于Bash用户
    source ~/.zshrc    # 对于Zsh用户
    

    使用n安装 Node.js 版本

    安装最新的稳定版

    通过以下命令安装最新的稳定版 Node.js:

    n stable
    

    安装最新的 LTS(长期支持)版

    LTS 版本通常更稳定,适合在生产环境中使用。通过以下命令安装最新的 LTS 版本:

    n lts
    

    安装指定版本(例如 14.17.0)

    有时你可能需要特定版本的 Node.js,可以使用以下命令安装:

    n 14.17.0
    

    切换 Node.js 版本

    列出已安装的版本并选择一个进行切换:

    n
    

    卸载不需要的 Node.js 版本

    为了保持系统整洁,可以卸载不再需要的 Node.js 版本:

    n rm 14.17.0
    

    解决 npm 全局命令需要 sudo 的问题

    为什么 npm 全局安装需要 sudo?

    默认情况下,如果你安装的 npm 包会创建一个全局命令的话,比如安装 pnpm,会涉及到权限问题。

    这是因为 npm 全局安装包会写入系统目录(例如/usr/local),这通常需要管理员权限。因此,在安装全局包时需要使用sudo,这可能会带来一些不便和安全问题。

    解决方案:创建用户目录用于全局安装

    为了解决这个问题,我们可以为 npm 全局包创建一个用户目录,这样可以避免使用sudo安装全局包。

    创建自定义目录

    首先,为全局 npm 包创建一个目录:

    mkdir -p $HOME/.npm-global
    

    设置 npm 配置以使用自定义目录

    然后,配置 npm 使用这个新的全局目录:

    npm config set prefix '~/.npm-global'
    

    修改环境变量

    为了确保系统能够找到全局安装的 npm 包,需要将新目录的bin子目录添加到PATH环境变量中。在你的 shell 配置文件中添加以下行:

    export PATH="$HOME/.npm-global/bin:$PATH"
    

    保存并执行以下命令使配置生效:

    source ~/.bashrc   # 对于Bash用户
    source ~/.zshrc    # 对于Zsh用户
    

    总结

    通过本文,你学会了如何优雅地在 Mac 上使用 Homebrew 安装n,并使用n来管理多个 Node.js 版本。同时,你还学会了如何解决 npm 全局安装包时需要sudo的问题。希望这些技巧能帮助你在开发过程中更加高效。

    这下终于告别 sudo 了,太开心了(^▽^)。

    原创不易,感谢阅读,你还知道什么 Node.js 和 npm 的技巧,欢迎评论区交流。



沪ICP备19023445号-2号
友情链接