Automattic / Automattic/node-canvas
Cryptic error when calling `require('canvas')` in different modules
- Dominant language
- JavaScript
- Stars
- 10.7k
- Forks
- 1.2k
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 1
Description
In a `.js` file that has `require('canvas')`, `require` another file that itself also includes `require('canvas')`. You’ll get a cryptic error message, depending on which version of io.js/Node.js you’re using.
Minimal test case to reproduce the issue: https://gist.github.com/mathiasbynens/ddc03a5d8e52c48bcd35
The specific error messages are below.
## io.js v2.2.1
```
$ nvm use iojs
Now using io.js v2.2.1
$ node reproduce-bug.js
module.js:351
Module._extensions[extension](this, filename);
^
Error: Module version mismatch. Expected 44, got 14.
at Error (native)
at Module.load (module.js:351:32)
at Function.Module._load (module.js:306:12)
at Module.require (module.js:361:17)
at require (module.js:380:17)
at Object. (/tmp/node-canvas-bug/node_modules/canvas/lib/bindings.js:2:18)
at Module._compile (module.js:426:26)
at Object.Module._extensions..js (module.js:444:10)
at Module.load (module.js:351:32)
at Function.Module._load (module.js:306:12)
```
## Node.js v0.12
```
$ nvm use 0.12
Now using node v0.12.2
$ node reproduce-bug.js
module.js:355
Module._extensions[extension](this, filename);
^
Error: Module did not self-register.
at Error (native)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object. (/tmp/node-canvas-bug/node_modules/Canvas/lib/bindings.js:2:18)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.