#!/bin/bash # 微信插件 TypeScript 编译脚本 # 用于快速编译 weixin-plugin 目录下的 TypeScript 文件 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" WEIXIN_PLUGIN_DIR="$PROJECT_ROOT/weixin-plugin" echo "微信插件编译脚本" echo "================" echo "" # 检查依赖 echo "1. 检查依赖..." if ! command -v npx &> /dev/null; then echo " ✗ npx 未找到" echo " 请确保 Node.js 和 npm 已正确安装" exit 1 fi echo " ✓ npx 已找到" # 检查是否安装了 typescript if ! npm list typescript &> /dev/null; then echo " 正在安装 typescript..." npm install fi echo " ✓ typescript 已准备就绪" echo "" # 创建临时 tsconfig echo "2. 创建编译配置..." cat > "$WEIXIN_PLUGIN_DIR/tsconfig.json" << 'EOF' { "compilerOptions": { "target": "ES2020", "module": "ESNext", "lib": ["ES2020"], "moduleResolution": "bundler", "esModuleInterop": true, "skipLibCheck": true, "strict": false, "resolveJsonModule": true, "allowSyntheticDefaultImports": true, "forceConsistentCasingInFileNames": true, "outDir": "./dist", "rootDir": ".", "declaration": false, "sourceMap": false }, "include": [ "**/*.ts" ], "exclude": [ "node_modules", "dist" ] } EOF echo " ✓ tsconfig.json 已创建" echo "" # 编译 echo "3. 开始编译..." echo "" cd "$WEIXIN_PLUGIN_DIR" # 使用 tsc 编译 npx tsc echo "" echo " ✓ 编译完成" echo "" # 检查输出 echo "4. 检查输出文件..." JS_COUNT=$(find dist -name "*.js" -type f 2>/dev/null | wc -l) echo " 生成了 $JS_COUNT 个 JavaScript 文件" if [ "$JS_COUNT" -eq 0 ]; then echo " ✗ 编译可能失败,dist 目录为空" exit 1 fi echo "" echo "================" echo "编译成功!" echo "" echo "编译后的文件位于: $WEIXIN_PLUGIN_DIR/dist/" echo "" echo "你现在可以运行测试脚本了:" echo " npm run test:simple"