Mac前端装机必备之-n 模块管理多个版本的node.js

安装

由于您可能已经拥有了node,所以最简单的安装方法n是通过npm

sudo npm install -g n

安装后,将版本n缓存在环境变量指定的目录的node子目录n/versionsN_PREFIX,默认为/usr/local主动 node版本直接安装在N_PREFIX

为了避免需要sudonnpm全球的安装,建议您或者使用安装到你的主目录N_PREFIX,或采取系统目录的所有权:

# make cache folder (if missing) and take ownership
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n
# take ownership of node install destination folders
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

如果npm尚不可用,一种引导安装的方法:

curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
bash n lts
# Now node and npm are available

 

或者,您可以克隆此存储库并

make install

 

安装nbin/n环境变量中指定的目录$PREFIX,默认为/usr/local(请注意,您可能需要使用sudo)。n在自定义位置(例如$CUSTOM_LOCATION/bin/n)安装,请运行PREFIX=$CUSTOM_LOCATION make install

第三方安装程序

在具有Homebrew的 macOS上,您可以安装n公式

brew install n

 

在Linux和macOS上,n-install允许直接从GitHub安装;例如:

curl -L https://git.io/n-install | bash

 

正安装多组都PREFIXN_PREFIX$HOME/n,安装n$HOME/n/bin,修改支持炮弹的初始化文件导出N_PREFIX,并添加$HOME/n/binPATH,并安装最新的LTS node版本。

因此,它n本身及其node管理的所有版本都托管在一个可选的可配置目录中,您以后可以使用随附的n-uninstall脚本将其删除n-updaten自身更新为最新版本。有关更多详细信息,请参见n-install存储库

安装节点版本

只需执行n <version>以下载并安装的版本node如果<version>已经下载,n将从其缓存安装。

n 10.16.0
n lts

 

n自行执行以查看下载的版本,并安装所选的版本。

$ n

  node/4.9.1
ο node/8.11.3
  node/10.15.0

Use up/down arrow keys to select a version, return key to install, d to delete, q to quit

 

(您也可以使用jk在不使用箭头的情况下向上或向下导航。)

如果活动节点的版本在安装后没有更改,请尝试打开新的外壳,以防发现版本过旧。

指定节点版本

有多种方法可以指定n命令的目标节点版本大多数命令使用最新的匹配版本,并 n ls-remote列出多个匹配版本。

数字版本号可以是完整或不完整的,并带有可选的前导v

  • 4.9.1
  • 8:8.xy版本
  • v6.1:6.1.x版本

有两个特别有用的版本的标签:

  • lts:最新的长期支持正式发布
  • latestcurrent:最新正式发布

第一行有一个标签,用于从文件中读取目标版本:

  • auto:从.n-node-version文件读取版本

支持发布流:

  • argonboroncarbon:代号为LTS版本流

最后一种形式是使用远程下载文件夹的名称指定其他可用的发行版,还可以选择后面跟随完整或不完整的版本。

  • chakracore-release/latest
  • nightly
  • test/v11.0.0-test20180528
  • rc/10

删除版本

删除一些缓存的版本:

n rm 0.9.4 v0.10.0

除去当前版本以外的所有缓存版本:

n prune

 

删除已安装的节点和npm(不影响缓存的版本)。这对于恢复到节点的系统版本(如果位于不同的位置),或者如果您不再希望使用节点和npm,或者正在切换到其他管理它们的方式很有用。

n uninstall

 

使用下载的节点版本而不重新安装

有三个命令可直接使用您下载的版本node,而无需重新安装。

您可以显示下载版本的路径:

$ n which 6.14.3
/usr/local/n/versions/6.14.3/bin/node

 

node使用以下n run命令运行下载的版本

n run 8.11.3 --debug some.js

 

或执行命令和PATH修改,以便nodenpm将从下载的node版本。(注意:这npm将与另一个空的全局node_modules目录一起使用,您不应以这种方式安装全局模块。)

n exec 10 my-script --fast test

 

保留npm

一个node安装通常包括npm为好,但你可能希望保留的更新npm,并npx让他们出的安装使用--preserve(需要rsync的):

$ npm install -g npm@latest
...
$ npm --version
6.13.7
$ n -p 8
   installed : v8.17.0
$ npm --version
6.13.7

 

您可以通过设置N_PRESERVE_NPM为非空字符串来将其设置默认值

export N_PRESERVE_NPM=1

 

无论环境变量如何,您都可以明确获得所需的行为:

n --preserve nightly
n --no-preserve latest

 

可以从下载命令行帮助n --help

列出可下载的匹配远程版本:

n ls-remote lts
n ls-remote latest
n lsr 10
n --all lsr

 

列出缓存中的下载版本:

n ls

 

显示诊断以帮助解决问题:

n doctor

 

自订来源

如果您想使用与默认https://nodejs.org/dist/具有相同布局的其他节点镜像,​​则可以定义N_NODE_MIRROR最常见的例子是中国的用户可以定义:

export N_NODE_MIRROR=https://npm.taobao.org/mirrors/node

 

还有N_NODE_DOWNLOAD_MIRROR一个与默认https://nodejs.org/download具有相同布局的其他镜像

定制架构

默认情况下,n选择与您的系统体系结构匹配的二进制文件,例如,n将为64位系统下载64位二进制文​​件。您可以使用-a--arch选项覆盖它

下载并使用最新的32位版本的node

n --arch x86 latest

 

可选环境变量

n命令/usr/local默认下载并安装到,但是您可以通过定义覆盖此位置N_PREFIX要更改位置$HOME/.n,请在外壳初始化文件中添加以下内容:

export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH

 

n如果系统上的tar很可能支持xz解压缩,则默认使用xz压缩节点tarball进行下载。您可以通过将环境变量设置为零或非零来覆盖自动选择:

export N_USE_XZ=0 # to disable
export N_USE_XZ=1 # to enable

 

无论环境变量如何,您都可以明确获得所需的行为:

n install --use-xz nightly
n install --no-use-xz latest

 

简单来说:

怎么运行的

n下载预编译的node软件包并安装到单个前缀(例如/usr/local)。这将覆盖以前的版本。bin位置文件夹应位于您文件夹中PATH(例如/usr/local/bin)。

下载内容保存在缓存文件夹中,以用于重新安装。也可以使用n whichn run进行有限的下载n exec

全局npm软件包不会被安装更改npm,只是它本身是node安装的一部分

posted @ 2020-06-07 21:40  xfcao  阅读(1982)  评论(0编辑  收藏  举报