这里已经有一些与此问题相关的问题。
我想将meteorjs 应用程序部署到官方的meteor 服务器。我的应用程序使用纤程,并且由于纤程是为我的系统(Mac OSX)编译的,它会在 ubuntu 服务器上由流星创建一个错误。
其他问题/答案与在官方流星服务器以外的其他地方部署应用程序有关,或者他们似乎离开了一步,因为它们对我不起作用。
一些相关的帖子是:
在 Modulus.io 上为 Meteor 应用程序重新安装节点光纤?
我想使用:
meteor deploy myapp.meteor.com
编辑:
不幸的是,我上面的问题并不完整,我使用 Future,它是纤维的一部分。当我将它部署到流星并访问服务器日志时,我收到这些警告,然后应用程序立即崩溃。
警告/meteor/dev_bundles/0.3.13/lib/node_modules/fibers/future.js:173
警告错误:找不到模块“纤维/未来”
在我的代码中,我有一行:
Future = Npm.require("fibers/future");
这在meteor deploy 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,在 Object.fs.renameSync (fs.js:439:18) 的权限被拒绝'XXXX/.meteor/local/build'
或此错误,使用 sudo 运行时:错误:找不到模块'XXXX/.meteor/local/build/programs/server/public/node_modules/fibers/future'
通常我在没有 sudo ofc 的情况下运行流星!