250708-Svelte项目从Debian迁移到无法联网的RHEL全流程指南

📌 背景

在 Debian 上使用以下命令创建了一个 Svelte 项目:

bash 复制代码
npm install -g sv
npx sv create my-svelte-demo
cd my-svelte-demo
npm install
npm run dev

现在需要将该项目迁移到一台 无法联网的 RHEL 9.4 服务器 上运行,出现如下报错:

bash 复制代码
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/path/to/node_modules/dist/node/cli.js'

❌ 错误原因分析

  • 报错来自 npm run dev 中的 vite 启动失败。

  • 错误提示:

    复制代码
    Cannot find module '.../node_modules/dist/node/cli.js'
  • 说明当前项目的 node_modules 中的 vite 被破坏或软链接指向了错误路径(如迁移时损坏、部分依赖缺失)。


✅ 正确的迁移方案(推荐)

一、在 Debian 上重新打包项目(含依赖)

  1. 清理旧依赖并重新安装:
bash 复制代码
cd my-svelte-demo
rm -rf node_modules package-lock.json
npm install
  1. 检查 Vite 执行文件是否正确:
bash 复制代码
ls -l node_modules/.bin/vite
head -n 5 node_modules/.bin/vite

输出示例(✅ 正确):

bash 复制代码
#!/usr/bin/env node
require('../vite/bin/vite.js');
  1. 打包整个项目(包含依赖):
bash 复制代码
cd ..
tar -czvf my-svelte-demo.tar.gz my-svelte-demo/

二、在 RHEL 9.4 上准备运行环境

  1. 安装 Node.js(离线)

bash 复制代码
tar -xf node-vXX.X.X-linux-x64.tar.xz
mv node-vXX.X.X-linux-x64 ~/Softwares/nodejs
echo 'export PATH=$HOME/Softwares/nodejs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
  1. 验证 Node.js 和 npm 可用:
bash 复制代码
node -v
npm -v

三、在 RHEL 上解压并运行项目

  1. 将项目打包文件复制到服务器:
bash 复制代码
scp my-svelte-demo.tar.gz tester@rhel-server:/home/tester/Projects/
  1. 解压并运行:
bash 复制代码
cd /home/tester/Projects
tar -xzvf my-svelte-demo.tar.gz
cd my-svelte-demo
npm run dev

默认端口是 5173,需开放防火墙端口(如果使用 firewalld):

bash 复制代码
sudo firewall-cmd --add-port=5173/tcp --permanent
sudo firewall-cmd --reload

🛠️ 其他可选方案

  • 使用 npm run build 构建静态站点后再迁移
  • 使用 npx serve dist 或通过 nginx/Apache 提供服务
  • 将 Node.js + 项目整体打包为离线安装包

✅ 总结表

步骤 操作 说明
Debian 环境准备 npm install + tar -czf 确保依赖完整并打包
RHEL 安装 Node.js 使用离线版 .tar.xz 配置路径环境变量
项目迁移运行 解压并 npm run dev 本地启动开发服务器
相关推荐
-凌凌漆-18 小时前
vscode运行npm报错,npm : 无法加载文件 xxxxx/npm.ps1,因为在此系统上禁止运行脚本。
ide·vscode·npm
*小雪3 天前
nvm的安装与管理和npm audit的报错解决
前端·npm·node.js
某柚啊3 天前
解决 minimatch 类型报错问题
前端·webpack·npm
weixin_427771613 天前
npm 绕过2FA验证
前端·npm·node.js
亮子AI4 天前
【Svelte】本地正常,线上报错的奇怪问题
svelte
晨欣5 天前
pnpm vs npm 命令对照表
前端·npm·node.js
奔跑的web.5 天前
npm install发生了什么?
前端·npm·node.js
zhengxianyi5155 天前
npmjs切换淘宝镜像
前端·npm·npm安装源
梁萌6 天前
vue项目从npm升级为pnpm
前端·npm·node.js
墨着染霜华6 天前
npm-cache 怎么迁移出C盘
npm·node.js