惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Register - Security
The Register - Security
GbyAI
GbyAI
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
罗磊的独立博客
P
Proofpoint News Feed
A
About on SuperTechFans
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
DataBreaches.Net
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
V
V2EX
博客园_首页
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
人人都是产品经理
人人都是产品经理
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
Engineering at Meta
Engineering at Meta
The Hacker News
The Hacker News
Hacker News: Ask HN
Hacker News: Ask HN
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
PCI Perspectives
PCI Perspectives
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
The Cloudflare Blog
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

Oragekk's Blog

OpenSpec 技术分享:用规格驱动 AI 编程 ChatGPT&Codex订阅教程 一个 waline 评论系统bug引发的思考 Jenkins 远程触发构建踩坑记 Git SSH 密钥配置 初识Rust vuepress-plugin-meting2 谷歌发布多平台应用开发神器Project IDX!PaLM 2加持 Vue常见优化手段 Vue2响应式原理解析 Dart 中的并发 Flutter 工作原理 如何利用GitHub Action提交URL到搜索引擎 提交URL到搜索引擎(百度、Bing、Google) GitHub Actions 使用介绍 素材设计 前端-Q&A 浏览器的事件循环 你不知道的 CSS 之包含块 CSS 属性计算过程 Vercel deploy忽略指定分支 评论插件 Waline 之邮件通知配置 公开API 终端究极美化iTerm2+Pure 使用Bing API提交网站URL Flutter 基础大集合 关于本站 关于本站 关于我 Markdown 展示 幻灯片页 ReactNative State(状态) ReactNative开发环境配置,ES6语法介绍 ReactNative介绍 更优雅强大的终端ZSH 神经网络模型训练 YYCache优秀的缓存设计 WebViewJavascriptBridge NSError WCDB漫谈 优雅的实现TableViewCell单选 初探机器学习框架CoreML 深入理解swift中闭包的捕捉语义 ijkPlayer 集成 iOS 配置https iOS timelineLogistics iOS Cookie的配置及使用 WKWebView拦截URL WKWebView使用及自适应高度 textfield限制输入字符 评论系统从多说迁移到disqus指南 利用Runtime进行快速归档 iOS 10.3 keychain 重大更新 Cell的accessoryType属性标记单元格之后,出现的重用问题 通过UserAgent判断设备 AFNetworking A memory leak 一人一句宋词 OC 中的枚举类型 iOS - Image compression algorithm iOS程序启动原理(下) iOS程序启动原理(上) NSOperatioin TableView性能优化 Runloop Test Three ways to call Update Cocoapods 1.1.1 减小iOS-App或者静态库体积 Jekyll旧站回忆 JavaScript ES6 CommonJS,RequireJS,SeaJS 归纳笔记 Unix/Linux 扫盲笔记
使用n命令管理node版本
Oragekk · 2020-04-03 · via Oragekk's Blog

鉴于使用 ReactNative 时,会需要不同的 node 版本,提供一种版本切换方式

使用 n command 来进行 node 版本管理

概念

n Node version manager 提供了一个更简单的 CLI,用于在 Node 版本之间进行安装和切换。它仅在 Linux 或 Mac 操作系统上受到支持。

安装

如果你已经安装某个版本的 Node 和 npm ,则可以用 npm install -g n 来安装 n,就像安装其他 NPM 包一样。

如果你还没有安装 Node 或 npm,可以用 GitHub 中的 bash 脚本安装 n。这是它的样子:

curl -L https://git.io/n-install | bash
=== n successfully installed.
  The active Node.js version is: v10.16.0

  Run `n -h` for help.
  To update n later, run `n-update`.
  To uninstall, run `n-uninstall`.

  IMPORTANT: OPEN A NEW TERMINAL TAB/WINDOW or run `. /home/brian/.bashrc`
             before using n and Node.js.
===
~$ . /home/brian/.bashrc
~$ n
node/10.16.0

通过从 GitHub 下载并运行 n-install 脚本来安装 n。n 默认安装了一个版本的 Node。

安装版本 10.17.0

如果需要指定版本号,可以这样安装

安装最新版本

安装最新版本使用如下命令

切换版本

显示如下

Last login: Fri Apr  3 16:56:05 on ttys004

# huangkun @ huagnkundeMacBook-Pro in ~ [16:58:24]
$ n
  ο node/10.17.0
    node/13.12.0

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

可以使用上下方向键来选择版本,并回车。如果不想选择可以按q退出

直接使用 Node 二进制文件

n 提供了直接调用特定 Node 二进制文件的功能,而无需显式切换到该版本的 Node。 NVM 则没有类似的功能。

# huangkun @ huagnkundeMacBook-Pro in ~ [17:01:32]
$ node -v
v10.17.0
# huangkun @ huagnkundeMacBook-Pro in ~ [17:01:39]
$ n use 13.12.0 index.js
Node version: v13.12.0

请注意,n use 命令所请求的 Node 版本需要由 n 安装。

在某些情况下,这个功能非常有用。例如,有一个构建服务器,用于构建需要不同 Node 版本的程序。可以用 n use 命令触发每个构建,并能够指定该程序所需的 Node 版本。

差异化

NVM for Windows 和 n 有许多常见功能,也有一些独特的功能,这些功能会影响你使用每个工具的方式和位置。以下是一些主要差异的摘要:

能力NVM for Windowsn
安装Windows 安装程序或独立安装Bash 脚本或 npm 包
操作系统支持Windows(适用于 Linux/Mac 的不同实现)仅限 Linux/Mac
列出要安装的 Node 的可用版本?YesNo
列出已安装的 Node 版本?YesYes
在不同的 Node 版本之间安装和切换?YesYes
直接访问 Node 二进制文件?NoYes
选择要安装的架构(x86,x64)?YesYes

如果你使用 Linux/Mac 那么我很推荐你使用 n,因为它安装方便,并且 API 简单。我还是用过 homebrew 安装两个办版本,使用brew link --overwrite --force node命令来更改版本,很不方便,并且容错率很低

或者你可以在 Windows 上选择 NVM for Windows,同时在 Linux 构建服务器上选择 n

无论怎样,这两种工具都能很好地满足能够动态切换 Node 版本的需求。

就是这么简单了