ошибка установки node-pre-gyp из-за возможного конфликта с узлом

Вопрос: Я не смог установить и запустить пример amp-paywall-demo доступный в репозитории AmpProject GitHub: https://github.com/ampproject/samples/tree/master/amp-paywall-demo. Я уже поднял там билет на выпуск, но пока не получил ответа (https://github.com/ampproject/samples/issues/211) Я попытался следовать руководству по установке: я клонировал репозиторий (это работало, как и ожидалось), после чего последовала npm install которая, к сожалению, не удалась. Я попытался отладить

Вопрос:

Я не смог установить и запустить пример amp-paywall-demo доступный в репозитории AmpProject GitHub: https://github.com/ampproject/samples/tree/master/amp-paywall-demo. Я уже поднял там билет на выпуск, но пока не получил ответа (https://github.com/ampproject/samples/issues/211)

Я попытался следовать руководству по установке: я клонировал репозиторий (это работало, как и ожидалось), после чего последовала npm install которая, к сожалению, не удалась.

Я попытался отладить ошибку самостоятельно, но не смог этого сделать. Я также погуглил ошибку и искал похожие проблемы среди проблем в репозитории Git, но это тоже не помогло.

Я создал публичные списки с выводом ошибки, а также файл debug.log

  • ошибка:

отладка:

Стек ошибок выглядит следующим образом:

➜ amp-paywall-demo git:(master) ✗ sudo npm i > grpc@0.14.1 install /home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcl oud/node_modules/grpc > node-pre-gyp install —fallback-to-build node-pre-gyp info it worked if it ends with ok node-pre-gyp verb cli [ ‘/usr/bin/node’, node-pre-gyp verb cli ‘/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/ gcloud/node_modules/grpc/node_modules/.bin/node-pre-gyp’, node-pre-gyp verb cli ‘install’, node-pre-gyp verb cli ‘—fallback-to-build’ ] node-pre-gyp info using node-pre-gyp@0.6.28 node-pre-gyp info using node@10.15.1 | linux | x64 node-pre-gyp verb command install [] node-pre-gyp info check checked for «/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/n ode_modules/gcloud/node_modules/grpc/src/node/extension_binary/grpc_node.node» (not found) node-pre-gyp http GET de-v64-linux-x64.tar.gz node-pre-gyp http 403 de-v64-linux-x64.tar.gz node-pre-gyp ERR! Tried to download: grpc/v0.14.1/node-v64-linux-x64.tar.gz node-pre-gyp ERR! Pre-built binaries not found for grpc@0.14.1 and node@10.15.1 (node-v64 ABI) (fal ling back to source compile with node-gyp) node-pre-gyp http 403 status code downloading tarball ed-binaries/node/grpc/v0.14.1/node-v64-linux-x64.tar.gz node-pre-gyp verb command build [ ‘rebuild’ ] node-pre-gyp ERR! Tried to download: grpc/v0.14.1/node-v64-linux-x64.tar.gz node-pre-gyp ERR! Pre-built binaries not found for grpc@0.14.1 and node@10.15.1 (node-v64 ABI) (fal ling back to source compile with node-gyp) node-pre-gyp http Connection closed while downloading tarball file node-pre-gyp verb command build [ ‘rebuild’ ] gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir ‘/home/rafael/proj/tuts/amp-publisher-sample /amp-paywall-demo/node_modules/gcloud/node_modules/grpc/build’ gyp ERR! System Linux 4.15.0-45-generic gyp ERR! command «/usr/bin/node» «/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js» «configure» «—fallback-to-build» «—module=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary/grpc_node.node» «—module_name=grpc_node» «—module_path=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary» gyp ERR! cwd /home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc gyp ERR! node -v v10.15.1 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok node-pre-gyp ERR! build error node-pre-gyp ERR! stack Error: Failed to execute ‘/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure —fallback-to-build —module=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary/grpc_node.node —module_name=grpc_node —module_path=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary’ (1) node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/node_modules/node-pre-gyp/lib/util/compile.js:83:29) node-pre-gyp ERR! stack at ChildProcess.emit (events.js:189:13) node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:970:16) node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) node-pre-gyp ERR! System Linux 4.15.0-45-generic node-pre-gyp ERR! command «/usr/bin/node» «/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/node_modules/.bin/node-pre-gyp» «install» «—fallback-to-build» node-pre-gyp ERR! cwd /home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc node-pre-gyp ERR! node -v v10.15.1 node-pre-gyp ERR! node-pre-gyp -v v0.6.28 node-pre-gyp ERR! not ok Failed to execute ‘/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure —fallback-to-build —module=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary/grpc_node.node —module_name=grpc_node —module_path=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary’ (1) gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir ‘/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/build’ gyp ERR! System Linux 4.15.0-45-generic gyp ERR! command «/usr/bin/node» «/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js» «configure» «—fallback-to-build» «—module=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary/grpc_node.node» «—module_name=grpc_node» «—module_path=/home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc/src/node/extension_binary» gyp ERR! cwd /home/rafael/proj/tuts/amp-publisher-sample/amp-paywall-demo/node_modules/gcloud/node_modules/grpc gyp ERR! node -v v10.15.1 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm WARN amp-publisher@0.0.1 No repository field. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! grpc@0.14.1 install: ‘node-pre-gyp install —fallback-to-build’ npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the grpc@0.14.1 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/rafael/.npm/_logs/2019-02-15T09_29_56_863Z-debug.log

Мне также интересно, почему при установке пытается установить что-то, называемое node-pre-gyp, которого нет в package.json:

{ «name»: «amp-publisher», «version»: «0.0.1», «description»: «A sample implementation for an AMP Publisher», «main»: «app.js», «engines»: { «node»: «^4.0.0» }, «author»: «The AMP HTML Authors», «license»: «Apache-2.0», «scripts»: { «start»: «node app.js», «monitor»: «nodemon app.js», «deploy»: «gcloud preview app deploy app.yaml», «lint»: «jshint —exclude-path=.gitignore .», «test»: «npm run lint» }, «dependencies»: { «body-parser»: «1.18.3», «cookie-parser»: «1.4.3», «express»: «4.16.4», «gcloud»: «^0.37.0», «hogan-express»: «0.5.2», «hogan.js»: «^3.0.2», «jsonwebtoken»: «^8.0.0», «uuid»: «3.3.2» }, «devDependencies»: { «jshint»: «2.9.7» } }

Очень ценится, Рафаэль

Лучший ответ:

Причина вашей ошибки в том, что версия пакета grpc (0.14.1) не совместима с используемой версией NodeJs (10.15.1):

Pre-built binaries not found for grpc@0.14.1 and node@10.15.1

Вы можете попробовать использовать более старую версию NodeJ и посмотреть, поможет ли это. Но, вероятно, будет лучше, если вы попробуете использовать более современные зависимости – gcloud@^0.37.0 уже ~ 2 года и уже устарела.
Последняя версия grpc@0.14.1, которая требуется для gcloud, – 1.18.0.

Мне также интересно, почему при установке пытается установить что-то, называемое node-pre-gyp, которого нет в package.json

node-pre-gyp используется для установки модулей пакетов C++ из двоичных файлов. В вашем случае он автоматически используется для установки пакета C++ gprc, так что вы можете использовать его в контексте NodeJs.

Ответ №1

Вы можете попробовать эти команды

nvm install —lts nvm use —lts rm -rf node_modules && rm package-lock.json npm install .

Оцените статью
Добавить комментарий