Initial commit
This commit is contained in:
97
start-server.sh
Executable file
97
start-server.sh
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 3D 店內導引 Demo - 啟動伺服器腳本
|
||||
# 使用方式: ./start-server.sh [dev|prod]
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# PID 檔案位置
|
||||
PID_FILE="$SCRIPT_DIR/.server.pid"
|
||||
LOG_FILE="$SCRIPT_DIR/.server.log"
|
||||
|
||||
# 檢查是否已經在執行
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
PID=$(cat "$PID_FILE")
|
||||
if ps -p "$PID" > /dev/null 2>&1; then
|
||||
echo "伺服器已在執行中 (PID: $PID)"
|
||||
echo "請先執行 ./stop-server.sh 關閉伺服器"
|
||||
exit 1
|
||||
else
|
||||
# 清理過期的 PID 檔案
|
||||
rm -f "$PID_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 取得本機 IP
|
||||
get_local_ip() {
|
||||
# 嘗試不同方式取得 IP
|
||||
ip route get 1 2>/dev/null | awk '{print $7; exit}' || \
|
||||
hostname -I 2>/dev/null | awk '{print $1}' || \
|
||||
ifconfig 2>/dev/null | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -1 || \
|
||||
echo "無法取得"
|
||||
}
|
||||
|
||||
LOCAL_IP=$(get_local_ip)
|
||||
PORT=3000
|
||||
|
||||
# 判斷模式
|
||||
MODE=${1:-dev}
|
||||
|
||||
echo "=========================================="
|
||||
echo " 3D 店內導引 Demo 伺服器"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
if [ "$MODE" = "prod" ]; then
|
||||
echo "模式: 生產環境 (使用建構後的靜態檔案)"
|
||||
echo ""
|
||||
echo "正在建構專案..."
|
||||
npm run build > /dev/null 2>&1
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "建構失敗!請檢查錯誤訊息。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "建構完成,啟動預覽伺服器..."
|
||||
nohup npm run preview:host > "$LOG_FILE" 2>&1 &
|
||||
else
|
||||
echo "模式: 開發環境 (支援熱更新)"
|
||||
echo ""
|
||||
echo "正在啟動開發伺服器..."
|
||||
nohup npm run dev:host > "$LOG_FILE" 2>&1 &
|
||||
fi
|
||||
|
||||
# 儲存 PID
|
||||
SERVER_PID=$!
|
||||
echo $SERVER_PID > "$PID_FILE"
|
||||
|
||||
# 等待伺服器啟動
|
||||
sleep 2
|
||||
|
||||
# 檢查是否成功啟動
|
||||
if ps -p "$SERVER_PID" > /dev/null 2>&1; then
|
||||
echo ""
|
||||
echo "伺服器啟動成功!"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 存取網址"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo " 本機存取: http://localhost:$PORT"
|
||||
echo " 遠端存取: http://$LOCAL_IP:$PORT"
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "PID: $SERVER_PID"
|
||||
echo "日誌檔案: $LOG_FILE"
|
||||
echo ""
|
||||
echo "關閉伺服器: ./stop-server.sh"
|
||||
echo ""
|
||||
else
|
||||
echo "伺服器啟動失敗!"
|
||||
echo "請檢查日誌: cat $LOG_FILE"
|
||||
rm -f "$PID_FILE"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user