将流星部署到官方流星服务器光纤

Deploy meteor to official meteor servers fibers

本文关键字:流星 服务器 光纤 官方 部署      更新时间:2023-09-26

这里已经有几个与这个问题相关的问题。

我想将一个 meteorjs 应用程序部署到官方 meteor 服务器。我的应用程序使用光纤,并且由于光纤是为我的系统(Mac OSX(编译的,因此它会在Meteor的ubuntu服务器上创建错误。

其他问题/答案与将应用程序部署到官方流星服务器以外的其他地方有关,或者它们似乎留下了一步,因为它们对我不起作用。

一些相关的帖子是这些:

在 Modulus.io 上重新安装 Meteor 应用程序的节点光纤?

光纤模块相关的流星部署问题

我想使用:

meteor deploy myapp.meteor.com

编辑:

不幸的是,我

上面的问题并不完整,我使用Future,这是纤维的一部分。当我将其部署到流星并访问服务器日志时,我收到这些警告,应用程序立即崩溃。

警告/流星/dev_bundles/0.3.13/lib/node_modules/光纤/未来.js:173

警告错误:找不到模块"光纤/未来">

在我的代码中,我有这样一行:

Future = Npm.require("fibers/future");

这在流星部署 XXX.meteor.com 上是不可能的吗?

编辑第二:而不是使用:

Future = Npm.require("fibers/future");

我也试过:

var path = Npm.require('path');
var fs = Npm.require('fs');
var base = path.resolve('.');
var isBundle = fs.existsSync(base + '/bundle');
var modulePath = base + (isBundle ? '/bundle/static' : '/public') + '/node_modules';
Future = Npm.require(modulePath + '/fibers/future');

正如这篇文章所建议的:

如何在 meteor.com 上的 Meteor 应用程序中部署节点模块?

并安装了光纤以:

.meteor/local/build/programs/server/public/node_modules/

但是有了这个,我在没有 sudo 的情况下运行流星时会得到这个错误:EACCES,权限被拒绝"XXXX/.meteor/local/build" at Object.fs.renameSync (fs.js:439:18(

或者这个错误,当使用 sudo 运行时:错误:找不到模块"XXXX/.meteor/local/build/programs/server/public/node_modules/fibers/future">

通常我运行流星没有 sudo ofc!

我的问题是我确实包含了用于加载另一个框架的 npm 包,这破坏了流星的新 Npm。

您只需卸载光纤并将其重新安装到您的服务器上,如文档中所述:

cd bundle/programs/server/node_modules
rm -r fibers
npm install fibers@1.0.1

其中捆绑目录是您在 ubuntu 服务器上通过 meteor bundle xxx.tar.gz 创建的捆绑应用程序的未压缩版本

从 meteor 文档中可以清楚地看出,您可以使用"meteor deploy"部署到 meteor.com,也可以通过使用"meteor bundle"创建捆绑包来部署到您自己的服务器。

只有在创建捆绑包时,才需要安装"光纤"。如果您使用"流星部署",则没有必要。

仅当您要像这样部署时,才需要删除并重新安装光纤包的部分

  • 在开发计算机上创建捆绑包
  • 将 bundle.tgz 文件复制到运行不同操作系统的服务器
  • 解压缩 bundle.tgz 文件并运行应用程序

创建捆绑包时,无论如何都必须安装光纤。如果在服务器上执行所有操作,则步骤如下:

  • 流星捆绑包 --发布 0.6.5.1/my/output.tgz
  • tar -xvzf/my/output.tgz
  • MV 捆绑您的应用名称
  • CD 您的应用程序名称/程序/服务器
  • npm 安装光纤
  • 永远启动您的应用程序名称/主.js

这些步骤假定您永远使用 Node 包