Я использую AWS Lambda, который включает в себя создание архива моего сценария node.js, включая папку node_modules
и загрузку ее в свою инфраструктуру для запуска.Модуль кросс-компиляции с собственными связями с node-gyp
Это прекрасно работает, за исключением случаев, когда речь идет о модулях узлов с собственными привязками (с использованием node-gyp). Поскольку привязка была выполнена и архивирована на моем локальном компьютере (OS X), она не совместима с серверами AWS (Amazon Linux).
Как перекрестно скомпилировать/установить модуль узла (в частности, node-sqlite3), поэтому, когда я загружаю его в другую архитектуру сервера, он запускается?
Вы пытались использовать node-pre-gyp? node-sqlit3 уже использует его, поэтому вы опережаете игру. IIRC, он должен разгрузить сборку до Amazon S3, поэтому вы можете скомпилировать ее с Amazon Linux (ОС AWS Lambda). – zamnuts
Да, я видел, что node-sqlite3 использует node-pre-gyp, но я действительно не понимал, что это значит для меня или как использовать его для достижения того, чего я хочу. –
Я знаю, что это связано с дополнительными расходами, но я предлагаю упаковать рекламные объявления на другую коробку s3. Затем переведите его в рабочую среду. Обратите внимание: если вы сделаете npm i из своей Linux-среды, все будет работать отлично, если у вас есть необходимые инструменты сборки. –