背景
新购入 M3 芯片的 Mac,需要进行常用开发环境配置。以下记录安装步骤与遇到的问题。
1. Homebrew
像 Mac 高手一样管理应用,从 Homebrew 开始
安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
添加环境变量
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
常用软件安装
brew install --cask iterm2
2. Node.js & NVM
推荐使用 nvm 来管理 Node.js 版本。
安装 nvm
brew install nvm
配置环境变量
shell 配置文件中添加环境变量,注意:路径需根据 Homebrew 实际安装位置调整:
- 查看 brew 安装路径:
brew --prefix
- 编辑shell 配置文件
vim ~/.zshrc
- 添加以下内容
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"
- 保存并使配置生效:
source ~/.zshrc
3. Oh My Zsh
我这里安装后会覆盖原有的 ~/.zshrc,需注意备份。
安装
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
修改主题
编辑 ~/.zshrc:
ZSH_THEME="robbyrussell"
4. 自动切换 Node 版本
根据项目目录下的 .nvmrc 文件自动切换 Node 版本,在 ~/.zshrc 添加以下内容(需放在 nvm 初始化之后):
autoload -U add-zsh-hook
load-nvmrc() {
local nvmrc_path
nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version
nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
nvm use
fi
elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
5. 常见问题 & 解决方案
低版本 Node 在 M 系芯片下安装失败
解决方法:
arch -x86_64 zsh
切换 Node 版本失败,提示 env: node: Bad CPU type in executable
安装 Rosetta:
softwareupdate --install-rosetta