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

Node.js Strapi部署报错:系统找不到指定路径(ecosystem.config.js)

解决PM2部署Windows IIS服务器时的路径找不到问题

问题描述

为Node.js Strapi应用创建ecosystem.config.js实现部署自动化,部署到外部Windows IIS服务器时指定了部署路径,但运行部署脚本返回错误:The system cannot find the path specified。

当前ecosystem.config.js配置如下:

module.exports = {
  apps: [{
      name: 'my-app',
      script: './server.js',
      args: 'start',
      env_production: {
        NODE_ENV: "production",
        //PORT: 8080
      },
      env_development: {
        NODE_ENV: "development",
        //PORT: 3000
      },
      out_file: "./out.log",
      error_file: "./error.log",
      merge_logs: true,
      log_date_format: "DD-MM HH:mm:ss Z",
      log_type: "json"
    }],
    deploy : {
       production : {
         user : "user",
         host : "host",
         ref  : "origin/main",
         repo : "git@github.com:githubrepo",
         path : "C:/Sites/application-folder/my-app-production",
         "post-deploy" : "npm install && NODE_ENV=production npm run build && pm2 startOrRestart ecosystem.config.js --env production"
       },
       development : {
        user : "user",
        host : "host",
        ref  : "origin/main",
        repo : "git@github.com:githubrepo",
        path : "C:/Sites/application-folder/my-app-staging",
        "post-deploy" : "npm install && NODE_ENV=development npm run build && pm2 startOrRestart ecosystem.config.js --env development"
      }
     }
};

已知信息:

  • 在Windows IIS上可正常导航到目标路径
  • SSH连接服务器后初始目录为C:\Users\User
  • 尝试将path改为相对路径../../Sites/application-folder/my-app-staging,仍报相同错误

可能的原因及解决方法

1. 修正Windows路径格式

PM2部署模块在处理Windows路径时,对正斜杠/的兼容存在问题,需替换为Windows原生反斜杠\(JS字符串中需转义为\\):

// 生产环境路径修改
path : "C:\\Sites\\application-folder\\my-app-production",
// 开发环境路径修改
path : "C:\\Sites\\application-folder\\my-app-staging",

2. 检查路径权限与存在性

  • 权限验证:确认SSH登录的user账户拥有C:\Sites\application-folder及其子目录的读写权限,IIS可访问不代表SSH用户有对应权限。
  • 父目录存在性:PM2仅会创建最终部署目录,若父目录(如C:\Sites\application-folder)不存在,需手动创建后再执行部署。

3. 修正相对路径基准

PM2部署的相对路径基于SSH初始目录C:\Users\User,Windows下相对路径需用反斜杠,正确写法为:

path : "..\\..\\Sites\\application-folder\\my-app-staging"

不过更推荐使用绝对路径,避免层级计算错误。

4. 修复Post-deploy命令中的路径引用

Post-deploy命令里的pm2 startOrRestart ecosystem.config.js需确保配置文件在部署目录中存在,或直接使用绝对路径指向:

// 生产环境post-deploy修改
"post-deploy" : "npm install && NODE_ENV=production npm run build && pm2 startOrRestart C:\\Sites\\application-folder\\my-app-production\\ecosystem.config.js --env production"

5. 手动验证Git克隆路径

在SSH会话中手动执行克隆命令,排查路径或权限问题:

git clone git@github.com:githubrepo C:\Sites\application-folder\my-app-staging

若克隆失败,根据错误信息针对性解决权限或路径问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:53:32