在 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
被破坏或软链接指向了错误路径(如迁移时损坏、部分依赖缺失)。
cd my-svelte-demo
rm -rf node_modules package-lock.json
npm install
ls -l node_modules/.bin/vite
head -n 5 node_modules/.bin/vite
输出示例(✅ 正确):
#!/usr/bin/env node
require('../vite/bin/vite.js');
cd ..
tar -czvf my-svelte-demo.tar.gz my-svelte-demo/
安装 Node.js(离线)
.tar.xz
版本 Node.js:~/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
node -v
npm -v
scp my-svelte-demo.tar.gz tester@rhel-server:/home/tester/Projects/
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 提供服务步骤 | 操作 | 说明 |
---|---|---|
Debian 环境准备 | npm install + tar -czf |
确保依赖完整并打包 |
RHEL 安装 Node.js | 使用离线版 .tar.xz |
配置路径环境变量 |
项目迁移运行 | 解压并 npm run dev |
本地启动开发服务器 |