我在理解n的使用方面遇到了问题。基本上,很明显它是Node.js的版本管理器,例如nvm。
但与nvm(基本上是一个shell脚本)相反,根据文档,我们鼓励你使用npm来安装 n :
$ npm install -g n
我没有得到的结果是:为了掌握npm
,您需要安装Node.js.为什么我要手动安装Node.js以使用npm
然后能够使用n安装Node.js?
换句话说我的问题:为什么n建议使用npm
安装,如果其主要目的是安装Node.js,其中包括npm?
答案 0 :(得分:36)
<强> TL;医生强>
# Installs n and the latest LTS Node.js version to ~/n.
# For bash, ksh, zsh, modifies the respective user-specific shell-initialization file to
# define env. variable N_PREFIX and append $N_PREFIX/bin to the $PATH.
curl -L https://git.io/n-install | bash
我感觉到你的痛苦。安装Node.js然后安装n
然后管理Node.js安装确实是一个奇怪的设置。
能够首先安装n
确实很棒。
我已经创建了一个 project来支持直接从GitHub安装n
;除n
本身所需的唯一先决条件是git
。
请注意,您必须先删除任何预先存在的n
/ Node.js版本
默认情况下,目标目录~/n
必须不存在或为空
对于bash
,ksh
和zsh
,会自动修改相关的shell初始化文件(例如~/.bashrc
)以定义环境变量N_PREFIX
并附加{{ 1}}到$N_PREFIX/bin
;对于其他shell,这必须手动完成。
除了直接从GitHub安装$PATH
之外,它还会安装帮助程序脚本以更新n
(n
)并卸载它(n-update
)。
以下是工作示例;有关详细信息,请参阅n-install GitHub repo:
使用确认提示进行安装,以确认安装到默认位置n-uninstall
并安装最新的LTS Node.js版本:
$HOME/n
自动安装到默认位置,随后安装最新的LTS(长期支持)和最新的整体Node.js版本,以及最新的4.1.x Node.js版本:
curl -L https://git.io/n-install | bash
自动安装到默认位置,无需后续安装Node.js版本:
curl -L https://git.io/n-install | bash -s -- -y lts latest 4.1
自动安装到自定义位置curl -L https://git.io/n-install | bash -s -- -y -
,随后安装最新的LTS Node.js版本:
~/util/n
答案 1 :(得分:20)
如果您愿意,可以从源代码安装n:
mkdir ~/tmp
cd ~/tmp
git clone https://github.com/tj/n
cd n
make install
然后您可以按如下方式安装最新的稳定版节点:
n stable
答案 2 :(得分:12)
n 模块是为方便创建的。
例如,如果您想将您的Node.js版本从v0.8.0更新到v0.10.20,您是否愿意下载包,解压缩并编译?或者您希望键入n 0.10.20
并立即安装,同时仍保留以前版本的Node以便轻松切换?
n 建议使用 npm 进行安装,因为 n 是一个模块。也就是说, npm 是安装它的最简单方法。节点模块具有在全局安装时能够在shell中运行的功能,因此该功能用于使交换节点版本更加容易。
答案 3 :(得分:1)
您也可以从Node.JS单独安装npm
;例如:在没有Node.JS的系统上:
git clone https://github.com/npm/npm
cd npm
./configure
make
答案 4 :(得分:0)
我有同样的问题,但已经看到了光明。 'n'是一个方便的工具,可以很容易地测试不同版本的节点。在Linux上运行得很好,但无论我如何尝试在OS X上安装它(git clone,然后是npm install或使用 user456584 推荐的方法),当我运行它时,我总是得到相同的“错误:没有安装版本”的结果,即使它安装到
中的/ usr /本地/ LIB / node_modules / N
和
的/ usr / local / bin中/ N
令人沮丧,因为我发现这个工具在Linux上非常方便。
答案 5 :(得分:0)
如果您已经在$ PATH变量中包含了这样的默认节点bin
export PATH=/usr/local/Cellar/node/11.5.0/bin:$PATH
然后n将无法激活其他节点版本。从路径中删除此导出,然后可以通过n管理当前活动的节点版本。