Meteor 0.9.0捆绑和部署抛出错误

时间:2014-08-27 10:33:29

标签: node.js meteor

我今天升级到Meteor 0.9.0。我使用meteor bundle filename 捆绑我的应用程序并上传到AWS。当我尝试在AWS上启动它时,我得到了

wrong ELF class: ELFCLASS32

这是fiber / bcrypt的一个已知问题,所以我以前去bundle / programs / server / node_modules,删除光纤和bcrypt文件夹并重新安装它们(npm install)。

但是,目前node_modules目录已不存在...当我尝试启动nodejs时,我得到了

Error: Cannot find module 'underscore'

我尝试用npm install手动添加模块,甚至让服务器最终运行,但客户端没有加载,控制台错误是关于

Spacebars undefined

(我没有确切的空格键问题)

我知道Meteor 0.9.0很新,但是如果你有建议我真的很感激!

3 个答案:

答案 0 :(得分:4)

您无需删除任何文件夹,只需在bundle目录中执行此操作(无标准meteor bundle的输出):

cd bundle
cd programs/server
npm install

Meteor 0.9.0确保它会显示所有不包含二进制文件的node_modules,并为{b}和

创建npm install的package.json

由于您已删除node_modules中的npm模块,因此您可能必须从头开始重新创建该包以将其恢复。

对于Spacebars undefined问题,您很可能在项目中有一个与Meteor 0.9.0不兼容的软件包。您可以通过检查服务器日志找出它是哪一个。虽然它不兼容,但您的应用仍会运行。

这可能是boostrap-3,虽然它可能不是。如果是,您可以meteor remove mrt:bootstrap-3meteor add mizzao:bootstrap-3

答案 1 :(得分:3)

Akshat,你是一个救星!根据你的答案,我最终设法弄清楚了!为了他人的利益,我想记录最终起作用的内容:

首先,我必须手动删除Meteor项目中的所有旧包(似乎它没有自动执行)。特别是,我删除了

iron-router 

这是Meteor 0.9之前的版本并已安装

iron:router 

这是Meteor 0.9之后的版本。 (我必须做一个类似的过程,删除和添加2-3个其他包的不同包。)

然后,一旦我在AWS上捆绑并解压缩,我就完成了Akshat在bundle / programs / server中关于npm install的说法。另外,我不得不通过删除文件夹

手动删除原始bctypt
bundle/programs/server/npm/npm-bcrypt

否则我收到ELS错误

答案 2 :(得分:1)

如果您使用Meteor-Up收到此错误消息。更新包应该修复它。

npm update mup -g