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 本地启动开发服务器
相关推荐
爱写程序的小高12 小时前
npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
前端·npm·node.js
程序员的程13 小时前
我做了一个前端股票行情 SDK:stock-sdk(浏览器和 Node 都能跑)
前端·npm·github
爱写程序的小高16 小时前
npm版本降级、nvm切换node版本、webpack版本与vue版本不一致
前端·npm·node.js
嚣张丶小麦兜16 小时前
npm的应用
前端·npm·node.js
鹏北海1 天前
从弹窗变胖到 npm 依赖管理:一次完整的问题排查记录
前端·npm·node.js
寧笙(Lycode)2 天前
前端包管理工具——npm、yarn、pnpm详解
前端·npm·node.js
李永吉2 天前
一款便捷的npm源管理工具nrm
前端·npm·node.js
鹿衔`2 天前
PySpark 提交模式对比与实践推荐
前端·npm·node.js
Bigger3 天前
构建 “按版本触发、自动发布、自动回写” 的前端组件发布流水线
前端·ci/cd·npm
Rysxt_3 天前
npm与Node.js关系详解及使用教程
前端·npm·node.js