53

我在理解n的使用时遇到问题。基本上,很明显它是一个 Node.js 的版本管理器,例如nvm

但与 nvm 相比,它基本上是一个 shell 脚本,根据文档,鼓励您使用 npm 安装n

$ npm install -g n

我没有得到的是:npm手头需要安装 Node.js。为什么我要手动安装 Node.js 以使用npm然后能够使用 n 安装 Node.js?

换句话说,我的问题是:如果 nnpm的主要目的是安装包含 npm 的 Node.js,为什么建议安装 using ?

4

7 回答 7

44

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自己先安装确实很棒。

我创建了一个项目来支持n直接从 GitHub安装;超出n自身需要git的唯一先决条件是。

请注意,您必须首先删除任何预先存在的n/ Node.js 版本。
默认情况下,目标目录~/n必须不存在或为空。
对于bashksh、 和zsh,相关的 shell 初始化文件(例如~/.bashrc)会被自动修改为定义环境变量N_PREFIX并附$N_PREFIX/bin加到$PATH; 对于其他 shell,这必须手动完成。

除了n直接从 GitHub 安装外,它还安装用于更新n( n-update) 和卸载 ( n-uninstall) 的帮助脚本。

这是工作示例;有关详细信息,请参阅n-install GitHub 存储库

  • 安装确认提示以确认安装到默认位置$HOME/n并安装最新的 LTS Node.js 版本:

    curl -L https://git.io/n-install | bash
    
  • 自动安装到默认位置,随后安装最新的 LTS(长期支持)和最新的整体 Node.js 版本,以及最新的 4.1.x Node.js 版本:

    curl -L https://git.io/n-install | bash -s -- -y lts latest 4.1
    
  • 自动安装到默认位置,无需后续安装 Node.js 版本:

    curl -L https://git.io/n-install | bash -s -- -y -
    
  • 自动安装到自定义位置~/util/n,随后安装最新的 LTS Node.js 版本:

    curl -L https://git.io/n-install | N_PREFIX=~/util/n bash -s -- -y
    
于 2015-06-21T18:04:24.153 回答
23

如果您愿意,可以从源代码安装 n:

cd /tmp
git clone --depth=1 https://github.com/tj/n
cd n
sudo make install

然后就可以安装最新的稳定版node了,如下:

n stable
于 2014-01-23T18:50:40.090 回答
15

n模块是为了方便而创建的。

例如,如果您想将 Node.js 的版本从 v0.8.0 更新到 v0.10.20,您是否愿意下载一个包,解压并编译?还是您宁愿键入n 0.10.20并立即安装它,同时仍保留以前版本的 Node 以便于切换?

n建议使用npm安装它,因为n是一个模块。也就是说,npm是最简单的安装方式。Node 模块具有在全局安装时能够在 shell 中运行的功能,因此利用该功能可以更轻松地切换 Node 版本。

于 2013-10-18T14:19:27.250 回答
2

也可以npm与 Node.JS 分开安装;例如:在没有 Node.JS 的系统上:

git clone https://github.com/npm/npm
cd npm
./configure
make

参考:NPM GitHub 项目

于 2014-09-25T08:18:49.263 回答
0

我有同样的问题,但已经看到了曙光。'n' 是一个方便的工具,可以轻松测试不同版本的节点。在 Linux 上运行良好,但无论我如何尝试在 OS X 上安装它(git clone,然后 npm install 或使用user456584的推荐方法),当我运行它时,我总是得到相同的结果“错误:未安装版本“,即使它安装到

/usr/local/lib/node_modules/n

/usr/local/bin/n

令人沮丧,因为我发现这个工具在 Linux 上非常方便。

于 2015-01-08T13:45:45.887 回答
0

如果您已将默认节点 bin 包含在 $PATH 变量中,如下所示

export PATH=/usr/local/Cellar/node/11.5.0/bin:$PATH

那么 n 将无法激活其他节点版本。从路径中删除此导出,然后您可以通过 n 管理当前活动的节点版本。

于 2018-12-20T13:49:23.873 回答
-1

如果您使用的是 n 那么您应该使用以下命令

bash$ sudo n 最新

于 2021-11-20T06:20:11.920 回答