无权限时如何在远程SSH服务器本地部署Node运行React项目
解决远程服务器Node版本过低导致的React项目启动报错问题
方法一:在项目本地目录安装独立Node版本
不用全局权限,直接把Node二进制包下载到项目目录里用:
- 先查服务器系统架构:
uname -m,得到比如x86_64或arm64 - 下载对应架构的Node LTS版本包(比如v16.x,兼容性好):
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz(替换成对应架构的包) - 解压包:
tar -xJf node-v16.20.2-linux-x64.tar.xz - 直接用本地Node执行命令:
./node-v16.20.2-linux-x64/bin/npm install./node-v16.20.2-linux-x64/bin/npm start - 嫌路径长的话,临时把本地Node路径加到当前shell的PATH里:
export PATH=$(pwd)/node-v16.20.2-linux-x64/bin:$PATH
之后直接输npm start就行,这个设置只在当前SSH会话生效,下次登录要重新跑一遍命令。
方法二:降级项目依赖适配旧Node
如果不想折腾新Node,先看服务器当前Node版本:node -v,然后降级react-scripts到兼容版本:
- 比如服务器是Node 12.x,就装react-scripts@4.x(react-scripts@5要求Node 14+)
- 执行:
npm uninstall react-scriptsnpm install react-scripts@4.0.3 - 再试
npm start
方法三:本地构建静态文件后上传服务器运行
直接在本地把项目编译成静态文件,传到服务器用简单HTTP服务跑:
- 本地执行
npm run build,生成build文件夹 - 用scp把build传到服务器:
scp -r build 你的用户名@服务器地址:/项目存放路径 - 服务器上用Python启动静态服务:
Python3:python3 -m http.server 3000
Python2:python -m SimpleHTTPServer 3000 - 或者用Node的http-server(用刚才本地装的Node安装):
./node-v16.20.2-linux-x64/bin/npm install -g http-serverhttp-server build -p 3000
之后访问服务器IP:3000就能看到项目。
内容的提问来源于stack exchange,提问作者Ritik Sinha
相关产品推荐
相关产品推荐

