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

Meteor-Now部署报错“sh: meteor: not found”求助

解决meteor-now部署时"sh: meteor: not found"的问题

这个错误的核心原因是ZEIT Now的部署环境中没有预装Meteor CLI,而你的package.json里的start脚本直接调用了meteor run,自然会找不到命令。下面给你两个可行的解决方案:

方案一:使用Meteor生产构建包部署(推荐)

这种方式不需要依赖部署环境中的Meteor CLI,是更稳定的生产部署方式:

  • 本地构建生产版本
    在你的Meteor项目根目录执行以下命令,生成可直接运行的生产构建包:
meteor build ../my-app-bundle --directory

执行完成后,上级目录的my-app-bundle文件夹里会出现一个bundle目录,这就是我们需要的生产包。

  • 调整bundle内的配置
    进入bundle目录,修改里面的package.json:
    1. 将scripts中的start改为:"start": "node main.js"
    2. 安装服务端依赖:
cd bundle/programs/server
npm install
  • 部署bundle目录
    现在直接用meteor-now部署这个bundle目录即可:
cd ../.. # 回到bundle目录
meteor-now

方案二:修改项目配置让部署环境自动安装Meteor CLI

如果你不想提前构建,也可以让Now在部署过程中自动安装Meteor:

  • 在项目根目录创建now.json
    添加以下配置,指定安装Meteor的命令:
{
  "builds": [
    {
      "src": "package.json",
      "use": "@now/node",
      "config": {
        "installCommand": "npm install && curl https://install.meteor.com/ | sh"
      }
    }
  ],
  "env": {
    "PATH": "/usr/local/bin:$PATH"
  }
}

这个配置会让Now在安装依赖时同时安装Meteor,并确保Meteor的命令在PATH中能被找到。

  • 重新部署
    执行meteor-now或者通过ZEIT Client重新部署,此时部署环境会先安装Meteor,再运行你的start脚本。

额外提示

  • 检查你的meteor-now是否是最新版本,旧版本可能存在兼容性问题:
npm update -g meteor-now
  • 如果你用的是Meteor 1.8+,官方推荐使用meteor build的方式部署,避免依赖环境中的Meteor CLI。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:21:30