Далее я опишу, как правильно развернуть приложение на устройстве 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. Подготовьте среду вашего целевого устройства
- Сборки Meteor также являются приложениями Node.js. Для вашего устройства потребуется сборка ARMv7 Node.js. Самый простой способ сделать это - использовать скрипт установки из узла источника (откройте на новой вкладке, чтобы просмотреть скрипт).
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
- Обратите внимание, что официальное руководство по установке узла также указывает, что "Чтобы скомпилировать и установить собственные дополнения из npm, вам также может понадобиться установить инструменты сборки" . Вам это понадобится, потому что
fibers
или bcrypt
являются такими нативными аддонами.
$ sudo apt-get install -y build-essential
- Проверьте версию установленного узла
$ node -v
v8.11.4 # but we need v8.9.4
- Самый простой способ получить правильную версию узла , которая точно соответствует вашей версии разработки , - это использовать пакет npm
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
- если вам нужна помощь по этому вопросу, прочитайте эту тему выпуска github
- наконец, установите
mongodb
> = 2,6 ( важно! ) на целевом устройстве (не рассматривается в этом ответе).
3. Установите ваше производственное приложение на целевое устройство
- копировать / перемещать / загружать архив сборки на целевое устройство
- распакуйте комплект развертывания
$ cd ~/path/to/deploymentapp
$ tar -xvzf ./meteor-project.tar.gz # extracts all content into a folder named 'bundle'
- установить зависимости npm в целевой системе
$ cd bundle/programs/server/
$ npm install --production
- , если вы повторили все вышеперечисленные шаги, пакеты npm (и особенно собственные пакеты, такие как
fibers
или bcrypt
) должны быть установлены здесь без каких-либо ошибок. Теперь вернитесь к bundle/
и запустите приложение:
$ cd ../../
$ MONGO_URL=mongodb://yourmongodbcredentials node main.js
Я надеюсь, что, скопировав это руководство, вы найдете решение своей проблемы.
Добавлено по причинам SEO: В этом руководстве показано, как развернуть приложение Meteor на Raspberry PI с архитектурой ARMv7 и установленной Raspbian (32-разрядной). Его также можно использовать как основу для других устройств ARMv7, таких как OP Synology.