Fix:bat文件修复
This commit is contained in:
@@ -68,7 +68,9 @@
|
|||||||
"Bash(open http://localhost:4173)",
|
"Bash(open http://localhost:4173)",
|
||||||
"Bash(find:*)",
|
"Bash(find:*)",
|
||||||
"Bash(open index.html)",
|
"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",
|
"defaultMode": "acceptEdits",
|
||||||
"additionalDirectories": [
|
"additionalDirectories": [
|
||||||
|
|||||||
@@ -1,24 +1,18 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
chcp 65001 >nul 2>&1
|
||||||
REM n8n 中文版快速启动脚本 (Windows版)
|
REM n8n 中文版快速启动脚本 (Windows版)
|
||||||
REM 作者: 小齐
|
REM 作者: 小齐
|
||||||
REM 最后更新: 2025-09-08
|
REM 最后更新: 2025-09-08
|
||||||
|
|
||||||
setlocal enabledelayedexpansion
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
REM 设置颜色
|
|
||||||
set "RED=[91m"
|
|
||||||
set "GREEN=[92m"
|
|
||||||
set "YELLOW=[93m"
|
|
||||||
set "BLUE=[94m"
|
|
||||||
set "NC=[0m"
|
|
||||||
|
|
||||||
REM 显示启动横幅
|
REM 显示启动横幅
|
||||||
:show_banner
|
:show_banner
|
||||||
echo %BLUE%======================================%NC%
|
echo ======================================
|
||||||
echo n8n 中文版快速启动脚本
|
echo n8n 中文版快速启动脚本
|
||||||
echo 版本: n8n-1.109.2 with 中文翻译
|
echo 版本: n8n-1.109.2 with 中文翻译
|
||||||
echo 维护者: xiaoqi
|
echo 维护者: xiaoqi
|
||||||
echo %BLUE%======================================%NC%
|
echo ======================================
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
REM 解析命令行参数
|
REM 解析命令行参数
|
||||||
@@ -60,7 +54,7 @@ if /I "%~1"=="--check" (
|
|||||||
shift
|
shift
|
||||||
goto parse_args
|
goto parse_args
|
||||||
)
|
)
|
||||||
echo %RED%[错误]%NC% 未知选项: %~1
|
echo [错误] 未知选项: %~1
|
||||||
goto show_help
|
goto show_help
|
||||||
|
|
||||||
:main_execution
|
:main_execution
|
||||||
@@ -69,7 +63,7 @@ call :check_and_change_directory
|
|||||||
if errorlevel 1 goto error_exit
|
if errorlevel 1 goto error_exit
|
||||||
|
|
||||||
REM 检查依赖
|
REM 检查依赖
|
||||||
echo %BLUE%[信息]%NC% 正在检查系统依赖...
|
echo [信息] 正在检查系统依赖...
|
||||||
call :check_dependencies
|
call :check_dependencies
|
||||||
if errorlevel 1 goto error_exit
|
if errorlevel 1 goto error_exit
|
||||||
|
|
||||||
@@ -85,20 +79,20 @@ call :setup_environment
|
|||||||
|
|
||||||
REM 仅检查模式
|
REM 仅检查模式
|
||||||
if defined CHECK_ONLY (
|
if defined CHECK_ONLY (
|
||||||
echo %GREEN%[成功]%NC% 系统状态检查完成,一切正常
|
echo [成功] 系统状态检查完成,一切正常
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
REM 强制构建或检查构建状态
|
REM 强制构建或检查构建状态
|
||||||
if defined FORCE_BUILD (
|
if defined FORCE_BUILD (
|
||||||
echo %BLUE%[信息]%NC% 强制重新构建项目...
|
echo [信息] 强制重新构建项目...
|
||||||
call pnpm build > build.log 2>&1
|
call pnpm build > build.log 2>&1
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo %RED%[错误]%NC% 构建失败,请查看 build.log
|
echo [错误] 构建失败,请查看 build.log
|
||||||
type build.log | more
|
type build.log | more
|
||||||
goto error_exit
|
goto error_exit
|
||||||
)
|
)
|
||||||
echo %GREEN%[成功]%NC% 构建完成
|
echo [成功] 构建完成
|
||||||
) else (
|
) else (
|
||||||
call :check_build
|
call :check_build
|
||||||
if errorlevel 1 goto error_exit
|
if errorlevel 1 goto error_exit
|
||||||
@@ -106,8 +100,8 @@ if defined FORCE_BUILD (
|
|||||||
|
|
||||||
REM 开发模式或正常启动
|
REM 开发模式或正常启动
|
||||||
if defined DEV_MODE (
|
if defined DEV_MODE (
|
||||||
echo %BLUE%[信息]%NC% 正在以开发模式启动 n8n...
|
echo [信息] 正在以开发模式启动 n8n...
|
||||||
echo %YELLOW%[警告]%NC% 开发模式启动时间较长,请耐心等待...
|
echo [警告] 开发模式启动时间较长,请耐心等待...
|
||||||
call pnpm dev
|
call pnpm dev
|
||||||
) else (
|
) else (
|
||||||
call :start_n8n
|
call :start_n8n
|
||||||
@@ -119,7 +113,7 @@ REM ========== 函数定义 ==========
|
|||||||
:check_and_change_directory
|
:check_and_change_directory
|
||||||
REM 检查当前目录是否为 n8n 项目目录
|
REM 检查当前目录是否为 n8n 项目目录
|
||||||
if exist "package.json" if exist "packages" (
|
if exist "package.json" if exist "packages" (
|
||||||
echo %BLUE%[信息]%NC% 检测到当前已在 n8n 项目目录
|
echo [信息] 检测到当前已在 n8n 项目目录
|
||||||
exit /b 0
|
exit /b 0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -130,13 +124,13 @@ set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
|||||||
REM 如果脚本在 n8n-n8n-1.109.2 目录内
|
REM 如果脚本在 n8n-n8n-1.109.2 目录内
|
||||||
echo %SCRIPT_DIR% | findstr /C:"n8n-n8n-1.109.2" >nul
|
echo %SCRIPT_DIR% | findstr /C:"n8n-n8n-1.109.2" >nul
|
||||||
if not errorlevel 1 (
|
if not errorlevel 1 (
|
||||||
echo %BLUE%[信息]%NC% 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR%
|
echo [信息] 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR%
|
||||||
cd /d "%SCRIPT_DIR%"
|
cd /d "%SCRIPT_DIR%"
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo %RED%[错误]%NC% 无法切换到目录: %SCRIPT_DIR%
|
echo [错误] 无法切换到目录: %SCRIPT_DIR%
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录
|
echo [成功] 已切换到正确的 n8n 项目目录
|
||||||
exit /b 0
|
exit /b 0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -148,67 +142,67 @@ if exist "n8n-n8n-1.109.2\" (
|
|||||||
) else if exist "..\..\n8n-n8n-1.109.2\" (
|
) else if exist "..\..\n8n-n8n-1.109.2\" (
|
||||||
cd ..\..\n8n-n8n-1.109.2
|
cd ..\..\n8n-n8n-1.109.2
|
||||||
) else (
|
) else (
|
||||||
echo %RED%[错误]%NC% 未找到 n8n-n8n-1.109.2 目录
|
echo [错误] 未找到 n8n-n8n-1.109.2 目录
|
||||||
echo %BLUE%[信息]%NC% 请确保在正确的项目目录下运行此脚本
|
echo [信息] 请确保在正确的项目目录下运行此脚本
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
REM 验证目录结构
|
REM 验证目录结构
|
||||||
if not exist "package.json" (
|
if not exist "package.json" (
|
||||||
echo %RED%[错误]%NC% 目录结构不正确,缺少 package.json
|
echo [错误] 目录结构不正确,缺少 package.json
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
if not exist "packages" (
|
if not exist "packages" (
|
||||||
echo %RED%[错误]%NC% 目录结构不正确,缺少 packages 目录
|
echo [错误] 目录结构不正确,缺少 packages 目录
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
echo %GREEN%[成功]%NC% 已切换到正确的 n8n 项目目录
|
echo [成功] 已切换到正确的 n8n 项目目录
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
:check_dependencies
|
:check_dependencies
|
||||||
REM 检查 Node.js
|
REM 检查 Node.js
|
||||||
where node >nul 2>nul
|
where node >nul 2>nul
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo %RED%[错误]%NC% Node.js 未安装或未在 PATH 中
|
echo [错误] Node.js 未安装或未在 PATH 中
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
REM 检查 pnpm
|
REM 检查 pnpm
|
||||||
where pnpm >nul 2>nul
|
where pnpm >nul 2>nul
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo %RED%[错误]%NC% pnpm 未安装或未在 PATH 中
|
echo [错误] pnpm 未安装或未在 PATH 中
|
||||||
echo %BLUE%[信息]%NC% 请先安装 pnpm: npm install -g pnpm
|
echo [信息] 请先安装 pnpm: npm install -g pnpm
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
echo %GREEN%[成功]%NC% 依赖检查通过
|
echo [成功] 依赖检查通过
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
:check_port
|
:check_port
|
||||||
REM 检查端口 5678 是否被占用
|
REM 检查端口 5678 是否被占用
|
||||||
netstat -ano | findstr :5678 >nul 2>nul
|
netstat -ano | findstr :5678 >nul 2>nul
|
||||||
if not errorlevel 1 (
|
if not errorlevel 1 (
|
||||||
echo %YELLOW%[警告]%NC% 端口 5678 已被占用
|
echo [警告] 端口 5678 已被占用
|
||||||
echo %BLUE%[信息]%NC% 正在查看占用进程...
|
echo [信息] 正在查看占用进程...
|
||||||
netstat -ano | findstr :5678
|
netstat -ano | findstr :5678
|
||||||
|
|
||||||
set /p "kill_process=是否杀死占用进程?(y/N): "
|
set /p "kill_process=是否杀死占用进程?(y/N): "
|
||||||
if /I "!kill_process!"=="y" (
|
if /I "!kill_process!"=="y" (
|
||||||
echo %BLUE%[信息]%NC% 正在终止占用进程...
|
echo [信息] 正在终止占用进程...
|
||||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5678') do (
|
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5678') do (
|
||||||
taskkill /PID %%a /F >nul 2>nul
|
taskkill /PID %%a /F >nul 2>nul
|
||||||
)
|
)
|
||||||
echo %GREEN%[成功]%NC% 进程已终止
|
echo [成功] 进程已终止
|
||||||
) else (
|
) else (
|
||||||
echo %RED%[错误]%NC% 无法启动 n8n,端口被占用
|
echo [错误] 无法启动 n8n,端口被占用
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
:stop_existing
|
:stop_existing
|
||||||
echo %BLUE%[信息]%NC% 正在停止现有的 n8n 进程...
|
echo [信息] 正在停止现有的 n8n 进程...
|
||||||
|
|
||||||
REM 停止可能存在的 n8n 相关进程
|
REM 停止可能存在的 n8n 相关进程
|
||||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *n8n*" >nul 2>nul
|
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秒
|
REM 等待2秒
|
||||||
timeout /t 2 /nobreak >nul
|
timeout /t 2 /nobreak >nul
|
||||||
|
|
||||||
echo %GREEN%[成功]%NC% 已停止现有进程
|
echo [成功] 已停止现有进程
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
:setup_environment
|
:setup_environment
|
||||||
echo %BLUE%[信息]%NC% 正在设置环境变量...
|
echo [信息] 正在设置环境变量...
|
||||||
|
|
||||||
set "N8N_DEFAULT_LOCALE=zh-CN"
|
set "N8N_DEFAULT_LOCALE=zh-CN"
|
||||||
set "N8N_SECURE_COOKIE=false"
|
set "N8N_SECURE_COOKIE=false"
|
||||||
@@ -229,7 +223,7 @@ set "DB_SQLITE_POOL_SIZE=5"
|
|||||||
set "N8N_RUNNERS_ENABLED=true"
|
set "N8N_RUNNERS_ENABLED=true"
|
||||||
set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false"
|
set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false"
|
||||||
|
|
||||||
echo %GREEN%[成功]%NC% 环境变量已设置
|
echo [成功] 环境变量已设置
|
||||||
echo - N8N_DEFAULT_LOCALE=zh-CN
|
echo - N8N_DEFAULT_LOCALE=zh-CN
|
||||||
echo - N8N_SECURE_COOKIE=false
|
echo - N8N_SECURE_COOKIE=false
|
||||||
echo - DB_SQLITE_POOL_SIZE=5
|
echo - DB_SQLITE_POOL_SIZE=5
|
||||||
@@ -245,22 +239,22 @@ if not exist "packages\core\dist\" (
|
|||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
:need_build
|
:need_build
|
||||||
echo %YELLOW%[警告]%NC% 检测到项目需要构建
|
echo [警告] 检测到项目需要构建
|
||||||
set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): "
|
set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): "
|
||||||
if /I "!build_project!"=="y" (
|
if /I "!build_project!"=="y" (
|
||||||
echo %BLUE%[信息]%NC% 正在构建项目...
|
echo [信息] 正在构建项目...
|
||||||
call pnpm build > build.log 2>&1
|
call pnpm build > build.log 2>&1
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo %RED%[错误]%NC% 构建失败,请查看 build.log
|
echo [错误] 构建失败,请查看 build.log
|
||||||
type build.log | more
|
type build.log | more
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
echo %GREEN%[成功]%NC% 项目构建完成
|
echo [成功] 项目构建完成
|
||||||
)
|
)
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
:start_n8n
|
:start_n8n
|
||||||
echo %BLUE%[信息]%NC% 正在启动 n8n 中文版...
|
echo [信息] 正在启动 n8n 中文版...
|
||||||
|
|
||||||
REM 创建日志文件名
|
REM 创建日志文件名
|
||||||
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (
|
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=n8n-%today%-%now%.log"
|
||||||
set "LOG_FILE=%LOG_FILE: =%"
|
set "LOG_FILE=%LOG_FILE: =%"
|
||||||
|
|
||||||
echo %GREEN%正在启动 n8n 服务...%NC%
|
echo 正在启动 n8n 服务...
|
||||||
|
|
||||||
REM 启动 n8n 在新窗口
|
REM 启动 n8n 在新窗口
|
||||||
start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1"
|
start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1"
|
||||||
@@ -295,17 +289,17 @@ goto wait_loop
|
|||||||
|
|
||||||
:start_success
|
:start_success
|
||||||
echo.
|
echo.
|
||||||
echo %GREEN%[成功]%NC% n8n 启动成功!
|
echo [成功] n8n 启动成功!
|
||||||
echo.
|
echo.
|
||||||
echo %GREEN%========== 启动信息 ==========%NC%
|
echo ========== 启动信息 ==========
|
||||||
echo 📱 访问地址: %BLUE%http://localhost:5678%NC%
|
echo 📱 访问地址: http://localhost:5678
|
||||||
echo 🌏 界面语言: %GREEN%中文 (zh-CN)%NC%
|
echo 🌏 界面语言: 中文 (zh-CN)
|
||||||
echo 📝 日志文件: %YELLOW%%LOG_FILE%%NC%
|
echo 📝 日志文件: %LOG_FILE%
|
||||||
echo %GREEN%=============================%NC%
|
echo =============================
|
||||||
echo.
|
echo.
|
||||||
echo %BLUE%[信息]%NC% 使用 Ctrl+C 停止服务
|
echo [信息] 使用 Ctrl+C 停止服务
|
||||||
echo.
|
echo.
|
||||||
echo %YELLOW%[提示]%NC% 正在监控日志输出...
|
echo [提示] 正在监控日志输出...
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
REM 持续显示日志
|
REM 持续显示日志
|
||||||
@@ -319,8 +313,8 @@ exit /b 0
|
|||||||
|
|
||||||
:start_failed
|
:start_failed
|
||||||
echo.
|
echo.
|
||||||
echo %RED%[错误]%NC% n8n 启动失败
|
echo [错误] n8n 启动失败
|
||||||
echo %BLUE%[信息]%NC% 查看日志文件: %LOG_FILE%
|
echo [信息] 查看日志文件: %LOG_FILE%
|
||||||
if exist "%LOG_FILE%" (
|
if exist "%LOG_FILE%" (
|
||||||
type "%LOG_FILE%" | more
|
type "%LOG_FILE%" | more
|
||||||
)
|
)
|
||||||
@@ -343,7 +337,7 @@ echo.
|
|||||||
goto end
|
goto end
|
||||||
|
|
||||||
:error_exit
|
:error_exit
|
||||||
echo %RED%[错误]%NC% 脚本执行失败
|
echo [错误] 脚本执行失败
|
||||||
pause
|
pause
|
||||||
exit /b 1
|
exit /b 1
|
||||||
|
|
||||||
|
|||||||
347
n8n-n8n-1.109.2/start.bat.bak
Normal file
347
n8n-n8n-1.109.2/start.bat.bak
Normal file
@@ -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 set /p "=."
|
||||||
|
timeout /t 1 /nobreak >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
|
||||||
Reference in New Issue
Block a user