Mac前端装机必备之-n 模块管理多个版本的node.js
安装
由于您可能已经拥有了node
,所以最简单的安装方法n
是通过npm
:
sudo npm install -g n
安装后,将版本n
缓存在环境变量指定的目录的node
子目录n/versions
中N_PREFIX
,默认为/usr/local
; 而主动 node
版本直接安装在N_PREFIX
。
为了避免需要sudo
的n
和npm
全球的安装,建议您或者使用安装到你的主目录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
安装n
到bin/n
环境变量中指定的目录$PREFIX
,默认为/usr/local
(请注意,您可能需要使用sudo
)。要n
在自定义位置(例如$CUSTOM_LOCATION/bin/n
)安装,请运行PREFIX=$CUSTOM_LOCATION make install
。
第三方安装程序
brew install n
在Linux和macOS上,n-install允许直接从GitHub安装;例如:
curl -L https://git.io/n-install | bash
正安装多组都PREFIX
和N_PREFIX
来$HOME/n
,安装n
到$HOME/n/bin
,修改支持炮弹的初始化文件导出N_PREFIX
,并添加$HOME/n/bin
到PATH
,并安装最新的LTS node
版本。
因此,它n
本身及其node
管理的所有版本都托管在一个可选的可配置目录中,您以后可以使用随附的n-uninstall
脚本将其删除。n-update
将n
自身更新为最新版本。有关更多详细信息,请参见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
(您也可以使用j
和k
在不使用箭头的情况下向上或向下导航。)
如果活动节点的版本在安装后没有更改,请尝试打开新的外壳,以防发现版本过旧。
指定节点版本
有多种方法可以指定n
命令的目标节点版本。大多数命令使用最新的匹配版本,并 n ls-remote
列出多个匹配版本。
数字版本号可以是完整或不完整的,并带有可选的前导v
。
4.9.1
8
:8.xy版本v6.1
:6.1.x版本
有两个特别有用的版本的标签:
lts
:最新的长期支持正式发布latest
,current
:最新正式发布
第一行有一个标签,用于从文件中读取目标版本:
auto
:从.n-node-version
文件读取版本
支持发布流:
argon
,boron
,carbon
:代号为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
修改,以便node
和npm
将从下载的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_MIRROR
:请参阅自定义来源N_NODE_DOWNLOAD_MIRROR
:请参阅自定义来源- 支持NO_COLOR和CLICOLOR = 0以控制ANSI颜色代码的使用
N_MAX_REMOTE_MATCHES
更改默认的ls-remote
最大20个匹配版本N_PRESERVE_NPM
:请参阅保留npm
怎么运行的
n
下载预编译的node
软件包并安装到单个前缀(例如/usr/local
)。这将覆盖以前的版本。该bin
位置的文件夹应位于您的文件夹中PATH
(例如/usr/local/bin
)。
下载内容保存在缓存文件夹中,以用于重新安装。也可以使用n which
和n run
和进行有限的下载n exec
。
全局npm
软件包不会被安装更改npm
,只是它本身是node
安装的一部分。