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

推荐订阅源

V
Visual Studio Blog
C
Cisco Blogs
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
M
MIT News - Artificial intelligence
L
LINUX DO - 热门话题
I
InfoQ
GbyAI
GbyAI
NISL@THU
NISL@THU
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Engineering at Meta
Engineering at Meta
H
Hackread – Cybersecurity News, Data Breaches, AI and More
TaoSecurity Blog
TaoSecurity Blog
Simon Willison's Weblog
Simon Willison's Weblog
A
About on SuperTechFans
Spread Privacy
Spread Privacy
月光博客
月光博客
W
WeLiveSecurity
AWS News Blog
AWS News Blog
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
Security Latest
Security Latest
人人都是产品经理
人人都是产品经理
PCI Perspectives
PCI Perspectives
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Microsoft Azure Blog
Microsoft Azure Blog
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
T
Troy Hunt's Blog
Martin Fowler
Martin Fowler
The Hacker News
The Hacker News
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
Stack Overflow Blog
Stack Overflow Blog
K
Kaspersky official blog
Cloudbric
Cloudbric
H
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
D
DataBreaches.Net
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Tenable Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - Franky
L
LINUX DO - 最新话题
MyScale Blog
MyScale Blog

講評世界

My App Defaults 2023 读书的意义 そして、次の曲が始まるのです 从零开始的 RSSHub Docker 私有化部署指南 使用 Homebrew 安装 Typora 的 0.11.18 版本 使用 TypeScript 为 Vue 组件的 prop 标注类型 【译文】Grid 用于布局, Flexbox 用于组件 【译文】IndexedDB 为什么这么慢?如何更好的使用呢? Hello 2022 「他山之石」零贰 「他山之石」零壹 「言論」 零壹 给 icarus 主题增加所有文章的字数统计 hexo 无法在本地实时预览 JavaScript 立即调用的函数表达式(IIFE) m1 芯片安装 nvm 提示 command not found 如何在 JavaScript 完美的确定一个数据的类型 Cookie?小饼干! 使用 RSS 在推荐算法中获取主动权
解决 nvm 无法在 arm 架构下安装 V15 以下的 node 版本 的问题
Moeyua · 2021-11-08 · via 講評世界

迫于需要维护公司一个比较老的项目,所以在配置 macOS 环境的时候选择了使用 nvm 来管理多个 node,但是遇到了一些问题。

根据 nvm 官方文档的说法:

January 2021: there are no pre-compiled NodeJS binaries for versions prior to 15.x for Apple’s new M1 chip (arm64 architecture).

也就是说 M1 芯片( arm64 )现在并没有对应的预编译版本,所以安装之后需要进行编译。而在编译过程中会遇到一些问题:

  • 编译成功,但是因为内存不足而崩溃( crashes ),增加足够的 node 内存后再次尝试但依然提示内存不足;
  • 直接编译失败。

这里我遇到的是第二种情况,也就是直接编译失败。那么如何解决这个问题呢, nvm 其实在文档里给出了一个方案,这个方案有两个前提:

  • 使用 zsh
  • 已经安装好 Rosetta 2 macOS 应该在 macOS X 上的默认终端就已经是 zsh 了,而 Rosetta 2 如果在你第一次打开因特尔架构的软件时就已经安装过了,如果没有安装过也可以手动进行安装:
softwareupdate --install-rosetta

以上两个条件都满足之后我们就可以处理这个问题了。

  1. 首先检查自己的 node 架构,返回的结果应该是 arm64,这个是 M1 芯片的架构,也就是我们问题的元凶
node -p process.arch

# arm64
  1. 在 64 位 x86 架构下启动一个新的 zsh 进程;
arch -x86_64 zsh
  1. 下载你需要的 node 版本,这个 node 将会是 x86 架构的;
nvm install node
  1. 现在检查一下架构是否正确;
node -p process.arch

# x64
  1. 退出这个进程。
exit

到这里我们就成功的安装好了一个低版本的 node。