当前位置: 首页 > news >正文

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

在这里插入图片描述

📌 背景

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

npm install -g sv
npx sv create my-svelte-demo
cd my-svelte-demo
npm install
npm run dev

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

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. 清理旧依赖并重新安装:
cd my-svelte-demo
rm -rf node_modules package-lock.json
npm install
  1. 检查 Vite 执行文件是否正确:
ls -l node_modules/.bin/vite
head -n 5 node_modules/.bin/vite

输出示例(✅ 正确):

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

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

  1. 安装 Node.js(离线)

    • 下载 .tar.xz 版本 Node.js:
      https://nodejs.org/en/download
    • 解压并配置环境变量(假设解压路径为 ~/Softwares/nodejs):
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 可用:
node -v
npm -v

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

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

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

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本地启动开发服务器
http://www.lryc.cn/news/582435.html

相关文章:

  • 计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP
  • [论文阅读] 软件工程 | 自适应CPS中的人机协作与伦理
  • 自动驾驶感知系统
  • 分水岭算法:图像分割的浸水原理
  • 【王树森推荐系统】召回12:曝光过滤 Bloom Filter
  • 大数据在UI前端的应用创新:基于社交网络的用户影响力分析
  • 深度学习——神经网络1
  • 基于物联网的智能交通灯控制系统设计
  • three案例 Three.js波纹效果演示
  • 【操作系统】进程(二)内存管理、通信
  • MySQL Galera Cluster部署
  • 如何利用AI大模型对已有创意进行评估,打造杀手级的广告创意
  • 算法学习笔记:11.冒泡排序——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • 【计算机网络】王道考研笔记整理(1)计算机网络体系结构
  • 高效学习之一篇搞定分布式管理系统Git !
  • 【字节跳动】数据挖掘面试题0013:怎么做男女二分类问题, 从抖音 app 提供的内容中。
  • 视频号账号矩阵运营中定制开发开源 AI 智能名片 S2B2C 商城小程序的赋能研究
  • main(int argc,char **agrv)的含义
  • 第0章:开篇词 - 嘿,别怕,AI应用开发没那么神!
  • Nat.C|RiNALMo:通用 RNA 语言模型新突破,3600 万序列预训练,跨家族结构预测、剪接识别与功能注释全能泛化
  • 【Note】《Kafka: The Definitive Guide》 第8章: Cross-Cluster Data Mirroring
  • 安卓10.0系统修改定制化____如何修改ROM 实现开机自动开启开发者选项与隐藏开发者选项
  • 【Python进阶篇 面向对象程序设计(3) 继承】
  • 龙旗科技社招校招入职测评25年北森笔试测评题库答题攻略
  • 创意Python爱心代码
  • 软件架构升级中的“隐形地雷”:版本选型与依赖链风险
  • stm32--SPI原理应用W25Q64(二)
  • python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
  • 基于Java+SpringBoot的在线小说阅读平台
  • 网络安全之注入攻击:原理、危害与防御之道