134 lines
2.7 KiB
Bash
134 lines
2.7 KiB
Bash
#!/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 |