我花了几天时间试图在我的Synology ds213j(Armv7,512MB ram)上运行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)
但是,fiber.node实际上存在!
我之前做过的事:
meteor build --server-only --architecture os.linux.x86_32
npm install --production
npm install fibers
我试图解决它:
到目前为止没有任何工作,我不知道接下来该做什么。
我怀疑问题是光纤是为linux-arm-57构建的,我想我需要arm-7I?我可以做些什么来使这项工作?
谢谢!
在下文中,我将介绍将应用程序正确部署到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
我希望通过复制本指南,您将找到解决问题的方法。