【问题标题】:Deploying my MeteorJS App fails部署我的 MeteorJS 应用程序失败
【发布时间】:2012-12-09 08:32:43
【问题描述】:

我实现了一个小的 meteorjs 演示应用程序。该应用程序在陨石、libxmljs 和 imagemagick 的帮助下将 svgs 转换为二进制图像(包括调整大小)。不幸的是,我无法将它部署在流星自己的基础设施上(mrt deploy)。真正糟糕的是:我找不到一些日志。我不知道发生了什么事。我很确定这与我的依赖关系有关。源托管here。问题很可能出现在 server/server.js 的开头。我猜我导入依赖项的方式不适用于meteorjs。如果是,我该如何解决?如果没有,有人看到这个问题吗?

顺便说一句:另外,在 appfog 和 nodejitsu 上部署也不起作用。

【问题讨论】:

    标签: meteor


    【解决方案1】:

    你没有说你运行的是什么操作系统。我假设最基本的是 Ubuntu 12.04 服务器。您必须在其上安装 MongoDB 和带有所有依赖项的 Node.js。为 MongoDB 创建 Admin 用户并将用户添加到数据库。

    您可以使用名为 Demeteorize 的工具来打包您的 Meteor 应用程序。 Demeteorize 更好,因为它允许将应用程序从一个平台部署到另一个平台并解决发生的问题。因此,如果您使用 Mac 开发并想部署到 Ubuntu,您不会因为不同的环境而遇到问题。

    一旦在服务器上,您可以使用 Node 启动 demeteorized 应用程序,并设置在 localhost 上运行的端口设置。

    现在您可以使用 Apache 代理您指定的端口并将其映射到域名。这允许您在不同的端口上运行多个 Meteor 应用程序并仍然为它们分配域名。

    可以在以下网址找到执行所有这些操作的完整指南:

    Deploying multiple vhost Meteor JS apps on Ubuntu 12.04 with MongoDB

    【讨论】:

      【解决方案2】:

      获取当前在 node_modules 中的所有 node.js 源并将它们复制到项目的 /public 目录。

      部署时,Meteor 会抓取你的本地包,但不会抓取节点模块。在meteor.com 上获取节点模块的唯一方法是将它们放在项目中的可访问目录中。 /public 是一个不错的选择,因为该目录中的文件只有在客户端请求时才会发送给客户端,而除 /server 之外的所有其他文件都将发送给客户端。

      然后您必须适当地更新您的 require() 语句。

      另见:

      How can I deploy node modules in a Meteor app on meteor.com?

      How do we or can we use node modules via npm with Meteor?

      【讨论】:

      • 谢谢,我可以部署了。不幸的是,imagemagick 在流星基础设施上不可用。因此,它仍然不起作用。其他一切正常。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2016-10-20
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多