сбой npm установка не удалась - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь установить пакет NPM в моем проекте angular. Я добавил в пакет mi. json:

"@types/thrift": "^0.10.9",
"thrift": "^0.13.0",
"node-int64": "^0.4.0",

Затем я запускаю npm Install Все выглядит гладко go.

Как указано на веб-странице пакета npm, у меня есть ворчать пакет до конца sh его установки. Следуя инструкциям, я получил пакет и выполнил: npm install npx grunt

И затем я получил эту ошибку

Running "shell:ThriftGen" (shell) task
>> /bin/sh: 1: ../../compiler/cpp/thrift: not found 
Warning: Done, with errors: command "mkdir -p test/gen-js && ../../compiler/cpp/thrift -gen js --out test/gen-js ../../test/ThriftTest.thrift && ../../compiler/cpp/thrift -gen js --out test/gen-js ../../test/JsDeepConstructorTest.thrift && mkdir -p test/gen-js-jquery && ../../compiler/cpp/thrift -gen js:jquery --out test/gen-js-jquery ../../test/ThriftTest.thrift && mkdir -p test/gen-nodejs && ../../compiler/cpp/thrift -gen js:node --out test/gen-nodejs ../../test/ThriftTest.thrift && mkdir -p test/gen-js-es6 && ../../compiler/cpp/thrift -gen js:es6 --out test/gen-js-es6 ../../test/ThriftTest.thrift && mkdir -p test/gen-nodejs-es6 && ../../compiler/cpp/thrift -gen js:node,es6 --out ./test/gen-nodejs-es6 ../../test/ThriftTest.thrift" (target "ThriftGen") exited with code 127. Use --force to continue.                                                                                                                                                                                                                                                     
Aborted due to warnings. 

Возможно, использование силы не исправит основную проблему, но проигнорируйте это и закончите ошибочной установкой.

1 Ответ

0 голосов
/ 08 мая 2020

На данный момент (thrift 0.13.0) существует множество проблем с пакетом Node.js. Проблемы задокументированы здесь:

Все эти проблемы были исправлены в основной ветке upstream по адресу https://github.com/apache/thrift. Но исправления еще не были выпущены до npm.

Если вам срочно требуется экономия, я рекомендую собрать ее самостоятельно из исходников. Это потребует немного возиться, но это не невозможно. Обычно для такого рода запросов лучше всего обращаться в список рассылки пользователей по адресу https://thrift.apache.org/mailing. Но я постараюсь описать соответствующие шаги здесь.

Вам потребуется создать локальный пакет Node.js, который вы можете использовать вместо обычной команды npm install. См. Node.js пакетная документация для получения более подробной информации. Этот Node.js пакет не включает в себя thrift компилятор, поэтому недостаточно генерировать новые привязки Thrift из файла IDL. Если вам также нужен компилятор, его будет проще всего установить из бинарных распространителей (например, ваш дистрибутив Linux, если он у вас есть). Apache Сам Thrift не предоставляет готовые двоичные файлы.

Вот необходимые шаги для генерации пакета Node.js:

  1. Клонируйте главную ветку Thrift из https://github.com/apache/thrift
  2. Откройте терминал и go в папку root проверки
  3. Позвоните npm install, чтобы установить зависимости сборки
  4. Пакет a локальный Node.js пакет Thrift с npm pack Это (на данный момент) создаст локальный пакет thrift-0.14.0.tgz с последними Node.js источниками для Thrift.
  5. Скопируйте его в ваш Angular проект, затем установите его, используя npm --save "file:thrift-0.14.0.tar.gz"
...