You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DigitalOcean Droplet部署Express服务器时遇apollo-server-express找不到错误

解决DigitalOcean Droplet上ESM模式下apollo-server-express模块找不到的问题

以下是针对该问题的具体排查和解决步骤:

  • 检查Node.js版本一致性
    本地与服务器的Node版本差异可能导致模块解析逻辑异常。执行node -v对比两端版本,若不一致,用nvm统一版本:
# 安装对应版本(替换为你的本地Node版本号)
nvm install 16.18.0
# 切换到该版本
nvm use 16.18.0
  • 修复node_modules权限问题
    服务器上的目录权限可能限制Node读取模块文件,执行以下命令修复:
sudo chown -R $USER:$USER /root/ti4-automation/node_modules
# 验证权限是否正常
ls -ld /root/ti4-automation/node_modules/apollo-server-express

确保输出中的文件所有者为当前登录用户。

  • 调整nodemon的ESM支持配置
    旧版nodemon对ESM的支持存在缺陷,先更新nodemon到最新版:
npm install nodemon@latest --save-dev

再修改package.json中的启动脚本,明确指定ESM解析策略:

"startServer": "nodemon --experimental-specifier-resolution=node ./server/index.js"
  • 强制清除缓存并重装依赖
    可能存在依赖缓存损坏的情况,执行以下步骤彻底重装:
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
  • 临时测试绝对路径导入
    将index.js中的导入语句改为绝对路径,验证模块是否能被正常读取:
import { ApolloServer } from '/root/ti4-automation/node_modules/apollo-server-express/index.js'

若此方式可行,说明项目的ESM解析配置存在问题,需检查项目根目录package.json的位置是否正确,或Node的模块解析策略是否有特殊配置。

内容的提问来源于stack exchange,提问作者Peter Boomsma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:10:19