ncsoft / Unreal.js

Unreal.js: Javascript runtime built for UnrealEngine
Other
3.67k stars 351 forks source link

Do libraries built via node-gyp (or other methods) work with Unreal.js? #237

Closed eeyang92 closed 5 years ago

eeyang92 commented 5 years ago

Hi,

I am currently trying to integrate my library that uses zeromq into my project, however I get these errors when I attempt to require the module:

Javascript: Error: file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/lib/index.js:19: TypeError: Cannot read property 'zmqVersion' of undefined
Javascript: Error: TypeError: Cannot read property 'zmqVersion' of undefined
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/lib/index.js:19:23
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/lib/index.js:857:4
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/lib/index.js:858:25
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/index.js:2:18
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/index.js:3:4
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/node_modules/zeromq/index.js:4:25
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/test.js:28:5
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/test.js:30:3
Javascript: Error:     at file:///e:/Files/Projects/UE4%20Projects/zmq_test/Content/Scripts/test.js:31:3

(zeromq) index.js:

/**
 * Module dependencies.
 */

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

/**
 * Expose bindings as the module.
 */

exports = module.exports = zmq;

/**
 * Expose zmq version.
 */

exports.version = zmq.zmqVersion();

...

Line 19 is the last line above. My feeling is that since zmq is undefined, it must not be requiring zmq.node properly, but I don't know why (zmq.node does exist in the build/Release directory).

This is my test.js file that I use in UE4:

(function() {
    "use strict";

    console.log('test')

    require('zeromq')
})()

package.json:

{
  "name": "ue4-test",
  "version": "1.0.0",
  "main": "index.js",
  "author": "Eric Yang",
  "license": "Unlicensed",
  "private": true,
  "dependencies": {
    "zeromq": "^5.1.0"
  }
}
crocuis commented 5 years ago

Since unreal.js is not based on node.js, libraries dependent on node.js will not work.

eeyang92 commented 5 years ago

Ah, for some reason I assumed it was built on node.js, that clears it up, thank you!