使用 npm n 升级 nodejs 的缺点

使用 npm n 升级 nodejs 的缺点

我的问题

一些 批评反对npm n,但它们都是过时的(大部分来自 2018 年之前)。批评仍然有效吗?n不稳定还是有缺陷?值得一提的是,n本周的下载量为 115,014 次。

问题

我想要安装最新的稳定版 npmnodeJS,但这出乎意料地困难。


有关的:

答案1

经过几年的良好运行,我想我可以自信地说没有真正的问题(至少,我没有遇到过)。唯一的问题是开始n工作。为此,请阅读下文。

使用 npm n 解决

我以具有 sudo 访问权限的用户身份安装它,并且我不想使用sudonpm 或 node 来让它工作(为什么?)

  1. 安装 npm:sudo apt install npm

  2. 设置 npm 的前缀npm config set prefix ~/.npm

  3. 将 npm 升级到最新版本npm i -g npm

更新:apt 的 npm 现在太旧了,您在尝试更新时应该会收到错误消息,因为捆绑的节点版本太旧了。在这种情况下,请在所有这些说明结束时再次运行此命令)

  1. 在文件中设置环境变量~/.profile(这些更改仅在您注销并再次登录后或运行时才会生效source ~/.profile):
# vars to avoid ever using sudo for npm
export PATH="$PATH:$HOME/.npm/bin"
# these are for n and where it'll install nodejs:
export N_PREFIX=$HOME/.n
export PATH="$PATH:$N_PREFIX/bin"

您可能还想将这些行添加到~/.bash_profile~/.bash_login或者每次打开新终端时~/.bashrc都需要source ~/.profile识别 npm、node 和 n。看到这个由于这个原因。

  1. 运行以更新环境变量。这样,bash 将在本次会话期间source ~/.profile找到路径(即无需注销然后再次登录)。npmn

  2. 使用 npmn包升级节点(参见:https://askubuntu.com/a/663052/808646):

# Intructions: https://www.npmjs.com/package/n
# Some people also suggest npm cache clean -f, but (I think) this isn't necessary here. 
# I'm using lts for the stable release, for the latest use instead: n latest 

npm install -g n
n lts
  1. 卸载以前由 npm 安装的 nodejs:sudo apt-get purge nodejs

解释:这一步至关重要。到目前为止,发生了以下情况:您安装了npm,但实际上在其上安装了旧的nodejs和旧的。尽管您据称使用 来“安装”了新的,但前一个优先,并且无法真正安装它下载的新版本,因此您必须先删除旧的。 但是,如果您在不安装新的 的情况下删除它,那么您将不再拥有任何版本,因为卸载旧的也会卸载旧的(我认为……或者如果您再次导出所有变量,它可以工作吗?也许仅使用nodejs/npm 版本进行安装就足够了?)。因此,您必须安装一个新的(您在步骤 3 中执行了此操作)和一个新的使用(您在步骤 6 中执行了此操作)npmnodejsnnodejsnnodejs
npmnpmnodejsnpmnnpmnodejsn卸载旧的nodejs。您还需要新安装的原因nodejs是,如果没有新的nodejs,新的npm将无法运行,它需要当前nodejs安装。

  1. 检查它是否有效。如果没有,请尝试注销并再次登录,或输入n并选择正确的 nodejs 版本(*默认情况下,它将使用与该 nodejs 版本捆绑在一起的 npm,但有一些选项可以防止这种情况):node -v

答案2

运行sudo apt install npm正常,但sudo apt-get --purge remove nodejs也会删除npm,让你回到开始的地方。因此,我认为除了使用非 apt 方法来安装 的最新版本外,没有其他方法nodejs

相关内容