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 本地启动开发服务器
相关推荐
kyriewen3 天前
2026 年了,这 6 个 npm 包可以卸载了——浏览器原生 API 已经能替代
前端·javascript·npm
l1o3v1e4ding10 天前
windows安装Claude Code,并接入Deepseek-v4模型 ,提供离线安装包
git·npm·node.js·claude code·cc-switchcc
TT_Close10 天前
别再复制旧 Flutter 工程了,真正拖慢你的不是业务代码
flutter·npm·visual studio code
Penfy_Z10 天前
【Python LLM 调用踩坑】Connection error 终极解决方案!npm 代理导致阿里云通义千问接口连接失败
开发语言·python·npm
终将老去的穷苦程序员11 天前
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚
前端·npm·node.js
之歆12 天前
Node.js 与 NPM 包管理完全指南
前端·npm·node.js
12点一刻12 天前
npx 使用入门教程:是什么、怎么用、和 npm 有什么区别
前端·npm·node.js
cv魔法师13 天前
解决vscode终端报错npm : 无法加载文件npm.ps1,因为在此系统上禁止运行脚本。
ide·vscode·npm
cup1113 天前
[Full Clock 技术复盘] 二、SvelteKit 实战避坑指南:PWA、SSR 样式断裂、持久化防抖
i18n·ssr·svelte·localstorage·pwa
夜雪闻竹15 天前
版本管理:npm 发布 + Electron 打包 + CI/CD
ci/cd·npm·node.js·代码规范·chatcrystal