23

捆绑的 node.fibers 在部署到不同的服务器后无法加载,并出现以下错误:

/home/ec2-user/bundle/server/node_modules/fibers/fibers.js:13
    throw new Error('`'+ modPath+ '.node` is missing. Try reinstalling `node-fibe
          ^
Error: `/home/ec2-user/bundle/server/node_modules/fibers/bin/linux-x64-v8-3.11/fibers.node` is missing. Try reinstalling `node-fibers`?
    at Object.<anonymous> (/home/ec2-user/bundle/server/node_modules/fibers/fibers.js:13:8)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/home/ec2-user/bundle/server/server.js:3:1)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
4

3 回答 3

55

解包后必须重新安装节点光纤。要解决此问题,请转到服务器目录。

$ cd bundle/programs/server

然后卸载fibers

$ npm uninstall fibers

然后安装fibers

$ npm install fibers

然后启动您的应用程序

$ cd ../../
$ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js

每次更新应用程序时,您都必须重复这一点。这正是 Meteor 目前使用 Node 的方式。可以在这里找到潜在的长期修复:http: //meteorhacks.com/how-meteor-uses-node.html

注意:在 Meteor 0.6.5 和 Node 0.10.* 上,这可能会略有不同。您可能必须手动从 和 中删除bundle/server纤维bundle/programs/server。你可以用$ rm -R node_modules/fibers. 然后,您必须使用$ npm install fibers.

于 2012-11-10T23:29:31.990 回答
2

Meteor 1.0.3.2 和 Node 0.12.0 也有同样的问题。我不得不降级到节点 0.10.31。这解决了这个问题。

请记住,所有说明都在 bundle 文件夹的自述文件中。

于 2015-03-09T11:46:49.550 回答
1

不匹配的节点版本

当您执行和运行流星应用程序时,节点的版本必须匹配: 。npm installnode app.js

否则,您最终可能会得到不同版本的预期glibc文件夹......

看看你是否有这个问题:

  1. 请注意您看到的运行时错误。例如,在我的情况下:
Try running this to fix the issue: /usr/bin/node <bundle location>/bundle/programs/server/node_modules/fibers/build
Cannot find module '<bundle location>/bundle/programs/server/node_modules/fibers/bin/linux-x64-83-libc/fibers`
  • 即使/usr/bin/node我通过nvm.
  • fibers可执行文件在linux-x64-83-libc文件夹中寻找。
  1. 导航到bundle/programs/server/node_modules/fibers/bin并检查您的glibc子文件夹。就我而言:linux-x64-57-glibc&linux-x64-64-glibc
  • 我的可执行文件正在寻找并且linux-x64-83-libc它不存在。

笔记

就我而言,我nvm用来管理我的节点版本。但正如我在说明中看到的那样fix,我的可执行文件正在使用/usr/bin/node,而不是nvm我期望的版本。

使固定

我删除了/usr/bin/node版本sudo apt-get remove nodejs,一切都很好。一切都开始使用该nvm版本。

于 2021-03-07T21:36:42.270 回答