#!/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