NodeJS return process.dlopen(module,path._makeLong(filename));

e0bqpujr  于 2023-05-06  发布在  Node.js
关注(0)|答案(7)|浏览(139)

我在OpenCV Node运行示例时收到此错误

return process.dlopen(module, path._makeLong(filename));
                 ^

Error: /home/sunny/face/build/opencv/v5.0.0/Release/node-v46-linux-x64/opencv.node: undefined symbol: _ZNK2cv9Algorithm5writeERNS_11FileStorageE
    at Error (native)
    at Object.Module._extensions..node (module.js:460:18)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object. (/home/sunny/face/lib/bindings.js:4:15)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
ukxgm1gy

ukxgm1gy1#

尝试通过以下方式刷新已安装的模块

$ rm -rf node_modules/
$ npm update

我在使用Gulp和node-sass时遇到了与process.dlopen相关的错误。清除安装的模块为我解决了这个问题。
编辑:不确定OpenCV是如何工作的(或者它实际上是什么),但我认为它处理NodeJS模块类似于常规NodeJS应用程序,您可以在其中刷新模块集合。

i86rm4rw

i86rm4rw2#

使用此命令,它工作正常:

npm rebuild bcrypt --build-from-source
eqqqjvef

eqqqjvef3#

您应该检查您的OpenCV安装,它可能丢失/找不到,或者它不是OpenCV节点绑定支持的版本。假设你在npm上使用opencv模块,它的自述文件说OpenCV版本从v2.3.1到v3.0.0都(完全)支持。

mitkmikd

mitkmikd4#

我遇到了同样的问题,结果发现docker运行的是linux,bcrypt是在macOS上创建的,如果你不在docker中运行npm install,就会出现某种兼容性问题。
对于我来说,添加一个.dockerignore文件并添加到项目的node_module文件夹中,然后在Dockerfile中运行RUN npm install解决了这个问题。

c9x0cxw0

c9x0cxw05#

我的情况下,我有我的.dockerignore上的node_modules

node_modules
upload
export
converage
.git
.tmp
.vscode
.github
.env

但是我仍然需要使docker-compose能够忽略node_modules文件夹。

services:
  api:
    build: .
    command: npm run dev
    volumes:
      - '.:/usr/src/app'
      - /usr/src/app/node_modules/
    ports:
      - "3000:3000"

docker-compose将跳过将为MacOS构建的node_modules复制到Linux容器中。
Add a volume to Docker, but exclude a sub-folder

wqsoz72f

wqsoz72f6#

我运行了这些命令,但没有成功

$ rm -rf node_modules/
$ npm update

唯一对我有帮助的是

yarn add node-sass

最后我的节点模块安装成功。

2mbi3lxu

2mbi3lxu7#

使用此命令,它工作正常:

rm -r node_modules

然后再次使用install命令:

npm i --save

相关问题