让meteor 0.9.2构建工作OSX - > Linux

gma*_*man 7 linux macos node.js meteor

我使用流星0.8.x但最近尝试升级到0.9.2.它在本地工作,但我没有运气meteor bundlemeteor build

首先我得到了这个错误

/var/projects/myproject/live/bundle/programs/server/boot.js:198
}).run();
   ^
Error: /var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at bindings (/var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:1:97)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情

  • 确保live/bundle/programs/server/node_modules在开始之前不存在.
  • 像README所说的那样跑npm install进来live/bundle/programs/server

我注意到的事情.有没有bcryptDEPS在live/bundle/programs/server/package.json.在0.8.2我有命令安装fibersbcrypt手动,但显然我不再需要光纤了.看起来我确实需要bcrypt它,但它位于与以往不同的位置.

我没有在文档中看到有关需要进行/var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt安装的任何内容bcrypt.我可以手动删除它,但我做错了什么?

就像我说的那样我已经安装了0.8.2需要它的地方programs/server.我应该手动安装program/server/npm/npm-bcrypt吗?我应该将其添加到我要忽略的地方列表中

我把它放在试试中,所以现在我得到了这个错误

/var/projects/myproject/live/bundle/programs/server/node_modules/fibers/future.js:173
                        throw(ex);
                              ^
Error: Cannot find module 'websocket-driver'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/projects/myproject/live/bundle/programs/server/npm/ddp/node_modules/faye-websocket/lib/faye/websocket.js:8:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
Run Code Online (Sandbox Code Playgroud)

这是我需要手动安装的另一个模块吗?我的印象是我只是在做一些根本错误的事情.

我有以下流星套餐

.meteor /包

# Meteor packages used by this project, one per line.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.

standard-app-packages
audit-argument-checks
iron:router@0.9.3
meteorhacks:npm@1.2.0

npm-container
Run Code Online (Sandbox Code Playgroud)

packages.json

{
  "semver": "2.3.1",
  "winston": "0.7.3",
  "winston-loggly": "1.0.1"
}
Run Code Online (Sandbox Code Playgroud)

注意:我正在OSX上开发/捆绑,但在Ubuntu上进行部署.

小智 7

我有类似的问题 - 我在DO上发布了我的解决方案

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-meteor-js-application-on-ubuntu-14-04-with-nginx?comment=19780


更新 - 以下是该论坛的答案:

如果其他人有这样的问题与bcrypt - 该应用程序可能有自己的副本 /home/yourapp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/

删除那个噪音.然后这样做.

cd /home/yourapp/bundle/programs/server

npm install bcrypt

然后

cp -r /home/yourapp/bundle/programs/server/node_modules/bcrypt /home/yourapp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/

然后启动你的应用程序,享受meteory善良.