Не могу нажать на Heroku из-за "grpc" - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь перенести изменения в моем веб-приложении NodeJS на heroku;Тем не менее, я вижу следующее сообщение об ошибке на этапе сборки.Я знаю, что проблема заключается в «grpc» (см. Сообщение об ошибке), который, как я подозреваю, является зависимостью от firebase;Однако я не знаю, как решить проблему. Здесь - очень похожая проблема, которую я обнаружил в SO, но в этом потоке нет четкого решения.

remote:        [4/4] Building fresh packages...
remote:        error /tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc: Command failed.
remote:        Exit code: 1
remote:        Command: ./node_modules/.bin/node-pre-gyp install --fallback-to-build --library=static_library
remote:        Arguments:
remote:        Directory: /tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc
remote:        Output:
remote:        node-pre-gyp ERR! Tried to download(403): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v64-linux-x64-glibc.tar.gz
remote:        node-pre-gyp ERR! Pre-built binaries not found for grpc@1.10.1 and node@10.4.0 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
remote:        node-pre-gyp ERR! Pre-built binaries not installable for grpc@1.10.1 and node@10.4.0 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
remote:        node-pre-gyp ERR! Hit error Connection closed while downloading tarball file
remote:        make: Entering directory '/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc/build'
remote:        make: Entering directory '/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc/build'
remote:        CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o
remote:        CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o
remote:        CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/avl/avl.o
remote:        sed: can't read ./Release/.deps/Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o.d.raw: No such file or directory
remote:        rm: cannot remove './Release/.deps/Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o.d.raw': No such file or directory
remote:        grpc.target.mk:394: recipe for target 'Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o' failed
remote:        make: Leaving directory '/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc/build'
remote:        make: *** [Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o] Error 1
remote:        gyp ERR! build error
remote:        gyp ERR! stack Error: `make` failed with exit code: 2
remote:        gyp ERR! stack     at ChildProcess.onExit (/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/node-gyp/lib/build.js:262:23)
remote:        gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
remote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:237:12)
remote:        gyp ERR! System Linux 4.4.0-1019-aws
remote:        gyp ERR! command "/tmp/build_5dcbc8b8883705e76971dd8574f59db8/.heroku/node/bin/node" "/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--library=static_library" "--module=/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc/grpc_node.node" "--module_name=grpc_node" "--module_path=/tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc"
remote:        gyp ERR! cwd /tmp/build_5dcbc8b8883705e76971dd8574f59db8/node_modules/grpc
remote:        gyp ERR! node -v v10.4.0
remote:        gyp ERR! node-gyp -v v3.7.0
remote:        gyp ERR! not ok
remote:        node-pre-gyp ERR! build error

решено:

Подписатьсяинструкции по этой ссылке

ОК :) firebase 4.6.2 firebase-admin 5.3.0 firebase-tools 3.7.0

KO :( firebase 4.7.0 + firebase-admin 5.4.0 + firebase-tools 3.8.0 +

На этом этапе вы можете подумать, что старые версии могут работать с firestore. Но если вы хотите использовать firestore, он потребует grpcмодуль узла, и если вы его подключите, та же ошибка: /

1 Ответ

0 голосов
/ 13 июня 2018

Основная проблема заключается в том, что версия gRPC, которую вы пытаетесь установить, несовместима с версией Node, которую вы используете.Эта ошибка указывает, что вы устанавливаете gRPC@1.10.1 с Узлом 10;первой версией gRPC, которая поддерживает Node 10, является gRPC@1.11.1.Таким образом, в общем случае решение этой проблемы состояло бы в том, чтобы либо понизить версию Node, либо обновить версию gRPC.

Ваша правка, похоже, указывает на то, что вы смогли решить эту проблему путем понижения версий * 1003Пакеты *, firebase-admin и firebase-tools, которые вы используете.Это, вероятно, работает, потому что определенные версии, которые вы пробовали, сначала прикрепили зависимость gRPC к более старой версии, а при понижении версии вы получили версию, для которой не была закреплена зависимость.Однако каждый из этих пакетов также имеет более новые версии, которые не связывают зависимость gRPC и должны предоставить вам самую новую версию.

...