node.js - 在 Node 10 中混淆安装错误与 ifxnjs
问题描述
在官方 node:10 docker 镜像上运行项目的 npm install 退出并出现令人困惑的构建错误。我可以提供其他细节,但我不知道什么是相关的。
../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 驱动程序已经在 NPM 中用于 Linux64、Win64 和 ARM,如果您在其中一个平台上,那么您不需要本地构建驱动程序本机组件。由于某种原因,它正在启动 Informix node.js 驱动程序本机组件的本地构建,(本地构建需要比通常的驱动程序安装更多的设置)。如果您不打算进行本地构建,那么您可以调查为什么您的环境会启动构建,而不是仅仅从 NPM 包管理器获取二进制文件。您可以尝试仅安装 Informix node.js 驱动程序吗,可以使用以下命令来完成。
npm install ifxnjs
一旦驱动程序安装成功,无论出于何种原因,您都可以执行“npm install”。
推荐阅读
- vba - Range.Copy 到打开的工作簿中的另一个工作表不会运行,脚本超出范围错误
- google-analytics - 网络广告系列归因于应用安装
- ruby-on-rails - 多个字幕上传 - Rails Carrierwave
- url-rewriting - web.config 重写子子目录 URL
- unicorn - 如何对多个端口使用单个 SSL
- javascript - 防止水平滚动页面导航
- asp.net-mvc - 如何将通知从 Web 应用程序发送到同一网络中的 Windows 服务
- javascript - 使用通过 props 传递的函数时 setState 不起作用
- android - 在 Android Studio 模拟器上编辑 hosts 文件
- react-native - 为什么我的组件在 React Native 中的 AsyncStore 中的数据发生更改时不更新 UI?