我花了几天时间试图在我的Synology ds213j (Armv7,512 my )上运行一个来自Meteor的构建应用程序。
我经常遇到以下错误
## 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
npm install --production
上npm install fibers
我想要修复的是:
到目前为止,什么都没有起作用,我不知道下一步该怎么办。
我怀疑问题在于光纤是为linux 57而构建的,我想我需要arm-7I?我能做点什么让这件事成功吗?
谢谢!
发布于 2018-09-05 08:30:04
在下面的文章中,我将描述如何将应用程序正确地部署到ARMv7设备上。通过这样做,,我将突出强调可能经常导致错误的重要步骤。我希望你的问题能通过重复这些步骤来解决。
1.开发生产应用程序
$ 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
命令构建生产应用程序(我在这里稍微修改了一下您的规范)。$ cd ~/path/to/meteor-project
$ meteor npm install --production
$ meteor build ../build/deployment-test --server-only --architecture os.linux.x86_32
2.准备好目标设备的环境。
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
fibers
或bcrypt
是这样的本地加载项。$ sudo apt-get install -y build-essential
$ node -v
v8.11.4 # but we need v8.9.4
n
包。$ 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
mongodb
>= 2.6 >=(这个答案中没有提到)。3.在目标设备上安装生产应用程序。
$ cd ~/path/to/deploymentapp
$ tar -xvzf ./meteor-project.tar.gz # extracts all content into a folder named 'bundle'
$ cd bundle/programs/server/
$ npm install --production
fibers
或bcrypt
),而不会出现任何错误。现在回到bundle/
并启动应用程序:$ cd ../../
$ MONGO_URL=mongodb://yourmongodbcredentials node main.js
我希望通过复制本指南,您将找到解决您的问题的办法。
添加了SEO的原因:本指南展示了如何在带有ARMv7体系结构和安装了Raspbian (32位)的Raspberry PI上部署Meteor应用程序。它也可以作为其他ARMv7设备的基础,例如OP的语法。
https://stackoverflow.com/questions/52094807
复制相似问题