76 lines
1.5 KiB
Bash
Executable File
76 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 构建脚本 - 自动加载 nvm 并执行构建
|
||
|
||
set -e # 遇到错误立即退出
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 打印带颜色的消息
|
||
print_info() {
|
||
echo -e "${GREEN}[INFO]${NC} $1"
|
||
}
|
||
|
||
print_warn() {
|
||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||
}
|
||
|
||
print_error() {
|
||
echo -e "${RED}[ERROR]${NC} $1"
|
||
}
|
||
|
||
# 获取脚本所在目录
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
cd "$SCRIPT_DIR"
|
||
|
||
print_info "开始构建项目..."
|
||
|
||
# 加载 nvm
|
||
if [ -s "$HOME/.nvm/nvm.sh" ]; then
|
||
print_info "加载 nvm..."
|
||
export NVM_DIR="$HOME/.nvm"
|
||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||
else
|
||
print_warn "未找到 nvm,尝试使用系统 Node.js..."
|
||
fi
|
||
|
||
# 检查 Node.js 是否可用
|
||
if ! command -v node &> /dev/null; then
|
||
print_error "Node.js 未找到!请确保已安装 Node.js 或配置了 nvm。"
|
||
exit 1
|
||
fi
|
||
|
||
# 显示 Node.js 版本
|
||
NODE_VERSION=$(node --version)
|
||
print_info "使用 Node.js 版本: $NODE_VERSION"
|
||
|
||
# 检查 pnpm 是否可用
|
||
if ! command -v pnpm &> /dev/null; then
|
||
print_error "pnpm 未找到!请先安装 pnpm: npm install -g pnpm"
|
||
exit 1
|
||
fi
|
||
|
||
# 显示 pnpm 版本
|
||
PNPM_VERSION=$(pnpm --version)
|
||
print_info "使用 pnpm 版本: $PNPM_VERSION"
|
||
|
||
# 执行构建
|
||
print_info "执行构建命令: pnpm run build"
|
||
echo ""
|
||
|
||
pnpm run build
|
||
|
||
# 检查构建结果
|
||
if [ $? -eq 0 ]; then
|
||
print_info "构建成功完成!"
|
||
print_info "构建产物位于: $SCRIPT_DIR/dist"
|
||
exit 0
|
||
else
|
||
print_error "构建失败!"
|
||
exit 1
|
||
fi
|