安装Node.js安装n以安装Node.js?

时间:2013-10-18 14:13:08

标签: node.js npm n

我在理解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?

6 个答案:

答案 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必须不存在或为空 对于bashkshzsh,会自动修改相关的shell初始化文件(例如~/.bashrc)以定义环境变量N_PREFIX并附加{{ 1}}到$N_PREFIX/bin;对于其他shell,这必须手动完成。

除了直接从GitHub安装$PATH之外,它还会安装帮助程序脚本以更新nn)并卸载它(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

参考:NPM GitHub project

答案 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管理当前活动的节点版本。