Непонятная ошибка установки с ifxnjs в узле 10 - PullRequest
3 голосов
/ 22 апреля 2019

Запуск npm-инсталляции проекта на официальном узле: образ 10-докеров завершается с ошибкой сборки. Я могу предоставить другие детали, но я не знаю, что относится к делу.

../src/odbc.cpp: In static member function 'static v8::Local<v8::Value> ODBC::GetSQLError(SQLSMALLINT, SQLHANDLE, char*)':
../src/odbc.cpp:1184:87: error: no matching function for call to 'v8::Object::SetPrototype(v8::Local<v8::Value>)'
       objError->SetPrototype(Exception::Error(Nan::New(errorMessage).ToLocalChecked()));
                                                                                       ^
In file included from ../src/odbc.cpp:21:0:
/root/.node-gyp/10.15.3/include/node/v8.h:3442:37: note: candidate: v8::Maybe<bool> v8::Object::SetPrototype(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> SetPrototype(Local<Context> context,
                                     ^~~~~~~~~~~~
/root/.node-gyp/10.15.3/include/node/v8.h:3442:37: note:   candidate expects 2 arguments, 1 provided
make: *** [Release/obj.target/ifx_njs_bind/src/odbc.o] Error 1
ifx_njs_bind.target.mk:113: recipe for target 'Release/obj.target/ifx_njs_bind/src/odbc.o' failed
make: Leaving directory '/usr/src/app/node_modules/ifxnjs-aa64/build'

решено: переключившись на зависимость проекта sails-informix вместо sails-informix2 , сборка докера завершилась без ошибок. Сборка установила ifxnjs вместо "ifxnjs-aa64".

Похоже, что автор разветвил несколько модулей несколько месяцев назад. Я не устанавливал их раньше, поэтому я не знал о различиях.

1 Ответ

1 голос
/ 23 апреля 2019

Мне любопытно узнать платформу Docker VM. Драйвер Informix node.js 10.x уже доступен в NPM для Linux64, Win64 и ARM. Если вы используете одну из платформ, вам не нужна локальная сборка собственных компонентов драйвера. По какой-то причине запускается локальная сборка собственных компонентов драйвера Informix node.js (локальная сборка требует чуть больше настройки, чем обычная установка драйвера). Если вы не собираетесь выполнять локальную сборку, вы можете выяснить, почему ваша среда инициирует сборку, а не просто загружает двоичные файлы из менеджера пакетов NPM. Вы можете попробовать установить только драйвер Informix node.js, это можно сделать с помощью следующей команды.

npm install ifxnjs

Как только установка драйвера прошла успешно, вы можете выполнить «установку npm», которую пытались установить по любой причине.

...