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

使用PM2启动项目报--resolveJsonModule错误,yarn启动正常问题咨询

问题解决:PM2启动报错“Consider using '--resolveJsonModule' to import module with '.json' extension”

核心原因

两种启动方式的TS配置加载逻辑存在差异:

  • yarn start src/server.ts 会通过ts-node/tsx等工具自动读取项目根目录的tsconfig.json,而你已经在配置中开启了resolveJsonModule,所以能正常解析JSON模块。
  • PM2直接启动时,若未指定TS解释器,会默认把文件当作JS执行,或者没有正确加载tsconfig.json的配置,导致JSON模块解析失败。

解决方案

方案1:修改PM2配置,用TS解释器启动

在ecosystem.config.js中指定使用ts-node或tsx作为解释器运行TS文件:

module.exports = {
  apps: [
    {
      name: "你的项目名称",
      script: "src/server.ts", // 项目入口TS文件路径
      interpreter: "ts-node", // 若全局未安装ts-node,可改为"npx ts-node"
      // 若项目使用了路径别名,可添加该行配置
      interpreter_args: "--require tsconfig-paths/register"
    }
  ]
};

修改后重新执行pm2 start ecosystem.config.js即可。

方案2:确保编译后的JS能正确解析JSON(先编译再启动场景)

如果项目是先编译TS为JS再用PM2启动,检查tsconfig.json的关键配置是否正确:

{
  "compilerOptions": {
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "module": "CommonJS" // 可根据项目实际需求调整模块规范
  }
}

重新编译TS为JS后,再用PM2启动编译后的JS文件。

方案3:让PM2直接调用yarn启动命令

直接复用本地启动的逻辑,让PM2执行yarn start命令:

module.exports = {
  apps: [
    {
      name: "你的项目名称",
      script: "yarn",
      args: "start src/server.ts"
    }
  ]
};

内容的提问来源于stack exchange,提问作者Đạt Lê

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:52:58