Hi,
I try to run matter-js serverside in node. Actually I have browser simulation which I'm porting to the server now. I got rid of renderer and now the obstacle is when I run most basic code:
var Mt = require('matter-js')
this.engine = Mt.Engine.create() // throws error: 'HTMLElement is not defined'
Which points me right to the very beginning of the Engine.create() function:
Engine.create = function(element, options) {
// options may be passed as the first (and only) argument
options = Common.isElement(element) ? options : element; /// <----
element = Common.isElement(element) ? element : null;
options = options || {};
(...)
and:
Common.isElement = function(obj) {
return obj instanceof HTMLElement;
};
This is SO obvious that I suspect I may be doing something totally wrong. I can't see any mention of Node specific setup in the getting started...
I temp fixed it by patching Common.isElement():
Common.isElement = function(obj) {
return typeof HTMLElement !== 'undefined' && obj instanceof HTMLElement;
};
but now I see unchecked references to window in Common.now(). I can fix this as well but I don't know how far down the rabbit hole this will lead me so here's my more general question:
Is the master branch of matter-js supposed to work in nodejs environment at all?
FYI, safeguarding references to window in Common.now seems to fix the engine for Node at least for my current use case.
Yeah it supports node but looks like I've slipped up here, thanks for the heads up. I'll handle fixing all the reference issues. Also related is #459.
Most helpful comment
Yeah it supports node but looks like I've slipped up here, thanks for the heads up. I'll handle fixing all the reference issues. Also related is #459.