CentOS 7 运行 parse-server-example 提示Cannot find module 'parse-server'报错
根因说明
- 编译报错核心原因:CentOS 7默认预装的gcc版本为4.8.5,不支持
gnu++14编译标准,无法完成parse-server依赖的kerberos原生模块的编译 - 额外环境问题:系统存在多版本Node.js冲突,普通用户执行npm命令时调用的是v16.7.0版本,执行sudo npm start时调用的是系统默认的v6.17.1版本,依赖安装和服务运行的Node环境不匹配
解决步骤
- 升级gcc到支持C++14的版本
执行以下命令安装高版本gcc:
yum install centos-release-scl -y yum install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-make -y
临时在当前终端启用gcc 8:
scl enable devtoolset-8 bash
如果需要永久生效,将启用命令写入用户配置文件:
echo "source /opt/rh/devtoolset-8/enable" >> ~/.bashrc source ~/.bashrc
执行gcc -v验证版本,返回版本号≥8即为配置成功。
- 修复Node.js多版本冲突
不要使用root账号或sudo执行npm相关命令,避免sudo重置PATH变量调用到旧版Node。如果必须使用sudo执行,先确认新版Node的全路径:
which node
假设返回路径为/usr/local/bin/node,后续执行npm命令时使用全路径:
sudo /usr/local/bin/npm [命令内容]
- 重新安装依赖
先清理之前的失败安装残留:
rm -rf node_modules package-lock.json
再重新安装所有依赖:
npm install
- 启动服务
依赖安装完成后执行启动命令即可:
npm start
内容的提问来源于stack exchange,提问作者Harold Samuel Barrera Niño
相关产品推荐
相关产品推荐

