# 变量定义
APP_NAME = ruoyi-vue-template
NODE = node
NPM = npm
APP_PORT = $(or $(APP_PORT_1),5173)
RESOURCE_PATH = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))/.resource/resource_dev.json
LOG_FILE = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))/.logs/app.log

# 安装命令
.PHONY: install
install:
	@echo "检查 Node.js 版本..."
	@$(NODE) --version
	@echo "检查 npm 版本..."
	@$(NPM) --version
	@mkdir -p $(dir $(LOG_FILE))
	@echo "正在安装依赖..."
	@$(NPM) install
	@echo "✅ 依赖安装完成！"

# 运行命令
.PHONY: run
run:
	@echo "正在启动 若依管理系统..."
	@RESOURCE_PATH=$(RESOURCE_PATH) $(NPM) run dev > $(LOG_FILE) 2>&1 &
	@echo "✅ 若依管理系统已启动，端口: $(APP_PORT)"

# 停止命令
.PHONY: stop
stop:
	@echo "正在停止 若依管理系统..."
	@if command -v lsof >/dev/null 2>&1; then \
		echo "使用 lsof 命令停止应用..."; \
		lsof -ti:$(APP_PORT) | xargs kill -9 2>/dev/null || echo "没有找到运行在端口 $(APP_PORT) 的进程"; \
	elif command -v ss >/dev/null 2>&1; then \
		echo "使用 ss 命令停止应用..."; \
		ss -ltnp | grep ':$(APP_PORT)' | awk '{print $7}' | sed 's/.*pid=\([0-9]*\).*/\1/' | xargs kill 2>/dev/null || echo "没有找到运行在端口 $(APP_PORT) 的进程"; \
	else \
		echo "❌ 错误：系统中没有找到 lsof 或 ss 命令"; \
		exit 1; \
	fi
	@echo "✅ 若依管理系统已停止"

# 构建命令
.PHONY: build
build:
	@echo "正在构建 若依管理系统..."
	@$(NPM) run build
	@echo "✅ 构建完成！"

# 预览命令
.PHONY: preview
preview:
	@echo "正在预览构建结果..."
	@$(NPM) run preview

# 清理命令
.PHONY: clean
clean:
	@echo "正在清理日志文件..."
	@rm -f $(LOG_FILE)
	@echo "✅ 日志文件已清理" 