From d0d256f8ef8974f9d8b033225104bacb6d5f9ef9 Mon Sep 17 00:00:00 2001 From: Yep_Q Date: Mon, 8 Sep 2025 15:36:24 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9Abat=E6=96=87=E4=BB=B6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.local.json | 4 +- n8n-n8n-1.109.2/start.bat | 106 +++++------ n8n-n8n-1.109.2/start.bat.bak | 347 ++++++++++++++++++++++++++++++++++ 3 files changed, 400 insertions(+), 57 deletions(-) create mode 100644 n8n-n8n-1.109.2/start.bat.bak diff --git a/.claude/settings.local.json b/.claude/settings.local.json index b0428530..d5d6594c 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -68,7 +68,9 @@ "Bash(open http://localhost:4173)", "Bash(find:*)", "Bash(open index.html)", - "Bash(git push:*)" + "Bash(git push:*)", + "Bash(sed:*)", + "Bash(/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/n8n-n8n-1.109.2/start.bat)" ], "defaultMode": "acceptEdits", "additionalDirectories": [ diff --git a/n8n-n8n-1.109.2/start.bat b/n8n-n8n-1.109.2/start.bat index 099813a7..43468aba 100644 --- a/n8n-n8n-1.109.2/start.bat +++ b/n8n-n8n-1.109.2/start.bat @@ -1,24 +1,18 @@ @echo off +chcp 65001 >nul 2>&1 REM n8n 中文版快速启动脚本 (Windows版) REM 作者: 小齐 REM 最后更新: 2025-09-08 setlocal enabledelayedexpansion -REM 设置颜色 -set "RED=[91m" -set "GREEN=[92m" -set "YELLOW=[93m" -set "BLUE=[94m" -set "NC=[0m" - REM 显示启动横幅 :show_banner -echo %BLUE%======================================%NC% +echo ====================================== echo n8n 中文版快速启动脚本 echo 版本: n8n-1.109.2 with 中文翻译 echo 维护者: xiaoqi -echo %BLUE%======================================%NC% +echo ====================================== echo. REM 解析命令行参数 @@ -60,7 +54,7 @@ if /I "%~1"=="--check" ( shift goto parse_args ) -echo %RED%[错误]%NC% 未知选项: %~1 +echo [错误] 未知选项: %~1 goto show_help :main_execution @@ -69,7 +63,7 @@ call :check_and_change_directory if errorlevel 1 goto error_exit REM 检查依赖 -echo %BLUE%[信息]%NC% 正在检查系统依赖... +echo [信息] 正在检查系统依赖... call :check_dependencies if errorlevel 1 goto error_exit @@ -85,20 +79,20 @@ call :setup_environment REM 仅检查模式 if defined CHECK_ONLY ( - echo %GREEN%[成功]%NC% 系统状态检查完成,一切正常 + echo [成功] 系统状态检查完成,一切正常 goto end ) REM 强制构建或检查构建状态 if defined FORCE_BUILD ( - echo %BLUE%[信息]%NC% 强制重新构建项目... + echo [信息] 强制重新构建项目... call pnpm build > build.log 2>&1 if errorlevel 1 ( - echo %RED%[错误]%NC% 构建失败,请查看 build.log + echo [错误] 构建失败,请查看 build.log type build.log | more goto error_exit ) - echo %GREEN%[成功]%NC% 构建完成 + echo [成功] 构建完成 ) else ( call :check_build if errorlevel 1 goto error_exit @@ -106,8 +100,8 @@ if defined FORCE_BUILD ( REM 开发模式或正常启动 if defined DEV_MODE ( - echo %BLUE%[信息]%NC% 正在以开发模式启动 n8n... - echo %YELLOW%[警告]%NC% 开发模式启动时间较长,请耐心等待... + echo [信息] 正在以开发模式启动 n8n... + echo [警告] 开发模式启动时间较长,请耐心等待... call pnpm dev ) else ( call :start_n8n @@ -119,7 +113,7 @@ REM ========== 函数定义 ========== :check_and_change_directory REM 检查当前目录是否为 n8n 项目目录 if exist "package.json" if exist "packages" ( - echo %BLUE%[信息]%NC% 检测到当前已在 n8n 项目目录 + echo [信息] 检测到当前已在 n8n 项目目录 exit /b 0 ) @@ -130,13 +124,13 @@ set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%" REM 如果脚本在 n8n-n8n-1.109.2 目录内 echo %SCRIPT_DIR% | findstr /C:"n8n-n8n-1.109.2" >nul if not errorlevel 1 ( - echo %BLUE%[信息]%NC% 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR% + echo [信息] 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR% cd /d "%SCRIPT_DIR%" if errorlevel 1 ( - echo %RED%[错误]%NC% 无法切换到目录: %SCRIPT_DIR% + echo [错误] 无法切换到目录: %SCRIPT_DIR% exit /b 1 ) - echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录 + echo [成功] 已切换到正确的 n8n 项目目录 exit /b 0 ) @@ -148,67 +142,67 @@ if exist "n8n-n8n-1.109.2\" ( ) else if exist "..\..\n8n-n8n-1.109.2\" ( cd ..\..\n8n-n8n-1.109.2 ) else ( - echo %RED%[错误]%NC% 未找到 n8n-n8n-1.109.2 目录 - echo %BLUE%[信息]%NC% 请确保在正确的项目目录下运行此脚本 + echo [错误] 未找到 n8n-n8n-1.109.2 目录 + echo [信息] 请确保在正确的项目目录下运行此脚本 exit /b 1 ) REM 验证目录结构 if not exist "package.json" ( - echo %RED%[错误]%NC% 目录结构不正确,缺少 package.json + echo [错误] 目录结构不正确,缺少 package.json exit /b 1 ) if not exist "packages" ( - echo %RED%[错误]%NC% 目录结构不正确,缺少 packages 目录 + echo [错误] 目录结构不正确,缺少 packages 目录 exit /b 1 ) -echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录 +echo [成功] 已切换到正确的 n8n 项目目录 exit /b 0 :check_dependencies REM 检查 Node.js where node >nul 2>nul if errorlevel 1 ( - echo %RED%[错误]%NC% Node.js 未安装或未在 PATH 中 + echo [错误] Node.js 未安装或未在 PATH 中 exit /b 1 ) REM 检查 pnpm where pnpm >nul 2>nul if errorlevel 1 ( - echo %RED%[错误]%NC% pnpm 未安装或未在 PATH 中 - echo %BLUE%[信息]%NC% 请先安装 pnpm: npm install -g pnpm + echo [错误] pnpm 未安装或未在 PATH 中 + echo [信息] 请先安装 pnpm: npm install -g pnpm exit /b 1 ) -echo %GREEN%[成功]%NC% 依赖检查通过 +echo [成功] 依赖检查通过 exit /b 0 :check_port REM 检查端口 5678 是否被占用 netstat -ano | findstr :5678 >nul 2>nul if not errorlevel 1 ( - echo %YELLOW%[警告]%NC% 端口 5678 已被占用 - echo %BLUE%[信息]%NC% 正在查看占用进程... + echo [警告] 端口 5678 已被占用 + echo [信息] 正在查看占用进程... netstat -ano | findstr :5678 set /p "kill_process=是否杀死占用进程?(y/N): " if /I "!kill_process!"=="y" ( - echo %BLUE%[信息]%NC% 正在终止占用进程... + echo [信息] 正在终止占用进程... for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5678') do ( taskkill /PID %%a /F >nul 2>nul ) - echo %GREEN%[成功]%NC% 进程已终止 + echo [成功] 进程已终止 ) else ( - echo %RED%[错误]%NC% 无法启动 n8n,端口被占用 + echo [错误] 无法启动 n8n,端口被占用 exit /b 1 ) ) exit /b 0 :stop_existing -echo %BLUE%[信息]%NC% 正在停止现有的 n8n 进程... +echo [信息] 正在停止现有的 n8n 进程... REM 停止可能存在的 n8n 相关进程 taskkill /F /IM node.exe /FI "WINDOWTITLE eq *n8n*" >nul 2>nul @@ -217,11 +211,11 @@ taskkill /F /IM node.exe /FI "WINDOWTITLE eq *pnpm*" >nul 2>nul REM 等待2秒 timeout /t 2 /nobreak >nul -echo %GREEN%[成功]%NC% 已停止现有进程 +echo [成功] 已停止现有进程 exit /b 0 :setup_environment -echo %BLUE%[信息]%NC% 正在设置环境变量... +echo [信息] 正在设置环境变量... set "N8N_DEFAULT_LOCALE=zh-CN" set "N8N_SECURE_COOKIE=false" @@ -229,7 +223,7 @@ set "DB_SQLITE_POOL_SIZE=5" set "N8N_RUNNERS_ENABLED=true" set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false" -echo %GREEN%[成功]%NC% 环境变量已设置 +echo [成功] 环境变量已设置 echo - N8N_DEFAULT_LOCALE=zh-CN echo - N8N_SECURE_COOKIE=false echo - DB_SQLITE_POOL_SIZE=5 @@ -245,22 +239,22 @@ if not exist "packages\core\dist\" ( exit /b 0 :need_build -echo %YELLOW%[警告]%NC% 检测到项目需要构建 +echo [警告] 检测到项目需要构建 set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): " if /I "!build_project!"=="y" ( - echo %BLUE%[信息]%NC% 正在构建项目... + echo [信息] 正在构建项目... call pnpm build > build.log 2>&1 if errorlevel 1 ( - echo %RED%[错误]%NC% 构建失败,请查看 build.log + echo [错误] 构建失败,请查看 build.log type build.log | more exit /b 1 ) - echo %GREEN%[成功]%NC% 项目构建完成 + echo [成功] 项目构建完成 ) exit /b 0 :start_n8n -echo %BLUE%[信息]%NC% 正在启动 n8n 中文版... +echo [信息] 正在启动 n8n 中文版... REM 创建日志文件名 for /f "tokens=2-4 delims=/ " %%a in ('date /t') do ( @@ -272,7 +266,7 @@ for /f "tokens=1-2 delims=: " %%a in ('time /t') do ( set "LOG_FILE=n8n-%today%-%now%.log" set "LOG_FILE=%LOG_FILE: =%" -echo %GREEN%正在启动 n8n 服务...%NC% +echo 正在启动 n8n 服务... REM 启动 n8n 在新窗口 start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1" @@ -295,17 +289,17 @@ goto wait_loop :start_success echo. -echo %GREEN%[成功]%NC% n8n 启动成功! +echo [成功] n8n 启动成功! echo. -echo %GREEN%========== 启动信息 ==========%NC% -echo 📱 访问地址: %BLUE%http://localhost:5678%NC% -echo 🌏 界面语言: %GREEN%中文 (zh-CN)%NC% -echo 📝 日志文件: %YELLOW%%LOG_FILE%%NC% -echo %GREEN%=============================%NC% +echo ========== 启动信息 ========== +echo 📱 访问地址: http://localhost:5678 +echo 🌏 界面语言: 中文 (zh-CN) +echo 📝 日志文件: %LOG_FILE% +echo ============================= echo. -echo %BLUE%[信息]%NC% 使用 Ctrl+C 停止服务 +echo [信息] 使用 Ctrl+C 停止服务 echo. -echo %YELLOW%[提示]%NC% 正在监控日志输出... +echo [提示] 正在监控日志输出... echo. REM 持续显示日志 @@ -319,8 +313,8 @@ exit /b 0 :start_failed echo. -echo %RED%[错误]%NC% n8n 启动失败 -echo %BLUE%[信息]%NC% 查看日志文件: %LOG_FILE% +echo [错误] n8n 启动失败 +echo [信息] 查看日志文件: %LOG_FILE% if exist "%LOG_FILE%" ( type "%LOG_FILE%" | more ) @@ -343,7 +337,7 @@ echo. goto end :error_exit -echo %RED%[错误]%NC% 脚本执行失败 +echo [错误] 脚本执行失败 pause exit /b 1 diff --git a/n8n-n8n-1.109.2/start.bat.bak b/n8n-n8n-1.109.2/start.bat.bak new file mode 100644 index 00000000..f8d375be --- /dev/null +++ b/n8n-n8n-1.109.2/start.bat.bak @@ -0,0 +1,347 @@ +@echo off +chcp 65001 >nul 2>&1 +REM n8n 中文版快速启动脚本 (Windows版) +REM 作者: 小齐 +REM 最后更新: 2025-09-08 + +setlocal enabledelayedexpansion + +REM 显示启动横幅 +:show_banner +echo ====================================== +echo n8n 中文版快速启动脚本 +echo 版本: n8n-1.109.2 with 中文翻译 +echo 维护者: xiaoqi +echo ====================================== +echo. + +REM 解析命令行参数 +set "DEV_MODE=" +set "FORCE_BUILD=" +set "CHECK_ONLY=" + +:parse_args +if "%~1"=="" goto main_execution +if /I "%~1"=="-h" goto show_help +if /I "%~1"=="--help" goto show_help +if /I "%~1"=="-d" ( + set "DEV_MODE=true" + shift + goto parse_args +) +if /I "%~1"=="--dev" ( + set "DEV_MODE=true" + shift + goto parse_args +) +if /I "%~1"=="-b" ( + set "FORCE_BUILD=true" + shift + goto parse_args +) +if /I "%~1"=="--build" ( + set "FORCE_BUILD=true" + shift + goto parse_args +) +if /I "%~1"=="-c" ( + set "CHECK_ONLY=true" + shift + goto parse_args +) +if /I "%~1"=="--check" ( + set "CHECK_ONLY=true" + shift + goto parse_args +) +echo [错误] 未知选项: %~1 +goto show_help + +:main_execution +REM 检查并切换到正确目录 +call :check_and_change_directory +if errorlevel 1 goto error_exit + +REM 检查依赖 +echo %BLUE%[信息]%NC% 正在检查系统依赖... +call :check_dependencies +if errorlevel 1 goto error_exit + +REM 检查端口占用 +call :check_port +if errorlevel 1 goto error_exit + +REM 停止现有进程 +call :stop_existing + +REM 设置环境变量 +call :setup_environment + +REM 仅检查模式 +if defined CHECK_ONLY ( + echo %GREEN%[成功]%NC% 系统状态检查完成,一切正常 + goto end +) + +REM 强制构建或检查构建状态 +if defined FORCE_BUILD ( + echo %BLUE%[信息]%NC% 强制重新构建项目... + call pnpm build > build.log 2>&1 + if errorlevel 1 ( + echo %RED%[错误]%NC% 构建失败,请查看 build.log + type build.log | more + goto error_exit + ) + echo %GREEN%[成功]%NC% 构建完成 +) else ( + call :check_build + if errorlevel 1 goto error_exit +) + +REM 开发模式或正常启动 +if defined DEV_MODE ( + echo %BLUE%[信息]%NC% 正在以开发模式启动 n8n... + echo %YELLOW%[警告]%NC% 开发模式启动时间较长,请耐心等待... + call pnpm dev +) else ( + call :start_n8n +) +goto end + +REM ========== 函数定义 ========== + +:check_and_change_directory +REM 检查当前目录是否为 n8n 项目目录 +if exist "package.json" if exist "packages" ( + echo %BLUE%[信息]%NC% 检测到当前已在 n8n 项目目录 + exit /b 0 +) + +REM 获取脚本所在目录 +set "SCRIPT_DIR=%~dp0" +set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%" + +REM 如果脚本在 n8n-n8n-1.109.2 目录内 +echo %SCRIPT_DIR% | findstr /C:"n8n-n8n-1.109.2" >nul +if not errorlevel 1 ( + echo %BLUE%[信息]%NC% 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR% + cd /d "%SCRIPT_DIR%" + if errorlevel 1 ( + echo %RED%[错误]%NC% 无法切换到目录: %SCRIPT_DIR% + exit /b 1 + ) + echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录 + exit /b 0 +) + +REM 尝试找到 n8n-n8n-1.109.2 目录 +if exist "n8n-n8n-1.109.2\" ( + cd n8n-n8n-1.109.2 +) else if exist "..\n8n-n8n-1.109.2\" ( + cd ..\n8n-n8n-1.109.2 +) else if exist "..\..\n8n-n8n-1.109.2\" ( + cd ..\..\n8n-n8n-1.109.2 +) else ( + echo %RED%[错误]%NC% 未找到 n8n-n8n-1.109.2 目录 + echo %BLUE%[信息]%NC% 请确保在正确的项目目录下运行此脚本 + exit /b 1 +) + +REM 验证目录结构 +if not exist "package.json" ( + echo %RED%[错误]%NC% 目录结构不正确,缺少 package.json + exit /b 1 +) +if not exist "packages" ( + echo %RED%[错误]%NC% 目录结构不正确,缺少 packages 目录 + exit /b 1 +) + +echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录 +exit /b 0 + +:check_dependencies +REM 检查 Node.js +where node >nul 2>nul +if errorlevel 1 ( + echo %RED%[错误]%NC% Node.js 未安装或未在 PATH 中 + exit /b 1 +) + +REM 检查 pnpm +where pnpm >nul 2>nul +if errorlevel 1 ( + echo %RED%[错误]%NC% pnpm 未安装或未在 PATH 中 + echo %BLUE%[信息]%NC% 请先安装 pnpm: npm install -g pnpm + exit /b 1 +) + +echo %GREEN%[成功]%NC% 依赖检查通过 +exit /b 0 + +:check_port +REM 检查端口 5678 是否被占用 +netstat -ano | findstr :5678 >nul 2>nul +if not errorlevel 1 ( + echo %YELLOW%[警告]%NC% 端口 5678 已被占用 + echo %BLUE%[信息]%NC% 正在查看占用进程... + netstat -ano | findstr :5678 + + set /p "kill_process=是否杀死占用进程?(y/N): " + if /I "!kill_process!"=="y" ( + echo %BLUE%[信息]%NC% 正在终止占用进程... + for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5678') do ( + taskkill /PID %%a /F >nul 2>nul + ) + echo %GREEN%[成功]%NC% 进程已终止 + ) else ( + echo %RED%[错误]%NC% 无法启动 n8n,端口被占用 + exit /b 1 + ) +) +exit /b 0 + +:stop_existing +echo %BLUE%[信息]%NC% 正在停止现有的 n8n 进程... + +REM 停止可能存在的 n8n 相关进程 +taskkill /F /IM node.exe /FI "WINDOWTITLE eq *n8n*" >nul 2>nul +taskkill /F /IM node.exe /FI "WINDOWTITLE eq *pnpm*" >nul 2>nul + +REM 等待2秒 +timeout /t 2 /nobreak >nul + +echo %GREEN%[成功]%NC% 已停止现有进程 +exit /b 0 + +:setup_environment +echo %BLUE%[信息]%NC% 正在设置环境变量... + +set "N8N_DEFAULT_LOCALE=zh-CN" +set "N8N_SECURE_COOKIE=false" +set "DB_SQLITE_POOL_SIZE=5" +set "N8N_RUNNERS_ENABLED=true" +set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false" + +echo %GREEN%[成功]%NC% 环境变量已设置 +echo - N8N_DEFAULT_LOCALE=zh-CN +echo - N8N_SECURE_COOKIE=false +echo - DB_SQLITE_POOL_SIZE=5 +exit /b 0 + +:check_build +if not exist "packages\cli\dist\" ( + goto need_build +) +if not exist "packages\core\dist\" ( + goto need_build +) +exit /b 0 + +:need_build +echo %YELLOW%[警告]%NC% 检测到项目需要构建 +set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): " +if /I "!build_project!"=="y" ( + echo %BLUE%[信息]%NC% 正在构建项目... + call pnpm build > build.log 2>&1 + if errorlevel 1 ( + echo %RED%[错误]%NC% 构建失败,请查看 build.log + type build.log | more + exit /b 1 + ) + echo %GREEN%[成功]%NC% 项目构建完成 +) +exit /b 0 + +:start_n8n +echo %BLUE%[信息]%NC% 正在启动 n8n 中文版... + +REM 创建日志文件名 +for /f "tokens=2-4 delims=/ " %%a in ('date /t') do ( + set "today=%%c%%a%%b" +) +for /f "tokens=1-2 delims=: " %%a in ('time /t') do ( + set "now=%%a%%b" +) +set "LOG_FILE=n8n-%today%-%now%.log" +set "LOG_FILE=%LOG_FILE: =%" + +echo %GREEN%正在启动 n8n 服务...%NC% + +REM 启动 n8n 在新窗口 +start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1" + +REM 等待启动 +echo 等待 n8n 启动 +set "count=0" +:wait_loop +set /a count+=1 +if %count% gtr 30 goto start_failed + +REM 检查端口是否开启 +netstat -an | findstr :5678 | findstr LISTENING >nul 2>nul +if not errorlevel 1 goto start_success + +REM 显示进度点 +nul +goto wait_loop + +:start_success +echo. +echo %GREEN%[成功]%NC% n8n 启动成功! +echo. +echo %GREEN%========== 启动信息 ==========%NC% +echo 📱 访问地址: %BLUE%http://localhost:5678%NC% +echo 🌏 界面语言: %GREEN%中文 (zh-CN)%NC% +echo 📝 日志文件: %YELLOW%%LOG_FILE%%NC% +echo %GREEN%=============================%NC% +echo. +echo %BLUE%[信息]%NC% 使用 Ctrl+C 停止服务 +echo. +echo %YELLOW%[提示]%NC% 正在监控日志输出... +echo. + +REM 持续显示日志 +:tail_log +if exist "%LOG_FILE%" ( + type "%LOG_FILE%" + timeout /t 2 /nobreak >nul + goto tail_log +) +exit /b 0 + +:start_failed +echo. +echo %RED%[错误]%NC% n8n 启动失败 +echo %BLUE%[信息]%NC% 查看日志文件: %LOG_FILE% +if exist "%LOG_FILE%" ( + type "%LOG_FILE%" | more +) +exit /b 1 + +:show_help +echo 用法: %~nx0 [选项] +echo. +echo 选项: +echo -h, --help 显示此帮助信息 +echo -d, --dev 使用开发模式启动 (支持热重载) +echo -b, --build 强制重新构建项目 +echo -c, --check 仅检查系统状态,不启动 +echo. +echo 示例: +echo %~nx0 # 正常启动 +echo %~nx0 -d # 开发模式启动 +echo %~nx0 -b # 重新构建并启动 +echo. +goto end + +:error_exit +echo %RED%[错误]%NC% 脚本执行失败 +pause +exit /b 1 + +:end +endlocal +pause +exit /b 0 \ No newline at end of file