Skip to content

Native module support #28

@TooTallNate

Description

@TooTallNate
$ cat index.js
const time = require('time');

const d = new time.Date();
d.setTimezone('US/Hawaii');
console.log(d.toString());

$ ncc index.js > out.js
$ node out.js
/Users/nrajlich/t/out.js:1703
  throw err
  ^

Error: Could not locate the bindings file. Tried:
 → /Users/nrajlich/t/build/time.node
 → /Users/nrajlich/t/build/Debug/time.node
 → /Users/nrajlich/t/build/Release/time.node
 → /Users/nrajlich/t/out/Debug/time.node
 → /Users/nrajlich/t/Debug/time.node
 → /Users/nrajlich/t/out/Release/time.node
 → /Users/nrajlich/t/Release/time.node
 → /Users/nrajlich/t/build/default/time.node
 → /Users/nrajlich/t/compiled/10.13.0/darwin/x64/time.node
    at bindings (/Users/nrajlich/t/out.js:1700:9)
    at Object.<anonymous> (/Users/nrajlich/t/out.js:344:39)
    at __webpack_require__ (/Users/nrajlich/t/out.js:21:30)
    at Object.<anonymous> (/Users/nrajlich/t/out.js:326:14)
    at __webpack_require__ (/Users/nrajlich/t/out.js:21:30)
    at /Users/nrajlich/t/out.js:85:18

However, even if I manually copy over the .node file into ./build/time.node, I get the same error. I think due to some webpack magic related to dynamic require calls. Webpack turns this:

      b = opts.path ? require.resolve(n) : require(n)

Into this:

      b = opts.path ? /*require.resolve*/(__webpack_require__(3).resolve(n)) : __webpack_require__(3)(n)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions