Mac 上的开发配置总结

2022-09-16 16:50:13 浏览数 (1)

记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。

配置文件

Mac 上有很多配置文件都可以用来保存环境变量等配置,根据自己的理解记录了四个文件的用途:

代码语言:javascript复制
# etc/profile        系统配置文件
# etc/.bash_profile  系统环境变量配置
# ~/.bash_profile    个人环境变量配置
# ~/.zshrc           zsh 的配置文件

编辑最多的应该是 ~/.bash_profile~/.zshrc, 基本上建议所有的个人配置都放在 ~/.bash_profile 中,然后在 ~/.zshrc 最后执行 source ~/.bash_profile, 这样也方便将自己的个人环境变量配置备份。

常用命令

代码语言:javascript复制
# 安装/卸载 homebrew install.sh/uninstall.sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 注意:安装 Homebrew 会下载 node, 请做好 node 环境被破坏的准备

# 显示隐藏文件 true/false or cmd shift .
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder

# 释放端口
lsof -i:$your_port  # 1. 查看使用端口进程
kill -9 $your_PID   # 2. 释放进程

Node

代码语言:javascript复制
# 设置阿里镜像
npm config set registry=https://registry.npmmirror.com
# npm config set registry https://registry.npmjs.org

# GitHub 仓库下载地址前缀镜像
# disturl=https://registry.npmmirror.com/-/binary/

# 全局安装的依赖
npm install -g npm@8.13.1
npm install -g cnpm
npm install -g @vue/cli
npm install -g nvm
npm install -g nrm
npm install -g yarn
npm install -g yrm

# npm 参数
--ignore-scripts  # 忽略脚本错误
--force  # 会无视冲突,并强制获取远端 npm 库资源,即使本地有资源也会覆盖掉
--legacy-peer-deps  # 安装时忽略所有 peerDependencies,忽视依赖冲突,采用 npm 版本 4 到版本 6 的样式去安装依赖,已有的依赖不会覆盖

# 清除缓存
npm cache clean --force
rm -rf node_modules
rm -rf package-lock.json
npm install

# nvm
nvm alias default [node_version]  # 设置默认版本

# 检查过时依赖
npm outdated

# 安全更新
npm update

# ncu 更新检查工具
# https://blog.51cto.com/u_13028258/5115637?b=totalstatistic
npm install -g npm-check-updates
## 检查
ncu
ncu vue
## 更新
ncu -u
ncu -u vue

electron 相关配置

代码语言:javascript复制
# 设置 electron 镜像仓库
# https://registry.npmmirror.com/-/binary/electron
# 13.1.7 版本 下载链接可能会拼错导致 404,要设置成 https://registry.npmmirror.com/-/binary/electron/v
npm config set electron_mirror=https://npmmirror.com/mirrors/electron/

Git

代码语言:javascript复制
# 设置 electron 镜像仓库
# https://registry.npmmirror.com/-/binary/electron
# 13.1.7 版本 下载链接可能会拼错导致 404,要设置成 https://registry.npmmirror.com/-/binary/electron/v
npm config set electron_mirror=https://npmmirror.com/mirrors/electron/

提示

将内容写成 shell 脚本,在 SourceTree 中自定义操作。

SourceTree

Custom actions

  • Script target: /bin/bash
  • Parameters: /Users/liruihao/workspace/.shell/ssh.sh

同步远程仓库标签分支脚本

代码语言:javascript复制
#! /bin/bash
cd $REPO/.git
git tag -l | xargs git tag -d
# git fetch origin --prune
# git fetch origin --tags
git fetch origin --prune --prune-tags

Terminal

  • Terminal: 系统自带
  • Shell: zsh
  • 美化: ohmyzsh

修改启动语

代码语言:javascript复制
vim $PREFIX/etc/motd

sublime-text 3

代码语言:javascript复制
# Terminal 启用 sublime 别名 subl
## 1.设置软链(推荐)
sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
## 2.设置别名
vim ~/.bash_profile
alias subl="'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'"
source ~/.bash_profile # 每打开一个命令窗口,需要先让命令生效

.bash_profile 备份

代码语言:javascript复制
# -------------------------------------
# This configuration is for Lruihao.
# https://lruihao.cn/posts/config4mac/
# -------------------------------------

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

# workspace
export WORKSPACE="$HOME/workspace"

# alias
alias subl="'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'"
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

# nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# maven
export M2_HOME=/Users/liruihao/Applications/apache-maven-3.8.5
export PATH=$PATH:$M2_HOME/bin

# jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

# java
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
export JAVA_HOME=$JAVA_8_HOME  # 设置一个中间变量,为了方便多个 JDK 版本时更换 JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH:.  # 冒号前代表 JDK 目录下的 bin 目录,冒号后代表当前目录
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# jmeter
export JMETER_HOME=/Users/liruihao/jmeter/apache-jmeter-5.4.1
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar

# platform-tools of Android SDK
export PATH=$PATH:/Users/liruihao/Applications/platform-tools

# Electron-Mac app development
export CSC_LINK=/Users/liruihao/workspace/mac_app_dev/Mac.p12
export CSC_KEY_PASSWORD=xxxxxxxxx

# yarn
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"

# zsh custom plugin
# https://mimosa-pudica.net/zsh-incremental.html
source $WORKSPACE/incr*.zsh

.vimrc

Path: ~/.vimrc

先添加一些基础配置 basic.vim

代码语言:javascript复制
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Custom config for Lruihao
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Enable mouse
set mouse=a
" Enable line-number
set number

0 人点赞