首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Meteor应用程序部署到Synology armv7:存在“节点-光纤”的问题

将Meteor应用程序部署到Synology armv7:存在“节点-光纤”的问题
EN

Stack Overflow用户
提问于 2018-08-30 10:29:50
回答 1查看 535关注 0票数 2

我花了几天时间试图在我的Synology ds213j (Armv7,512 my )上运行一个来自Meteor的构建应用程序。

我经常遇到以下错误

代码语言:javascript
运行
复制
## There is an issue with `node-fibers` ##
`/volume1/homes/user/app/bundle/programs/server/node_modules/fibers/bin/linux-arm-57/fibers.node` is missing.

Try running this to fix the issue: /volume1/homes/user/.nvm/versions/node/v8.11.2/bin/node /volume1/homes/user/app/bundle/programs/server/node_modules/fibers/build
Error: /volume1/homes/user/app/bundle/programs/server/node_modules/fibers/bin/linux-arm-57/fibers.node: internal error
    at Object.Module._extensions..node (module.js:681:18)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/volume1/homes/user/app/bundle/programs/server/node_modules/fibers/fibers.js:13:39)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
/volume1/homes/user/app/bundle/programs/server/node_modules/fibers/fibers.js:22
                throw new Error('Missing binary. See message above.');
                ^

Error: Missing binary. See message above.
    at Object.<anonymous> (/volume1/homes/user/app/bundle/programs/server/node_modules/fibers/fibers.js:22:9)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/volume1/homes/user/app/bundle/programs/server/boot.js:1:75)
    at Module._compile (module.js:652:30)

但是,fibers.node确实存在!

我以前做过的事:

  • 构建流星应用程序meteor build --server-only --architecture os.linux.x86_32
  • 在/program/server文件夹npm install --production
  • npm install fibers

我想要修复的是:

  • 转到/programs/server/并运行npm安装光纤(并重新安装)
  • 按照https://www.npmjs.com/package/fibers上的说明从源代码安装
  • 我的流星应用程序使用Node8.11.2,但唯一可用的节点版本是8.9.4。移除它并手动安装8.11.2
  • 构建一个默认的流星应用程序来检查我的应用程序是否存在问题。

到目前为止,什么都没有起作用,我不知道下一步该怎么办。

我怀疑问题在于光纤是为linux 57而构建的,我想我需要arm-7I?我能做点什么让这件事成功吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 08:30:04

在下面的文章中,我将描述如何将应用程序正确地部署到ARMv7设备上。通过这样做,,我将突出强调可能经常导致错误的重要步骤。我希望你的问题能通过重复这些步骤来解决。

1.开发生产应用程序

  • 确保应用程序的启动、运行和所有测试都在本地通过。
  • 获取节点的当前开发版本。注意,根据项目使用的流星版本,它是不同的。注意:流星自定义部署指南强调匹配节点版本的重要性。
代码语言:javascript
运行
复制
$ cd ~/path/to/meteor-project
$ meteor node -v
v8.9.4 # this example uses Meteor 1.6.1 which uses node 8.9.4
  • 使用build命令构建生产应用程序(我在这里稍微修改了一下您的规范)。
代码语言:javascript
运行
复制
$ cd ~/path/to/meteor-project
$ meteor npm install --production
$ meteor build ../build/deployment-test --server-only --architecture os.linux.x86_32

2.准备好目标设备的环境。

  • 流星构建也是Node.js应用程序。您的设备将需要一个的ARMv7构建 of Node.js。最简单的方法是使用从节点源安装脚本 (打开新选项卡查看脚本)。
代码语言:javascript
运行
复制
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
  • 注意,官方节点安装指南还指出,“要从npm编译和安装本机加载项,还可能需要安装构建工具”。您将需要这样做,因为fibersbcrypt是这样的本地加载项。
代码语言:javascript
运行
复制
$ sudo apt-get install -y build-essential
  • 验证已安装的节点版本
代码语言:javascript
运行
复制
$ node -v
v8.11.4 # but we need v8.9.4
  • 获取节点的正确版本与开发版本完全匹配的最简单方法是使用npm n包。
代码语言:javascript
运行
复制
$ sudo npm install -g n
$ sudo n 8.9.4
$ # ... installs target version
$ node -v
v8.9.4 # if this is still the old version just restart the shell
  • 如果您在这方面需要帮助,请阅读此github发布线程
  • 最后,在目标设备上安装mongodb >= 2.6 >=(这个答案中没有提到)。

3.在目标设备上安装生产应用程序。

  • 将构建存档复制/移动/上载到目标设备
  • 提取部署包
代码语言:javascript
运行
复制
$ cd ~/path/to/deploymentapp
$ tar -xvzf ./meteor-project.tar.gz # extracts all content into a folder named 'bundle'
  • 在目标系统上安装npm依赖项
代码语言:javascript
运行
复制
$ cd bundle/programs/server/
$ npm install --production
  • 如果您已经复制了上述所有步骤,那么应该在这里安装npm包(尤其是本机包,如fibersbcrypt),而不会出现任何错误。现在回到bundle/并启动应用程序:
代码语言:javascript
运行
复制
$ cd ../../
$ MONGO_URL=mongodb://yourmongodbcredentials node main.js

我希望通过复制本指南,您将找到解决您的问题的办法。

添加了SEO的原因:本指南展示了如何在带有ARMv7体系结构和安装了Raspbian (32位)的Raspberry PI上部署Meteor应用程序。它也可以作为其他ARMv7设备的基础,例如OP的语法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52094807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档