fix: 修复WorkflowPageV3组件TypeScript错误和清理副本文件
详细说明: - 修复WorkflowPageV3.tsx中的TypeScript类型错误 - 移除未使用的executionTimeoutRef变量 - 修复style标签的jsx属性问题 - 将deprecated的substr()改为substring() - 清理n8n目录下的副本文件 - 添加server.js和start脚本用于静态文件服务 影响的文件: - web_frontend/exhibition-demo/src/pages/WorkflowPageV3.tsx - web_frontend/exhibition-demo/src/components/ResultModal.tsx - web_frontend/web_result/server.js (新增) - web_frontend/web_result/start.bat (新增) - web_frontend/web_result/start.sh (新增) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -22,3 +22,8 @@ http://localhost:5678
|
||||
(node:12101) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
|
||||
(Use `node --trace-deprecation ...` to show where the warning was created)
|
||||
Node does not have any credentials set
|
||||
Received SIGINT. Shutting down...
|
||||
[Task Runner]: Received SIGINT signal, shutting down...
|
||||
[Task Runner]: Task runner stopped
|
||||
|
||||
Stopping n8n...
|
||||
|
||||
26
n8n-n8n-1.109.2/n8n-20250908-163158.log
Normal file
26
n8n-n8n-1.109.2/n8n-20250908-163158.log
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
> n8n-monorepo@1.109.2 start /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/n8n-n8n-1.109.2
|
||||
> run-script-os
|
||||
|
||||
|
||||
> n8n-monorepo@1.109.2 start:default
|
||||
> cd packages/cli/bin && ./n8n
|
||||
|
||||
Permissions 0644 for n8n settings file /Users/xiaoqi/.n8n/config are too wide. This is ignored for now, but in the future n8n will attempt to change the permissions automatically. To automatically enforce correct permissions now set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (recommended), or turn this check off set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.
|
||||
Initializing n8n process
|
||||
n8n ready on ::, port 5678
|
||||
n8n Task Broker ready on 127.0.0.1, port 5679
|
||||
Initializing AuthRolesService...
|
||||
AuthRolesService initialized successfully.
|
||||
[license SDK] Skipping renewal on init: license cert is not initialized
|
||||
Registered runner "JS Task Runner" (4cCbV_Z_J_3qoaQmjw7fB)
|
||||
Version: 1.109.2
|
||||
Locale: zh-CN
|
||||
|
||||
Editor is now accessible via:
|
||||
http://localhost:5678
|
||||
Received SIGINT. Shutting down...
|
||||
[Task Runner]: Received SIGINT signal, shutting down...
|
||||
[Task Runner]: Task runner stopped
|
||||
|
||||
Stopping n8n...
|
||||
@@ -1,8 +1,9 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
REM n8n 中文版快速启动脚本 (Windows版)
|
||||
REM n8n 中文版快速启动脚本 (Windows版 - 增强兼容性)
|
||||
REM 作者: 小齐
|
||||
REM 最后更新: 2025-09-08
|
||||
REM 兼容性: Windows 7/8/10/11, PowerShell/CMD
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
@@ -19,6 +20,8 @@ REM 解析命令行参数
|
||||
set "DEV_MODE="
|
||||
set "FORCE_BUILD="
|
||||
set "CHECK_ONLY="
|
||||
set "SKIP_DEPS="
|
||||
set "USE_NPM="
|
||||
|
||||
:parse_args
|
||||
if "%~1"=="" goto main_execution
|
||||
@@ -54,18 +57,33 @@ if /I "%~1"=="--check" (
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--skip-deps" (
|
||||
set "SKIP_DEPS=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
if /I "%~1"=="--npm" (
|
||||
set "USE_NPM=true"
|
||||
shift
|
||||
goto parse_args
|
||||
)
|
||||
echo [错误] 未知选项: %~1
|
||||
goto show_help
|
||||
|
||||
:main_execution
|
||||
REM 检查操作系统版本
|
||||
call :check_os_version
|
||||
|
||||
REM 检查并切换到正确目录
|
||||
call :check_and_change_directory
|
||||
if errorlevel 1 goto error_exit
|
||||
|
||||
REM 检查依赖
|
||||
echo [信息] 正在检查系统依赖...
|
||||
call :check_dependencies
|
||||
if errorlevel 1 goto error_exit
|
||||
if not defined SKIP_DEPS (
|
||||
echo [信息] 正在检查系统依赖...
|
||||
call :check_dependencies
|
||||
if errorlevel 1 goto error_exit
|
||||
)
|
||||
|
||||
REM 检查端口占用
|
||||
call :check_port
|
||||
@@ -83,16 +101,22 @@ if defined CHECK_ONLY (
|
||||
goto end
|
||||
)
|
||||
|
||||
REM 安装依赖(如果需要)
|
||||
if not exist "node_modules\" (
|
||||
echo [信息] 检测到缺少依赖,正在安装...
|
||||
if defined USE_NPM (
|
||||
call :install_with_npm
|
||||
) else (
|
||||
call :install_with_pnpm
|
||||
)
|
||||
if errorlevel 1 goto error_exit
|
||||
)
|
||||
|
||||
REM 强制构建或检查构建状态
|
||||
if defined FORCE_BUILD (
|
||||
echo [信息] 强制重新构建项目...
|
||||
call pnpm build > build.log 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [错误] 构建失败,请查看 build.log
|
||||
type build.log | more
|
||||
goto error_exit
|
||||
)
|
||||
echo [成功] 构建完成
|
||||
call :build_project
|
||||
if errorlevel 1 goto error_exit
|
||||
) else (
|
||||
call :check_build
|
||||
if errorlevel 1 goto error_exit
|
||||
@@ -102,7 +126,11 @@ REM 开发模式或正常启动
|
||||
if defined DEV_MODE (
|
||||
echo [信息] 正在以开发模式启动 n8n...
|
||||
echo [警告] 开发模式启动时间较长,请耐心等待...
|
||||
call pnpm dev
|
||||
if defined USE_NPM (
|
||||
call npm run dev
|
||||
) else (
|
||||
call pnpm dev
|
||||
)
|
||||
) else (
|
||||
call :start_n8n
|
||||
)
|
||||
@@ -110,6 +138,34 @@ goto end
|
||||
|
||||
REM ========== 函数定义 ==========
|
||||
|
||||
:check_os_version
|
||||
REM 检查 Windows 版本兼容性
|
||||
ver | findstr /i "5\.1\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [警告] 检测到 Windows XP,可能存在兼容性问题
|
||||
)
|
||||
ver | findstr /i "6\.0\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows Vista
|
||||
)
|
||||
ver | findstr /i "6\.1\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 7
|
||||
)
|
||||
ver | findstr /i "6\.2\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 8
|
||||
)
|
||||
ver | findstr /i "6\.3\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 8.1
|
||||
)
|
||||
ver | findstr /i "10\.0\." >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 检测到 Windows 10/11
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:check_and_change_directory
|
||||
REM 检查当前目录是否为 n8n 项目目录
|
||||
if exist "package.json" if exist "packages" (
|
||||
@@ -117,18 +173,22 @@ if exist "package.json" if exist "packages" (
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM 获取脚本所在目录
|
||||
REM 获取脚本所在目录(兼容不同 Windows 版本)
|
||||
set "SCRIPT_DIR=%~dp0"
|
||||
set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||||
if "%SCRIPT_DIR:~-1%"=="\" set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
|
||||
|
||||
REM 如果脚本在 n8n-n8n-1.109.2 目录内
|
||||
echo %SCRIPT_DIR% | findstr /C:"n8n-n8n-1.109.2" >nul
|
||||
echo %SCRIPT_DIR% | findstr /I /C:"n8n-n8n-1.109.2" >nul
|
||||
if not errorlevel 1 (
|
||||
echo [信息] 切换到脚本所在的 n8n 项目目录: %SCRIPT_DIR%
|
||||
cd /d "%SCRIPT_DIR%"
|
||||
echo [信息] 切换到脚本所在的 n8n 项目目录
|
||||
cd /d "%SCRIPT_DIR%" 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [错误] 无法切换到目录: %SCRIPT_DIR%
|
||||
exit /b 1
|
||||
REM 兼容旧版 Windows
|
||||
cd "%SCRIPT_DIR%" 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [错误] 无法切换到目录: %SCRIPT_DIR%
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
echo [成功] 已切换到正确的 n8n 项目目录
|
||||
exit /b 0
|
||||
@@ -162,38 +222,84 @@ exit /b 0
|
||||
|
||||
:check_dependencies
|
||||
REM 检查 Node.js
|
||||
where node >nul 2>nul
|
||||
where node >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [错误] Node.js 未安装或未在 PATH 中
|
||||
exit /b 1
|
||||
REM 尝试常见的 Node.js 安装路径
|
||||
if exist "C:\Program Files\nodejs\node.exe" (
|
||||
set "PATH=C:\Program Files\nodejs;%PATH%"
|
||||
) else if exist "C:\Program Files (x86)\nodejs\node.exe" (
|
||||
set "PATH=C:\Program Files (x86)\nodejs;%PATH%"
|
||||
) else (
|
||||
echo [错误] Node.js 未安装或未在 PATH 中
|
||||
echo [信息] 请访问 https://nodejs.org 下载安装
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM 检查 pnpm
|
||||
where pnpm >nul 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [错误] pnpm 未安装或未在 PATH 中
|
||||
echo [信息] 请先安装 pnpm: npm install -g pnpm
|
||||
exit /b 1
|
||||
echo [信息] Node.js 版本:
|
||||
node --version
|
||||
|
||||
REM 检查包管理器
|
||||
if not defined USE_NPM (
|
||||
where pnpm >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [警告] pnpm 未安装,尝试使用 npm
|
||||
set "USE_NPM=true"
|
||||
) else (
|
||||
echo [信息] 使用 pnpm 作为包管理器
|
||||
)
|
||||
) else (
|
||||
echo [信息] 使用 npm 作为包管理器
|
||||
)
|
||||
|
||||
echo [成功] 依赖检查通过
|
||||
exit /b 0
|
||||
|
||||
:install_with_pnpm
|
||||
echo [信息] 使用 pnpm 安装依赖...
|
||||
where pnpm >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [信息] 正在安装 pnpm...
|
||||
call npm install -g pnpm@8
|
||||
if errorlevel 1 (
|
||||
echo [错误] pnpm 安装失败
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
call pnpm install --no-frozen-lockfile
|
||||
exit /b %errorlevel%
|
||||
|
||||
:install_with_npm
|
||||
echo [警告] 使用 npm 安装(可能不兼容 workspace)
|
||||
echo [信息] 建议安装 pnpm: npm install -g pnpm
|
||||
call npm install --legacy-peer-deps
|
||||
exit /b %errorlevel%
|
||||
|
||||
:check_port
|
||||
REM 检查端口 5678 是否被占用
|
||||
netstat -ano | findstr :5678 >nul 2>nul
|
||||
netstat -ano 2>nul | findstr ":5678" >nul 2>&1
|
||||
if not errorlevel 1 (
|
||||
echo [警告] 端口 5678 已被占用
|
||||
echo [信息] 正在查看占用进程...
|
||||
netstat -ano | findstr :5678
|
||||
netstat -ano | findstr ":5678"
|
||||
echo.
|
||||
|
||||
set /p "kill_process=是否杀死占用进程?(y/N): "
|
||||
set /p "kill_process=是否终止占用进程?(y/N): "
|
||||
if /I "!kill_process!"=="y" (
|
||||
echo [信息] 正在终止占用进程...
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5678') do (
|
||||
taskkill /PID %%a /F >nul 2>nul
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":5678"') do (
|
||||
taskkill /PID %%a /F >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
REM Windows 7 兼容性
|
||||
tskill %%a >nul 2>&1
|
||||
)
|
||||
)
|
||||
echo [成功] 进程已终止
|
||||
timeout /t 2 /nobreak >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
REM Windows 7 兼容性
|
||||
ping -n 3 127.0.0.1 >nul
|
||||
)
|
||||
) else (
|
||||
echo [错误] 无法启动 n8n,端口被占用
|
||||
exit /b 1
|
||||
@@ -205,11 +311,15 @@ exit /b 0
|
||||
echo [信息] 正在停止现有的 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
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *n8n*" >nul 2>&1
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *pnpm*" >nul 2>&1
|
||||
taskkill /F /IM node.exe /FI "WINDOWTITLE eq *npm*" >nul 2>&1
|
||||
|
||||
REM 等待2秒
|
||||
timeout /t 2 /nobreak >nul
|
||||
REM 等待
|
||||
timeout /t 2 /nobreak >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
ping -n 3 127.0.0.1 >nul
|
||||
)
|
||||
|
||||
echo [成功] 已停止现有进程
|
||||
exit /b 0
|
||||
@@ -222,69 +332,78 @@ set "N8N_SECURE_COOKIE=false"
|
||||
set "DB_SQLITE_POOL_SIZE=5"
|
||||
set "N8N_RUNNERS_ENABLED=true"
|
||||
set "N8N_BLOCK_ENV_ACCESS_IN_NODE=false"
|
||||
set "NODE_OPTIONS=--max-old-space-size=4096"
|
||||
|
||||
echo [成功] 环境变量已设置
|
||||
echo - N8N_DEFAULT_LOCALE=zh-CN
|
||||
echo - N8N_SECURE_COOKIE=false
|
||||
echo - DB_SQLITE_POOL_SIZE=5
|
||||
echo - NODE_OPTIONS=--max-old-space-size=4096
|
||||
exit /b 0
|
||||
|
||||
:check_build
|
||||
if not exist "packages\cli\dist\" (
|
||||
goto need_build
|
||||
)
|
||||
if not exist "packages\core\dist\" (
|
||||
goto need_build
|
||||
)
|
||||
if not exist "packages\cli\dist\" goto need_build
|
||||
if not exist "packages\core\dist\" goto need_build
|
||||
if not exist "packages\workflow\dist\" goto need_build
|
||||
exit /b 0
|
||||
|
||||
:need_build
|
||||
echo [警告] 检测到项目需要构建
|
||||
set /p "build_project=是否现在构建项目?这可能需要几分钟时间 (y/N): "
|
||||
if /I "!build_project!"=="y" (
|
||||
echo [信息] 正在构建项目...
|
||||
call pnpm build > build.log 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [错误] 构建失败,请查看 build.log
|
||||
type build.log | more
|
||||
exit /b 1
|
||||
)
|
||||
echo [成功] 项目构建完成
|
||||
call :build_project
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
:build_project
|
||||
echo [信息] 正在构建项目...
|
||||
if defined USE_NPM (
|
||||
call npm run build > build.log 2>&1
|
||||
) else (
|
||||
call pnpm build > build.log 2>&1
|
||||
)
|
||||
if errorlevel 1 (
|
||||
echo [错误] 构建失败,请查看 build.log
|
||||
type build.log | more
|
||||
exit /b 1
|
||||
)
|
||||
echo [成功] 项目构建完成
|
||||
exit /b 0
|
||||
|
||||
:start_n8n
|
||||
echo [信息] 正在启动 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: =%"
|
||||
REM 创建日志文件名(兼容不同日期格式)
|
||||
set "LOG_FILE=n8n-%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%.log"
|
||||
set "LOG_FILE=%LOG_FILE: =0%"
|
||||
|
||||
echo 正在启动 n8n 服务...
|
||||
echo [信息] 正在启动 n8n 服务...
|
||||
echo [信息] 日志文件: %LOG_FILE%
|
||||
|
||||
REM 启动 n8n 在新窗口
|
||||
start "n8n Server" /B cmd /c "pnpm start > %LOG_FILE% 2>&1"
|
||||
REM 启动 n8n
|
||||
if defined USE_NPM (
|
||||
start "n8n Server" /B cmd /c "npm start > %LOG_FILE% 2>&1"
|
||||
) else (
|
||||
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
|
||||
if %count% gtr 60 goto start_failed
|
||||
|
||||
REM 检查端口是否开启
|
||||
netstat -an | findstr :5678 | findstr LISTENING >nul 2>nul
|
||||
netstat -an 2>nul | findstr ":5678" | findstr "LISTENING" >nul 2>&1
|
||||
if not errorlevel 1 goto start_success
|
||||
|
||||
REM 显示进度点
|
||||
<nul set /p "=."
|
||||
timeout /t 1 /nobreak >nul
|
||||
REM 显示进度
|
||||
set /p "=." <nul
|
||||
timeout /t 1 /nobreak >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
ping -n 2 127.0.0.1 >nul
|
||||
)
|
||||
goto wait_loop
|
||||
|
||||
:start_success
|
||||
@@ -292,23 +411,15 @@ echo.
|
||||
echo [成功] n8n 启动成功!
|
||||
echo.
|
||||
echo ========== 启动信息 ==========
|
||||
echo 📱 访问地址: http://localhost:5678
|
||||
echo 🌏 界面语言: 中文 (zh-CN)
|
||||
echo 📝 日志文件: %LOG_FILE%
|
||||
echo 访问地址: http://localhost:5678
|
||||
echo 界面语言: 中文 (zh-CN)
|
||||
echo 日志文件: %LOG_FILE%
|
||||
echo =============================
|
||||
echo.
|
||||
echo [信息] 使用 Ctrl+C 停止服务
|
||||
echo [提示] 首次访问需要设置账户
|
||||
echo.
|
||||
echo [提示] 正在监控日志输出...
|
||||
echo.
|
||||
|
||||
REM 持续显示日志
|
||||
:tail_log
|
||||
if exist "%LOG_FILE%" (
|
||||
type "%LOG_FILE%"
|
||||
timeout /t 2 /nobreak >nul
|
||||
goto tail_log
|
||||
)
|
||||
pause
|
||||
exit /b 0
|
||||
|
||||
:start_failed
|
||||
@@ -316,32 +427,49 @@ echo.
|
||||
echo [错误] n8n 启动失败
|
||||
echo [信息] 查看日志文件: %LOG_FILE%
|
||||
if exist "%LOG_FILE%" (
|
||||
echo.
|
||||
echo ===== 错误日志 =====
|
||||
type "%LOG_FILE%" | more
|
||||
)
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:show_help
|
||||
echo 用法: %~nx0 [选项]
|
||||
echo.
|
||||
echo 选项:
|
||||
echo -h, --help 显示此帮助信息
|
||||
echo -d, --dev 使用开发模式启动 (支持热重载)
|
||||
echo -b, --build 强制重新构建项目
|
||||
echo -c, --check 仅检查系统状态,不启动
|
||||
echo -h, --help 显示此帮助信息
|
||||
echo -d, --dev 使用开发模式启动 (支持热重载)
|
||||
echo -b, --build 强制重新构建项目
|
||||
echo -c, --check 仅检查系统状态,不启动
|
||||
echo --skip-deps 跳过依赖检查
|
||||
echo --npm 使用 npm 替代 pnpm
|
||||
echo.
|
||||
echo 示例:
|
||||
echo %~nx0 # 正常启动
|
||||
echo %~nx0 -d # 开发模式启动
|
||||
echo %~nx0 -b # 重新构建并启动
|
||||
echo %~nx0 # 正常启动
|
||||
echo %~nx0 -d # 开发模式启动
|
||||
echo %~nx0 -b # 重新构建并启动
|
||||
echo %~nx0 --npm # 使用 npm 启动
|
||||
echo.
|
||||
echo 故障排除:
|
||||
echo 1. 如果 pnpm 安装失败,使用 --npm 选项
|
||||
echo 2. 如果端口被占用,脚本会提示终止进程
|
||||
echo 3. 构建失败时查看 build.log 文件
|
||||
echo.
|
||||
goto end
|
||||
|
||||
:error_exit
|
||||
echo [错误] 脚本执行失败
|
||||
echo.
|
||||
echo 常见问题解决:
|
||||
echo 1. 确保 Node.js 版本为 18.x 或 20.x
|
||||
echo 2. 尝试使用管理员权限运行
|
||||
echo 3. 使用 --npm 选项如果 pnpm 有问题
|
||||
echo 4. 检查网络连接和代理设置
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:end
|
||||
endlocal
|
||||
pause
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user