【问题标题】:Can you run a meteor bundle, example.tar.z , on a computer that doesn't have meteor?您可以在没有流星的计算机上运行流星包 example.tar.z 吗?
【发布时间】:2014-05-21 22:07:41
【问题描述】:

如果我使用捆绑流星应用程序

meteor bundle iron.tar.gz

我可以在没有安装流星的另一台计算机上本地运行应用程序(localhost:3000)吗?如果是这样,我将如何去做?感谢您的帮助!

【问题讨论】:

    标签: node.js meteor


    【解决方案1】:

    流星碎片将捆绑在您的流星包中,但您需要在另一个盒子上安装 Node.js 和 NPM。我使用Forever,以便它保持正常运行并有两个脚本。这个以捆绑包名称作为参数,并根据 Meteor 的 instructions 将捆绑包安装到永远可以使用的目录中:

    #!/bin/sh
    
    if [ -d "$1" ]
    then
       rm -rf $1
    fi
    
    mkdir $1
    cp ~/$1.tgz ./$1
    cd ./$1
    
    tar xvfz $1.tgz
    
    rm -rf bundle/programs/server/node_modules/fibers/
    npm install fibers@1.0.1
    

    然后我可以运行下一个脚本,它将项目名称作为输入并针对 MongoDB 副本集永远启动它:

    #!/bin/sh
    
    export PORT=3000
    export MONGO_URL=mongodb://id:pwd@replica1.yourcompany.com:27017,replica2.yourcompany.com:27017,replica3.yourcompany.com:27017/meteor
    forever start $1/bundle/main.js
    

    运行该脚本后,您可以从 localhost 启动它或将 nginx 设置为 HTTP 服务器,它们可以代理它并通过端口 80/443 在您的主机上运行。

    【讨论】:

    • 这似乎比我预期的要复杂。情况是我将我的流星应用程序发送给一个编程知识很少的离线人。这个接收应用程序的人只想在他们自己的机器上本地运行它。需要 node.js 和 mongodb 是有道理的,但它可以被简化或以某种方式嵌入到 .tar.gz 包中吗?
    • AFIAK,这是不可能的。 tgz 就是这样。您仍然需要让最终用户安装 node/mongo,然后运行上面的脚本。只是想知道,您为什么不直接为他们托管它,特别是如果他们不精通这些事情。您可以直接部署到 Meteor。 meteor deploy myapp.meteor.com
    • 适用于不在线的网络。这个想法是我可以进来并快速有效地安装它。上面的脚本是针对 mac os x 的吗?
    • 我明白了。是的,上面的脚本也可以在 Mac 上运行。我用它作为我的主要操作系统。至少使用这两个脚本,您可以使用命令行方式来执行您必须手动执行的那些步骤。祝你好运!
    • 谢谢。我能够使用简单的 hello world meteor 应用程序成功地做到这一点,但是当添加包时,它似乎使事情变得复杂。
    【解决方案2】:

    这就是我最终要做的。我的目标是能够在没有流星但有 mongodb 和 node.js 的计算机上运行我的流星应用程序。这是一个简单的逐步过程。我想在不在线的网络上运行它,并选择默认的 localhost:3000 作为我的地址。

    第 1 步: 使用终端(cd 位置)导航到流星项目所在的文件夹。

    第 2 步: 在终端: $ export ROOT_URL='http://localhost:3000'

    第 3 步: 在终端: $ meteor bundle app.tgz

    现在有了这个 app.tgz,你可以将它发送到另一台没有安装流星但有 node.js 和 mongodb 的计算机。

    第 4 步: 在取景器中: 找到压缩包的应用并解压。

    第 5 步: 在新终端中运行 mongodb: $ mongod

    第 6 步: 在终端中导航到解压缩的捆绑应用程序并使用(您必须安装 Node.js): $ PORT=3000 MONGO_URL=mongodb://localhost:27017/app node main.js

    第 7 步: 将浏览器导航到http://localhost:3000,应用程序现在应该正在运行。

    【讨论】:

    • 您仍然需要删除并安装光纤包,否则,AFAIK,应用程序将无法运行。见docs.meteor.com/#deploying
    • @occasl 当它在文档中说时,它只适用于创建捆绑包的平台,这是否意味着它只能在操作系统或实际机器上运行?
    • 正确,除非您在目标主机上移除/安装光纤。至少这是我的经验,因此我创建了下面的脚本来运行一些命令来快速部署和启动我的应用程序。
    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2015-02-03
    相关资源
    最近更新 更多