这里有一些与此问题相关的问题。
我想将meteorjs应用程序部署到官方流星服务器。我的应用程序使用光纤,因为光纤是为我的系统(Mac OSX)编译的,它会在流星上在ubuntu服务器上产生错误。
其他问题/答案与在官方流星服务器以外的其他地方部署应用程序有关,或者它们似乎没有结束,因为它们对我不起作用。
一些相关的帖子是这些:
Reinstalling node-fibers for a Meteor app on Modulus.io?
Problems with Meteor deployment related to fibers module
我想用:
meteor deploy myapp.meteor.com
编辑:
上面我的问题不完整,我使用Future,它是光纤的一部分。当我将它部署到meteor并访问服务器日志时,我得到了这些警告,并且应用程序在之后崩溃。
警告/meteor/dev_bundles/0.3.13/lib/node_modules/fibers/future.js:173
警告错误:找不到模块'fiber / Future'
在我的代码中,我有一行:
Future = Npm.require("fibers/future");
这是不可能在meteor部署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');
正如本文所述:
How can I deploy node modules in a Meteor app on meteor.com?
并安装光纤:
.meteor /本地/建造/方案/服务器/公共/ 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的情况下运行meteor!
答案 0 :(得分:1)
我的问题是我确实包含了用于加载另一个框架的npm包,它打破了流星的新Npm。
答案 1 :(得分:0)
您需要卸载光纤并在服务器上重新安装,如文档中所述:
cd bundle/programs/server/node_modules
rm -r fibers
npm install fibers@1.0.1
捆绑目录是您在ubuntu服务器上通过meteor bundle xxx.tar.gz
创建的捆绑应用的未解除版本
答案 2 :(得分:0)
很明显,您可以通过'meteor deploy'部署到meteor.com,或者通过创建带有'流媒体包'的捆绑包部署到您自己的服务器。
只有在您创建捆绑包时才需要安装“纤维”。如果您使用'meteor deploy'则没有必要。
只有在您想要像这样部署时才需要删除并重新安装光纤包的部分
创建捆绑包时,您必须在任何情况下都安装光纤。如果您在服务器上执行所有操作,则步骤为:
这些步骤假定您使用节点包forever