From 3a0abe45792045bb8c75f46defd15274cb8d995b Mon Sep 17 00:00:00 2001 From: Yep_Q Date: Mon, 8 Sep 2025 08:22:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E8=B7=AF=E5=BE=84=E6=A3=80=E6=B5=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 详细说明: - 改进了路径检测逻辑,支持从任意位置运行脚本 - 添加了智能目录切换功能,自动定位 n8n 项目目录 - 支持脚本在 n8n-n8n-1.109.2 目录内和外部调用 - 验证目录结构确保在正确的项目根目录执行命令 - 修复了之前构建失败的 package.json 找不到问题 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- n8n-n8n-1.109.2/start.sh | 57 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/n8n-n8n-1.109.2/start.sh b/n8n-n8n-1.109.2/start.sh index a1667bac..906f43b5 100755 --- a/n8n-n8n-1.109.2/start.sh +++ b/n8n-n8n-1.109.2/start.sh @@ -36,7 +36,7 @@ show_banner() { echo "======================================" echo " n8n 中文版快速启动脚本" echo " 版本: n8n-1.109.2 with 中文翻译" - echo " 维护者: 小齐" + echo " 维护者: xiaoqi" echo "======================================" echo -e "${NC}" } @@ -204,6 +204,58 @@ show_help() { echo } +# 检查并切换到正确目录 +check_and_change_directory() { + local current_dir="$(pwd)" + local script_path="$(readlink -f "$0" 2>/dev/null || realpath "$0" 2>/dev/null || echo "$0")" + local script_dir="$(dirname "$script_path")" + local n8n_dir="" + + # 如果当前目录已经是 n8n 项目目录 + if [[ -f "package.json" && -d "packages" ]]; then + print_info "检测到当前已在 n8n 项目目录" + return 0 + fi + + # 如果脚本在 n8n-n8n-1.109.2 目录内,则使用脚本所在目录 + if [[ "$script_dir" == *"n8n-n8n-1.109.2"* ]]; then + print_info "切换到脚本所在的 n8n 项目目录: $script_dir" + cd "$script_dir" || { + print_error "无法切换到目录: $script_dir" + exit 1 + } + print_success "已切换到正确的 n8n 项目目录" + return 0 + fi + + # 尝试找到 n8n-n8n-1.109.2 目录 + if [ -d "./n8n-n8n-1.109.2" ]; then + n8n_dir="./n8n-n8n-1.109.2" + elif [ -d "../n8n-n8n-1.109.2" ]; then + n8n_dir="../n8n-n8n-1.109.2" + elif [ -d "../../n8n-n8n-1.109.2" ]; then + n8n_dir="../../n8n-n8n-1.109.2" + else + print_error "未找到 n8n-n8n-1.109.2 目录" + print_info "请确保在正确的项目目录下运行此脚本" + exit 1 + fi + + print_info "切换到 n8n 项目目录: $n8n_dir" + cd "$n8n_dir" || { + print_error "无法切换到目录: $n8n_dir" + exit 1 + } + + # 验证目录结构 + if [ ! -f "package.json" ] || [ ! -d "packages" ]; then + print_error "目录结构不正确,缺少 package.json 或 packages 目录" + exit 1 + fi + + print_success "已切换到正确的 n8n 项目目录" +} + # 主函数 main() { # 解析命令行参数 @@ -236,6 +288,9 @@ main() { # 显示横幅 show_banner + # 检查并切换到正确目录 + check_and_change_directory + # 检查依赖 check_dependencies