nodejs只是引入zerorpc就报错

发布于 2022-09-11 20:04:15 字数 842 浏览 6 评论 0

Uncaught Error: The system cannot find message text for message number 0x%1 in the message file for %2.
\\?\E:\new\node_modules\zeromq\build\Release\zmq.node
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20)
    at Object.Module._extensions..node (module.js:598:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:172:20)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (E:\Python\electron-python-example-master\new\node_modules\zeromq\lib\index.js:6:11)
    at Object.<anonymous> (E:\Python\electron-python-example-master\new\node_modules\zeromq\lib\index.js:848:3)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阳光下的泡沫是彩色的 2022-09-18 20:04:15

原因:
node\_modules\\zerorpc\\node\_modules\\zeromq\\lib\\index.js
的代码写的不够严谨,对于不同平台的路径支持不够好

具体情况是:

var EventEmitter = require('events').EventEmitter
  , zmq = require('../build/Release/zmq.node')
  , util = require('util');

中的:

zmq = require('../build/Release/zmq.node')

对于Linux/Mac是支持的。
但是对于Win是会出现上述错误的。

解决办法:

node\_modules\\zerorpc\\node\_modules\\zeromq\\lib\\index.js

var EventEmitter = require('events').EventEmitter
  , zmq = require('../build/Release/zmq.node')
  , util = require('util');

改为

var EventEmitter = require('events').EventEmitter

let path = require('path')
let zmqNodePath = path.join("..", "build", "Release", "zmq.node")
var zmq = require(zmqNodePath)

var util = require('util')

即可同时支持多种不同平台,正确加载 zmq.node 这个dll库。

详见我的帖子:
【已解决】windows中启动Electron-python报错:Uncaught Error A dynamic link library DLL initialization routine failed zerorpc  zeromq zmq.node

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文