Meteor bundle因为fiber.node缺失而失败

Ola*_*erg 18 meteor

捆绑的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)
Run Code Online (Sandbox Code Playgroud)

Ola*_*erg 49

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

$ cd bundle/programs/server
Run Code Online (Sandbox Code Playgroud)

然后卸载 fibers

$ npm uninstall fibers
Run Code Online (Sandbox Code Playgroud)

然后安装 fibers

$ npm install fibers
Run Code Online (Sandbox Code Playgroud)

然后开始申请

$ cd ../../
$ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
Run Code Online (Sandbox Code Playgroud)

每次更新应用程序时都必须重复此操作.这就是Meteor目前使用Node的方式.可以在此处找到潜在的长期修复:http://meteorhacks.com/how-meteor-uses-node.html

注意:在Meteor 0.6.5和节点0.10.*上,这可能会略有不同.您可能需要从手动删除纤维bundle/server以及bundle/programs/server.你可以这样做$ rm -R node_modules/fibers.然后你必须从两个位置重新安装光纤$ npm install fibers.

  • 感谢您指出光纤模块需要安装在服务器文件夹的INSIDE中.其他人都错过了那个非常重要的细节. (6认同)
  • 安装在`bundle/programs/server`而不是只有`bundle/server`是让它工作的关键. (6认同)