linux - 让 meteor 0.9.2 构建工作 OSX -> Linux

标签 linux node.js macos meteor

我使用的是 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)

我尝试过的事情

  • 确保 live/bundle/programs/server/node_modules 在开始之前不存在。
  • live/bundle/programs/server 中运行 npm install 正如 README 所说

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

我在文档中没有看到任何关于需要转到 /var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt 并安装 bcrypt 。我可以手动删除它,但我做错了什么吗?

就像我说的那样,我已经将它安装在 programs/server 中 0.8.2 需要它的地方。我应该在 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)

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

我有以下 meteor 包

.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

包.json

{
  "semver": "2.3.1",
  "winston": "0.7.3",
  "winston-loggly": "1.0.1"
}

注意:我在 OSX 上开发/捆绑,但在 Ubuntu 上部署。

最佳答案

我有类似的问题 - 我在 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 安装 bcrypt

然后

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

然后启动您的应用程序,享受 meteor 般的美好。

关于linux - 让 meteor 0.9.2 构建工作 OSX -> Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25903097/

相关文章:

c - 不了解 PIPE 计划

linux - crontab bash 脚本未运行

php - 如何通过 lambda 脚本将 JSON 数据发布到另一台服务器

Node.js 中间件组织和参数验证

c - 在另一台机器上运行从 clang+llvm 编译的程序

node.js - 将node_modules或bower_components复制到Web应用程序中的static/public目录

swift - 配置 Interface Builder 的新 WKWebView 对象

macos - 插件更新时出错

macos - CNContactPicker - 所有联系人都是灰色的

C++查找USB闪存设备的挂载路径(linux)