This commit is contained in:
Your Name
2026-04-16 22:29:58 +08:00
parent a48a4131c9
commit 9aa0d87c4a
4 changed files with 129 additions and 12 deletions

View File

@@ -5,3 +5,4 @@ DB_USER="domainuser"
DB_PASSWORD="CHANGE_ME_DB_PASSWORD"
OVERSEAS_NODE_CODE="overseas-control-01"
NODE_VERSION="20"
NODE_NVM_DIR=""

View File

@@ -26,6 +26,7 @@ source "${CONFIG_FILE}"
: "${DB_PASSWORD:=CHANGE_ME_DB_PASSWORD}"
: "${OVERSEAS_NODE_CODE:=overseas-control-01}"
: "${NODE_VERSION:=20}"
: "${NODE_NVM_DIR:=}"
WORKSPACE_ROOT="/www/wwwroot"
REPO_DIR="${WORKSPACE_ROOT}/getDomain"
@@ -111,15 +112,50 @@ cat >"${DOMAIN_WEB_DIR}/.env.production" <<EOF
VITE_API_BASE_URL=https://${API_DOMAIN}/api/v1
EOF
export NVM_DIR="${HOME}/.nvm"
if [[ ! -s "${NVM_DIR}/nvm.sh" ]]; then
echo "未找到 nvm请先为当前执行用户安装 nvm"
cd "${DOMAIN_WEB_DIR}"
NODE_READY=false
resolve_nvm_dir() {
local candidate
for candidate in \
"${NODE_NVM_DIR}" \
"${NVM_DIR:-}" \
"/root/.nvm" \
"/home/www/.nvm" \
"/www/server/nvm" \
"/usr/local/nvm"
do
if [[ -n "${candidate}" && -s "${candidate}/nvm.sh" ]]; then
echo "${candidate}"
return 0
fi
done
return 1
}
if RESOLVED_NVM_DIR="$(resolve_nvm_dir)"; then
export NVM_DIR="${RESOLVED_NVM_DIR}"
# shellcheck disable=SC1090
source "${NVM_DIR}/nvm.sh"
echo "检测到 nvm${NVM_DIR}"
nvm install "${NODE_VERSION}"
nvm use "${NODE_VERSION}"
NODE_READY=true
elif command -v node >/dev/null 2>&1 && command -v npm >/dev/null 2>&1; then
echo "未检测到 nvm改用系统已安装的 node/npm"
echo "当前 node 版本:$(node -v)"
NODE_READY=true
fi
if [[ "${NODE_READY}" != "true" ]]; then
echo "未找到可用的 Node 运行环境。"
echo "请执行以下任一方案后重试:"
echo "1. 用 root 安装 nvm并确保 /root/.nvm/nvm.sh 存在"
echo "2. 在 install_overseas_quick.conf 中填写 NODE_NVM_DIR例如/home/www/.nvm"
echo "3. 预先安装系统全局 node 和 npm"
exit 1
fi
source "${NVM_DIR}/nvm.sh"
nvm install "${NODE_VERSION}"
nvm use "${NODE_VERSION}"
cd "${DOMAIN_WEB_DIR}"
npm install
npm run build