fix: 修复启动脚本路径检测问题
详细说明: - 改进了路径检测逻辑,支持从任意位置运行脚本 - 添加了智能目录切换功能,自动定位 n8n 项目目录 - 支持脚本在 n8n-n8n-1.109.2 目录内和外部调用 - 验证目录结构确保在正确的项目根目录执行命令 - 修复了之前构建失败的 package.json 找不到问题 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -36,7 +36,7 @@ show_banner() {
|
|||||||
echo "======================================"
|
echo "======================================"
|
||||||
echo " n8n 中文版快速启动脚本"
|
echo " n8n 中文版快速启动脚本"
|
||||||
echo " 版本: n8n-1.109.2 with 中文翻译"
|
echo " 版本: n8n-1.109.2 with 中文翻译"
|
||||||
echo " 维护者: 小齐"
|
echo " 维护者: xiaoqi"
|
||||||
echo "======================================"
|
echo "======================================"
|
||||||
echo -e "${NC}"
|
echo -e "${NC}"
|
||||||
}
|
}
|
||||||
@@ -204,6 +204,58 @@ show_help() {
|
|||||||
echo
|
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() {
|
main() {
|
||||||
# 解析命令行参数
|
# 解析命令行参数
|
||||||
@@ -236,6 +288,9 @@ main() {
|
|||||||
# 显示横幅
|
# 显示横幅
|
||||||
show_banner
|
show_banner
|
||||||
|
|
||||||
|
# 检查并切换到正确目录
|
||||||
|
check_and_change_directory
|
||||||
|
|
||||||
# 检查依赖
|
# 检查依赖
|
||||||
check_dependencies
|
check_dependencies
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user