134 lines
2.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 设置错误时立即退出
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 安装nvm
install_nvm() {
log_info "安装nvm..."
# 下载nvm安装脚本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 配置nvm环境变量
cat >> ~/.zshrc << EOF
# NVM配置
export NVM_DIR="\$HOME/.nvm"
[ -s "\$NVM_DIR/nvm.sh" ] && \. "\$NVM_DIR/nvm.sh" # 加载nvm
[ -s "\$NVM_DIR/bash_completion" ] && \. "\$NVM_DIR/bash_completion" # 加载nvm bash_completion
EOF
# 重新加载配置
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
log_info "nvm安装完成"
}
# 安装Node.js
install_nodejs() {
log_info "安装Node.js..."
# 安装最新的LTS版本
nvm install --lts
# 设置默认版本
nvm alias default 'lts/*'
# 使用默认版本
nvm use default
log_info "Node.js安装完成"
}
# 配置npm
configure_npm() {
log_info "配置npm..."
# 设置npm镜像
npm config set registry https://registry.npmmirror.com
# 设置npm全局安装路径
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
# 添加npm全局路径到环境变量
cat >> ~/.zshrc << EOF
# npm全局路径
export PATH=~/.npm-global/bin:\$PATH
EOF
log_info "npm配置完成"
}
# 安装全局npm包
install_global_packages() {
log_info "安装全局npm包..."
# 安装常用开发工具
npm install -g typescript
npm install -g ts-node
npm install -g nodemon
npm install -g yarn
npm install -g pnpm
npm install -g @vue/cli
npm install -g create-react-app
npm install -g @angular/cli
npm install -g nx
# 安装开发效率工具
npm install -g serve
npm install -g http-server
npm install -g json-server
npm install -g concurrently
# 安装代码质量工具
npm install -g eslint
npm install -g prettier
npm install -g stylelint
log_info "全局npm包安装完成"
}
# 主函数
main() {
log_info "开始安装Node.js开发环境..."
# 安装nvm
install_nvm
# 安装Node.js
install_nodejs
# 配置npm
configure_npm
# 安装全局npm包
install_global_packages
log_info "Node.js开发环境安装完成"
log_info "请运行 'source ~/.zshrc' 或重新打开终端以使环境变量生效。"
}
# 执行主函数
main