在 Node 10 中使用 ifxnjs 混淆安装错误
Confusing install error with ifxnjs in Node 10
运行 项目在官方 node:10 docker 图像上的 npm 安装退出并出现令人困惑的构建错误。我可以提供其他详细信息,但我不知道相关内容是什么。
../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,docker 构建完成没有错误。该构建安装了 ifxnjs 而不是 "ifxnjs-aa64"。
看来作者几个月前分叉了一些模块。我以前没有安装过这些,所以我不知道它们之间的区别。
我很想知道 docker VM 平台。 Informix node.js 10.x 驱动程序已经在 Linux64、Win64 和 ARM 的 NPM 中可用,如果您在其中一个平台上,则不需要本地构建驱动程序本机组件。由于某种原因,它正在启动 Informix node.js 驱动程序本机组件的本地构建(本地构建需要比通常的驱动程序安装更多的设置)。如果您不打算进行本地构建,那么您可以调查为什么您的环境正在启动构建,而不是仅仅从 NPM 包管理器中获取二进制文件。您可以尝试只安装 Informix node.js 驱动程序吗,可以使用以下命令来完成。
npm install ifxnjs
一旦驱动程序安装成功,您就可以执行 "npm install" 出于任何原因尝试的操作。
运行 项目在官方 node:10 docker 图像上的 npm 安装退出并出现令人困惑的构建错误。我可以提供其他详细信息,但我不知道相关内容是什么。
../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,docker 构建完成没有错误。该构建安装了 ifxnjs 而不是 "ifxnjs-aa64"。
看来作者几个月前分叉了一些模块。我以前没有安装过这些,所以我不知道它们之间的区别。
我很想知道 docker VM 平台。 Informix node.js 10.x 驱动程序已经在 Linux64、Win64 和 ARM 的 NPM 中可用,如果您在其中一个平台上,则不需要本地构建驱动程序本机组件。由于某种原因,它正在启动 Informix node.js 驱动程序本机组件的本地构建(本地构建需要比通常的驱动程序安装更多的设置)。如果您不打算进行本地构建,那么您可以调查为什么您的环境正在启动构建,而不是仅仅从 NPM 包管理器中获取二进制文件。您可以尝试只安装 Informix node.js 驱动程序吗,可以使用以下命令来完成。
npm install ifxnjs
一旦驱动程序安装成功,您就可以执行 "npm install" 出于任何原因尝试的操作。