我花了几天的时间尝试在我的Synology ds213j(Armv7,512MB内存)上运行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
我试图解决的问题:
按照以下说明从源进行安装 https://www.npmjs.com/package/fibers
我的流星应用使用Node 8.11.2,但唯一可用于Synology的节点版本是8.9.4。删除它并手动安装8.11.2
构建一个默认的流星应用程序,以检查我的应用程序是否出现问题。
到目前为止,什么都没做,我不知道下一步该怎么做。
我怀疑问题是光纤是为linux-arm-57构建的,我想我需要arm-7I吗? 有什么我可以做的吗?
谢谢!
答案 0 :(得分:1)
以下,我描述了将应用正确部署到ARMv7设备的方式。这样,我将突出显示可能经常引起错误的重要步骤。希望您的问题可以通过重复这些步骤来解决。
$ 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
$ 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(重要!)。$ 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
我希望通过复制本指南,您可以找到解决问题的方法。