我今天升级到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很新,但是如果你有建议我真的很感激!
答案 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-3
和meteor 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的说法。另外,我不得不通过删除文件夹
手动删除原始bctyptbundle/programs/server/npm/npm-bcrypt
否则我收到ELS错误
答案 2 :(得分:1)
如果您使用Meteor-Up收到此错误消息。更新包应该修复它。
npm update mup -g