likes
comments
collection
share

高效前端:如何优雅的安装Node.js和npm

作者站长头像
站长
· 阅读数 59

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

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的技巧,欢迎评论区交流。

转载自:https://juejin.cn/post/7371687296599195699
评论
请登录