#!/bin/bash
echo "========================================"
echo "开始构建 Mini Language VSCode 扩展"
echo "========================================"
echo ""
echo "[1/8] 检查 nvm..."
if ! command -v nvm &> /dev/null; then
echo "安装 nvm..."
curl -o- https://ghfast.top/https://raw.githubusercontent.com/nvm-sh/nvm/refs/heads/master/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
else
echo "nvm 已安装"
fi
echo ""
echo "[2/8] 安装 Node.js v26..."
nvm install 26
nvm use 26
echo "Node.js 版本: $(node --version)"
echo ""
echo "[3/8] 配置 npm 镜像源..."
npm config set registry https://registry.npmmirror.com
echo ""
echo "[4/8] 配置 npm 全局目录..."
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
if ! grep -q '~/.npm-global/bin' ~/.zshrc; then
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
fi
echo ""
echo "[5/8] 安装 vsce..."
npm install -g @vscode/vsce
echo ""
echo "[6/8] 安装项目依赖..."
npm install
echo ""
echo "[7/8] 编译 TypeScript..."
npm run compile
echo ""
echo "[8/8] 打包扩展..."
vsce package --baseContentUrl https://gitcode.com/hechenyv/mini-lang-vscode --baseImagesUrl https://gitcode.com/hechenyv/mini-lang-vscode
echo ""
echo "========================================"
echo "构建完成"
echo "========================================"
echo ""
ls -la *.vsix
echo ""
echo "安装命令: code --install-extension $(ls *.vsix)"
echo ""